1、 Oracle 10g RAC环境Rman备份恢复至单机oracle10g方案 阐明:使用于oracle 10g ,备份环境是RAC,但是恢复目环境是单机。 l 创立与rac主机相似目录 如/backup/rmanbak/level0//4 都是在压缩包所在目录下tar -cvf oracle0208.tar oracle tar -xvf oracle0113.tar l 传播rac上备份集到单机上 节点2上备份包括数据文献及归档 备份集 scp dblv0_731_1_ :/backup/rmanbak/level0//4 scp d
2、blv0_732_1_ :/backup/rmanbak/level0//4 scp dblv0_733_1_ :/backup/rmanbak/level0//4 过程如下: 文献大体需要传播6分钟 节点1上传播控制文献备份在(注意不是节点2上 控制文献备份) 测试机上接受到备份集 注意更改这些文献属性 chown -R oracle:dba * l 测试机上创立pfile及有关目录 *.audit_file_dest='/app/oracle/admin/orcl/adump' *.background_dump_dest='/app/oracle/admin
3、/orcl/bdump' *.compatible='10.2.0.1.0' *.control_files='/oradata/orcl/controlfile1.ctl','/oradata/orcl/controlfile2.ctl','/oradata/orcl/controlfile3.ctl' *.core_dump_dest='/app/oracle/admin/orcl/cdump' *.db_block_size=8192 *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='orcl'
4、 *.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLDB)' *.job_queue_processes=10 *.log_archive_dest_1='LOCATION=/archive/orcl' *.log_archive_format='%t_%s_%r.dbf' *.open_cursors=1000 *.pga_aggregate_target= *.processes=1500 *.remote_login_passwordfile='EXCLUSIVE' *.sessions=1655 *.sga_target=
5、undo_management='AUTO' *.undo_tablespace='UNDOTBS' *.user_dump_dest='/app/oracle/admin/orcl/udump' l 测试机上启动实例orcl,并开始恢复数据文献 修改profile 改正ORACLE_SID=orcl;export ORACLE_SID 使ORACLE_SID=orcl进入到该orcl实例,以pfile启动 进入到rman中 注意应当是 restore controlfile from '/backup/rmanbak/level0//4/controlfil
6、e_c--0209-01'; 使其进入mount状态 查看数据文献 某些命令查看 设立export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' list backup summary; RMAN> list backup of archivelog all summary; RMAN> list backup of archivelog all; 注意只有516和518备份集中有2月9日备份归档 注意恢复时候 可以用 RMAN> restore database preview summary; 这个命令速度不久!
7、 Restore过程,为了加迅速度,因此使用了4个通道。本次开始时间是11:37分。耗时约2小时 run{ allocate channel c1 device type disk; allocate channel c2 device type disk; allocate channel c3 device type disk; allocate channel c4 device type disk; set newname for datafile 1 to '/oradata/orcl/system01.dbf'; set newname for datafile
8、2 to '/oradata/orcl/user02.dbf'; set newname for datafile 3 to '/oradata/orcl/sysaux01.dbf'; set newname for datafile 4 to '/oradata/orcl/users01.dbf'; set newname for datafile 5 to '/oradata/orcl/geostk_detail01.dbf'; set newname for datafile 6 to '/oradata/orcl/geo01.dbf'; set newname fo
9、r datafile 7 to '/oradata/orcl/databxstkmdtl02.dbf'; set newname for datafile 8 to '/oradata/orcl/geoindex03.dbf'; set newname for datafile 9 to '/oradata/orcl/geo05.dbf'; set newname for datafile 10 to '/oradata/orcl/databxsp01.dbf'; set newname for datafile 11 to '/oradata/orcl/databxbatch0
10、1.dbf'; set newname for datafile 12 to '/oradata/orcl/databxrob01.dbf'; set newname for datafile 13 to '/oradata/orcl/databxstkdtl01.dbf'; set newname for datafile 14 to '/oradata/orcl/databxaccdtl01.dbf'; set newname for datafile 15 to '/oradata/orcl/databxstkmdtl01.dbf'; set newname for dataf
11、ile 16 to '/oradata/orcl/bxbb01.dbf'; set newname for datafile 17 to '/oradata/orcl/bxbb02.dbf'; set newname for datafile 18 to '/oradata/orcl/geo02.dbf'; set newname for datafile 19 to '/oradata/orcl/geo03.dbf'; set newname for datafile 20 to '/oradata/orcl/geoindex01.dbf'; set newname for dat
12、afile 21 to '/oradata/orcl/geoindex02.dbf'; set newname for datafile 22 to '/oradata/orcl/undotbs02.dbf'; set newname for datafile 24 to '/oradata/orcl/geo04.dbf'; set newname for datafile 25 to '/oradata/orcl/benetz_todo01.dbf'; set newname for datafile 29 to '/oradata/orcl/undotbs1.dbf'; set
13、newname for datafile 30 to '/oradata/orcl/undotbs2.dbf'; restore database; switch datafile all; release channel c1; release channel c2; release channel c3; release channel c4;} 关于归档 在list backup of archivelog all ;中可以看到 BS Key 518中有2月9日备份归档---- 这是1机归档备份 1 1430 -02-09 01:24
14、13 -02-09 02:48:24 1 1431 -02-09 02:48:24 -02-09 02:48:48 BS Key 516中有2月9日备份归档----这是2机归档备份 2 744 -02-09 02:47:01 -02-09 02:47:23 依照上面可以看到(1,1431,);(2,744,) 因此选取2恢复 RMAN> run{ set until sequence 745 thread 2; recover database; } 在SQL> select THREAD#,SEQUENCE#,NEXT_
15、CHANGE#,name from v$archived_log 中查到 为了完全恢复,则不使用上面until了。 看节点1下归档 为了最大限度恢复 scp 1_143*.dbf :/archive/orcl scp 1_144*.dbf :/archive/orcl 将2.9日备份时间后所有归档都考过了 恢复完后,我建议先备份恢复出来数据文献夹 然后用 sqlplus recover 进行恢复 此时不能打开! alter database rename file '+DG_DATA/orcl/onlinelog/re
16、do06.log'to '/oradata/chunjierac/redo06.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo07.log'to '/oradata/chunjierac/redo07.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo01.log'to '/oradata/chunjierac/redo01.log'; alter database rename file '+DG_DATA/orcl/onlinelog
17、/redo02.log'to '/oradata/chunjierac/redo02.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo03.log'to '/oradata/chunjierac/redo03.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo04.log'to '/oradata/chunjierac/redo04.log'; alter database rename file '+DG_DATA/orcl/online
18、log/redo05.log'to '/oradata/chunjierac/redo05.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo8.log' to '/oradata/chunjierac/redo8.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo9.log' to '/oradata/chunjierac/redo9.log'; alter database rename file '+DG_DATA/orcl/onlin
19、elog/redo10.log'to '/oradata/chunjierac/redo10.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo11.log'to '/oradata/chunjierac/redo11.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo12.log'to '/oradata/chunjierac/redo12.log'; alter database rename file '+DG_DATA/orcl/on
20、linelog/redo13.log'to '/oradata/chunjierac/redo13.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo14.log'to '/oradata/chunjierac/redo14.log'; 查看下 SELECT a.group#,a.member,b.bytes FROM v$logfile a,v$log b WHERE a.group# = b.group#; 后续操作 SQL> select THREAD#,STATUS,ENABL
21、ED from v$thread; SQL> alter database disable thread 2; SQL> select group# from v$log where THREAD#=2; 使用SQL> alter database drop logfile group **** 或者 SQL> alter database clear unarchived logfile group 9; SQL> select group#,member from v$logfile; 对undo 解决: 它redo比较特别,普通都是UND
22、OTBS2 和UNDOTBS1 SQL> drop tablespace UNDOTBS2 including contents and datafiles; SQL>select tablespace_name from dba_tablespaces where contents='UNDO'; 对temp解决: SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- +DG_
23、DATA/orcl/tempfile/temp02.dbf SQL> select tablespace_name from dba_tablespaces where contents='TEMPORARY'; TABLESPACE_NAME ------------------------------ TEMP SQL> create temporary tablespace TEMP1 tempfile '/oradata/****/temp01.dbf' size 100M autoextend off; Tablespace created. SQL
24、> alter database default temporary tablespace TEMP1; Database altered. SQL> drop tablespace TEMP including contents and datafiles; Tablespace dropped. SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /oradata/chunjierac/temp01.dbf 监听配备 orcl = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dg02)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )






