rman备份策略及备份脚本

合集下载

使用RMAN和控制文件备份删除归档日志的SHELL脚本--REDHAT5LINUX64

使用RMAN和控制文件备份删除归档日志的SHELL脚本--REDHAT5LINUX64

使⽤RMAN和控制⽂件备份删除归档⽇志的SHELL脚本--REDHAT5LINUX64在ORACLE⽤户下的定时器设置[oracle@SHARKDB dbscripts]$ crontab -l# minute hour day month week15 1 * * 0 sh /home/oracle/dbscripts/backup_full.sh05 3 * * * sh /home/oracle/dbscripts/del_arc.sh全备脚本先配置保留时间窗⼝,配置备份⽬录和格式,然后交叉检查所有备份集.删除⽆效备份集,删除过期对象,进⾏全备份并压缩..[oracle@SHARKDB dbscripts]$ cat backup_full.sh#!/bin/kshsource ~/.bash_profileecho "------------------Start------------------";date#backup start$ORACLE_HOME/bin/rman log=/home/oracle/dbscripts/logs/rman_full_backup.log << EOFconnect target /run{CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/arch/full_%d_%s_%T_%t.bak';crosscheck backupset;delete noprompt expired backupset;delete noprompt obsoleted;backup full AS COMPRESSED BACKUPSET DATABASE include current controlfile plus archivelog;}exit;EOFecho "-------------------End-------------------";date删除归档⽇志先检查归档⽇志把物理删除的信息从控制⽂件删除,然后执⾏物理删除 2天前的.[oracle@SHARKDB dbscripts]$ cat del_arc.sh#! /bin/bashsource ~/.bash_profileexec >> /home/oracle/dbscripts/logs/del_arch`date +%F_%H`.log$ORACLE_HOME/bin/rman target / <<EOFcrosscheck archivelog all;delete noprompt expired archivelog all;delete noprompt archivelog until time 'sysdate-2';exit;EOF如果没有SO 彼此语句 -- source ~/.bash_profile 那么要在ROOT下执⾏定时器切换⽤户执⾏脚本03 04 * * * su - oracle -c '/home/oracle/del_arc.sh'。

Rman使用简明

Rman使用简明

Rman使用简明一、Rman备份概述1,含义RMAN可以用来备份和恢复数据库文件、归档日志和控制文件,在9i中也可以用来备份和恢复spfile。

也可以用来执行完全或不完全的数据库恢复。

RMAN启动数据库上的Oracle服务器进程来进行备份或还原。

备份、还原、恢复是由这些进程驱动的。

具有如下特点:1)功能类似物理备份,但比物理备份强大N倍,从下面的特点可以看到;2)可以压缩空块;3)可以在块水平上实现增量;4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集;5)备份与恢复的过程可以自动管理;6)可以使用脚本(存在Recovery catalog中)7)可以做坏块监测2,概念备份集(backup sets):备份集顾名思义就是一次备份的集合,它包含本次备份的备份片,以oracle 专有的格式保存。

一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。

注:一次备份可能产生多个备份集,根据数据量的大小和参数设定不同而变化备份片(Backup pieces):每个备份片是一个单独的输出文件。

如果备份片没有大小的限制,一个备份集就只由一个备份片构成。

备份片的大小不能大于你的文件系统所支持的文件长度的最大值。

Image copies (映像备份)映像备份不压缩、不打包、直接COPY独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份。

Full backup 全备份全备份是指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的,也就是说,RMAN进行备份是进行压缩的。

Incremental backup 增量备份增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修改过的数据块。

与完全备份相同,增量备份也进行压缩。

增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了Oracle 9i已经建议不再使用,以后版本会逐渐取消对增量备份的支持。

RMAN备份与恢复之完全备份和增量备份

RMAN备份与恢复之完全备份和增量备份

完全备份:完全备份是指对数据库中使用过的所有数据块进行备份,当然,没有使用过的数据块是不做备份的。

在进行完全备份时,RMAN将数据文件中所有的非空白数据块都复制到备份集中。

在RMAN中,可以对数据文件进行完全备份或者增量备份,但是对控制文件和日志文件只能进行完全备份。

在一个完全数据库备份中,将所有的数据库文件,复制到闪回恢复区。

完全备份实例:【例】通过BACKUP FULL语句,对数据库执行完全备份。

使用TAG参数和FORMAT参数,指定备份文件位置以及备份文件的名称格式。

如下:RMAN>RUN{2> #BACKUP THE COMPLETE DATABASE3> ALLOCATE CHANNEL ch1 TYPE DISK;4> BACKUP FULL5> TAG full_db_backup FORMAT"E:\app\backup\db_t%t_s%s_p%p" (database);6> RELEASE CHANNEL ch1;7> }【例】在RMAN中执行LIST命令,查看建立的备份集与备份段信息,如下:RMAN> LIST BACKUP OF DATABASE;增量备份:增量备份就是将那些与前一次备份相比发生变化的数据块复制到备份集中。

进行增量备份时,RMAN会读取整个数据文件,通过RMAN可以为单独的数据文件、表空间、或者整个数据库进行增量备份。

在RMAN中建立的增量备份可以具有不同的级别,每个级别都使用一个不小于0的整数来标识,也就是在BACKUP命令中使用LEVEL关键字指定的,例如LEVEL = 0表示备份级别为0,LEVEL = 1表示备份级别为1。

增量备份的方式:差异增量备份:使用增量备份,执行0级增量备份,也就是实现完全数据库备份,如下:RMAN>RUN{2> ALLOCATE CHANNEL ch1 TYPE disk;3> BACKUP INCREMENTAL LEVEL 0 ASCOMPRESSED BACKUPSET DATABASE;4> RELEASE CHANNEL ch1;5> }在备份语句中没有指定备份文件的保存路径,默认情况下,保存在app\Administrator\flash_recovery_area\ORCL目录下。

windows下的oracle数据库rman自动备份和恢复文档

windows下的oracle数据库rman自动备份和恢复文档

数据库rman 备份恢复文档Rman 简介RMAN是ORACLE!供的恢复和备份工具,是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。

与传统工具相比,RMAN 具有独特的优势:跳过未使用的数据块。

当备份一个RMAN 备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。

RMAr使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。

二.系统规划数据库备份文件不建议与系统盘( C 盘)、oracle 数据文件存放盘( D 盘)存放在一起,本文单独存放于 E 盘。

注:在进行以下操作前要根据自己的环境建立如下目录“”,“' E:\archivelog_backup ”,“ E:/orabackup_script/ ”。

本文用到的命令中的标点均为英文字符下的标点。

三.设置oracle 数据库为归档模式(ARCHIVELOG)按以下步骤操作,检查oracle 数据库是否为归档模式。

1. 选择“开始”“系统” “运行”,输入cmd按回车。

2. 输入“ sqlplus ”,按回车。

3. 输入“ system / as sysdba ”,按回车。

4. 输入数据库system 账号的密码,按回车。

5. 查看数据库归档模式,输入“ archive log list; ”,按回车。

如下图所示。

C : XDocuments and Settings\Adminis :tpator>sqIplusSQL*Flus: Re lease 10,2.0.1.0 - Production on 星期二 1 月 8 22:2S :02 201^Copi/i*ight (c> 1982, Oracle. All rights i^eserved.旌接到:lOracle Database 10^ Enterprise Edition Release 16.2.0.1.0 - 64b±t Production With the Partit ion Ing, OLAP and D&ta Min inct opt ions档模式:2. 关闭数据库。

ORACLE RAC数据库RMAN 备份与恢复

ORACLE RAC数据库RMAN 备份与恢复

rac数据库RMAN 备份与恢复一、数据库备份在主库上通过rman 每天对数据库进行备份,并且保留两份备份在主库删除归档和进行rman 备份的脚本:[oracle@rac1 arch]$ pwd/opt/app/arch[oracle@rac1 arch]$ more del_arch.shexport ORACLE_SID=orcl1export ORACLE_BASE=/opt/app/oracleexport ORACLE_TERM=xtermexport ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1source /opt/app/arch/orcl1/del_arch.listsource /opt/app/arch/orcl2/del_arch.list/opt/app/oracle/product/10.2.0/db_1/bin/rman target / log='/opt/app/arch/rman.log' <<EOFdelete obsolete recovery window of 3 days;crosscheck archivelog all;delete noprompt obsolete;delete noprompt expired archivelog all;crosscheck backup;delete noprompt expired backup;backup format='/opt/app/arch/rman/orcl_full_%U_%T' tag='orcl_full' database;backup current controlfile tag='orcl_ctlfile'format='/opt/app/arch/rman/orcl_ctlfile_%U_%T';backup spfile tag='orcl_spfile'format='/opt/app/arch/rman/orcl_spfile_%U_%T';exitEOF执行时间:[oracle@rac1 arch]$ crontab -l30 02 * * 0 /opt/app/arch/del_arch.sh30 02 * * 1 /opt/app/arch/del_arch.sh30 02 * * 2 /opt/app/arch/del_arch.sh30 02 * * 3 /opt/app/arch/del_arch.sh30 02 * * 4 /opt/app/arch/del_arch.sh30 02 * * 5 /opt/app/arch/del_arch.sh30 02 * * 6 /opt/app/arch/del_arch.sh每天的备份文件放在/opt/app/arch/rman/目录下二、数据库恢复如果数据库出现故障,可以从备份文件中恢复数据库,最早可以恢复到两天前的备份时间点RAC 下的RMAN 讲究的是备份和还原的策略要一致。

RMAN备份命令

RMAN备份命令

RMAN备份命令(转摘)1、切换服务器归档模式,如果已经是归档模式可跳过此步:%sqlplus /nolog (启动sqlplus)SQL> conn / as sysdba (以DBA身份连接数据库)SQL> shutdown immediate; (立即关闭数据库)SQL> startup mount (启动实例并加载数据库,但不打开)SQL> alter database archivelog; (更改数据库为归档模式)SQL> alter database open; (打开数据库)SQL> alter system archive log start; (启用自动归档)SQL> exit (退出)2、连接:%rman target=rman/rman@mydb (启动恢复管理器)3、基本设臵:RMAN> configure default device type to disk; (设臵默认的备份设备为磁盘) RMAN> configure device type disk parallelism 2; (设臵备份的并行级别,通道数)RMAN> configure channel 1 device type disk format '/backup1/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure channel 2 device type disk format '/backup2/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)RMAN> configure controlfile autobackup format for device type disk to '/backu p1/ctl_%F'; (设臵控制文件与服务器参数文件自动备份的文件格式)4、查看所有设臵:RMAN> show all;5、查看数据库方案报表:RMAN> report schema;6、备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)7、备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)_8、备份归档日志:RMAN> backup archivelog all delete input;9、复制数据文件:RMAN> copy datafile 1 to '/oracle/dbs/system.copy';10、查看备份和文件复本:RMAN> list backup;11、验证备份:RMAN> validate backupset 3;12、从自动备份中恢复服务器参数文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件)13、从自动备份中恢复控制文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)13、恢复和复原全数据库:RMAN> shutdown immediate; (立即关闭数据库)RMAN> exit (退出)%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)%rman target=rman/rman@mydb (启动恢复管理器)RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)RMAN> restore database; (还原数据库)RMAN> recover database; (恢复数据库)RMAN> alter database open; (打开数据库)14、恢复和复原表空间:RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机) RMAN> exit (退出恢复管理器)%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名) %rman target=rman/rman@mydb (启动恢复管理器)RMAN> restore tablespace users; (还原表空间)RMAN> recover tablespace users; (恢复表空间)RMAN> sql 'alter tablespace users online'; (将表空间联机)15、增量备份与恢复:第一天的增量基本备份:RMAN> backup incremental level=0 database plus archivelog delete input;第二天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第三天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第四天的增量差异备份:RMAN> backup incremental level=1 database plus archivelog delete input;第五天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第六天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第七天的增量差异备份:RMAN> backup incremental level=0 database plus archivelog delete input;增量恢复:RMAN> shutdown immediate;RMAN> exit%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak%rman target=rman/rman@mydbRMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.oraRMAN> restore database;RMAN> recover database;RMAN> alter database open;Oracle备份与恢复案例一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。

简单易懂的linux下oracle数据库备份方法

简单易懂的linux下oracle数据库备份方法

简单易懂的linux下oracle数据库备份方法在Linux环境下,对Oracle数据库进行备份是一项至关重要的工作,以确保数据的安全性和完整性。

下面将为您介绍一种简单易懂的Oracle数据库备份方法。

一、准备工作1.确保已安装Oracle数据库,并正确配置环境变量。

2.确保有足够的权限(如:dba权限)进行数据库备份操作。

3.了解数据库的名称、表空间等信息,以便进行正确的备份。

二、备份方法1.使用RMAN工具进行备份RMAN(Recovery Manager)是Oracle提供的一个强大的备份和恢复工具。

以下是一个简单的RMAN备份示例:a.连接到目标数据库:```rman target /```b.使用RMAN进行备份:```backup database;```这将备份整个数据库,包括控制文件和归档日志。

c.退出RMAN:```exit;```2.使用Oracle SQL命令进行备份a.使用SQL*Plus连接到目标数据库:```sqlplus / as sysdba```b.使用SQL命令备份整个数据库:```alter database backup controlfile to trace;```这将生成控制文件的备份脚本。

c.使用SQL命令备份表空间:```backup tablespace <表空间名称> to disk;```这将备份指定的表空间。

d.退出SQL*Plus:```exit;```三、备份文件的存储1.将备份文件存储在安全的磁带上或磁盘上。

2.建议将备份文件存储在不同的物理位置,以防止数据丢失。

四、定期检查备份1.定期检查备份文件是否完整、可用。

2.定期进行恢复测试,以确保备份的有效性。

通过以上步骤,您已经了解了一种简单易懂的Linux下Oracle数据库备份方法。

RMAN备份详解

RMAN备份详解

RMAN备份1、创建映像文件备份2、创建整体数据库备份3、创建完全数据库备份4、启用快速增量备份5、创建双向备份集6、备份备份集7、创建RMAN多部分备份8、创建归档备份以用于长期保留9、报告和维护备份1:创建映像文件备份即在backup的时候指定as copy即可。

2、备份整体数据库。

即将所有数据文件及归档文件,还有控制文件跟参数文件备份了去:如下:所有,看到上面,可以发现归档,数据,参数,控制4种文件都备份。

3:增量备份。

(1):完全备份:即将包含所有使用的数据文件块备份。

(即不包括高水位以上的和以下未使用的块)。

这样,就是完全备份。

将users表空间的使用的数据块全部备份了(2)0级增量备份:等同于标记为0级的完全备份(即跟完全备份不同的是0级增量备份能增量备份,完全备份不能。

)即可以在这个备份上做增量备份。

(3)1级累积增量备份:只包含自上次0级增量备份以来修改过的块。

(4)1级差异增量备份:只包含自上次增量备份以来修改过的块。

与1级累积增量备份不同的是,1即累积增量备份是自上次0级增量备份以来修改过的块,而差异增量备份是上次增量备份以来修改过的块,下面来个图比较:4、快速增量备份:通过块更改跟踪实现,它可以:维护自上次备份以来发生更改的块的记录。

生成重做时,将此记录写入文件。

执行备份时自动访问,使备份更快的执行。

快速增量备份,即启用块更改跟踪。

块更改跟踪会将有更改的每个块得物理地址写入到一个文件中。

需要执行增量备份时,RMAN可查看块更改跟踪文件,并只备份该文件所引用的块,无需通过扫描每个块来确定该块自上次备份以来是否发生过更改。

这会加快增量备份的速度。

跟踪文件的维护是完全自动进行的,不需用户干预。

如下:启用了块更改跟踪。

因为是0级增量备,所以会记录全部的扫描的129个,我们给他加个表,再1级增量备份试试;从上面图中发现,不是1级增量备份明显比0级得扫描的块少,只要扫描和更改改变的块就行了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Rman归档模式下的热备份策略及实施方案
一、归档模式设置:
1.查看归档状态为非归档
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
archive状态Disabled
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /archivelog
Oldest online log sequence 2
Current log sequence 4
2.设置数据库为归档模式
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter system set log_archive_start=true scope=spfile;
SQL> shutdown immediate;
SQL> startup;
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archivelog
Oldest online log sequence 2
Next log sequence to archive 4
Current log sequence 4
二、rman配置准备:
在Rman中,已设置了参数每次备份自动备份控制文件和参数文件,其配置命令为:
$ rman target /
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; --设置控制文件和参数文件自动备份
RMAN> set controlfileautobackup format for device type disk to '/backupora/%F'; --设置自动备份控制文件存放位置
三、备份策略:
1、每三个月使用磁带机进行一次数据库全备份:
crontab内容为:
--每个季度的第一天早上1点作一次全备份,将备份记录输出到full_backup.log文件0 1 1 1,4,7,10 * oracle /backupora/full_backup.sh >/backupora/full_backup.log
## full_backup.sh内容如下:
ORACLE_HOME=/orac/orahome/10.2.0/db_1;export ORACLE_HOME
ORACLE_SID=hisu; export ORACLE_SID
PATH=$PATH:ORACLE_HOME/bin;export PATH
date
rman</backupora/full_backup.sql
date
##full_backup.sql内容:
$rman target /
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup database;
backuparchivelog all not backed up;
copy current controlfile to '/backupora/control.ctl';
release channel c4;
release channel c3;
release channel c2;
release channel c1;
}
2、每星期进行一次level 0的增量备份(基础备份):
crontab内容为:
--每个星期五23:00分作一次基本备份,将备份记录输出到inc_backup_lv0.log文件
0 23 * * 5 oracle /backupora/inc_backup_lv0.sh >/backupora/inc_backup_lv0.log
## inc_backup_lv0.sh内容如下:
ORACLE_HOME=/orac/orahome/10.2.0/db_1;export ORACLE_HOME
ORACLE_SID=hisu; export ORACLE_SID
PATH=$PATH:ORACLE_HOME/bin;export PATH
date
rman</backupora/inc_backup_lv0.sql
date
## inc_backup_lv0.sql内容:
$rman target /
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup incremental level = 0 database;
backuparchivelog all not backed up;
copy current controlfile to '/backupora/control.ctl';
release channel c4;
release channel c3;
release channel c2;
release channel c1;
}
3、每隔一小时进行一次level 1增量备份:
crontab内容为:
--每天中午一点钟和晚上10点钟作一次增量备份,将备份记录输出到inc_backup_lv1.log文件
0 13,22 * * * oracle /backupora/inc_backup_lv1.sh >/backupora/inc_backup_lv1.log
## inc_backup_lv1.sh内容如下:
ORACLE_HOME=/orac/orahome/10.2.0/db_1;export ORACLE_HOME
ORACLE_SID=hisu; export ORACLE_SID
PATH=$PATH:ORACLE_HOME/bin;export PATH
date
rman</backupora/inc_backup_lv1.sql
date
## inc_backup_lv1.sql内容:
$rman target /
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup incremental level = 1 database;
backuparchivelog all not backed up;
copy current controlfile to '/backupora/control.ctl';
release channel c4;
release channel c3;
release channel c2;
release channel c1;
}
四、查看备份情况:
在Rman使用list backup查看各个备份集备份信息:
$rman target /
RMAN> list backup; { 当备份比较多时,可用list backupset 15(BS号)查看某个备份集的备份内容}
五、具体操作说明:
1.ORACLE_HOME(红色字)对应的目录及ORACLE_SID变量(红色字)的设置,以实际$ORACLE_HOME和ORACLE_SID为准;
2.脚本中的目录及文件名,可自行修改;
3.上文中对应的脚本文件(绿色字),自行创建并授与oracle用户相应的读写及执行权限;4.备份目录/backupora要给oracle用户读写权限;
5.以上使用计划任务,利用rman作备份。

并不涉及备份到磁带的功能,备份到磁带的脚本,请另作编写;
6.蓝色字部分为rman备份脚本,可作NBU备份软件的备份脚本(仅供参考);。

相关文档
最新文档