ITPub博客

首页 > 数据库 > Oracle > 异机恢复某用户表空间到单机

异机恢复某用户表空间到单机

原创 Oracle 作者:y81277241 时间:2016-01-18 10:18:45 0 删除 编辑

1 背景描述:
将RAC 某个表空间异机恢复至单实例,以检验数据的可用性。
 
1.1 RACDB数据库基本配置信息
主机  节点1: rac1  操作系统:LIUNX 6.5
         节点2: rac2  操作系统:LIUNX 6.5
数据库版本  Oracle11.2.0.4 RAC
OS用户名/组  uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall),1201(asmdba),1300(dba),1301(oper)
数据库名  yirupay
实例名  rac1
         rac2
数据库字符集  AL32UTF8
数据文件存储方式 ASM
 
1.2 恢复目标机的情况:
主机  rac1  操作系统:LIUNX 6.5
数据库版本  Oracle11.2.0.4 单机
OS用户名/组  uid=501(oracle) gid=500(oinstall) groups=502(dba),503(oper)
数据库名  rac
实例名      rac1
数据库字符集  AL32UTF8
数据文件存储方式 FS
 
2 恢复的相关信息:
2.1 确认备份的脚本是否正确备份

3 恢复的详细步骤
开始恢复:

3.1 在目标机上安装数据库软件,以及创建相应的目录
3.2 通过RMAN恢复spfile
 rman target /
 RMAN> startup force nomount;
 RMAN> restore spfile from '/home/oracle/bk/c-96561339-20160111-00';

3.3 在目标机上修改initRACDB.ora
登录到数据库,生成pfile文件,并编辑,删除与集群即节点2相关参数,修改控制文件及其他目录路径,并根据需求创建相应目录(如闪回区、oracle基础目录)
3.4、启动到 mount
RMAN>sql 'alter database mount';
 
sql statement: alter database mount
released channel: ORA_DISK_1
3.5 注册备份集
catalog backuppiece '/home/oracle/bk/arch_7nqqvstc_1_1_YIRUPAY_20160110';
catalog backuppiece '/home/oracle/bk/arch_7oqqvstd_1_1_YIRUPAY_20160110';
catalog backuppiece '/home/oracle/bk/arch_7pqqvste_1_1_YIRUPAY_20160110';
catalog backuppiece '/home/oracle/bk/arch_83qr2j1c_1_1_YIRUPAY_20160111';
catalog backuppiece '/home/oracle/bk/arch_84qr2j1c_1_1_YIRUPAY_20160111';
catalog backuppiece '/home/oracle/bk/c-96561339-20160111-00';
catalog backuppiece '/home/oracle/bk/full_0_7hqqvssk_1_1_YIRUPAY_20160110';
catalog backuppiece '/home/oracle/bk/full_0_7iqqvssk_1_1_YIRUPAY_20160110';
catalog backuppiece '/home/oracle/bk/full_0_7jqqvssm_1_1_YIRUPAY_20160110';
catalog backuppiece '/home/oracle/bk/full_0_7kqqvssp_1_1_YIRUPAY_20160110';
catalog backuppiece '/home/oracle/bk/full_0_7lqqvst0_1_1_YIRUPAY_20160110';  
catalog backuppiece '/home/oracle/bk/full_1_7tqr2j0t_1_1_YIRUPAY_20160111';
catalog backuppiece '/home/oracle/bk/full_1_7uqr2j0t_1_1_YIRUPAY_20160111';
catalog backuppiece '/home/oracle/bk/full_1_7vqr2j0u_1_1_YIRUPAY_20160111';
catalog backuppiece '/home/oracle/bk/full_1_80qr2j0u_1_1_YIRUPAY_20160111';
catalog backuppiece '/home/oracle/bk/full_1_81qr2j0v_1_1_YIRUPAY_20160111';

RMAN>list backup;

3.4 在目标机上用RMAN恢复
[根据备份信息,恢复数据文件及数据库
RMAN> run{
set newname for datafile 1 to '/oracle/oradata/system01.dbf';
set newname for datafile 2 to '/oracle/oradata/sysaux01.dbf';
set newname for datafile 3 to '/oracle/oradata/undotbs01.dbf';
set newname for datafile 9 to '/oracle/oradata/fcs_data01.dbf';
restore database skip  tablespace ACC_DATA,ACC_IDX,BAT_DATA,BAT_IDX,CHECKACC_DATA,CHECKACC_DATA_IDX,CHECK_ACCOUNT,NOTIFY_USER_DATA,NOTIFY_USER_IDX,PER_DATA,PER_IDX,PER_LOG_DATA,PER_LOG_IDX,USERS,YRF_PAY_DATA,YRF_PAY_IDX,UNDOTBS2,FCS_IDX;
switch datafile all;}

3.5 恢复归档到指定的目录:
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     654
Next log sequence to archive   658
Current log sequence           658
SQL> alter system set log_archive_dest='/oracle/arch';
System altered.
SQL>
恢复节点1的归档日志
run{
  set archivelog destination to '/oracle/arch';
  restore archivelog  sequence between 1753 and 1756 thread 1;
  }
恢复节点2的归档日志
run{
  set archivelog destination to '/oracle/arch';
  restore archivelog sequence between 2045 and 2048 thread 2;}
 
3.6 将redolog改名并清理:
SQL>sqlplus / as sysdba
 
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_1.257.893008511'  to '/oracle/oradata/log/redo1.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_2.258.893008511' to '/oracle/oradata/log/redo2.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_3.259.893008511' to '/oracle/oradata/log/redo3.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_4.260.893009701' to '/oracle/oradata/log/redo4.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_5.261.893009703' to '/oracle/oradata/log/redo5.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_6.262.893009703' to '/oracle/oradata/log/redo6.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_7.264.893776713' to '/oracle/oradata/log/redo7.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_8.265.893776715' to '/oracle/oradata/log/redo8.log';
alter database clear logfile group 1;
alter database clear logfile group 2;
alter database clear logfile group 3;
alter database clear logfile group 4;
alter database clear logfile group 5;
alter database clear logfile group 6;
alter database clear logfile group 7;
alter database clear logfile group 8;
 
3.、修改redo路径和名字
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_1.257.893008511'  to '/oracle/oradata/log/redo1.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_2.258.893008511' to '/oracle/oradata/log/redo2.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_3.259.893008511' to '/oracle/oradata/log/redo3.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_4.260.893009701' to '/oracle/oradata/log/redo4.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_5.261.893009703' to '/oracle/oradata/log/redo5.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_6.262.893009703' to '/oracle/oradata/log/redo6.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_7.264.893776713' to '/oracle/oradata/log/redo7.log';
 alter database rename file '+ASMDATA/yirupay/onlinelog/group_8.265.893776715' to '/oracle/oradata/log/redo8.log';  
  3.8、删除不需要的表空间

alter database datafile 4 offline drop;
alter database datafile 5 offline drop;
alter database datafile 6 offline drop;
alter database datafile 7 offline drop;
alter database datafile 8 offline drop;
alter database datafile 11 offline drop ;
alter database datafile 12 offline drop ;
alter database datafile 13 offline drop ;
alter database datafile 14 offline drop ;
alter database datafile 15 offline drop ;
alter database datafile 16 offline drop ;
alter database datafile 17 offline drop ;
alter database datafile 18 offline drop ;
alter database datafile 19 offline drop ;
alter database datafile 20 offline drop ;
alter database datafile 21 offline drop ;
alter database datafile 22 offline drop ;
alter database datafile 23 offline drop ;  

3.9 打开数据库:
SQL>  recover database using backup controlfile until cancel;
ORA-00279: change 11321006301221 generated at 08/22/201x 02:29:54 needed for
thread 1
ORA-00289: suggestion : /software/oracle/arch/1_660_716919669.dbf
ORA-00280: change 11321006301221 for thread 1 is in sequence #660
Specify log: {=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
 关闭开启BCT
 ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
 alter database enable block change tracking using file '/oracle/arch';
recover database using backup controlfile until cancel;
SQL>  alter database open resetlogs;
Database altered.                                                                
SQL>                                                                                                     
 
3.10 删除多余的线程。
SQL> select THREAD#, STATUS, ENABLED from v$thread;                               
 
   THREAD# STATUS ENABLED
---------- ------ --------
         1 OPEN   PUBLIC
         2 CLOSED PUBLIC
 
SQL> select group# from v$log where thread#=2; --查出可以删除的日志文件.
SQL>ALTER DATABASE DISABLE THREAD 2; --disable将被删除日志文件的thread.
SQL> alter database drop logfile group 3; 删除日志组.
alter database drop logfile group 4;
alter database drop logfile group 5;
alter database drop logfile group 6;
alter database drop logfile group 8;
 
3.11  删除不用的UNDO_TABLESPACE.
SQL> show parameter undo;  --看正在使用的,在前面已经移除了UNDO_TABLESPACES2.
SQL> select tablespace_name from dba_tablespaces where contents='UNDO'; --查UNDO表空间.
SQL>drop tablespace UNDOTABS2 including contents and datafiles; --删除UNDO表空间.
临时表空间处理.
SQL> alter tablespace temp add tempfile  '/oracle/oradata/tempfile
/temp01.dbf' SIZE 200M;
alter database default temporary tablespace temp;

注:以上是异机恢复数据库的部分表空间的具体步骤,从ASM-FS,有问题可以邮件到yuecb@hotmail.com.


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

请登录后发表评论 登录
全部评论

注册时间:2014-03-06

  • 博文量
    30
  • 访问量
    66395