RMAN 备份恢复

rman 备份.

/* 查询备份 */

RMAN log=D:\rman.txt

RMAN> connnect catalog rman/888888@rman

RMAN> target sys/sys@src

 

RMAN> list incarnation;

RMAN> report schema;

RMAN> resync catalog;

 

RMAN> list backup of database completed after 'sysdate-1';

 

RMAN> list backup of archive log from 'sysdate-1';

 

 

RMAN LIST

=========

list backup;                      // 显示已备份的数据文件

list controlfile;            // 显示已备份的控制文件

list archivelog all;        // 显示已备份的日志文件

 

rman 删除

 

DELETE BACKUPSET

================

run {

allocate channel for delete type disk;

change backupset 303 delete;

release channel;

}

 

RMAN CONFIGURATION

==================

sql 'alter session set NLS_LANGUAGE="SIMPLIFIED CHINESE"';

sql 'alter session set NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"';

 

 

 

1).

/* 创建表空间. */

SQLPLUS> create tablespace 表空间名 datafile '要创建的表空间路径' size 表空间大小M;

 

SQLPLUS> create user 用户名 identified by "密码" default tablespace 表空间名 temporary tablespace temp

quota unlimited on 表空间名;

 

SQLPLUS> grant resource, connect to 用户名;

 

SQLPLUS> grant recovery_catalog_owner to 用户名;

 

rman target sys/sys@database catalog 用户名/密码@rman

 

RMAN> create catalog tablespace 表空间名;

 

RMAN> register database;

 

 

反注册

 

sqlplus /nolog

SQLPLUS> conn 用户名/密码@rman

SQLPLUS> select * from db;

         db_key        db_id

 

RMAN> execute dbms_rcvcat.unregisterdatabase(db_key, db_id);

 

 

connect sys/sys@wavetop as sysdba

create tablespace test

datafile 'D:\test2/test.dbf'

size 60M;

create user test

identified by "test"

default tablespace test

temporary tablespace temp

quota unlimited on test;

grant recovery_catalog_owner to test;

grant connect, resource to test;

exit

 

/* 创建恢复目录 */

connect rcvcat bao/bao@rman

create catalog tablespace bao;

exit

 

2).

/* rman 里注册数据库 */

rman target sys/sys@src catalog bao/bao@rman

connect target sys/sys@src

connect rcvcat bao/bao@rman

register database;

exit

 

3).

/* rman 里删除数据库 */

=======================

connect target sys/sys@BAO1

connect rcvcat RMAN_User/RMAN_User@wavetop

delete force noprompt backup;

delete force noprompt obsolete;

exit

 

 

 

rman 备份:

 

/* 0 级备份 */

===============================

 

connect target sys/sys@BYT

connect rcvcat gg/gg@bao1

run {

allocate channel c0 type disk

maxpiecesize = 1073741824

format 'e:/cvsroot/BYT_1235971239_%U.OD0';

backup

incremental level 0

skip inaccessible

tag Backup_Level0

database;

release channel c0;

allocate channel c0 type disk

maxpiecesize = 1073741824

format 'e:/cvsroot/BYT_1235971239_%U.ocl';

backup

skip inaccessible

tag Backup_Controlfile

current controlfile;

release channel c0;

}

exit

 

 

/* 1 级备份 */

===========================

 

connect target sys/sys@BYT

connect rcvcat gg/gg@bao1

run {

allocate channel c0 type disk

maxpiecesize = 1073741824

format 'e:/cvsroot/backup3/client/bin/OraExp/BYT_1235971617_%U.OD1';

backup

incremental level 1

skip inaccessible

tag Backup_Level1

database;

release channel c0;

allocate channel c0 type disk

maxpiecesize = 1073741824

format 'e:/cvsroot/backup3/client/bin/OraExp/BYT_1235971617_%U.ocl';

backup

skip inaccessible

tag Backup_Controlfile

current controlfile;

release channel c0;

}

exit

 

/* 2 级备份 */

========================

connect target sys/sys@BYT

connect rcvcat gg/gg@bao1

run {

allocate channel c0 type disk

maxpiecesize = 1073741824

format 'e:/cvsroot/backup3/client/bin/OraExp/BYT_1235971748_%U.OD2';

backup

incremental level 2

skip inaccessible

tag Backup_Level2

database;

release channel c0;

allocate channel c0 type disk

maxpiecesize = 1073741824

format 'e:/cvsroot/backup3/client/bin/OraExp/BYT_1235971748_%U.ocl';

backup

skip inaccessible

tag Backup_Controlfile

current controlfile;

release channel c0;

}

exit

 

/* 日志备份 */

======================

connect target sys/sys@BYT

connect rcvcat gg/gg@bao1

run {

allocate channel c0 type disk

maxpiecesize = 1073741824

format 'e:/cvsroot/BYT_1235971840_%U.oar';

sql 'alter system archive log current';

backup

skip inaccessible

tag Backup_Archivelog

archivelog all delete input;

release channel c0;

allocate channel c0 type disk

maxpiecesize = 1073741824

format 'e:/cvsroot/BYT_1235971840_%U.ocl';

backup

skip inaccessible

tag Backup_Controlfile

current controlfile;

release channel c0;

}

exit

 

/* 备份控制文件 */

 

BACKUP CONTROL FILE

===================

run {

allocate channel c0 type disk

format 'f:\oraexp\oradb1_%s_%U.ctl';

setlimit channel c0 kbytes 204800;

backup

skip inaccessible

current controlfile;

}

 

 

rman 还原

 

/* 完全恢复. */

=========================

connect target sys/sys@BAO1

connect rcvcat test/88@wavetop

run {

shutdown immediate;

startup mount;

allocate channel c0 type disk;

restore database;

recover database;

release channel c0;

sql 'alter database open';

}

exit

 

/* 不完全恢复 */

INCOMPLETE RESTORE DATABASE

===========================

run {

shutdown immediate;

startup nomount;

allocate channel c0 type disk;

restore controlfile until scn 180447;

release channel c0;

startup mount;

allocate channel c0 type disk;

restore database until scn 180393;

recover database until scn 180445;

sql 'alter database open resetlogs';

}

 

 

run {

  Set until logseg 51 thread 1;

  Allocate auxiliary channel dl type disk;

  Duplicate target database to bao;

}

 

 

 

 

====================================================================================================================

====================================================================================================================

====================================================================================================================

RMAN LIST

=========

list backup;                // 显示已备份的数据文件

list controlfile;        // 显示已备份的控制文件

list archivelog all;        // 显示已备份的日志文件

 

RMAN CONFIGURATION

==================

sql 'alter session set NLS_LANGUAGE="SIMPLIFIED CHINESE"';

sql 'alter session set NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"';

 

BACKUP LEVEL 0

===============

run {

allocate channel c0 type disk

format 'f:\oraexp\oradb1_%s_%U.od0';

setlimit channel c0 kbytes 204800;

backup

incremental level 0

skip inaccessible

database;

release channel c0;

}

 

BACKUP ARCHIVELOG

=================

run {

allocate channel c0 type disk

format 'f:\oraexp\oradb1_%s_%U.oar';

setlimit channel c0 kbytes 204800;

sql 'alter system archive log current';

backup

skip inaccessible

archivelog all delete input;

}

 

BACKUP CONTROL FILE

===================

run {

allocate channel c0 type disk

format 'f:\oraexp\oradb1_%s_%U.ctl';

setlimit channel c0 kbytes 204800;

backup

skip inaccessible

current controlfile;

}

 

DELETE BACKUPSET

================

allocate channel for delete type disk;

change backupset 24 delete;

release channel;

 

COMPLETE RESTORE DATABASE

=========================

run {

shutdown immediate;

startup mount;

allocate channel c0 type disk;

restore database;

recover database;

sql 'alter database open';

release channel c0;

}

 

INCOMPLETE RESTORE DATABASE

===========================

run {

shutdown immediate;

startup nomount;

allocate channel c0 type disk;

restore controlfile until scn 180447;

release channel c0;

startup mount;

allocate channel c0 type disk;

restore database until scn 180393;

recover database until scn 180445;

sql 'alter database open resetlogs';

}

===================================================================================================================================

RMAN 的list 命令

  1 列出对应物 RMANlist incarnation;

  2 列出备份

  2.1概述可用的备份RMANlist backup summary;

  B 表示 backup

  F 表示 FULL

  A 表示 archive log

  0 1 表示 incremental backup

  S 说明备份状态 (AAVAILABLEX EXPIRED )

 

  2.2按备份类型列出备份RMAN>list backup by file;

  按照 数据文件备份,归档日志备份,控制文件备份,服务器参数文件备份列出

  2.3列出具体备份RMAN>list backup;

 

  2.4列出过期备份RMAN>list expired backup;

 

  2.5列出表空间和数据文件备份

  list backup of tablespace

         list backup of datafile 输出和list backup 相似

  如:

         RMAN>list backup of tablespace user_tbs;

  RMAN>list backup of datafile 3;

 

  2.6列出归档日志备份

         RMAN>list archivelog all;简要信息

  RMAN>list backup of archivelog all;具体信息

 

  2.7列出控制文件和服务器参数文件

  RMAN>list backup of controfile;

  RMAN>list backup of spfile;

  =====================================================

  =====================================================

  RMAN 的 report命令

  1. 报告最近没有被备份的数据文件

  RMANreport need backup days=3;

 

  2. 报告备份冗余或恢复窗口

  RMANreport needbackup redundancy=2;

  RMANreport need backup recovery window of 2 days;

 

  3. 报告数据文件的不可恢复操作

  RMANreport unrecoverable;

 

  4. 报告数据库模式

  RMANreport schema;

 

  5. 报告丢弃的备份

  假如使用了保存策略,备份会标记为丢弃状态 RMANreport obsolete;删除丢弃状态备份RMANdelete obsolete;

  =====================================================

  =====================================================

  RMAN的crosscheck 命令

  1 备份集有两种状态A(Available,RMAN认为该项存在于备份介质上)X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)

  2 crosscheck 的目的是检查RMAN 的目录以及物理文件,假如物理文件不存在于介质上,将标记为Expired。假如物理文件存在,将维持Available。假如原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),crosscheck将把状态重新从Expired标记回Available。

  3 crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired。当设置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为availabel,要删除丢弃备份delete obsolete。

  4 示例:

  crosscheck backup

  crosscheck backup of datafile 1;

  crosscheck backup of tablespace users;

  crosscheck backup of controfile;

  crosscheck backup of controlfile;

  crosscheck backup tag='SAT_BACKUP';

  crosscheck backup completed after 'sysdate - 2'

  crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '

  crosscheck backup device type sBT;

  crosscheck archivelog all;

  crosscheck archivelog like '%ARC00012.001'

  crosscheck archivelog from sequence 12;

  crosscheck archivelog until sequence 522;

  =====================================================

  =====================================================

  RMAN 的validate 命令

  1 validate 命令验证备份集片是否能够被还原

  2 list backup summary; 得到了备份集得主键ID如40,然后validate backupset 40;

  =====================================================

  =====================================================

  RMAN 的备份保存策略以及change ,delete命令

  0.带delete参数的change 命令删除备份集,从备份介质,并且从控制文件和恢复目录中删除。

  

  

  change backupset 117,118 delete;

  change backuppiece 1304 delete;

  change archivelog until logseq =544 delete;

  1.两类策略:恢复窗口备份保存策略(recovery windows backup retension policy)基于时间

  备份冗余备份保存策略(backup redundancy backup retension policy) 基于备份的数量

  两类策略互相排斥

  2.即使使用了备份保存策略,备份到期并不删除,只是在RMAN目录中标记为丢弃,看到的状态依旧为available;

  要查看标记为丢弃的备份 report obsolete,只有使用delete obsolete才真正物理删除。

  3.configure retension policy to recovery window of 7 days;

  configure retension policy to redundancy 3;

  显示结果 show all;

  4.查看到期丢弃的备份时,可能需要手工保存一些备份 ,可以使用change 命令带keep 参数,使用这个命令后,那些被修改的备份将被认为是个long-term backup,不在受保存策略影响也就是说delete obsolete 也不删除。

  5.要使备份时候不受保存策略影响 ,使用带keep参数的backup 命令

  backup database keep forever;

  backup database keep 5 days;

  6.change 命令功能

  可以修改备份为永久保存并将以及该备份的相关的日志保存下来,保证总能将备份恢复到当前时间点

  change backupset 31 keep forever logs;

  可以设置备份丢弃的新日期,将备份在多保存7 天,7 天后将删除

  change backupset 32 keep until time 'sysdata + 7' logs;

  7.change 可以将备份集设置为unavailable

  change backupset 33 unavailable;

  标记为unavailable状态的备份集并不参与crosscheck;

  =====================================================

  =====================================================

  恢复目录的记录删除

  1. $Oracle_HOME/rdbms/admin/prgrmanc.sql 脚本定期删除恢复目录中具有DELETED状态的记录

  2. 要删除旧的对应物记录incarnation.必须从DBINC 表中删除这些对应物,使用RC_DATABASE_INCARNATION 视图来确定要删除的对应物。记录要删除的每个对应物的DBINC_KEY

  随后启动SQL*Plus,执行delete from dbinc where dbinc_key=2;

  =====================================================

  =====================================================

  手工同步恢复目录

  resync catalog;

  Oracle同步恢复目录的时候,首先创建快照控制文件,然后比较这个文件和恢复目录,完成后,Oracle 更新恢复目录,使恢复目录和控制文件同步

  =====================================================

  =====================================================

  在RMAN 中存储脚本

  1,连接到目标数据库和恢复目录

  rman target / catalog rman/rman@rman9i

  2,创建脚本

  RMANcreate script. my_bk_script

  2{backup database plus archivelog;}

  create script. my_bk_script

  3,打印脚本

  RMANprint script. my_bk_script;

  printing stored scipt:my_bk_script

  {backup database plus archivelog;}

  4,运行这个脚本,备份目标数据库

  RMANrun {execute scipt my_bk_script;}

  5 删除脚本

  RMANdelete script. my_bk_script;

  =====================================================

  =====================================================

  archivelog模式下的完全恢复

  step1:set oracle_sid=recover

  rman target rman_backup/passWord

  configure controlfile autobackup on;

  step2:backup database plus archivelog delete input;

  step3:shutdown immediate;

  step4:重命名所有的数据文件和控制文件,不重命名联机重做日志。

  

  

  step5: startup nomount;

  set DBID=****

  restore controlfile from autobackup;

  alter database mount;

  step6: restore database;

  recover database;

  alter database open resetlogs;

  表空间恢复

  sql"alter tablespace users offline";

  sql"alter tablespace tools offline";

  restore tablespace users,tools;

  recover tablespace users,tools;

  sql"alter tablespace users online";

  sql"alter tablespace tools online";

  数据文件恢复

  sql"alter database datafile 3 offline";

  sql"alter database datafile 'd:oracleoradatausers01.dbf' offline";

  restore datafile 3

  restore datafile 'd:oracleoradatausers01.dbf';

  recover datafile 3

  recover datafile 'd:oracleoradatausers01.dbf';

  sql"alter database datafile 3 online";

  sql"alter database datafile 'd:oracleoradatausers01.dbf'online";

  =====================================================

  =====================================================

  切换当前的incarnation 回到resetlogs 前RESET DATABASE TO INCARNATION inc_key

  =====================================================

  =====================================================

  RMAN 高级恢复

  1 基于时间点的恢复

  run

  {

  set until time "to_date('07/01/02 15:00:00','mm/dd/yy hh24:mi:ss')"'

  restore database;

  recover database;

  alter database open resetlogs;

  }

  2 基于SCN 的恢复

  startup mount;

  restore database UNTIL SCN 10000;

  recover database UNTIL SCN 10000;

  alter database open resetlogs;

  3 基于日志序列的恢复

  startup mount;

  restore database UNTIL SEQUENCE 100 thread 1;

  recover database UNTIL SEQUENCE 100 thread 1;

  alter database open resetlogs;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7755871/viewspace-735114/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7755871/viewspace-735114/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值