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级得扫描的块少,只要扫描和更改改变的块就行了。

windows rman备份脚本

windows rman备份脚本

、每天夜间1点执行;2、数据库全备,同时备份控制文件及归档日志文件,备份文件保存至:D:\backup\目录下,并在完成归档日志文件备份后,自动删除已备份的归档日志;3、备份保留7天,过期则自动删除;4、保留操作日志备查;以Windows环境为例(linux环境下与此基本类似,rman的脚本您甚至连改都不用改,就把调用rman脚本的命令行改改就行了):1、编写rman批处理文件保存至:E:\oracleScript\backup\database_backup_jssweb.rmanRUN {CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;CONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO'd:/backup/%F';ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U';BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10PLUS ARCHIVELOG FILESPERSET 20DELETE ALL INPUT;RELEASE CHANNEL CH1;ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;CROSSCHECK BACKUPSET;DELETE NOPROMPT OBSOLETE;SKIP选项说明SKIP INACCESSIBLE:表示跳过不可读的文件。

我们知道一些offline的数据文件只要存在于磁盘上就仍然可被读取,但是可能有些文件已经被删除或移到它处造成不可读,加上这个参数就会跳过这些文件;SKIP OFFLINE:跳过offline的数据文件;SKIP READONLY:跳过那些所在表空间为read-only的数据文件;注意哟,你从网上搜索rman备份脚本,可能有些脚本中会出现一项:sql 'alter system archive log current';这句是让archivelog日志归档,实际上完全没必要,我们在第三节的时候讲过,通过plus archivelog方式备份时,rman会自动对当前的archivelog进行归档。

oracle数据库rman备份计划及恢复

oracle数据库rman备份计划及恢复

oracle数据库rman备份计划及恢复1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。

2.rman备份脚本: a.RMAN 0级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 0 tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset database;sql "alter system archive log current";backup filesperset 3 format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} b.RMAN 1级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 1 tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset database;sql 'alter system archive log current';backup filesperset 3 format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p'archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} c.rman删除备份命令(在保留最近⼀天备份的情况下,删除其他备份):DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 1 DAYS; d.操作系统层⾯运⾏rman备份或删除命令(windows/linux):rman target sys/rf4rfvbgt56yhn@rfdb nocatalog CMDFILE 'D:\app\rman\rman_file\level_0.txt' log=E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\log\rman_level_0.log export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1export ORACLE_SID=atestexport PATH=$ORACLE_HOME/bin:$PATHrman target sys/123456@atest nocatalog CMDFILE '/u01/rman/rman.sh' log=/u01/rman/rman.log00 02 * * 1 bash /u01/rman_file/run_rman_0.sh00 02 * * 3 bash /u01/rman_file/run_rman_0.sh00 02 * * 5 bash /u01/rman_file/run_rman_0.sh00 04 * * * bash /u01/rman_file/run_delete.sh34 11 * * * bash /u01/rman_file/run_rman_0.sh e.rman参数设置:RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;3.rman恢复a.拷贝datafile,controlfile和spfile的rman备份,以及完整的archivelog和完好的redolog⽂件到新的数据库。

orcle数据库备份语句

orcle数据库备份语句

orcle数据库备份语句Oracle数据库备份是一项非常重要的任务,可以保障数据的安全性和完整性。

在进行数据库备份时,我们可以使用不同的语句和方法来完成备份操作。

以下是一些常用的Oracle数据库备份语句:1. 使用RMAN备份整个数据库:RMAN是Oracle推荐的备份工具,可以使用以下语句备份整个数据库:```RMAN> BACKUP DATABASE;```2. 使用RMAN备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```RMAN> BACKUP TABLESPACE tablespace_name;```3. 使用RMAN备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```RMAN> BACKUP DATAFILE 'datafile_path';4. 使用RMAN备份指定控制文件:控制文件是数据库的关键组成部分,可以使用以下语句备份控制文件:```RMAN> BACKUP CURRENT CONTROLFILE;```5. 使用RMAN备份归档日志:归档日志包含了数据库的所有更改记录,可以使用以下语句备份归档日志:```RMAN> BACKUP ARCHIVELOG ALL;```6. 使用EXPDP备份数据库:EXPDP是Oracle提供的数据泵工具,可以使用以下语句备份整个数据库:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp full=yes;7. 使用EXPDP备份指定表:如果只需要备份数据库中的特定表,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name;```8. 使用EXPDP备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tablespaces=tablespace_name;```9. 使用EXPDP备份指定用户:如果只需要备份数据库中的特定用户,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp schemas=user_name;```10. 使用EXPDP备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp filesperset=1 include=datafile:'datafile_path';```总结:以上是一些常用的Oracle数据库备份语句,通过使用不同的备份语句可以实现对整个数据库、指定表空间、指定数据文件、归档日志等的备份。

Oracle中使用RMAN进行备份

Oracle中使用RMAN进行备份
・三 个主 要函数 : A K P R C V R R S O E B C U 、 E O E 、 E T R :它使 J 一 { j
个 称 为 恢 复 口录 的知 识 J 车。
配置 R N包括配 置 C T L G数据库 ,配 置数据 库 MA A AO 与媒体 管理软件 的接 口,制 定 R A M N的 多级 各份方案 , 写
据_ } 窜在所有操 作系统 上备份 、恢复和 重建 而提供 的工具 。 R A M N是一个客户端 工具 ,它允许配 鼹各个 O al rc e数据库
归档文 件会在备份后 自动删除 。
2 配置 R N MA
的 备份 和恢复 , O al 对 rce服务 器使 用 P , L接 口, 调用 LQ S 它
采刚数据库提供 的 R N备 份工具有 以下 的优点 : MA 支
所以 R N必须把这些 以某 种形式保 存。R A MA M N支持 I 种 两
形式保存这些信息 ,即数据库的控制文 件或创建 一个 单独 的数据库。
持在线热 备份 、 持多级 增量备份 、 持并 行铸份 雨 恢复 、 支 支 1 减 小所 需要备份 量、 备份和恢 复的操 作简单。
在 线热 备份 : 是指 薪份不需要关 闭数 据库 进行 , 在备份 的同时可以进行 常的数据库 的各种操作 , 满足 了 7 2 *4的
当选择把 R N的信息存储在控制 文件时,控制文件 MA 的丢 失将 导致备份 将不 能进 行恢复 , 因此 若采J MA fR N做 j 备份 ,推荐采 用 R AN C T L M A A OG数据 『 牢来单独存放备 份
使川简 单: MA R N的使J 特别简单 , f ] 在进 行备份和恢复 时不需要指 定; 要箭份或恢 复的数据文件 ,它会 自动地把 备 l 份或恢 复所需 要的数据文件 进行备份或进 行恢复。减少

RMAN异地备份方案

RMAN异地备份方案

RMAN 本地数据库异地备份测试方案一.分析:RMAN并不支持客户端连接服务器进行备份,所以仍然需要在服务器上使用RMAN备份,客户要求备份至异地;二.环境:1.两台win2003 Enterprise edition:主机名si_vm_w2k3,ip:192.168.2.204;备机名PC2ip:192.168.2.2052.在si_vm_w2k3上和PC2上同时安装oracle 10.2.0.1.0;3.ORACLE_HOME=C:\oracle\product\10.2.0\db_1.ORADA TA=C:\oracle\product\10.2.0\oradata\lichao;三.操作步骤:1,在PC2上创建共享目录RMAN,在RMAN目录里建子目录logs,并授予administrator权限,保证administrator具备口令为Root1!口令不能为空;2,在si_vm_w2k3确保administrator的口令与PC2的administrator口令相同且为Root1!;3,在si_vm_w2k3映射\\PC2\RMAN目录为Z盘,并明确登录用户为administrator及口令;4,在si_vm_w2k3机器修改ORACLE的两个服务OracleTNSListerner和OracleServiceLICHAO为账户登录:用户名为administrator,口令为Root1!;5,重启si_vm_w2k3机器的两个服务;备份可以备份在本地,有必要时再传到PC2上。

创建复制数据库:1,创建口令文件orapwd file=c:\oracle\product\10.2.0\db_1\database\pwdlichao.ora password=admin entries=102,创建辅助数据库实例:Oradim –new –sid test4.配置监听程序在这里我们需要配置的监听有两个分别是原数据库和复制数据库的监听TEST实例的监听Listener.ora:SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = test)(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)(SID_NAME = test)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.205)(PORT = 1521))))Tnsname.ora:lichao =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.204)(PORT = 1521)) )(CONNECT_DATA =(SID = lichao)))test =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.205)(PORT = 1521)) )(CONNECT_DATA =(SID = test)))lichao实例监听配置:Listener.ora:SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = test)(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)(SID_NAME = lichao)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.204)(PORT = 1521))))Tnsname.ora:lichao =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.204)(PORT = 1521)))(CONNECT_DATA =(SID = lichao)))test =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.205)(PORT = 1521)))(CONNECT_DATA =(SID = test)))配置完监听记得重新启动监听的服务进程,并使用lsnrctl stop、lsnrctl start来重新启动监听5,创建辅助(复制)数据库的目录6,创建辅助(复制)数据库的参数文件主库执行Create pfile from spfile复制pfile到复制数据库,修改相关参数:Adump、bdump、cdump、udump、ddump、db_name和控制文件路径。

OracleRMAN操作详解

OracleRMAN操作详解

OracleRMAN操作详解RMAN(Recovery Manager):恢复管理器RMAN概念:RMAN: Recovery Manager,是备份和恢复数据库的管理⼯具建⽴备份和恢复的server process,在oracle server上做备份和恢复具有如下特点:1 )功能类似物理备份,但⽐物理备份强⼤ N 倍,从下⾯的特点可以看到;2 )可以压缩空块;3 )可以在块⽔平上实现增量;4 )可以把备份的输出打包成备份集,也可以按固定⼤⼩分割备份集;5 )备份与恢复的过程可以⾃动管理;6 )可以使⽤脚本(存在 Recovery catalog 中);RMAN的组成概念:RMAM client (RMAN客户端)⽤来操作备份与恢复的客户端应⽤,可以通过⽹络连接到⽬标数据库;target database(⽬标数据库)RMAN备份和恢复的数据库,就是⽬标库;你的备份和恢复的⽬标,就叫做⽬标库auxiliary database(辅助数据库)主库的副本,⼀般⽤于测试,主库与辅助库的DBID不同,DB_NAME可以不同Catalog database(恢复⽬录数据库)存放RMAN备份的元数据信息,默认存放在控制⽂件中,由于控制⽂件中分为循坏重⽤记录与⾮循环重⽤记录,备份信息属于循环重⽤记录,会不断被覆盖重⽤,默认会保留7天,保存时间有限,可以使⽤恢复⽬录数据库实现RMAN备份元数据信息的长久保存。

media manager(介质管理器)如果想要把备份⽂件存放到其他设备(例如带库)就需要介质管理器。

fast recovery area(闪回恢复区)默认情况下,RMAN会将备份存放在闪回恢复区中。

db_recovery_file_destdb_recovery_file_dest_size视图:v$recovery_file_destv$recovery_area_usagechannel(通道):RMAN⼯具到存储设备的数据流叫通道。

Oracle RMAN备份策略

Oracle  RMAN备份策略

Oracle RMAN 备份策略RMAN 可以进行的两种类型的备份,即完全备份(Full Backup )和增量备份(Incremental Backup )。

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

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

与完全备份相反,在进行增量备份时RMAN 也会读取整个数据文件,但是只会备份与上一次备份相比发生了变化的数据块。

RMAN 可以对单独的数据文件、表空间,或者整个数据库进行增量备份。

使用RMAN 进行增量备份可以获得如下好处:● 在不降低备份频率的基础上能够缩小备份的尺寸,从而节省磁盘或磁带的存储空间。

● 当数据库运行在非归档模式时,定时的增量备份可以提供类似归档重做日志文件的功能。

在RMAN 中建立的增量备份可以具有不同的级别(Level ),每个级别都使用一个不小于0的整数来标识,例如级别0、级别1等。

级别为0的增量备份是所有增量备份的基础,因为在进行级别为0的备份时,RMAN 会将数据文件中所有已使用的数据块都复制到备份集中,类似于建立完全备份,级别大于0的增量备份将只包含与前一次备份相比发生了变化的数据块。

增量备份有两种方式:差异备份与累积备份。

差异备份是默认的增量备份类型,差异备份会备份上一次进行的同级或者低级备份以来所有变化的数据块。

而累积备份则备份上次低级备份以来所有的数据块。

例如,周一进行了一次2级增量备份,周二进行了一次3级增量备份,如果周四进行3级差异增量备份时,那么只备份周二进行的3级增量备份以后发生变化的数据块;如果进行3级累积备份,那么就会备份上次2级备份以来变化的数据块。

图15-4显示了一系列差异增量备份的情况,在该备份策略中,一周之内各天的备份方法如下:● 每周日进行一次0组增量备份,RMAN 将对数据文件中所有非空白的数据块进行备份。

oracle—rman备份使用方法

oracle—rman备份使用方法

RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,提供了强大的备份、恢复和数据库复制功能。

以下是使用RMAN进行备份的基本步骤:
1. 连接到 RMAN:
通过命令行或脚本连接到 RMAN。

在命令行中输入:
这会使用操作系统认证连接到默认的本地数据库实例。

2. 设置备份配置参数:
在 RMAN 中,您可以设置各种备份配置参数,例如备份类型、备份目标、备份文件位置等。

以下是一个设置备份参数的示例:
这将启用自动备份控制文件和配置备份文件的保存路径。

3. 执行备份:
执行备份命令以创建数据库备份。

以下是创建全库备份的示例:
您还可以根据需要选择性地备份表空间、数据文件等。

4. 查看备份:
您可以使用以下命令查看备份信息:
这将显示当前配置的备份。

5. 恢复数据库:
如果需要进行恢复,您可以使用 RMAN 执行还原和恢复操作。

以下是一个简单的例子:
这将还原数据库文件并应用必要的日志以完成数据库的恢复。

6. 退出 RMAN:
完成备份和恢复操作后,使用以下命令退出 RMAN:
这是一个基本的 RMAN 备份和恢复过程。

请注意,在实际环境中,您可能需要根据数据库的具体要求和策略进行更复杂的备份和恢复配置。

请参考 Oracle 官方文档以获取更详细的信息和高级用法。

RMAN基本概念

RMAN基本概念

RMAN基本概念RMAN基本概念【官⽅⽂档】Backup and Recovery Reference ---> Backup and Recovery User's Guide1 RMAN介绍1.1 RMAN功能Recovery Manager,是备份和恢复数据库的管理⼯具由server process进⾏备份和恢复rman备份的⽂件种类 datafile(database、tablespace、datafile) controlfile、spfile(智能备份spfile,不可备份pfile) archivelog在归档模式下⽀持⾮⼀致性备份(热备)⾮归档⽅式的RMAN只能冷备,并在mount下做⾮归档⽅式的RMAN恢复只能还原最后⼀次备份1.2 RMAN特点不备份数据⽂件中未分配的块以及未使⽤的块,节省时间空间不备份临时表空间可以实现增量备份⽀持多通道并⾏⼯作可以备份ASM⽂件1.3 RMAN架构1)可连接三类数据库:target database(备份的⽬标库),duplicate database(复制数据库),catalogdatabase(⽬录数据库)2)存储设备:disk、tape(sbt磁带机)存放备份⽂件的设备3)channel:⽬标库和存储设备之间备份恢复通道(服务进程)默认最少启动⼀个channel,可同时启动多个channel并发操作4)server process:⽤于备份和恢复的进程5)rman的元数据:记录备份的信息(放在⽬标库的controlfile⾥)6)catalog database:集中管理、存放多个库的备份的元数据metadata,还可以存储备份脚本7)MML:media manage layer介质管理层:⽤于管理磁带机的库⽂件或驱动2 环境准备2.1 数据库归档模式2.2 设置快速恢复区fast recovery areamkdir /u01/flash_recovery_areaalter system set db_recovery_file_dest_size=4G;alter system set db_recovery_file_dest='/u01/flash_recovery_area';show parameter db_recovery_file_dest3 连接⽅法3.1 本地连接RMAN⼯具和target database在同⼀台服务器rman target /3.2 远程连接RMAN客户端通过ORACLE_NET连接target database,需在target database启动监听,在client配置tnsnames.ora rman target sys/oracle@orclrman target sys/oracle@192.168.9.10:1521/orcl4 RMAN的命令格式4.1 交互式(也叫stand alone⽅式)⼀条⼀条命令执⾏并等待其反馈: RMAN> shutdown immediate; RMAN> startup force mount; RMAN> alter database open; RMAN> sql 'alter system switch logfile'; RMAN> sql 'alter database datafile 4 offline'; RMAN> sql 'select * from scott.emp'; select 不显⽰结果4.2 批处理⽅式(也叫job⽅式)将⼀批命令放在run{}中执⾏: RMAN> run { shutdown immediate; startup mount; allocate channel c1 type disk; 分配通道必须写在run{}中,c1为⾃定义的通道名称,不能单独执⾏命令 allocate channel c2 type disk; backup database format '/u01/backup/rman/db_%d_%T_%U.bak'; alter database open; release channel c1; 释放通道必须写在run{}中,不能单独执⾏命令 release channel c2; }5 配置RMAN的环境查看RMAN所有的全局环境配置show all;5.1 【保留策略】retention policy第⼀⾏:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default保留策略:⽤来决定哪些备份是有效的,⽽哪些备份是淘汰的保留策略决定了备份是否为obsoleteobsolete有“淘汰、过时”的意思,RMAN还原备份时不会选择obsolete的备份1)冗余度策略redundancy,给定⾄少需要保留最近的N份备份,更早的备份会被obsolete例如,如果有3个备份,⽽冗余数是2,那么最早的那个备份(即第1个备份)将被废弃2)恢复窗⼝策略recovery window,指定⼀个时间窗⼝,此策略将保证必须能恢复此时间段内任⼀个时刻的数据obsolete和expired的区别: obsolete过时的,根据保留策略,restore时不使⽤,可以删除,但依然有效 expired过期的,⽆效的5.1.1 recovery window恢复窗⼝⾄少有⼀个备份能恢复到sysdate-7的时间点上,之前的备份将标记为obsoleteCONFIGURE RETENTION POLICY TO recovery window of7 days;5.1.2 reduadancy冗余度CONFIGURE RETENTION POLICY TO redundancy 2;5.1.3 不使⽤保留策略CONFIGURE RETENTION POLICY TO none;不会将备份标记为obsolete状态5.1.4 清除、恢复默认配置CONFIGURE RETENTION POLICY clear;5.1.5 保留策略实验:redundancy 1设置备份保留策略为:冗余度 1,连续备份2次同⼀个数据⽂件,查看是否有obsolete的备份创建存放 rman 备份⽬录mkdir /u01/backup/rmanls -ld /u01/backup/rman列出构成数据库的数据⽂件report schema;备份users01.dbf数据⽂件backup datafile 7 format '/u01/backup/rman/users_%d_%T_%U.bak';列出obsolete备份report obsolete;再次备份users表空间backup tablespace users format '/u01/backup/rman/users_%d_%T_%U.bak';列出obsolete备份report obsolete;删除过时备份delete obsolete;再次列出obsolete备份report obsolete;查看备份列表list backup;也可以删除未obsolete的指定备份集list backup;delete backupset 3;list backup;5.2 【备份优化】backup optimization第⼆⾏:CONFIGURE BACKUP OPTIMIZATION OFF; # default如果优化设置打开,针对归档⽇志,只读或脱机表空间的数据⽂件,因为这些⽂件是不会变化的,备份集运⾏⼀个优化算法,全库备份时跳过重复的备份⽂件备份优化选项依赖于RETENTION POLICY策略,如果启⽤优化,在已有⾜够相同⽂件副本的情况下(r+1),RMAN将不创建额外的⽂件副本5.2.1 开启备份优化选项CONFIGURE BACKUP OPTIMIZATION on;5.2.2 将users表空间设置为只读alter tablespace users read only;select tablespace_name,status from dba_tablespaces;5.2.3 做三次全库备份注意第3次全备时,users表空间不备份,redundancy为1,保留2份backup database format '/u01/backup/rman/db_%d_%T_%U.bak';backup database format '/u01/backup/rman/db_%d_%T_%U.bak';backup database format '/u01/backup/rman/db_%d_%T_%U.bak';list backup;5.2.4 将users表空间恢复为可读写alter tablespace users read write;5.3 默认设备第三⾏:CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default设备类型有两种,可以是磁盘(DISK),或者磁带(STB),默认为磁盘5.4 【控制⽂件⾃动备份】第四⾏:CONFIGURE CONTROLFILE AUTOBACKUP ON; # default设置控制⽂件⾃动备份off:默认情况下,在备份system表空间时,会备份controlfile和spfileon:①在做任何⽂件的备份时,都会⾃动备份controlfile和spfile ②数据库的物理结构发⽣变化时,也⾃动备份controlfile(延迟创建)默认off时,备份users表空间时不备份controlfile和spfile5.5 控制⽂件⾃动备份路径、名称第五⾏:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #default 给出控制⽂件⾃动备份的路径和命名⽅式,缺省是‘%F’,控制⽂件⾃动备份将放⼊db_recovery_file_dest⽬录下,也可以指定到其他地⽅,如:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/rman/%F';关于%:%告诉RMAN要使⽤的格式模板,以便备份⽂件的命名引⽤预定的格式 %d 数据库名称 %u ⼀个⼋个字符的名称代表备份集与创建时间 %p 该备份集中的备份⽚号,从1开始到创建的⽂件数 %c 备份⽚的拷贝数 %U 系统获取的⼀个唯⼀的⽂件名 %T 年⽉⽇格式(YYYYMMDD) 第四⾏和第五⾏的环境变量是有关系。

第十一章 使用RMAN实现异机备份恢复(WIN平台

第十一章 使用RMAN实现异机备份恢复(WIN平台

使用RMAN实现异机备份恢复(WIN平台)分类:RMAN 备份恢复2011-07-27 20:52 397人阅读评论(0) 收藏举报--=================================-- 使用RMAN实现异机备份恢复(WIN平台)--=================================在有些情况下,如数据库服务器处于磁盘空间的压力或成本控制需要将数据文件备份到异机,使用RMAN可以完成该工作。

基于Windows平台所需完成的配置相对简单,仅仅是添加账户与使用新增的帐户来启动数据库服务以及设置共享路径。

下面给出具体描述。

一、配置数据库服务器与备份目的主机1. 帐户配置(假定有主机A,B 且A为数据库服务器,B为备份目的主机,且能互相ping通)如果主机A与主机B使用的Administrator密码相同,且A上的OracleServiceDBNAME服务和OracleOraHome92TNSListener服务都以"本地系统账户登陆"如果主机A与主机B使用不同的Administrator密码,处于安全考虑不宜设为相同,则则可以分别在主机A与主机B上新建一用户,假定在主机A上建立DBA_oracle,密码为ORA_PWD,则在主机B上也建立该用户(用户名可以不同,密码必须相同),密码同样设置为ORA_PWD。

将刚建好的用户在各自主机将其加入到Aministrators组2. 设定OracleServiceDBNAME服务和OracleOraHome92TNSListener服务的启动帐户。

在运行处输入services.msc。

在主机A上设定使用此帐户登陆,即使用刚刚建立的DBA_oracle,输入密码启动,该设置需要重启后有效3. 在主机B上设定共享文件夹,如RMAN_Shared,设置其权限为完全控制(在A上使用\\IP\RMAN_Shared测试是否可写入文件)二、查看RMAN的配置与数据库情况[sql]view plaincopyprint?1.RMAN> show CONTROLFILE AUTOBACKUP;2.3.RMAN 配置参数为:4.CONFIGURE CONTROLFILE AUTOBACKUP ON; -->控制文件自动备份,建议开启5.6.RMAN> show CONTROLFILE AUTOBACKUP FORMAT;7.8.RMAN 配置参数为:9.CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '\\192.168.1.151\RMAN_Shared\CONTROL10._%F'; -->控制文件备份位置11.12.RMAN> show SNAPSHOT CONTROLFILE NAME;13.14.RMAN 配置参数为:15.CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\ORA92\DATABASE\SNCFTESTHH.ORA'; # default -->快照控制文件位置16.17.SQL> select * from v$version; -->数据库的版本,当前演示环境为Oracle 9i18.19.BANNER20.----------------------------------------------------------------21.Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production22.PL/SQL Release 9.2.0.1.0 - Production23.CORE 9.2.0.1.0 Production24.TNS for 32-bit Windows: Version 9.2.0.1.0 - Production25.NLSRTL Version 9.2.0.1.0 - Production26.27.SQL> show parameter db_name28. TYPE VALUE30.------------------------------------ ----------- ---------------31.db_name string testHH1.D:\>rman target robinson/robin@testhh cmdfile=D:\oracle\oradata\testHH\backup.rman log=D:\oracle\ora2.data\testHH\backup.log1.SQL> shutdown immediate;2.数据库已经关闭。

rman备份

rman备份

RMAN备份——归档日志出现问题摘要:在利用RMAN进行备份时出现RMAN-06059的错误,引起错误的原因为找不到归档日志。

利用试验库再现错误,然后解决问题的过程如下:第一步:在目标库里创建表并且插入数据产生出归档日志。

SQL> conn dk/dk已连接。

SQL> create table dk as select * from dba_objects;表已创建。

SQL> insert into dk select * from dk;已创建6165行。

SQL> r1* insert into dk select * from dk已创建12330行。

SQL> r1* insert into dk select * from dk已创建24660行。

#由于在线重做日志只有1m所以很容易产生归档日志。

第二步:利用catalog库连接到目标库做全库备份和归档日志备份。

C:\>rman恢复管理器: 版本9.2.0.1.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.RMAN> connect catalog rman/rman连接到恢复目录数据库RMAN> connect target sys/dk@yan连接到目标数据库: YAN (DBID=2827094113)RMAN> register database;注册在恢复目录中的数据库正在启动全部恢复目录的 resync完成全部 resyncRMAN> report schema;数据库方案报表文件 KB 表空间 RB segs 数据文件名称---- ---------- -------------------- ------- -------------------1 256000 SYSTEM YES C:\ORACLE\ORADATA\YAN\SYSTEM01.DBF2 204800 UNDOTBS1 YES C:\ORACLE\ORADATA\YAN\UNDOTBS01.DBF3 6144 DK NO C:\ORACLE\ORADATA\YAN\DK01.DBF RMAN> replace script fullyan { #创建全备的脚本fullyan2> allocate channel c1 type disk;3> allocate channel c2 type disk;4> backup5> format 'c:\yan\full_%U'6> filesperset=37> (database include current controlfile);8> release channel c1;9> release channel c2;}已替换脚本 fullyanRMAN> run { execute script fullyan;} #运行全备的脚本正在执行脚本: fullyan………………………………………… #中间过程略去完成 backup 于 13-12月-06释放的通道: c1释放的通道: c2RMAN> create script arcyan { #创建备份归档日志的脚本arcyan2> allocate channel c1 type disk;3> backup4> format 'c:\yan\arc_%U'5> filesperset=36> archivelog all;7> release channel c1;8> }已创建脚本 arcyanRMAN> run { execute script arcyan; } #运行备份归档日志的脚本正在执行脚本: arcyan………………………………………… #中间过程略去完成 backup 于 13-12月-06释放的通道: c1第三步:在目标库中重复第一步的操作产生归档日志,在目标库中删除所有的归档日志。

RMAN备份介绍

RMAN备份介绍

RMAN备份介绍RMAN备份【官⽅⽂档】 Backup and Recovery Reference Backup and Recovery User's Guide1 备份⽂件类型1.1 backupset备份集 不备份datafile⾥⾯从未使⽤块、可以实现增量备份(可以备份到disk和tape)。

可以使⽤压缩,如果只启⽤⼀个channel,默认会把所有备份的datafile放⼊到⼀个backupset⾥,并且⽣成⼀个备份⽚backup piece 使⽤section size时,⼀个backupset中可以包含多个backup piece1.1.1 备份全库① RMAN> backup database format='/u01/backup/rman/prod_%s.bak' filesperset 3;② RMAN> backup database plus archivelog delete input;说明:备份所有数据⽂件及控制⽂件、spfile⽂件与所有归档⽇志,并删除旧的归档⽇志,当deleteinput后,控制⽂件相关信息(v$archived_log)也会被更新。

archivelog物理⽇志也被删除③ RMAN> backup database format '/u01/backup/rman/%U.bak' plus archivelog delete input skip inaccessible;说明:archivelog的备份是根据控制⽂件中(v$archived_log)中的内容导航的,如果控制⽂件中记录了⽽实际归档中⼜不存在,则会报错,skip inaccessible的含义是跳过物理上缺失的⽇志⽂件因为有了全备,随时可以还原备份,还原点之前的归档⽇志可以删除,如果想单独还原归档⽇志备份可以使⽤:restore archivelog all; 1.1.2 备份表空间RMAN> backup tablespace users format '/u01/backup/rman/users_%U.bak' tag=userbak;1.1.3 备份数据⽂件RMAN> backup datafile 3,5 format '/u01/backup/rman/%d_%s.bak';备份数据⽂件,可以⼀次备份多个,以“,” 分开1.1.4 备份归档⽇志查看当前数据库中归档⽇志RMAN> list archivelog all;备份所有归档⽇志,备份完成后删除库⾥的归档⽇志⽂件RMAN> backup archivelog all delete input;将归档⽇志⽂件从备份转储回库中RMAN> restore archivelog all;1.1.5 备份控制⽂件RMAN> backup current controlfile;1.1.6 备份参数⽂件RMAN> backup spfile;1.2 image copy(映像⽂件)备份1.2.1 image copy(映像⽂件) 实际上和⼿⼯cp类似的,备份datafile所有的数据块,不能作为增量备份的基础(即0级增量备份),只能备份到disk,不能备份到tape,优点是可以省略还原步骤,恢复数据库速度快1.2.2 语法① RMAN> copy datafile 4 to '/u01/backup/rman/users_%s.bak';② RMAN> backup as copy tablespace 'TEST' format '/u01/backup/rman/%d_test_%s.bak';建议使⽤backup语法,统⼀格式backup as copy database format '/u01/backup/rman/%U.bak';list datafilecopy all;删除delete datafilecopy all;2 rman冷热备脚本参考2.1 rman冷备脚本vi /u01/backup/rman/cold.sql写⼊脚本:run{shutdown immediate;startup mount;allocate channel c1 device type disk;allocate channel c2 device type disk;backup database format '/u01/backup/rman/db_%d_%T_%U.bak';backup current controlfile format '/u01/backup/rman/ctl_%d_%T_%U.bak';alter database open;release channel c1;release channel c2;}2.2 rman热备vi /u01/backup/rman/hot.sql写⼊脚本:run{allocate channel c1 device type disk;allocate channel c2 device type disk;backup database format '/u01/backup/rman/db_%d_%T_%U.bak' plus archivelog format '/u01/backup/rman/ar_%d_%T_%U.bak';backup current controlfile format '/u01/backup/rman/ctl_%d_%T_%U.bak';release channel c1;release channel c2;}3 增量备份incremental backup【官⽅⽂档】 Database Backup and Recovery User's Guide ---> 8 RMAN Backup Concepts ---> Incremental Backups3.1 概念 只备份⾃某次备份以来发⽣变化的block。

  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备份软件的备份脚本(仅供参考);。

相关文档
最新文档