1、数据库备份方案作者:Oracle Consulting Services文档创立日期:Aug 1,近来变更日期:Mar 5 ,文档引用: 版本号:v1.0Note: Title,Subject,Last Updated Date,Reference Number,and Version are marked by a Word Bookmark so that they can be easily reproduced in the header and footer of documents. When you change any of these values,be careful no
2、t to accidentally delete the bookmark. You can make bookmarks visible by selecting Tools-OptionsView and checking the Bookmarks option in the Show region.审批:Note: To add additional approval lines,Press Tab from the last cell in the table above. Copy Number_Note:Note:Note: You can delete any elements
3、 of this cover page that you do not need for your document. For example,Copy Number is only required if this is a controlled document and you need to track each copy that you distribute.文档控制变更记录20日期作者版本号变更参照文献审视姓名职位发行拷贝号姓名地址1234Note: The copy numbers referenced above should be written into the Copy
4、Number space on the cover of each distributed copy. If the document is not controlled,you can delete this table and the Copy Number label from the cover page.目录文档控制2RMAN备份概述4在线热备份4多级增量备份4并行备份,恢复5减少所需要备份数据量5使用简朴5配备RMAN6CATALOG数据库6磁带接口7多级备份方略7维护RMAN12检查RMAN备份信息12RMAN信息同步12使用RMAN进行恢复13恢复整个数据库13恢复单个表空间1
5、3其她15archive 方式15Note: To update the table of contents,put the cursor anywhere in the table and press F9. To change the number of levels displayed,select the menu option InsertIndex and Tables,make sure the Table of Contents tab is active,and change the Number of Levels to a new value.RMAN备份概述采用数据库提
6、供RMAN备份工具备如下长处:支持在线热备份支持多级增量备份支持并行备份,恢复减小所需要备份量备份,恢复使用简朴在线热备份是指备份不需要关闭数据库进行,在备份同步可以进行正常数据库各种操作,满足了7*24系统需要,对于本系统而言,数据库备份将不会影响INTERNET或INTRANET顾客对数据库访问。多级增量备份多级增量备份是指第N级备份只需要备份最后一次同级或N-1级备份后来发生变化数据。可以通过下图来阐明:上图是一种增量备份例子,即在第一种星期天做一种增量0级备份,然后在星期一,星期二做一种增量2级备份,在星期三做一种增量1级备份,然后类推。假设当前在星期五数据库需要做恢复,则可以先恢复第
7、一种星期天0级备份,然后恢复星期三1级备份,再恢复星期四和星期五2级备份就可以完毕数据库恢复。由于在本系统录入后数据数据进入数据库后将大某些变为只读状态,因此采用对这些表空间只备份一次或比经常变化表空间备份次数更少办法,将可以很大地减少备份数据量。详细方案如下:对于表PROD_CONTENT_CN_TBL,PROD_VALUE_TBL由于做了关于序列号分区,采用当一种分区满了后来,在数据库里把该分区改成只读状态,然后做一种该表空间备份,然后在做数据库寻常增量备份时忽视该表空间数据则可以大大减少要备份数据量。并行备份,恢复RMAN是通过启动数据库SERVER进程来进行备份和恢复,并且支持启动各种
8、SERVER进程来进行备份和恢复,在同一种SERVER进程内还支持各种BACKUPSET(备份集)同步产生。重要是通过设立各种通道及filesperset参数来达到并行目。分派各种通道语句(如下语句分派两个通道)Allocate channel dev_1 type disk;Allocate channel dev_2 type disk;设立在一种通道同步打开备份文献语句(如下语句设立在一种通道下同步打开3个文献)backup filesperset 3。减少所需要备份数据量由于RMAN是工作在数据快一级,因此可以只备份分派数据快,这样就大大地减少了所需要备份数据量,特别是对于预先分派空间
9、数据库而言。使用简朴RMAN使用特别简朴,在进行备份和恢复时都不需要指定需要备份或需要恢复数据文献,RMAN会自动地把备份或恢复所需要数据文献进行备份或进行恢复。减少了人为操作也许产生错误。如如下是备份整个数据库语句backup full tag basicdb format /bak/bak/basic/basic%u_%p_%c database ;如下是备份一种表空间语句backup tag tsusers format /bak/bak/basic/basic%u_%p_%c tablespace users ;如下是备份归档文献语句backup filesperset 3 archi
10、velog all delete input;归档文献会在备份后自动删除。配备RMAN配备RMAN涉及配备CATALOG数据库,配备数据库与媒体管理软件接口,制定RMAN多级备份方案,写RMAN备份脚本CATALOG数据库由于RMAN自动维护备份和恢复所需要各种信息,因此RMAN必要把这些以某种形式保存。RMAN支持两种形式保存这些信息,数据库控制文献或创立一种单独数据库来保存RMAN信息。 当选取把RMAN信息存储在控制文献时,控制文献丢失时将导致备份将不能进行恢复。因此若采用RMAN做备份,推荐一定采用RMAN CATALOG数据库来单独存储备份信息。这个单独数据库(称为CATALOG数据
11、库)只需要很小空间,既可以和被备份数据库(E10K)放在同一主机上,也可以单独放在另一台主机上(如果条件容许,推荐放在一台单独主机上来保证最大可恢复性)。备份CATALOG数据库:由于CATALOG数据库包括了所有备份信息,因此该数据库自身也是需要通过某种办法进行备份,但由于该数据库很小(一年内也许才增长十几二十兆),因此既可以对它进行冷备份,也可以进行逻辑输出(EXPORT)。配备CATALOG数据库:1. 用dbassist创立数据库。2. 创立表空间create tablespace ts_rmandatafile=d:oratestrman.dbfsize=100M;3. 在该数据库创
12、立RMAN数据库顾客:create user rman identified by rman default tablespace ts_rman temporary tablespace temp;grant connect ,resource ,RECOVERY_CATALOG_OWNER to rman.4. 连接到目的数据库和CATALOG数据库rman target system/managertarget_tnsname rcvcat rman/rmancatalog_tnsname 5. 创立CATALOG顾客表:rmancreate catalog6. 登记目的数据库:rman
13、register database这样就可以运用该RMAN数据库来备份目的数据库了。解除登记数据库启动rman并连接到目的数据库。% rman target sys/change_on_installprod1 nocatalog RMAN-06005:connected to target database:RMAN (DBID=) List the copies and backup sets recorded in the control file and then issue change . delete statements to delete them from the O/S.
14、 See Generating Lists and Deleting Backups and Copies and Updating Their Status in the RMAN Metadata. Use SQL*Plus to connect to your recovery catalog database and execute the following query in the recovery catalog to find the correct row of the DB table,setting DB_ID equal to the value you obtaine
15、d from step 1. For example,enter: SQL SELECT db_key,db_id FROM db WHERE db_id = ; This query should return exactly one row. DB_KEY DB_ID - - 1 1 row selected. While still connected to the recovery catalog,enter the following,where DB_KEY and DB_ID are the corresponding columns from the row you got f
16、rom the query in step 2:SQL EXECUTE dbms_rcvcat.unregisterdatabase(db_key,db_id) For example,enter:SQL EXECUTE dbms_rcvcat.unregisterdatabase(1 ,)磁带接口当使用专用磁带管理工具时,必要配备数据库与磁带接口,普通是管理工具提供一种动态连接库与数据库进行连接。如下是一种测试RMAN脚本:run allocate channel dev1 type diskresync catalog;backup format /archive/ctl%u_%p_%c
17、current controlfile;release channel dev1;多级备份方略采用多级备份是为了减少了恢复所需要时间和减少每天备份所需要时间,而又保证系统有较好恢复性。但是在恢复时间和备份时间要有一种权衡。例如只要开始一种全备份和备份所有产生归档文献就可以保证把数据库恢复到最新状态,但是普通来说事实上并不会这样进行(由于在恢复时将需要很长很长时间),多级备份就是为理解决这样问题。如下是一种建议方案。每半年做一种数据库全备份(包括只读表空间)每月做一次零级备份(不包括只读表空间)每个星期做一次一级备份每天做一种二级备份任何表空间改成只读状态后做一种该表空间备份。当需要时(如四个小
18、时归档文献系统就要接近满了)备份归档文献数据库全备份脚本:run allocate channel dev1 type disk ;allocate channel dev2 type disk ;allocate channel dev3 type disk ;backup full tag dbfull format /o9i/testrman/full%u_%p_%c database ;sql alter system archive log current ;backup filesperset 3 archivelog all delete input;release channe
19、l dev1;release channel dev2;release channel dev3;零级备份脚本(只读表空间除外)run allocate channel dev1 type disk ;allocate channel dev2 type disk ;allocate channel dev3 type disk ;backup incremental level 0 tag dbL0 format /o9i/testrman/basic%u_%p_%c database skip readonly;sql alter system archive log current ;b
20、ackup filesperset 3 archivelog all delete input;release channel dev1;release channel dev2;release channel dev3;一级备份脚本run allocate channel dev1 type disk ;allocate channel dev2 type disk ;allocate channel dev3 type disk ;backup incremental level 1 tag dbL1 format /o9i/testrman/basic%u_%p_%c ddatabase
21、 skip readonly;sql alter system archive log current ;backup filesperset 3 archivelog all delete input;release channel dev1;release channel dev2;release channel dev3;二级备份脚本run allocate channel dev1 type disk ;allocate channel dev2 type disk ;allocate channel dev3 type disk ;backup incremental level 2
22、 tag dbL2 format /o9i/testrman/basic%u_%p_%c ddatabase skip readonly;sql alter system archive log current ;backup filesperset 3 archivelog all delete input;release channel dev1;release channel dev2;release channel dev3;表空间备份脚本(以users表空间为例)run allocate channel dev1 type disk ;allocate channel dev2 ty
23、pe disk ;allocate channel dev3 type disk ;backup tag tsusers format /o9i/testrman/basic%u_%p_%c tablespace users;sql alter system archive log current ;backup filesperset 3 archivelog all delete input;release channel dev1;release channel dev2;release channel dev3;归档文献备份脚本run allocate channel dev1 typ
24、e disk ;allocate channel dev2 type disk ;allocate channel dev3 type disk ;backup filesperset 3 archivelog all delete input;release channel dev1;release channel dev2;release channel dev3;则每天所需要备份数据量只有一天变化量。而做恢复时最多只要恢复当月一种零级备份+三个一级备份+6个二级备份+当天归档文献。如果不能接受这样恢复时间,就只可以减少零级备份之间时间间隔(如可以每个星期做一种零级备份,这样恢复时最多只需
25、要恢复一种星期数据量)。备份CATALOG数据库(数据库逻辑输出)exp pafile=exp.dat其中exp.dat如下userid=rman/rmanfile=rmanexp.dmp维护RMANRMAN维护工作重要是:1 查看备份信息2 由于手工删除了备份文献或归档文献需要把RMAN CATALOG数据库信息与手工删除信息同步。检查RMAN备份信息列出已通过时备份:RMANreport obsolete删除过时备份信息RMAN allocate channel for maintenance type disk;RMAN change backupset id delete;RMAN r
26、elease channel;RMAN信息同步当手工删除了数据库归档文献后,要执行如下脚本进行同步:RMAN allocate channel for maintenance type disk;RMAN change archivelog all crosscheck;RMAN release channel;当手工删除了数据库RMAN备份文献后,要执行如下脚本进行同步:RMAN allocate channel for maintenance type disk;RMAN crosscheck backup;RMAN delete expired backup;RMAN release c
27、hannel;使用RMAN进行恢复数据库恢复比较复杂,有许多不同状况必要在理解ORACLE数据库构造条件下用不同办法解决,RMAN好处在于大某些状况不需要理解数据库构造而使用某些最简朴语句来进行恢复,这里只讨论了最惯用最普通恢复状况恢复整个数据库在恢复整个数据库之前必要让数据库处在安装状态(mount状态)svrmgrlstartup mountrmanrun allocate channel dev1 type disk ;allocate channel dev2 type disk ;allocate channel dev3 type disk ;restore database ;r
28、ecover database ;release channel dev1 ;release channel dev2 ;release channel dev3 ;恢复单个表空间在恢复该表空间之前让该表空间处在脱机状态(offline状态)svrmgrlalter tablespace users offline;rmanrun allocate channel dev1 type disk ;allocate channel dev2 type disk ;allocate channel dev3 type disk ;restore tablespace users ;recover tablespace users ;release channel dev1 ;release channel dev2 ;release channel dev3 ;其她数据库要使用RMAN必要符合某些条件archive 方式数据库要运营在归档模式下,这样数据库将有较好可恢复性