网络编程
位置:首页>> 网络编程>> 数据库>> Oracle RMAN快速入门指南(5)

Oracle RMAN快速入门指南(5)

 来源:asp之家 发布时间:2010-07-18 12:50:00 

标签:指南,入门,oracle


  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

   星期天晚上 - level 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> }

5





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 script backup_db_full;
3> }

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com