13.Oracle10g服务器管理恢复--RMAN备份(练习20)
- 格式:pdf
- 大小:187.82 KB
- 文档页数:13
通过RMAN备份Oracle数据库恢复到其他服务器(案例)通过RMAN备份Oracle数据库恢复到其他服务器(案例)本节演示如何通过RMAN创建的备份集,将数据库恢复到其他服务器。
本小节执行的操作较多,一定要有一个清醒的大脑,因此赶紧把脑袋里那堆乱七八糟的东西清除清除,要不你一定会看晕的。
设定环境如下:源库192.168.100.100,SID:orcdb。
目录库192.168.100.101,已安装与源库相同版本的数据库软件(一定要相同版本哟)。
准备工作如下:记录下源数据库的DBID,DBID的获取方式上节已讲过。
创建完整备份集(含控制文件、数据文件、归档文件),源库为非归档模式也可以,只要确保创建的备份是一致备份,然后将备份集复制到目标服务器的相同路径下。
为简单起见,源端与目标端目录结构保持一致。
如果你在测试或正式操作时由于实际原因无法保持源端与目标端结构一致,在恢复过程中注意修改相关路径。
操作步骤如下:注意,下列操作如非特别注明,均是在目标端服务器上进行的。
1.在源库端创建数据库的完整备份Backup database;备份集创建成功之后,将其复制到目录端的相同路径下,强调一点,必须是相同路径。
复制方式灵活多样,Windows环境可以直接通过共享复制,Linux/UNIX下可以通过FTP。
2.在目标服务器上创建OracleService如果是Linux/UNIX环境,不需要执行本步骤,只要在连接数据库时指定ORACLE_SID环境变量即可。
如果是Windows服务器,需要通过ORADIM命令创建一个OracleService,创建的SID要与源库相同,操作如下:1. C:\Documents and Settings\Administrator>ORADIM -NEW -SID orcdb2. Instance created.上述命令创建了一个名为orcdb的OracleService。
1. 检查数据库模式:sqlplus /nologconn /as sysdbaarchive log list (查看数据库是否处于归档模式中)若为非归档,则修改数据库归档模式。
startup mountalter database archivelogalter database open2.连接到target数据库命令:connect target / (connect target system/oracle@ora10g,如果数据库没有起来,也可要直接在rman命令下用startup进行启动数据库)可以连接到target database.(rman 一边连接到target数据库,另外一边连接到control file(nocatalog mode),control file 中存储rman 的备份信息)3.用list backupset 命令查看有没有备份的东西4. 常用备份命令:备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)_备份归档日志:RMAN> backup archivelog all delete input;======================对整个数据库进行备份==================1.对整个数据库进行全备份(full backup)。
只要输入命令: backup database;2.list backupset 查看备份的具体信息List of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------1 Full 6.80M DISK 00:00:02 06-DEC-08BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20081206T201041 Piece Name:/home/oracle/flash_recovery_area/ORA10G/backupset/2008_12_06/o1_mf_ncsnf_TAG2 0081206T201041_4mntz78s_.bkpControl File Included: Ckp SCN: 782019 Ckp time: 06-DEC-08SPFILE Included: Modification time: 06-DEC-08BS(backupset), piece是一个文件,一个BS包含多个piece.3.rman中缺省的参数,可以通过show all ;来进行查看(RMAN configuration parameters),我们在使用backup database命令中,可以把这些default value 用固定的值来进行替代.4.我们可以把备份的文件才备份的目录中拷贝到磁带上,然后删除备份目录下面的备份文件,如果下次需要恢复的话,只要把文件重新拷回到用来的备份目录就可以了5.查看control file 文件中的备份信息(因为我们做的备份是在nocatalog模式下),control file 在/u01/oracle/oradata/ora10g目录下,由于control file 是个二进制文件,要查看control file 文件中的内容,用strings control03.ctl,发现control03.ctl中有rman备份的信息了====================0级增量备份===============概念:全备份和0级增量备份。
Oracle数据库备份和恢复利器——RMAN一、引言数据是各类计算机应用系统的基础,不论是普通的企业级应用系统,还是学校、银行等各类网上服务系统,以及政府部门的电子政务系统等,数据永远是应用系统中价值最高、最为核心的内容,因此保证数据的高安全性成为各应用系统持续、不间断运行的基础。
然而,各种突发事件诸如网络威胁、硬件故障、火灾等,都使系统数据的安全性面临着巨大挑战。
为了应对突发事件引起的系统数据破坏,保证数据的安全性和完整性,需要对数据进行定期备份,从而在紧急情况下恢复备份数据使服务快速恢复。
数据备份通常分为逻辑备份和物理备份两种方式。
逻辑备份和物理备份两种方式的原理不同,因此需要不同的备份工具。
目前作为常见数据库之一的Oracle数据库,在数据备份和恢复上提供了多种灵活、方便的备份工具和方法。
逻辑备份工具主要有导入/导出(Import/Export)工具、数据泵等,物理备份工具就是Recover Manager(RMAN)。
对于Oracle数据库来说,目前市场上第三方备份软件都是通过调用RMAN接口实现的。
本文从保障系统数据安全的角度出发,首先分析了Oracle备份和恢复工具——RMAN的特点,然后介绍利用RMAN的功能,并建立合理备份方案,及故障时如何快速恢复数据库系统。
二、RMAN简介及其特点RMAN(Recovery Manager) 是Oracle数据库的一种物理备份和恢复工具,具有占用资源少、备份效率高、恢复速度快、支持在线备份和恢复等特点。
(一)RMAN采用数据块级备份,而不是数据文件级的备份。
块级备份将备份和恢复的最小单位从数据文件降到数据块,这对数据的备份和恢复都会带来明显的好处。
1.对备份而言,块级备份可以带来两个优势以有效减少备份量,提高备份效率。
首先是增量备份技术。
默认情况下Oracle会启动数据块更改跟踪特性,数据变更时,后台进程Change Tracking Writer(CTWR)将发生变化的数据块记录到名为“change tracking file”的文件中[1],这样增量备份无需读取整个数据文件,直接备份变更数据。
ORACLE数据库的备份与恢复差异增量备份就是备份往前第一个备份级别小于或等于当前备份级别开始到现在的变化。
累计增量备份就是备份往前第一个备份级别小于当前备份级别开始到现在的变化。
0级备份也就是全备份,但0级备份可以在此基础之上再进行备份,但全备份就不可以。
Oracle rman 备份一、数据库全备份方法(nocatalog)1 注意rman有两个,要执行db_1/bin下那个(可以通过修改oracle变量来达到)2 在执行ramn之前要确认当前数据库是否处理Archive Mode模式,并处于Enabled下查看方式:如果不是可以通过如下方式打开并修改:SQL>startup mountSQL>alter database archivelogSQL>alter database open3全备份数据库:A先连接数据库HERMINGB查看备份列表中是否有以前备份的文件C执行全数据库备份4备份完之后可以查看一下备份出来的文件信息:5备份文件存放路径为:二、0级数据库备份A 以nocatalog方式使用rmanB连接数据库C执行0级数据库备份注:全备份与0级备份的相同点是都是将数据库全部备份下来。
全备份与0级备份的不同点是全备份不能作为增量备份,而0级可以作为增量备份。
1级备份就在0级备份的基础上进行的。
三、1级增量备份(基于0级备份之上)总结:可以将备份出来的文件考到其他介质上进行保存,并进行删除。
如果要恢复时请将该文件放回到这文件夹下,并要保存文件名不变。
说明:口令文件因为可以重新设置,所以不用备份,重做日志文件不能在非nocatalog中备份。
四、备份archivelog(参数文件+数据文件+控制文件+归档日志文件)先备份完再删除归档备份五、备份表空间A 查看有哪些表空间B备份名为TBS1的表空间六、备份控制文件七、镜像备份说明:5为TBS1表空间的编号,及对TBS1表空间进行镜像备份。
oracle 10g备份与还原总结一.总述1.数据库归档模式:* 非归档模式:当数据库数据只读不会改变时,数据不会改变,数据库适合用非归档模式, 这样提高性能* 归档模式:对于数据库数据经常变动,数据库最好用归档模式,这样可以尽量避免数据库数据丢失,使出现问题时灾害降到最低2.非归档模式与归档模式间的切换(在命令窗口下):@检查当前日志操作模式f:\>sqlplus sys/dba as sysdba连接数据库sql>select log_mode from v$database;@关闭数据库,后装载数据库,只能在mount状态下改变日志操作模式sql>startup mount@改变日志模式sql>alter database achivelog;(变为归档方式,否则为nochivelog)sql>alter database open;3.查看归档模式相关信息:@若采用默认设置,归档日志位置在快速恢复区@配置归档日志位置 log_archive_dest_n (n=[1:10])sql>alter system setlog_archive_dest_1 = 'location =c:\demo\archive [optional]';sql>alter system setlog_archive_dest_2 = 'service =standby [mandatory] [reopen]';其中:location 是本地service 是远程optional 无论归档是否成功,都会覆盖重做日志mandatory只有成功归档才会覆盖重做日志reopen 重新归档时间间隔默认是300s@显示归档信息,即显示显示日志操作模式sql>select name,log_mode from v$database;@显示归档日志信息sql>select name,sequence#,first_change# from v$archive_log;sequence#: 归档序列号first_change# : 起始SCN值@显示归档日志位置sql>select dest_name,destination,status from v$archive_dest;dest_name 归档位置参数名destination 位置@显示日志历史信息sql>select * from v$loghist;threade# : 重做线程号sequence# : 日志序列号first_change# : 起始SCN值first_time : 起始SCN发生时间switch_change : 切换SCN值二.非归档模式下的备份与还原. 日志采用覆盖原有日志的方式存储. 出现介质失败时,只能恢复到过去的完全备份点. 数据库OPEN状态是,不能备份数据库. 必须先关闭数据库,再备份,且必须备份所有数据,控制文件1.备份==冷备份@ 先关闭数据库sql>shutdown immediate@ 拷贝所有数据文件,和控制文件2.恢复* 数据文件出现丢失,但备份以来的重做日志内容尚未被覆盖,此时可以完全恢复@装载数据库sql>startup force mount@复制数据文件备份@恢复数据文件sql>recover datafile 1@打开数据库sql>alter database open;* 备份文件的重做日志内容已经被覆盖,则只能还原到备份点@关闭数据库@复制所有数据和控制备份文件至原位置@装载数据库,执行恢复命令sql>startup mountsql>recover database until cancel提示控制文件不再使用原有重做日志@用resetlogs选项打开数据库sql>alter database open resetlogs;三.归档模式. 可以防止数据丢失. 数据处于OPEN状态时可以进行备份. 当出现介质失败时,除了SYSTEM表空间中的数据文件外其他的都可以在open状态下恢复. 可执行完全恢复,也可以恢复到备份点与失败点之间的某时刻1.备份1)冷备份shutdown后拷贝所需数据文件和控制文件2)热备份@将数据库设置为归档模式@在数据库上发出全局检查点,在所有的数据文件头块上加锁sql>alter database begin backup ;@备份数据文件及控制文件数据文件直接拷贝至其他目录控制文件需使用alter database backup controlfilesql>alter database backup controlfile to 'd:\backup\demo.ctl';@结束数据备份,为确保数据文件备份的同步性,还应该归档当前日志组sql>alter database end backup;sql>alter system archive log cuurent;3)备份表空间*脱机备份(表空间处于OFFLINE状态,SYSTEM表空间和正在使用的UNDO空间不能脱机)@确定表空间包涵的数据文件,如空间USERSsql>select file_name from dba_data_fileswhere tablespace_name = 'users';@设置表空间为脱机状态sql>alter tablespace users offline;@复制数据文件@设置表空间联机sql>alter tablespace users online;*联机备份@确定对应关系@设置表空间为备份模式sql>alter tablespace users begin backup ;@复制数据文件@设置表空间为正常模式sql>alter tablespace users end backup ;*处理联机备份失败当执行联机备份时,若出现例程失败,再次打开数据库时,如果数据文件仍处于备份状态,则会出错,此时需要结束备份@装载数据库sql>startup force mount@查看处于联机备份状态的所有数据文件sql>select file# from v$backup where status = 'active';@结束联机备份状态sql>alter tablespace end backup或alter tablespace datafile backup;或recover datafile 序号@打开数据库sql>alter database open;2.还原1)完全恢复相关命令:recover database :恢复数据库的多个数据文件(在MOUNT状态下运行)recover tadaspace :恢复多个表空间的所有数据文件(在open状态下运行)recover datafile :恢复一个或多个数据文件(在mount,open 状态下都可)*在mount状态下恢复数据文件(用于SYSTEM表空间恢复)@装载数据库 mount状态@确定需要恢复的数据文件sql>select file#,error from v$recover_file@拷贝备份至原位置@恢复数据库 recover..上述命令@打开数据库 alter database open;*在open状态下恢复关闭后意外对视的数据文件,此时数据库将无法打开@装载数据库 mount@确定需要恢复的数据文件@使相应的数据文件脱机sql>alter database datafile 4 offline;@打开数据库sql>alter database open@复制数据备份文件@恢复数据文件@是数据文件联机 alter database datafile 4 online; *在open状态下恢复打开时意外丢失的数据文件@确定要恢复的数据文件@使数据文件脱机@复制数据文件@恢复相应的表空间或数据文件@使相应的表空间或数据文件联机*在open状态下恢复未备份的数据文件(要求在归档模式下,新建数据文件,其从简历开始的所有归档日志必须全部存在)@装载数据库@确定要恢复的数据文件@是数据文件脱机@打开数据库@重新建立数据文件sql>alter database create datafile 'd:\demo\users01.dbf';@恢复数据文件@使数据文件联机2)不完全恢复使用已备份的数据文件,归档日志,和重做日志,将数据库恢复到备份点与失败点之间某个时刻的状态*恢复分类基于时间的恢复:误删除表,误截断表,提交了错误的数据基于取笑恢复:恢复到某个日志序列号之前的状态基于SCN的恢复:恢复到特定SCN值的状态基于备份控制文件恢复:表空间被意外删除,或所有控制文件全部损坏*不完全恢复指令recover database until timerecover database until changerecover database until cancelrecover database .. using backup controlfile*基于时间的恢复@关闭数据库(为防止备份失败,应备份当前数据库所有文件 @装载数据库 startup mount@复制所有备份数据文件,并确定备份文件的时间点sql>select file#,to_char(time,'yyyy-mm-dd hh24:mi:ss)from v$recover_file;@执行recover database until timesql>recover database until time "2006-09-26 16:40:33'@以resetlogs方式打开数据库,并检查恢复结果sql>alter database open resetlogs;@备份数据库所有数据文件和控制文件,因为当以resetlogs方式打开数据库后会重新建立重做日志,清空原有重做日志的所有内容,并将日志序列号复位为1sql>select name from v$datafile;sql>alter database begin backup;拷贝数据文件sql>alter database end backup;sql>alter database backup controlfileto 'd:\backup\demo.ctl' reuse;sql>alter system archive log cuurent;*基于SCN恢复@关闭数据库@装载数据库 mount@复制所有备份数据文件,确定备份文件SCN值sql>select file#,change#, from v$recover_file; @执行recover database until changesql>recover database until change 675978;@以resetlogs方式打开数据库@备份数据库所有数据文件和控制文件*基于取消恢复@关闭数据库@装载数据库@复制所有备份的数据文件,确定备份文件的SCN值sql>select file#,change# from v$recover_file; @执行recover database until canclesql>recover database until cancel@以resetlogs方式打开数据库@备份所有数据文件和控制文件*基于备份控制文件的恢复@通过查看alert文件,确定误操作时间@关闭数据库@复制所有备份的数据文件,控制文件@装载数据库@执行recover database ing backup controlfile sql>recover database until time '2004-09-26 19:51:06'using backup controlfile@以resetlogs 方式打开数据库@备份所有数据文件和控制文件。
Oracle 10g系统备份恢复方案一、备份策略为了保证系统在出现故障时快速恢复,我们的备份策略包括两个部分,逻辑备份,物理备份。
1 .1物理备份数据库按归档方式运行归档方式和非归档方式运行方式优点和缺点比较:1.归档方式:●优点●可以执行联机备份,保证数据库7*24不间断运行●宕机时,能够实现数据的完全恢复●缺点●在检查点发生之后,重做日志归档完成之前,重做日志不能重新使用●需足够的空间资源来保存归档重做日志文件2.非归档方式:●优点●重做日志文件可在检查点发生之后立即重新使用●简化管理,节省空间●缺点●无法执行联机备份●宕机时,会丢失上一次完全备份之后的所有数据一般从系统考虑采用归档方式更为合适,可以在线备份,一旦系统出现问题时,可以恢复到故障以前的任何时间点。
保证系统出现故障时能够回滚恢复。
1.1.1物理备份实现归档方式的配置:●关闭数据库,对数据库进行备份。
●修改初试化参数,使能自动存档修改(添加)初始化文件init[SID].ora参数:log_archive_start=true #启动自动归档log_archive_format=ARC%T%S.arc #归档文件格式log_archive_dest=/arch12/arch #归档路径●启动数据库到MOUNT状态下,使用如下语句alter database archivelog; 然后打开数据库:alter database open;RMAN备份脚本说明run{allocate channel c1 type 'sbt_tape'parms = 'SBT_LIBRARY=/ca/BABoraagt/libobk.so.2.64_5';allocate channel c2 type 'sbt_tape'parms = 'SBT_LIBRARY=/ca/BABoraagt/libobk.so.2.64_5';sql 'alter system archive log current';backup archivelog all format 'log_%s_%t_%p' delete input;release channel c1;release channel c2;}该脚本是数据库的归档日志备份脚本。
RMAN备份(一)在手工备份恢复的操作中,介绍了如何使用操作系统命令拷贝整个文件,拷贝的文件包括数据文件、控制文件和归档日志文件,然后使用这些文件还原并恢复PRACTICE 数据库。
在操作过程中,用户必须自己管理备份和恢复操作,必须创建需要拷贝和还原的数据库文件清单。
在本练习中,我们介绍RMAN如何使用服务器相关组件替用户处理备份的细节,当使用RMAN进行数据库备份时,RMAN知道需要对哪些文件进行操作。
用户管理与服务器管理的备份与恢复之间的根本不同之处就是:对于用于管理操作DBA必须知道需要备份什么以及需要还原与恢复什么;而对于服务器管理的操作,RMAN 将通过一个简单的接口决定需要备份什么以及需要还原与恢复什么,大部分管理任务被省略或简单化了。
例如:在前面描述的打开数据库备份,如果是用户管理备份,则在拷贝数据库数据文件之前,必须为每一个表空间创建清单并将表空间置于备份模式,并产生额外的重做;而RMAN备份打开数据库时,并不自动产生额外的重做。
RMAN处理的数据文件备份与用户管理有什么不同?RMAN智能化程度很高,对要备份的数据文件中任何更改的数据块的SCN保持跟踪记录,通过数据库的活动可以对备份文件的更改继续进行。
在恢复阶段,RMAN将自动应用需要的重做并使文件处于一致的状态。
在备份期间,有可能出现RMAN拷贝的数据块没有被DBW(数据库写入器)进程完全写入到磁盘的现象,从而导致数据块头部与尾部不一致,这种现象称之为“断裂”或“破碎”块,当检测到这样的数据库时,RMAN将重新读取该块,直到完成完整的拷贝。
因此,RMAN可以以最小的性能降低为代价对打开的数据库进行备份。
恢复管理器为数据库的备份提供了三种不同的方法:备份、映像拷贝以及代理拷贝。
尽管三种方法都能提供恢复或数据库失效时所需要的数据库备份结果,但每种方法都有其优缺点:一、 备份RMAN备份在选择的备份介质上以自己的格式创建一个或多个物理文件,这些物理文件称为“备份片”,备份可以由数据库、选择的表空间、数据文件、控制文件、归档重做日志或多种混合体组成。
z数据文件和控制文件可以合并在同一备份中;z归档日志文件必须与数据文件和控制文件分开备份。
RMAN创建的备份文件(备份片)不能被其他任何工具读取,因此只能用RMAN还原,为了解这些备份是如何创建,需要理解如下基本术语:z通道:通道是从目标数据库到备份介质的通信途径,这个通道类型可以是磁盘或者是“SBT_TAPE”(SBT代表系统备份到磁带),并且通道可以设置许多参数来规定备份片的大小、同时打开的文件数以及文件读取的速度。
在实际使用备份开始之前至少要分配一个通道,当然也可以使用多个通道;z备份集:备份集就是当运行备份命令时生成的物理文件的逻辑组合,至少要为一个备份创建一个备份集,但通常使用多个备份集,参数filesperset参数用来控制一个备份集中备份的文件,参数setsize设置每个备份集的最大尺寸。
如果分配了多个通道,RMAN将为每个通道创建一个备份集,并对备份集中的备份文件进行分隔,这样每个备份集大小相近;z备份片:备份片是RMAN在备份期间创建的物理文件,该文件将包含来自目标数据文件、控制文件和归档中作日志得到的实际数据块,每个备份集至少包含一个备份片,但也可以包含多个,一个数据文件可以跨越多个备份片;z格式(format):格式是备份期间赋予生成备份片的文件名,当备份到磁盘时需要提供备份片的全路径;z标记(tag):标记是用于标记一个备份的一个有意义的名称。
例如,Sunday Level 0备份或许意味着Sun-Lev0,RMAN可以直接使用这个标记从一个指定的备份中重建文件,标记文件最大长度为30个字符,而且一个标记可以用于多个备份;z备份键值:RMAN创建的每个备份都赋予了确定身份的一个唯一序列号。
当执行backup命令时,请考虑如下问题:1)备份时数据库处于什么状态?(数据库状态)2)RMAN备份需要保存到什么地方?(设置目的地)3)需要备份的是数据库的那些部分?(数据库文件)4)需要拷贝数据库文件的哪些数据块?(增量级别)下面将讨论备份时需要考虑的这些问题:1、确定备份集数据库状态:首先,RMAN可以在两种不同的数据库状态之间进行备份,这两种状态分别是数据库关闭和打开时进行备份。
z关闭数据库备份:类似于用户管理的关闭数据库的备份,目标数据库没有打开,但不同于用户管理的备份,RMAN期望数据库处于加载状态,RMAN在关闭数据库备份时必须访问目标数据库控制文件以获取结构信息;z打开数据库备份:类似于用户管理的打开数据库的备份,目标数据库处于打开状态,但RMAN不同之处是:在备份期间没有将表空间置于备份模式,不会产生额外的重做。
2、确定备份集目的地:接着,当执行RMAN备份命令时,RMAN将生成一个或多个文件(备份片),这些文件除了备份的数据块之外还存储了RMAN的控制信息,为RMAN创建的备份片赋予有意义的名称可以避免无人知道磁盘或磁带上的文件来历或内容。
下面是一些可用的格式变量:z%d 数据库名称;z%n 为数据库名增加1个或多个x字母使长度达到8个字符;z%s 备份集编号,这些编号来源于目标控制文件,从1开始每次递增为1,如果控制文件重新生成,则该编号回到1重新开始;z%p 备份集内备份片的编号,第一个备份片的号码是1,而且在同一备份集中每个新的备份片递增量为1;z%t 备份的时间值,该值是从以前某个参考时间开始到现在的秒数;z%u 一个8位字符的值,来自于备份集数字和备份的时间;z%c 备份集中的备份片的拷贝数,除非指定为双备份外,否则该值一直是1;z%U 生成一个唯一的由%u_%p_%c组成的文件名,如果没有指定备份文件的格式,默认值为%U。
下表列出一些使用这些格式变量的示例,如果备份到磁盘必须指定路径名和文件名,如果没有制定路径名,备份通常情况存储到$ORACLE_HOME/dbs指定的格式示例结果dbinc0_%d_%s_%p_%t dbinc0_PROD_21_1_447001901 tbsUSERS_%U tbsUSERS_08ade506_1_1 al_%n_%t_%s_%p al_PRODXXXX_44157468_41_3 3、确定备份集数据库文件:下一步,定义属于RMAN备份范围的属于,在执行一个单独的backup命令时,需要制定包含在备份集中的数据文件,这些文件包括数据文件、控制文件和归档日志文件。
可以应用如下备份选项:z整体数据库备份:备份集中包含了目标数据库中所有的数据文件和控制文件的数据块,在备份命令之后关键字DATABASE指定进行整体数据库备份,例如BACKUP(DATABASE);z表空间备份:指定表空间所有数据文件的数据块拷贝到备份集中,在备份命令后,用关键字TABLESPACE指定进行表空间备份,例如:BACKUP(TABLESPACE SYSTEM,USER);z数据文件备份:用备份命令后用关键字DATAFILE指定进行数据文件备份,例如:BACKUP (DATAFILE 1,2,3,4);z控制文件备份:数据库控制文件中的所有数据块拷贝到备份集中,在备份命令之后用关键字CONTROLFILE指定进行控制文件备份。
例如:BACKUP CURRENT CONTROLFILE。
当对系统表空间进行备份时,控制文件自动包含在备份中,因此一个完全的数据库备份包含在当前的控制文件;z归档日志文件备份:每个归档日志文件的所有数据块都拷贝到备份集中,在备份命令之后用关键字ARCHIVELOG指定进行归档日志备份,尽管可以用同样的备份命令备份数据文件、控制文件和归档日志,但RMAN将为归档日志创建一个独立的备份集,例如:BACKUP(ARCHIVELOG ALL)。
4、确定备份集的级别:数据文件由数据块组成,每个块都在更新时赋予一个系统更改号,当进行备份时,每个块从数据文件读出,只有符合备份级别条件的数据块才拷贝到备份集中。
因为归档日志文件和控制文件中所有的数据块都将复制,所以备份级别只属于数据文件备份,RMAN不从数据库文件中拷贝空的数据块到备份集中,只有进行映像拷贝时才拷贝空的数据块。
二、 压缩备份RMAN进行备份数据文件时,有两种模式的操作:增量式和完全式。
1、增量式备份(Ineremental Backup):采用增量式备份策略可以只备份上次增量备份之后更改的数据块,这样可以大大减少备份的数据量,并因此可以减少进行备份和还原所需要的时间和空间。
增量备份有备份级别的概念,级别是0到4之间的整数,当进行增量备份时,数据检查点SCN存储在目标控制文件中,随后的增量备份决定了需要拷贝那些SCN之后的数据块。
备份级别0是全集备份级别,在级别为0的备份中,要备份选中数据文件所有使用过的数据块。
增量备份有两种类型:z差异型:差异型备份拷贝最近进行的同级或低级增量备份以来所有改变的数据块。
例如,在级别为1的差异型增量备份时,所有最近级别为1的备份的数据将被拷贝;如果以前没有进行过级别为1的备份,则所有最新级别为0的备份以来的数据块都要拷贝,当备份命中使用incremental关键字时,则差异备份是RMAN默认的增量备份类型;z累积型:累积型备份拷贝最新级别增量备份以来的所有更改过的数据块。
例如,在级别为2的累积增量备份中,自从上次级别为1的增量备份以来的所有数据块都要拷贝。
如果没有进行过级别为1的备份,则自上次级别为0的增量备份以来的所有数据块都要拷贝。
上图给出了不同增量备份的一个基线,一个星期的每一天为数据文件生成一个备份集,实施这些备份的描述如下:z星期天进行级别为0的增量备份,数据块#2、#3、#4、#5和#6拷贝到备份集120中,这些块组成了选为备份的数据文件中的所有使用过的数据块。
级别为0的增量备份既不是累积型也不是差异型,这是作为增量备份策略的一个基准;z星期一进行级别为2的差异增量备份,自从星期天备份以来,数据文件中更改的块是#7,因此这个数据块是唯一拷贝到备份集121中的;z星期二进行级别为2的差异增量备份,自从星期一的备份以来,数据块#2中的一行数据更新了。
因为这个数据块是唯一被更新的,所以只有这个数据块被拷贝到备份集122中;z星期三进行级别为2的差异增量备份,自从星期二的备份以来,数据块#8插入了一行数据。
因为这个数据块是唯一更新的,所以只有这个数据块拷贝到备份集123中;z星期四进行级别为1的差异增量备份,自从最近一次的级别为1或更低级的备份以来,向备份集123拷贝所有更改过的数据块。
自从级别0的备份以来,没有进行级别为1的备份,因此自星期天0级备份以来所有更改的数据块都包含在这个备份集124中(#2、#3、#4);z星期五因为自从星期四的级别1的备份以来,数据增加到数据块#9,所以级别为2的增量备份将#2拷贝到备份集125中;z星期六因为自从星期五级别2的备份以来,数据块#2中数据更改,所有级别为2的增量备份将#2拷贝到备份集126中;z星期天进行级别为0的增量备份将所有使用过的数据块拷贝到备份集127中,又开始新一轮的循环备份。