Oracle 12.2.0.1.0 PDB丢失数据文件对CDB的影响

Oracle 12.2.0.1.0 PDB丢失数据文件对CDB的影响

 

Oracle 12.1.0.1.0版本时:

当某一个PDB数据库丢失数据文件后,可能会导致所有整个CDB数据库宕机;

主要是_datafile_write_errors_crash_instance参数导致的,默认为true;

其中:

12.1版本多租户可以包含252PDB

12.2版本多租户可以包含4096PDB

如果因为其中一个PDB异常导致整个CDB都宕机,显然是不合理的;

因此在12.2.0.1版本,修复了这个问题;

实验如下:

OS:

[root@chenjch ~]# cat /etc/issue

Red Hat Enterprise Linux Server release 6.3 (Santiago)

Kernel \r on an \m

DB:Oracle 12.2.0.1.0

12.2.0.1.0版本_datafile_write_errors_crash_instance参数默认值也是TRUE;

SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ

  FROM SYS.x$ksppi x, SYS.x$ksppcv y

 WHERE x.inst_id = USERENV('Instance')

   AND y.inst_id = USERENV('Instance')

   AND x.indx = y.indx

   AND x.ksppinm LIKE '%_datafile_write_errors_crash_instance%';


数据库启用归档模式;

SQL> archive log list;

Database log mode             Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     3

Next log sequence to archive   5

Current log sequence           5

实验之前先用RMANPDB做全库备份

[oracle12@chenjch ~]$ rman target /

RMAN> backup pluggable database orclpdb;

RMAN 12C 备份

备份全部的数据库(包括CDB)

RMAN> BACKUP DATABASE;

只备份CDB

RMAN> BACKUP DATABASE ROOT;

只备份PDB(一个或多个)

rman target=sys/oracle@pdb1

RMAN> BACKUP DATABASE;

或者

rman target /

RMAN> BACKUP PLUGGABLE DATABASE orclpdb;

多个数据库备份

RMAN> BACKUP PLUGGABLE DATABASE pdb1,pdb2;

删除或重命名orclpdb下的system01.dbf数据文件

[oracle12@chenjch orclpdb]$ pwd

/u01/app/oracle12/oradata/orcl/orclpdb

[oracle12@chenjch orclpdb]$ mv system01.dbf system01.dbf_bak


手动生成检查点

SQL> conn /as sysdba

SQL> alter system checkpoint;

查看警告日志

[root@chenjch trace]# pwd

/u01/app/oracle12/diag/rdbms/orcl/orcl/trace


[root@chenjch trace]# tail -f alert_orcl.log

2017-04-16T15:22:21.522848+08:00

Errors in file /u01/app/oracle12/diag/rdbms/orcl/orcl/trace/orcl_ckpt_9896.trc:

ORA-01243: system tablespace file suffered media failure

ORA-01116: error in opening database file 9

ORA-01110: data file 9: '/u01/app/oracle12/oradata/orcl/orclpdb/system01.dbf'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

2017-04-16T15:22:21.523233+08:00

Internal PDB shutdown abort of ORCLPDB (container=3)

ORCLPDB(3):JIT: pid 9866 requesting stop

2017-04-16T15:22:21.707754+08:00

Errors in file /u01/app/oracle12/diag/rdbms/orcl/orcl/trace/orcl_m000_10474.trc:

ORA-01110: data file 9: '/u01/app/oracle12/oradata/orcl/orclpdb/system01.dbf'

ORA-01565: error in identifying file '/u01/app/oracle12/oradata/orcl/orclpdb/system01.dbf'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 7

2017-04-16T15:22:22.222205+08:00

Errors in file /u01/app/oracle12/diag/rdbms/orcl/orcl/trace/orcl_m000_10474.trc:

ORA-01110: data file 10: '/u01/app/oracle12/oradata/orcl/orclpdb/sysaux01.dbf'

ORA-01208: data file is an old version - not accessing current version

2017-04-16T15:22:22.474543+08:00

Errors in file /u01/app/oracle12/diag/rdbms/orcl/orcl/trace/orcl_m000_10474.trc:

ORA-01110: data file 11: '/u01/app/oracle12/oradata/orcl/orclpdb/undotbs01.dbf'

ORA-01208: data file is an old version - not accessing current version

2017-04-16T15:22:22.694146+08:00

Errors in file /u01/app/oracle12/diag/rdbms/orcl/orcl/trace/orcl_m000_10474.trc:

ORA-01110: data file 12: '/u01/app/oracle12/oradata/orcl/orclpdb/users01.dbf'

ORA-01208: data file is an old version - not accessing current version


此时CDB仍是OPEN状态,并没有自动关闭实例;

SQL> select status from v$instance;

STATUS

------------

OPEN


PDB数据库处于mount状态,并且无法open

SQL> alter session set container=orclpdb;

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

         3 ORCLPDB                        MOUNTED

SQL> startup

ORA-01113: file 12 needs media recovery

ORA-01110: data file 12: '/u01/app/oracle12/oradata/orcl/orclpdb/users01.dbf'

SQL> recover database;

ORA-00283: recovery session canceled due to errors

ORA-01110: data file 9: '/u01/app/oracle12/oradata/orcl/orclpdb/system01.dbf'

ORA-01157: cannot identify/lock data file 9 - see DBWR trace file

ORA-01110: data file 9: '/u01/app/oracle12/oradata/orcl/orclpdb/system01.dbf'


SQL> recover datafile 9;

ORA-00283: recovery session canceled due to errors

ORA-01110: data file 9: '/u01/app/oracle12/oradata/orcl/orclpdb/system01.dbf'

ORA-01157: cannot identify/lock data file 9 - see DBWR trace file

ORA-01110: data file 9: '/u01/app/oracle12/oradata/orcl/orclpdb/system01.dbf'


恢复system01.dbf数据文件

(1) 离线损失数据文件

SQL> alter database datafile 9 offline;

(2)rman执行恢复操作

[oracle12@chenjch ~]$ rman target /

RMAN> restore datafile 9;

RMAN> recover datafile 9;


(3)online受损文件,启动pdb;

SQL> alter session set container=orclpdb;

SQL> startup

ORA-01147: SYSTEM tablespace file 9 is offline

SQL> alter database datafile 9 online;

SQL> startup

ORA-01113: file 12 needs media recovery

ORA-01110: data file 12: '/u01/app/oracle12/oradata/orcl/orclpdb/users01.dbf'


SQL> recover database;

Media recovery complete.

SQL> startup

Pluggable Database opened.

 

 

 

 

 

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

转载于:http://blog.itpub.net/29785807/viewspace-2137363/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值