oracle怎么自动备份 oracle数据备份方法

实现Oracle数据库的每天的自动备份

相信为数不少的系统管理员每天都在做着同一样的工作——对数据进行备份 一旦哪一天疏忽了 而这一天系统又恰恰发生了故障 需要进行数据恢复 那么此时就无能为力了 假如每天设定一个固定的时间 系统自动进行备份 那该多好啊!下面笔者结合实践经验 谈一谈UNIX环境下Oracle数据库的自动备份 以起到抛砖引玉的作用 我们计划让数据库在晚上 点做export导出备份 在凌晨 点将备份文件拷贝到磁带上 在凌晨 点将备份文件拷贝到另一台UNIX机器上 为此我们可进行如下操作 一 导出数据库 export命令将数据库中的数据备份成一个二进制文件 它通常有三种模式 用户模式 表模式和整个数据库模式 本文拟采用用户模式 备份之前 应先建立一个备份目录 以容纳备份文件 比如可建一个/backup目录 接着我们可在UNIX的Oracle目录下(也可以是其它目录)分别建立两个文件ora—backup tar—backup 需要说明的是 前一个文件需要对Oracle的参数进行初始化 为了方便起见 我们不妨将初始化命令放到一个文件中(文件名姑且定为ora—env) 再由第一个文件调用它 ora—env文件对Oracle的参数进行初始化 其内容如下 ORACLE—HOME=$ORACLE—HOME;export ORACLE—HOMEORACLE—SID=ora ;export ORACLE—SIDORACLE—TERM=sun;export ORACLE—TERMLD—LIBRARY—PATH=$ORACLE—HOME/lib;export LD—LIBRARY—PATHORA—NLS =$ORACLE—HOME/omon/nls/admin/data;export ORA—NLSPATH= :/usr/ccs/bin:/usr/ucb:$ORACLE—HOME/bin:$PATH;export PATHDISPLAY=host : ;export DISPLAYNLS—LANG=american—america zhs cgb ;export NLS—LANG ora—backup文件对数据库做export导出 导出的文件名可以任意定 本文定为字母 xx 加当天日期 即假如当天日期是 月 号 则导出的文件名为 xx dmp 以区别于其它日期的备份文件 ora—backup文件内容 /oracle/ora—env#初始化Oracle数据库rq=′date +″%m%d″ ′#把当天日期赋予变量rqrm /backup/# 清空 /backup目录exp test/test file=/backup/xx$rq dmp log=/backup/xx$rq log本命令用于在$提示符下 导出test用户的数据(其口令亦为test) 导出文件及日志均放在/backup目录下 二 磁带备份 tar—backup文件将用export命令导出的数据文件拷贝到磁带上 tar—backup文件内容 tar rvf /dev/rmt/ n/backup/本命令可将/backup目录下当天产生的文件备份到磁带上 本文件中 tar命令使用了三个参数 其中r选项表示向磁带上拷入文件而不破坏磁带原来内容 v选项表示在拷贝过程中显示文件信息 f选项后面加上磁带设备名 指定文件向何处拷贝 n选项表示磁带机不倒带 /dev/rmt/ 表示UNIX主机第一个磁带驱动器 同理 /dev/rmt/ 则表示UNIX主机第二个磁带驱动器 依此类推 ora—env ora—backup tar—backup文件编写完成后 分别使用下述命令 chmod ora—envchmod ora—backupchmod tar—backup这样 三个文件就都变成了可执行文件 三 异地备份 我们知道 通常可用FTP命令在两台主机间传输数据 但一般是通过交互方式实现的 即需要手工输入目标主机的IP地址 用户名 口令等 显然 这不符合自动备份的要求 所幸的是 我们可以通过编写一rc的文件来达到目标 这一文件必须命名rc 且必须存放在启动FTP命令的机器上的用户注册目录中 该文件的权限应禁止组内或其它用户进行读访问 这样 当用户使用FTP命令的时候 系统将会在该用户的注册目录中寻rc文件 如果能够寻找到 将会首先执行该文件 否则 会交互式地提示用户输入用户名 口令等 在使用FTP命令之前 应先在另一台作备份用的UNIX机器上建一目录 以容纳备份文件 本文建的目录是/pub 需要指出的是 为了加快备份速度 两台主机之间的传输速率应尽可能的高 最好位于同一局域网上  rc文件内容如下 machine host # host 为作备份用的主机名login oracle#oracle为备份主机上的一个用户password oracle#oracle用户的口令为oraclemacdef init#定义一个名为init的宏 它将在自动注册进程的最后被执行bin#文件的传输方式设为二进制lcd /backup# 进入本地工作目录/backupcd /pub# 进入备份主机目录/pubmput # 将/backup目录下的所有文件传输至备份主机bye#退出FTP会话进程 rc文件编写完成后 使用下述命令 chmod rc这样rc文件就只能被该用户所访问 四 启动备份进程 Cron是一个永久进程 它由/etc/rc local启动执行 Cron检查/var/spool/cron/crontabs/目录中的文件 找到所要执行的任务和执行任务的时间 Crontab文件的每一行由六个域(minutes hours day of month month day of week mand)组成 域之间用空格或Tab分开 其中 minutes 分钟域 值的范围是 到 hours 小时域 值的范围是 到 day of month 日期 值的范围是 到 month 月份 值的范围是 到 day of week 星期 值的范围是 到 星期日值为 mand 所要运行的命令如果一个域是 表明命令可以在该域所有可能的取值范围内执行 如果一个域是由连字符隔开的两个数字 表明命令可以在两个数字之间的范围内执行(包括两个数字本身) 如果一个域是由逗号隔开的一系列值组成的 表明命令可以在这些值组成的范围内执行 如果日期域和星期域都有值 则这两个域都有效 现在 我们编写一个文件 用以启动自动备份进程 值得注意的是 该文件只能在Oracle用户名下用crontab -e 命令来编辑 否则将不会被定时执行 文件名定为Oracle 文件将放在/var/spool/cron/crontabs 目录下 编辑完成后 可以在Oracle的$提示符下 用crontab -l命令来查看 Oracle文件内容    /oracle/ora—backup# 每天 点对数据库执行备份    /oracle/tar—backup# 每天 点将文件备份到磁带上    ftp -i host # 每天 点将文件备份到另一台主机上经过以上的操作后 系统每天晚上将自动产生一个备份 并且自动将备份文件分别拷贝到磁带上和另一台主机上 系统管理员需要做的是 隔几天换一盘磁带(更换磁带的周期取决于备份文件的大小和磁带的容量)和清理备份目录 这样 他们就可以从备份数据的繁琐中解脱出来 去做其它更有意义的工作 而数据库既实现了磁带备份 又实现了异地备份 相应的安全性也大大提高了 lishixinzhi/Article/program/Oracle/201311/18204

10多年的英吉沙网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整英吉沙建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“英吉沙网站设计”,“英吉沙网站推广”以来,每个客户项目都认真落实执行。

Oracle数据库RMAN的自动备份脚本简介

Oracle数据库RMAN的自动备份脚本简介

各位同学知道Oracle数据库RMAN如何自动备份脚本嘛?下面我为大家整理了关于Oracle数据库RMAN的自动备份脚本文章,希望能为你提供帮助:

1、数据库设置为归档方式

2、数据库的备份脚本

db_full_backup.sh :数据库全备脚本

db_l0_backup.sh :数据库0级备份脚本

db_l1_backup.sh :数据库1级备份脚本

:数据FTP上传脚本

ftp_del.sh :数据FTP清理脚本

rman_bak.sh :数据备份主程序

3、备份原理

每周1、3、6进行0级备份

每周日、2、4、5进行1级备份

备份文件上传到FTP服务器

FTP服务器每周清理一次,但是清理后将周六和周日的备份进行保留(6.bak和0.bak)

所有工作防暑crontab中自动执行备份

4、备份目录含义

arc :数据库归档目录

rmanbak :数据库备份文件的保存目录

rmanscripts :数据库脚本存放路径

5、FTP目录

ftp上必须手动建立目录

L0:

---1

---3

---6

---6.bak

L1:

---2

---4

---5

---0

---0.bak

rman_bak.sh脚本主程序

#!/bin/bash

#--------------------------------------------

# Oracle auto backup using rman

#

# author:songrh

# week:1,3,6 Level 0 backup

# 2,4,5,0 Level 1 backup

# Copyright by ChenLong Tec

#--------------------------------------------

#

#

export ORACLE_BASE=/u02/oracle

export ORACLE_HOME=/u02/oracle/product/9.2.4

export ORACLE_SID=PROD

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

export NLS_LANG=american_america.ZHS16GBK

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NL33=$ORACLE_HOME/ocommon/nls/admin/data

export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH

export PATH=$PATH:/opt/local/bin

#

SH_PATH=/u02/rmanscripts

ARC_PATH=/u02/arch

RMAN_BAK_PATH=/u02/rmanbak

#

#FULL_PATH=$RMAN_BAK_PATH/full

L0_PATH=$RMAN_BAK_PATH/L0

L1_PATH=$RMAN_BAK_PATH/L1

#

#DAY_TAG=`date "%Y-%m-%d"`

LOG_TAG=`date "%Y-%m-%d"`

#FIRST_DAY=`date %e`

WEEK=`date %w`

#WEEK=1

#

# FTP configure

IP="122.120.150.155"

FTPUSER="ftpbak"

FTPPASS="******"

FTPROOT0="L0"

FTPROOT1="L1"

#

DISK_USE=`df -k |sed -n '/u02/'p | awk '{print $5}' |sed 's/%//'`

####check path function

############

if [[ $DISK_USE -ge 90 ]]; then

rm -rf $L0_PATH/*

rm -rf $L1_PATH/*

fi

if [ "$WEEK" = "6" -o "$WEEK" = "3" -o "$WEEK" = "1" ]; then

if [ ! -d $L0_PATH ]; then

mkdir $L0_PATH

fi

if [ "$WEEK" = "1" ]; then

rm -rf $L0_PATH/*

rm -rf $L1_PATH/*

mkdir $L0_PATH/$WEEK

$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK

cd $L0_PATH/$WEEK

$SH_PATH/ftp_del.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log

else

if [ ! -d $L0_PATH/$WEEK ]; then

mkdir $L0_PATH/$WEEK

$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK

cd $L0_PATH/$WEEK

$SH_PATH/ $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log

else

;

oracle数据库怎么自动备份

配置批处理文件

1

新建名为"oracleBackup"的文本文档(名字自己定),然后重命名后缀为"oracleBackup.bat"的批处理文件。

2

在oracleBackup.bat文件上点击右键,选择编辑,填写以下相关内容:

rem ---------------------------------------------------------------------------

rem windows环境下Oracle数据库的自动备份脚本。

rem 可以将本批处理设成windows任务计划下自动执行。

@echo off

@echo ================================================

@echo windows环境下Oracle数据库的自动备份脚本

@echo 说明:启动备份时,需要配置以下变量

@echo 1、BACKUP_DIR 指定要备份到哪个目录

@echo 2、ORACLE_USERNAME 指定备份所用的Oracle用户名

@echo 3、ORACLE_PASSWORD 指定备份所用的Oracle密码

@echo 4、ORACLE_DB 指定备份所用的Oracle连接名

@echo 5、BACK_OPTION 备份选项,可以为空,可以为full=y,可以为owner=a用户,b用户 等等....

@echo 6、RAR_CMD 指定RAR命令行压缩工具所在目录

@echo ================================================

rem 以下变量需要根据实际情况配置------ 注意:此脚本必须放在E:\backup目录下

set BACKUP_DIR=E:\backup

set ORACLE_USERNAME=se

set ORACLE_PASSWORD=xj

set ORACLE_DB=xj_orcl

set BACK_OPTION= OWNER=se

set RAR_CMD="C:\Program Files\WinRAR\Rar.exe"

for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a

set BACK_NAME=%ORACLE_DB%_%TODAY%()_

set BACK_FULL_NAME=%BACKUP_DIR%\%BACK_NAME%

rem 开始备份

exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% %BACK_OPTION% file="%BACK_FULL_NAME%.dmp" log="%BACK_FULL_NAME%exp.log"

rem 压缩并删除原有文件

%RAR_CMD% a -df "%BACK_FULL_NAME%back.rar" "%BACK_FULL_NAME%.dmp" "%BACK_FULL_NAME%exp.log"

rem ---------------------------------------------------------------------------

forfiles /m *.rar -d -7 /c "cmd /c del /f @path"

3

配置相关参数:

BACKUP_DIR:该参数为备份数据文件的存放位置,可根据实际情况进行设置(注:设置的文件路径不允许包含汉字、特殊字符等内容)。

ORACLE_USERNAME:该参数为指定备份的Oracle数据库用户名。

ORACLE_PASSWORD:该参数为指定备份的Oracle数据库密码。

ORACLE_DB:该参数为指定备份的Oracle数据库连接名。

BACK_OPTION:该参数为备份选项,可以为空,也可以为full=y等。

RAR_CMD:指定RAR命令行压缩工具所在目录

END

安装软件

1

下载WINRAR安装包。

2

点击"wrar520sc_setup.exe",进行安装软件。

3

根据软件的安装路径,在命名的bat处理文件中配置:RAR_CMD参数。

END

添加定时任务

打开电脑的控制面板,选择"任务计划",双击打开。页面如图所示:

双击打开添加定时任务,点击下一步进入相关设置页面。页面如图所示:

单击浏览按钮,找到oracleBackup.bat文件添加,然后进行配置:根据实际情况选择要备份的时间类型,此处以每天执行为例,选择每天,点击下一步,设置执行时间。

输入执行定时任务机器的用户名及密码,点击下一步,进入完成界面,点击完成,至此,Oracle数据库定时任务备份的设置。

5

利用修改机器时间进行定时任务的测试。

如何实现oracle数据库的自动备份

登陆oracle数据库服务器,利用plsql程序来登陆数据库。在用户名、密码、数据库的地方分别输入对应的用户名、密码和数据库实例名称。

2

登陆完成后,新建sql窗口,并在sql窗口中执行以下语句:

-----------------------------------------------------------------------------

declare stmt

varchar2(200);begin for tb in (select table_name from user_tables where

segment_created='NO') loop stmt:='alter table '||tb.table_name||'

allocate extent'; begin execute immediate stmt; exception when

others then dbms_output.put_line(stmt); end; end loop;end;/

-----------------------------------------------------------------------------

此语句的作用是导出oracle 11g的空表

3

建立bat批处理文件

------------------------------------------------------------------------------

cd d:\bea\dbbackdel oa%date:~8,2%.dmpexpdp username/password@orcl directory=DIR_EXP dumpfile=oa%date:~8,2%.dmp

------------------------------------------------------------------------------

其中d:\bea\dbback是命令所在的目录

username/password@orcl 分别为登陆数据库的用户名、密码、数据库实例

DIR_EXP 是在plsql中建立的directory即目录,需要根据自己的需求来创建

在电脑附件中找到任务计划程序,然后点击打开,如下图

点击右侧的“创建基本任务”,创建一个任务计划,填写任务名字和描述,如下图:

设置任务的执行周期,这里周期选择每天,点击下一步

再设置开始时间,一般选择在夜间备份数据库,点击下一步

设置执行的操作是,这里是批处理,所以选择程序,点击下一步

选择前面我们只做的bat批处理文件。即oracle备份语句文件。参数填写文件所在的目录,点击下一步:

点击完成即可。

然后双击对应的计划任务名称,出现界面如下图:

然后在安全选项中选择“不管用户是否登陆都要运行此程序”

步骤阅读

然后点击确定,系统会让用户输入对应的系统登陆密码,如下图,输入完密码点击确定即可。

oracle数据库自动备份系统

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。下面我为大家分享一下oracle数据库自动备份系统的 方法 ,有需要的可以参考一下!

oracle数据库自动备份系统

实现过程:

1. 建立文件 backup.bat (自定义文件名.bat)

@echo off

REM ###########################################################

REM # Windows Server 2003下Oracle数据库自动备份批处理脚本

REM ###########################################################

REM 取当前系统时间,可能因 操作系统 不同而取值不一样

set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%

set CURMON=%date:~0,4%%date:~5,2%

set CURTIME=%time:~0,2%

REM 小时数如果小于10,则在前面补0

if "%CURTIME%"==" 0" set CURTIME=00

if "%CURTIME%"==" 1" set CURTIME=01

if "%CURTIME%"==" 2" set CURTIME=02

if "%CURTIME%"==" 3" set CURTIME=03

if "%CURTIME%"==" 4" set CURTIME=04

if "%CURTIME%"==" 5" set CURTIME=05

if "%CURTIME%"==" 6" set CURTIME=06

if "%CURTIME%"==" 7" set CURTIME=07

if "%CURTIME%"==" 8" set CURTIME=08

if "%CURTIME%"==" 9" set CURTIME=09

set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%

REM 设置所有者、用户名和密码

set OWNER=orcl

set USER=bktcgl

set PASSWORD=bktcgl

REM 创建备份用目录,目录结构为oraclebak/YYYYMMDD/

if not exist "oraclebak" mkdir oraclebak

cd oraclebak

if not exist "%CURMON%" mkdir %CURMON%

set FILENAME=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%.DMP

set EXPLOG=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%_log.log

REM 调用ORACLE的exp命令导出用户数据

exp %USER%/%PASSWORD%@%OWNER% file=%FILENAME% log=%EXPLOG% owner=%USER% grants=n

exit

注:

1.bat文件可双击或直接在命令行执行,检查正确与否

2.检查时可注释掉exit

3.以上文件实现按月份创建文件夹,按时间生成备份文件

2.建立windows任务

步骤:

开始 - 所有程序 - 附件 - 系统工具 - 任务计划程序 - 操作 - 创建基本任务

- 任务名输入"oracle_backup"(自定义任务名),执行这个任务选择每天,下一步

- 起始时间下午12:00,起始日期2012-7-11,下一步 -(启动程序)下一步

-在 浏览 中查找刚刚写好的 backup.bat 文件 下一步 完成

注:

1.在任务计划栏目下新增一个名为"oracle_backup"的任务计划,表明已经配置完毕。

2.不同系统的任务计划略有不同,但基本换汤不换药,不做一一例举

问题:系统警告"已创建新任务,但可能不能运行,因为无法设置账户信息。指定的错误是:Ox80041315:任务计划程序服务没有运行"

原因:电脑的任务计划程序服务没有启动起来。

解决:开始 所有程序 管理工具 服务,找到"Task Scheduler"服务,发现启动类型为"已禁用",

右键单击更改为"自动",并把它启动起来,然后重新添加一次任务计划就可以了。

3.简单解释

1. bat:是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用 Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。

2. Echo 命令:打开回显或关闭请求回显功能,或显示消息。

3. @ 命令:表示不显示@后面的命令

4. Rem 命令:注释命令

5. If命令:if表示将判断是否符合规定的条件,从而决定执行不同的命令。

6. exit :退出命令行

7. GRANTS: 是权限的意思,在你导出的目标数据库中可能会有一些表的如select 权限等赋给了别的用户。

【GRANTS=Y】导出的时候将这些权限导出,导入的时候将这些权限导入。

【GRANTS=N】权限不被导入。


文章标题:oracle怎么自动备份 oracle数据备份方法
本文链接:http://myzitong.com/article/hgjesi.html