rac恢复到单机

来源:这里教程网 时间:2026-03-03 16:38:36 作者:

背景:因汛期将至,客户需要做数据库灾难演练,生产库数据量不大,就100多G 前提:一定要保证有备份,以及相应的环境 过程: 一、 找一台linux 系统安装数据库

源库为rhel6.10 系统下的 oracle 11.2.0.4 rac 双节点,目标环境也需要安装一个 11.2.0.4 的数据库

上传安装包到目标系统上,改参数+ 配置环境变量 + 安装数据库大概需要 20 分钟

2021 4 19 15:10:54  ~ 2021 4 19 15:26:07 安装数据库

一、 开始恢复数据库

1、 把源库完整的数据库备份+ 归档备份 ( 或者归档 ) 传输到目标环境 31.16.7.152 ,备份大概为 120G( 备份会随着数据库数据的变多而增加,数据量影响恢复时间 )

传输备份需要25 分钟左右

拷贝备份过去

2021 4 19 15:30:15  ~ 2021 4 19 15:52:28

   

2、 更改参数文件里的配置,确保dbname 和之前一样,然后用新的参数文件启动数据库

2021 4 19 16:06:52

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup nomount pfile='/home/oracle/u01/app/oracle/product/11.2.0.4/db_h/dbs/initdfcdata.ora';

 

3、 然后恢复控制文件

   

启动到mount 后,因为源数据有其他备份,在新环境用不了,清理掉那些无效备份,然后注册刚才传输过来的备份

    crosscheck backup;    delete expired backup;

    catalog start with '/home/oracle/rman_back/';

 

 

 

 

4 、源环境和目标环境存储方式不一样,一个 asm ,一个文件系统,所以需转换一下数据文件的存储地方

 

 

 

5、 开始恢复数据库

 

 

  此时可以观察告警日志,里面会显示正在恢复哪个文件   等待他恢复完成   然后recover 数据库 RUN{set until sequence 46632 thread 1;set until sequence 52198 thread 2;recover database;}   最后启动数据库     扫尾工作: 因为源库是rac ,所以需要清理多余的 redo 组和 undo ,重建 temp 表空间   SQL>  col instance format a8 SQL> select thread#,instance,status,enabled from v$thread;    THREAD# INSTANCE STATUS ENABLED ---------- -------- ------ --------  1 dfcdata  OPEN   PUBLIC  2 dfcdata2 CLOSED PUBLIC SQL>  select group#,thread#,archived,status from v$log;     GROUP#    THREAD# ARC STATUS ---------- ---------- --- ----------------  1     1 YES ACTIVE  2     1 NO  CURRENT  3     1 YES UNUSED 10     2 YES INACTIVE 11     2 YES UNUSED 12     2 YES UNUSED 6 rows selected. SQL> alter database disable thread 2 ; SQL>  select name from v$tablespace where name like 'UNDO%'; SQL>   show parameter undo_tablespace; SQL> drop tablespace undotbs2 including contents and datafiles;     恢复完成 2021 4 19 16:51:11   然后重启下数据库,看是否有问题。 至此,数据库已恢复完毕。    

相关推荐