资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
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 dblv0_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/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'
*.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=
*.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/controlfile_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; 这个命令的速度很快!
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 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/geo 01.dbf';
set newname for datafile 7 to '/oradata/orcl/databxstkmdtl02.dbf';
set newname for datafile 8 to '/oradata/orcl/geo index03.dbf';
set newname for datafile 9 to '/oradata/orcl/geo 05.dbf';
set newname for datafile 10 to '/oradata/orcl/databxsp01.dbf';
set newname for datafile 11 to '/oradata/orcl/databxbatch01.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 datafile 16 to '/oradata/orcl/bxbb01.dbf';
set newname for datafile 17 to '/oradata/orcl/bxbb02.dbf';
set newname for datafile 18 to '/oradata/orcl/geo 02.dbf';
set newname for datafile 19 to '/oradata/orcl/geo 03.dbf';
set newname for datafile 20 to '/oradata/orcl/geo index01.dbf';
set newname for datafile 21 to '/oradata/orcl/geo index02.dbf';
set newname for datafile 22 to '/oradata/orcl/undotbs02.dbf';
set newname for datafile 24 to '/oradata/orcl/geo 04.dbf';
set newname for datafile 25 to '/oradata/orcl/benetz_todo01.dbf';
set newname for datafile 29 to '/oradata/orcl/undotbs1.dbf';
set 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: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_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/redo06.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/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/onlinelog/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/onlinelog/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/onlinelog/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, ENABLED 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比较特别, 一般的都是UNDOTBS2 和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_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> 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)
)
)
展开阅读全文