ITPub博客

首页 > 数据库 > Oracle > rac恢复到单机

rac恢复到单机

原创 Oracle 作者:邪丶坏人 时间:2021-04-20 09:16:22 0 删除 编辑

背景:因汛期将至,客户需要做数据库灾难演练,生产库数据量不大,就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

 

然后重启下数据库,看是否有问题。

至此,数据库已恢复完毕。

 

 




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

下一篇: 联合索引测试
请登录后发表评论 登录
全部评论
多年的DBA从业经验,有扎实的linux和Oracle运维和故障处理的能力; 对oracle rac,adg,ogg,rman备份恢复,异机恢复,分区表,数据迁移,sql优化,版本升级,数据库架构设计,故障处理都较为熟练

注册时间:2016-04-01

  • 博文量
    53
  • 访问量
    124332