Oracle RMAN快速入门指南


当前第2页 返回上一页

[NextPage]

8.归档模式下的备份

  数据库状态:

   恢复目录:打开

   目标数据库:例程启动,数据库加载或者打开

  备份操作使用的命令与非归档模式下基本一样。

  8.1. Backing up archived logs 备份归档日志

  下面的脚本备份归档日志:

RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> format '/oracle/backups/log_t%t_s%s_p%p'
5> (archivelog all);
6> release channel dev1;
7> }

  下面的脚本归档日志从# 90 to 100:

RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> format '/oracle/backups/log_t%t_s%s_p%p'
5> (archivelog from logseq=90 until logseq=100 thread 1);
6> release channel dev1;
7> }

  下面的脚本备份在24小时内产生的归档日志,在备份完成后会自动删除归档日志。如果备份失败,归档日志不会被删除。

RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> format '/oracle/backups/log_t%t_s%s_p%p'
5> (archivelog from time 'sysdate-1' all delete input);
6> release channel dev1;
7> }

  使用下面的命令显示恢复目录中的归档日志:

RMAN> list backupset of archivelog all;

  注意:RMAN找到归档日志后会备份指定日志,如果无法找到日志,它也不会返回错误信息。

  8.2. Backing up the online logs 备份联机日志

  联机日志不能用RMAN来备份,必须先将其归档。

  为了实现这点,必须在RMAN中执行如下SQL语句:

RMAN> run {
2> allocate channel dev1 type disk;
3> sql "alter system archive log current";
4> backup
5> format '/oracle/backups/log_t%t_s%s_p%p'
6> (archivelog from time 'sysdate-1' all delete input);
7> release channel dev1;
8> }

  上面的脚本可以在执行完一个完整的联机数据库备份后执行,确保所有的重做日志可以将数据库恢复到一个一致性的状态。

  注意:不可以标识归档日志备份集。

  9. 增量备份

  N级别增量备份备份从最近的N级别或者更小级别以来的所有更改过的数据块内容。增量备份分为两种,一种是累积增量备份,一种是非累积增量备份。

   累积增量备份包括自最后一次在更低级别进行备份以来所有改动过的数据块。

   非累积增量备份包括自前一次在同级或者更低级别进行备份以来改动过的数据块。

  9.1. Level 0--增量备份策略的基础

Level 0 是增量备份策略的基础--the basis of the incremental backup strategy
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> incremental level 0
5> filesperset 4
6> format '/oracle/backups/sunday_level0_%t'
7> (database);
8> release channel dev1;
9> }
Line#
4: 0级备份
5: 定义每个backupset 的最大文件数

  使用LIST语句查看,数据库备份集的列表显示中, 'type' 将显示 'Incremental','LV'列将显示'0' 。 

  9.2. 使用增量备份的案例

  一个典型的增量备份案例如下:

   星期天晚上 - level 0 backup performed

   星期一晚上 - level 2 backup performed

   星期二晚上 - level 2 backup performed

   星期三晚上 - level 1 backup performed

   星期四晚上 - level 2 backup performed

   星期五晚上 - level 2 backup performed

   星期六晚上 - level 2 backup performed

   星期天晚上 - l

上一页  [1] [2] [3] [4] [5] [6] 下一页

正在看的ORACLE教程是:Oracle RMAN快速入门指南。evel 0 backup performed

  10. 恢复

  恢复案例如下:

  10.1. Database open,datafile deleted 数据库打开时,文件被删除

  数据文件在数据库打开时被删除。有两种方法可以对打开的数据库进行恢复:还原数据文件或者表空间。下面两个实例显示了该方法:

  (a) Datafile recovery 数据文件恢复

RMAN> run {
2> allocate channel dev1 type disk;
3> sql "alter tablespace users offline immediate";
4> restore datafile 4;
5> recover datafile 4;
6> sql "alter tablespace users online";
7> release channel dev1;
8> }

  (b) Tablespace recovery 表空间恢复

RMAN> run {
2> allocate channel dev1 type disk;
3> sql "alter tablespace users offline immediate";
4> restore tablespace users;
5> recover tablespace users;
6> sql "alter tablespace users online";
7> release channel dev1;
8> }

  注意:如果还原系统表空间文件,数据库必须关闭,因为系统表空间不可以脱机。

  10.2. Complete restore (lost online redo) and rollforward - database closed 完全还原(丢失联机日志)并且前滚 - 数据库关闭

RMAN> run {
2> allocate channel dev1 type disk;
3> set until logseq=105 thread=1;
4> restore controlfile to '/oracle/dbs/ctrltargdb.ctl';
5> replicate controlfile from '/oracle/dbs/ctrltargdb.ctl';
6> restore database;
7> sql "alter database mount";
8> recover database;
9> sql "alter database open resetlogs";
10> release channel dev1;
11> }

  Notes:

  'set until' 命令指明恢复到指定的日志文件。这一点在数据文件恢复时很重要,否则RMAN将试图恢复最近的数据文件,该数据文件可能在指定的日志以前。

  'replicate controlfile' 复制还原的控制文件到INIT.ORA指定的控制文件。

  如果数据库使用WITH RESETLOGS打开,则需要使用RESET DATABASE命令注册改变后的数据库。在使用RESETLOGS命令打开数据库后强烈建议做一个完全的数据库备份。

  10.3. 还原数据文件的子集,完全恢复

RMAN> run {
2> allocate channel dev1 type disk;
3> sql "alter database mount";
4> restore datafile 2;
5> restore datafile 3;
6> restore archivelog all;
7> recover database;
8> sql "alter database open";
9> release channel dev1;
10> }



[NextPage]

11. 脚本

  创建或者取代脚本:

RMAN> create script alloc_disk {
2> # Allocates one disk
3> allocate channel dev1 type disk;
4> setlimit channel dev1 kbytes 2097150 maxopenfiles 32 readrate 200;
5> }

RMAN> replace script rel_disk {
2> # releases disk
3> release channel dev1;
5> }

RMAN> replace script backup_db_full {
2> # Performs a complete backup 
3> execute script alloc_disk;
4> backup
5> .....<backup commands here>
6> execute script rel_disk;
7> }

  前两个脚本分别用来分配和回收通道。 

  alloc_disk 脚本还额外指定了备份片的最大兆字节数,备份时可以同时打开的输入文件的最大数目,以及每秒钟读每个输入文件的数据缓冲区的最大数目。

  第三个脚本调用先前存储的两个脚本进行数据库备份。

  运行存储脚本的示范:

RMAN> run {
2> execute scri

上一页  [1] [2] [3] [4] [5] [6] 下一页

正在看的ORACLE教程是:Oracle RMAN快速入门指南。pt backup_db_full;
3> }

  注意:存储的脚本必须在{ .... execute <script>; ....}命令中调用。

  12. Corruption detection 

  RMAN可以备份包含损坏数据块的数据文件,查询视图V$BACK_CORRUPTION和V$COPY_CORRUPTION可以获得有关坏数据的信息。

  通过设置 set maxcorrupt 可以跳过指定个数的坏块来避免备份失败。

RMAN> replace script backup_db_full {
2> # Performs a complete backup
3> execute script alloc_disk;
4> set maxcorrupt for datafile 1 to 0;
5> backup
6> .....<backup commands here>
7> execute script rel_disk;
8> }

  上面的脚本maxcorrupt for datafile 1 to 0设置为0,所以如果有错误数据块在数据文件1中发现,上面的脚本执行就会失败。

  13. 通道

  一个通道是RMAN和目标数据库之间的一个连接,'allocate channel'命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的I/O类型

  通道控制命令可以用来:

   控制RMAN使用的O/S资源

   影响并行度

   指定I/O带宽的限制值(设置limit read rate参数)

   定义备份片大小的限制(设置limit kbytes)

   指定当前打开文件的限制值(设置limit maxopenfiles)

  14. Report & list commands

  14.1. List

  list命令查询恢复目录并且产生格式化的查询内容: 

RMAN> list backupset of datafile 1;

Key File Type LV Completion_time Ckp SCN Ckp Time
------- ---- ------------ -- --------------- ---------- --------
165 1  Full Oct 03 11:24 32022 Oct 03 11:24
208 1  Full Oct 24 14:27 52059 Oct 24 14:26
219 1  Full Oct 24 14:31 52061 Oct 24 14:31
<< other entries here >>

RMAN> list backupset of archivelog all;

Key Thrd Seq Completion time
------- ---- ------- ---------------
179 1 94 Oct 03 11:26
179 1 95 Oct 03 11:26
<< other entries here >>

  14.2. Report

  REPORT命令同样可以查询恢复目录,但是REPORT命令语法可以构建获得更为有用的信息的指令,REPORT命令输出可以保存到消息日志文件中,但是必须在连接恢复目录时指定MSGLOG或者LOG选项。

  可以列出所有数据库中不能恢复的文件列表:

RMAN> report unrecoverable database;

  显示全部数据文件:

RMAN>report schema;

RMAN-03022:正在编译命令:report

  数据库模式报表


  15. 小提示

   经常同步恢复目录

   确认删除不需要的归档日志

   备份策略简单原则


上一页       

上一页  [1] [2] [3] [4] [5] [6] 


打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...