Oracle自动备份及自动备份步骤

 更新时间:2016年02月15日 11:52:42   作者:孤子  
这篇文章主要介绍了Oracle自动备份及自动备份步骤的相关资料,需要的朋友可以参考下

数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们只有一台数据库服务器的,暂时采取最简单的备份策略,export出dmp进行保存。

一、备份脚本

1、初始化变量,记录开始日志

#变量
sysname=填写自己的系统名称
syspath=/home/oracle/databak/$sysname
v_date=$(date '+%Y%m%d%H%M%S')
#日志目录
logfile=${syspath}/backup.${v_date}.log
#打印开始时间
echo backup_time>>${logfile}
date '+%Y-%m-%d %H:%M:%S' >> ${logfile}
echo "backup jcd">>${logfile}
echo "start_time">>${logfile}
date '+%Y-%m-%d %H:%M:%S' >> ${logfile}

2、进入oracle目录,设置oracle的参数

#进入oracle目录,设置oracle变量
cd /home/11g/app/oracle/product/11.2.0
export ORACLE_HOME=/home/11g/app/oracle/product/11.2.0/db_1
export PATH=$PATH:/home/11g/app/oracle/product/11.2.0/db_1/bin
export ORACLE_SID=SID名称 

3、导出数据

echo $syspath
v_date=$(date '+%Y%m%d%H%M%S')
filename=$syspath/jcd${v_date}.dmp
#导出命令
exp username/password file=${filename} compress=n >> ${logfile}
echo "end_time">>${logfile}
date '+%Y-%m-%d %H:%M:%S'>>${logfile} 

4、压缩dump包

gzip ${filename} 

5、使用scp,将压缩后的包传递到备份服务器,注意备份服务器上目录需要预先创建

scp ${filename}.gz remot_name@remot_ip:/home/weblogic/databak/备份目录 

二、设定脚本执行时间

我们设定规则为每天凌晨2点执行一次,采用crontab来进行处理

执行crontab -e,设定如下规则

0 2 * * * sh /home/oracle/db.sh

三、关于scp命令密码处理

执行scp命令时候,会提示输入远程主机的密码
scp ${filename}.gz remot_name@remot_ip:/home/weblogic/databak/备份目录
此时有两种处理办法进行解决:

1、使用加密文件进行认证

1)进入本地主机的~/.ssh目录下

2)运行ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub,此处我们使用rsa方式进行

3)将生成的id_rsa和id_rsa.pub权限修改为700

4)将.pub文件复制到远程主机的~/.ssh目录,执行cat id_rsa.pub >> ~/.ssh/authorized_keys,将内容拷入authorized_keys文件

5)修改authorized权限为700

  完成以上修改之后,从本地主机scp到远程主机便无须密码,简单理解应该是通讯时候,本地主机发送scp指令时,采用本地私钥进行签名,远程主机使用公钥验签后,判断问主机可以信赖,开放通讯服务。

2、使用expect命令完成密码交互

  expect命令主要用于脚本中出现必须人工干预的情况下,预先输入指令,模拟的场景为使用expect命令捕捉到提示输入指令的文字,一旦文字出现,自动使用send命令输入需要交互的命令。

  此处使用为:

  expect "*password:"#此处填写系统提示文字
  send "your password\r"#此处填写我们输入的交互命令
  expect eof

下面给大家介绍Oracle 自动备份详细步骤

背景:Oracle 10g 服务器,Oracle 10g 客户端,windowsXP 操作平台
要求:Oracle 数据库服务器对数据库 ytcn 每天自动备份一次。
解决方案:利用任务计划、批处理文件和 Oracle 的 exp 导出功能,根据日期自动生成 Oracle 备份文件。详细步骤:

1 创建批处理文件 ytcn.bat

ytcn.bat中详细内容如下:

@echo off
echo 正在备份银通网 Oracle 数据库,请稍等......
exp userid='ytcn/ytcn@ytcn as sysdba' file=e:/bak/ytcn/oracle/ytcn/ytcn%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=e:/bak/ytcn/oracle/ytcn/ytcn%date:~0,4%%date:~5,2%%date:~8,2%.log full=y

echo 任务完成!
其中红色部分是根据需要进行变动的地方,例如作者的项目名“银通网”,数据库 ytcn 用户名 ytcn,密码 ytcn,要在目录 "e:/bak/ytcn/oracle/ytcn" 下生成形如 "ytcn20090711.dmp" 和 "ytcn20090711.log" 的备份和日志文件,全表导出。
另外:%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。%date:~4,10% 是返回日期函数,~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。 如需要准确的时间做为文件名,请用%time%函数,参数同上。

2 添加一个任务计划 ytcn

开始 > 所有程序 > 附件 > 系统工具 > 任务计划 > 添加任务计划 > 下一步 > 在 浏览 中查找刚刚写好的 ytcn.bat 文件 > 任务名输入ytcn,执行这个任务选择每天,下一步 > 起始时间下午12:00,起始日期2009-7-11,下一步 > 输入用户名及密码,用户名要求是管理员权限用户名,下一步 > 完成
点击"完成"之后,会在任务计划栏目下新增一个名为"ytcn"的任务计划,表明已经配置完毕。

备注:有时点击"完成" 之后,系统警告

"已创建新任务,但可能不能运行,因为无法设置账户信息。

指定的错误是:

Ox80041315:任务计划程序服务没有运行"

这是因为电脑的任务计划程序服务没有启动起来。开始 > 所有程序 > 管理工具 > 服务,找到"Task Scheduler"服务,发现启动类型为"已禁用",右键单击更改为"自动",并把它启动起来,然后重新添加一次任务计划 ytcn 就可以了。

相关文章

  • Oracle数据库表备份导入导出dmp的方式及踩坑记录

    Oracle数据库表备份导入导出dmp的方式及踩坑记录

    dmp是数据库导出的文件,用以备份数据库用,一般会用exp命令来导出,用imp命令来导入也就是恢复数据库,下面这篇文章主要给大家介绍了关于Oracle数据库表备份导入导出dmp的方式及踩坑记录,需要的朋友可以参考下
    2022-07-07
  • Oracle使用like查询时对下划线的处理方法

    Oracle使用like查询时对下划线的处理方法

    这篇文章主要介绍了Oracle使用like查询时对下划线的处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 解析Oracle 8i/9i的计划稳定性

    解析Oracle 8i/9i的计划稳定性

    解析Oracle 8i/9i的计划稳定性...
    2007-03-03
  • Oracle VM VirtualBox 虚拟机硬盘扩容

    Oracle VM VirtualBox 虚拟机硬盘扩容

    这篇文章主要介绍了Oracle VM VirtualBox 虚拟机硬盘扩容,VirtualBox中使用Ubuntu虚拟机中,出现了虚拟硬盘不够用的情况,我们可以采取下文方式进行扩容,需要的朋友可以参考一下
    2022-03-03
  • Oracle导入导出dmp文件具体示例

    Oracle导入导出dmp文件具体示例

    这篇文章主要给大家介绍了关于Oracle导入导出dmp文件的相关资料,dmp文件为oracle数据库的数据备份文件,执行oracle数据库导出dmp文件,相当于执行数据库备份;执行导入dmp文件,相当于数据库还原,需要的朋友可以参考下
    2023-11-11
  • PLSQL14下载与安装使用教程

    PLSQL14下载与安装使用教程

    PL/SQL Developer 14是allround automations最新推出的一款PL/SQL数据库管理软件,但是是收费的,今天小编给大家带来了PLSQL14下载与安装使用教程,一起看看吧
    2021-09-09
  • Oracle密码错误次数过多账号锁定的问题(推荐)

    Oracle密码错误次数过多账号锁定的问题(推荐)

    一般数据库默认是10次尝试失败后锁住用户。这篇文章主要介绍了Oracle密码错误次数过多账号锁定的问题,需要的朋友可以参考下
    2017-03-03
  • 安装Oracle10g遭遇ins_ctx.mk问题解决方法

    安装Oracle10g遭遇ins_ctx.mk问题解决方法

    在CentOS6.2操作系统下,安装oracle10g时遭遇ins_ctx.mk问题,这是缺少glibc-devel的32位包所导致,下面是解决方法
    2014-09-09
  • ORACLE查询表最近更改数据的方法

    ORACLE查询表最近更改数据的方法

    修改项目时,涉及到了Oracle中许多表的修改(包括:增加、删除字段,修改注释等)。由于开始没有进行记录,造成在上测试机时,忘记了具体修改过哪些表了
    2012-11-11
  • Oracle 获取表注释和列注释

    Oracle 获取表注释和列注释

    这篇文章主要介绍了Oracle 获取表注释和列注释的相关资料,需要的朋友可以参考下
    2017-07-07

最新评论