oracle的rman备份恢复

1.名次解释:
 restore: 还原
 recover: 恢复
 备份集: 类似tablespace
 备份片: 一个数据文件可跨多个备份片,但在一个备份集中
2.准则:
 a. 当文件被还原时,该文件不能被数据库实例使用.
 b. 只有增量级别为0备份或完全备份,映像拷贝可被还原;其他级别的增量备份和归档日志用于恢复。
 
一. 配置RMAN备份
1. 切换备份模式,oracle9i 启动归档进程
2. 调整redolog分组
SQL> select * from v$logfile
SQL> alter database add logfile group 4 ('/u01/oradata/yang/redo04a.rdo','/u01/oradata/yang/redo04b.rdo') size 50M; //添加一个新的日志组,组编号为4,存在两个组成员,大小各位50M
SQL> alter database add logfile member '/u01/oradata/yang/redo01.rdo' to group 1;   //添加一个新的成员到日志组1
3. 配置archivelog目的地
4. 配置rman备份脚本和恢复策略
关键是联机重做日志和控制文件
语言环境NLS_LANG
一。rman备份
check logical
set maxcorrupt
RMAN> connect target sys/sys@cttest
{
 allocate channel d1 type disk;
 backup
 incremental level=0 cumulative
 database
 format '/oradata/cttest/backup/db0_%d_%s_%p_%t'
 tag="whole_inc0';
 release channel d1;
}
{
 allocate channel d1 type disk;
 backup archivelog
  from time 'sysdate-2'
  format '/oradata/cttest/backup/ar0_%d_%s_%p_%t';
 release channel d1;
}
{
 allocate channel d1 type disk;
 backup archivelog
  from time 'sysdate-3' until time 'sysdate-2'
  format '/oradata/cttest/backup/ar0_%d_%s_%p_%t';
  delete input;
 release channel d1;
}


二。rman 恢复
1. restore->recover增量备份->recover archive on Disk->recover archive on backupset
   控制文件被restore了只能进行不完全恢复
ORACLE_SID;
ORACLE_BASE;
ORACLE_HOME;
ORACLE_DATA;
ORACLE_ADMIN
mkdir $ORACLE_ADMIN/pfile
mkdir $ORACLE_ADMIN/bdump
mkdir $ORACLE_ADMIN/cdump
mkdir $ORACLE_ADMIN/udump
mkdir $ORACLE_ADMIN/create
mkdir -p $ORACLE_DATA/archive
2.如果改名字,在init.ora在

run{
 allocate channel d1 type disk;
 restore database;
 recover database;
}

三。rman监控

select sid,serial#,context,sofar,totalwork,
round(sofar/totalwork*100,2) "% Complete",opname
from v$session_longops;

select * from v$backup_corruption

四. dataguard创建和同步
a. 创建
connect target sys/practise@test
connect auxiliary sys/sys@standby
run{
   set command id to 'standby Creation';
   allocate auxiliary channel d1 type disk;
   duplicate target database for standby dorecover;
b. 恢复归档日志
SQL> set logsource /oradata/practise/archive
SQL> recover standby database;

c. 查看
SQL> alter database open read only;
SQL> select * from device;
SQL> shutdown immediate;
SQL> startup nomount;
SQL> alter database mount standby database;

d. 配置管理恢复
log_archive_dest_1 用于手工恢复
standby_archive_dest_1用于管理恢复
instance_name和service_name可以不同,db_name必须相同
 主服务器的archive进程通过net8与备服务器的RFS通信,把日志保存在standby_arch_dest_1
目录下。
在standby数据库上启动管理恢复:
SQL>recover managed standby database;
SQL>recover managed standby dtabase cancel;
在主数据库上设置net8
SQL>alter system set log_archive_dest_2="MANDATORY service=STANDBY reopen=30"  --必须成功,重试时间
SQL>alter system set log_archive_dest_state_2=ENABLE|DEFER;
只读打开:
SQL>recover managed standby database cancel;
SQL>alter database open read only;
返回恢复模式:
sQL> shutdown immediate
SQL> startup nomount;
SQL> alter database mount standby database;
SQL> recover managed standby database;

激活数据库
SQL>recover managed standby database cancel;
SQL>alter database activate standby database;
SQL>shutdown;
SQL>startup

1)sqlloader direct特性无法复制
2)添加数据文件无法复制

原文地址:https://www.cnblogs.com/itfriend/p/1887978.html