最近单位在整合oracle 10g数据库,将许多不常用的小库合并到一个大库中(oracle10g)。这里的大小指的是数据少,并发低的数据库。 整合方案有两种,一种是在一套10gRAC中创建多个实例,每个实例对应整合前的数据库。另一种方案是在RAC中之创建一个实例,将整合进来的小库转换成同名的表空间。这两种做法各有优缺点,给我的感觉第二种做法更像是12C的多租户模式。 可能有反对的意见,认为第一种方式才更接近于多租户的方式,因为每个整合过来的数据库都是一个独立的instance,独立的instance具备独立的系统表空间,redo日志.... 这个没错。 我们可以通过一个实验,看看12c自己是怎么说的,看看它(CDB)自己是怎样看待PDB的。

实验步骤如下:

1. 创建pdb1的rman备份

2. rm pdb1的数据文件

3. 重启pdb1数据库

4. 使用oracle advise方式自我诊断,自我修复。 advise就是oracle的语言,看看它怎么说。

Let’s get started.

(1)使用sysdba权限登录rman

[oracle@snow ~]$rman target /

Recovery Manager: Release 12.1.0.1.0 - Production on Mon May 4 07:35:00 2015

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CDB (DBID=1995215983)

(2)12c中支持RMAN中直接写SQL语句,在此出查询当前的pdb状况

RMAN>select name,total_size/1024/1024 mb,open_mode from v$pdbs;

using target database control file instead of recovery catalog

NAME                                   MB OPEN_MODE

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

PDB$SEED                              270 READ ONLY

PDB1                                  385 READ WRITE

PDB2                                  275 READ WRITE

(3)采用传统的方式备份可插拔库pdb1

RMAN>backup pluggable database pdb1 include current controlfile plus archivelog;

(4)人为删除pdb1在磁盘上的物理文件,破坏该数据库

[oracle@snow cdb]$ cd pdb1

[oracle@snow pdb1]$ ll

total 1874840

-rw-r----- 1 oracle oinstall 374874112 May  4 07:35 example01.dbf

-rw-r----- 1 oracle oinstall 558899200 May  3 09:00 pdb1_temp01.dbf

-rw-r----- 1 oracle oinstall   5251072 May  4 07:35 SAMPLE_SCHEMA_users01.dbf

-rw-r----- 1 oracle oinstall 734011392 May  4 07:35 sysaux01.dbf

-rw-r----- 1 oracle oinstall 283123712 May  4 07:35 system01.dbf

[oracle@snow pdb1]$rm -rf *

(5)关闭可插拔数据库pdb1

RMAN>alter pluggable database pdb1 close;

Statement processed

(6)重新打开可插拔数据库pdb1,报错。 在这里并没有像以往的数据库提示system01.dbf 如何如何,而是提示这个非重要表空间。

RMAN> alter pluggable database pdb1 open;

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of sql statement command at 05/04/2015 07:41:10

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

ORA-01110: data file 11: '/home/oracle/dbfile/cdb/pdb1/example01.dbf'

(7)使用oracle的advise方式检查错误

RMAN>list failure;

Database Role: PRIMARY

List of Database Failures

=========================

Failure ID Priority Status    Time Detected Summary

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

3082       CRITICAL OPEN      04-MAY-15     System datafile 8: '/home/oracle/dbfile/cdb/pdb1/system01.dbf' is missing

8          HIGH     OPEN      04-MAY-15     One or more non-system datafiles are missing

(8)继续使用oracle的advise来给出恢复建议

RMAN>advise failure;

Database Role: PRIMARY

List of Database Failures

=========================

Failure ID Priority Status    Time Detected Summary

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

3082       CRITICAL OPEN      04-MAY-15     System datafile 8: '/home/oracle/dbfile/cdb/pdb1/system01.dbf' is missing

8          HIGH     OPEN      04-MAY-15     One or more non-system datafiles are missing

analyzing automatic repair options; this may take some time

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=42 device type=DISK

analyzing automatic repair options complete

Mandatory Manual Actions

========================

no manual actions available

Optional Manual Actions

=======================

1. If file /home/oracle/dbfile/cdb/pdb1/system01.dbf was unintentionally renamed or moved, restore it

2. Automatic repairs may be available if you shutdown the database and restart it in mount mode

3. If file /home/oracle/dbfile/cdb/pdb1/sysaux01.dbf was unintentionally renamed or moved, restore it

4. If file /home/oracle/dbfile/cdb/pdb1/SAMPLE_SCHEMA_users01.dbf was unintentionally renamed or moved, restore it

5. If file /home/oracle/dbfile/cdb/pdb1/example01.dbf was unintentionally renamed or moved, restore it

Automated Repair Options

========================

Option Repair Description

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

1      Restore and recover datafile 8; Restore and recover datafile 9; Restore and recover datafile 10; ...

Strategy: The repair includes complete media recovery with no data loss

Repair script: /u01/app/oracle/diag/rdbms/cdb/cdb/hm/reco_383443975.hm

(9)根据提示,查看一下恢复脚本。发现并没有看到我预期的语法,如:

restore pluggable database pdb1

recover pluggable database pdb1

alter pluggable database pdb1 open

而是基于数据文件号来恢复的。从这个角度看,pdb更像是表空间了,而不是数据库。如果在oracle 11g中使用advise是不会出现下面的datafile 8,9,..offline的。这就是我开篇提到的那种感觉

[oracle@snow pdb1]$cat /u01/app/oracle/diag/rdbms/cdb/cdb/hm/reco_383443975.hm

# restore and recover datafile

sql 'PDB1' 'alter database datafile 8, 9, 10, 11 offline';

restore ( datafile 8, 9, 10, 11 );

recover datafile 8, 9, 10, 11;

sql 'PDB1' 'alter database datafile 8, 9, 10, 11 online';

(10)执行oracle的advise恢复脚本

RMAN>repair failure;

Strategy: The repair includes complete media recovery with no data loss

Repair script: /u01/app/oracle/diag/rdbms/cdb/cdb/hm/reco_383443975.hm

contents of repair script:

# restore and recover datafile

sql 'PDB1' 'alter database datafile 8, 9, 10, 11 offline';

restore ( datafile 8, 9, 10, 11 );

recover datafile 8, 9, 10, 11;

sql 'PDB1' 'alter database datafile 8, 9, 10, 11 online';

Do you really want to execute the above repair (enter YES or NO)?yes

executing repair script

sql statement: alter database datafile 8, 9, 10, 11 offline

Starting restore at 04-MAY-15

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_DISK_1: restoring datafile 00008 to /home/oracle/dbfile/cdb/pdb1/system01.dbf

channel ORA_DISK_1: restoring datafile 00009 to /home/oracle/dbfile/cdb/pdb1/sysaux01.dbf

channel ORA_DISK_1: restoring datafile 00010 to /home/oracle/dbfile/cdb/pdb1/SAMPLE_SCHEMA_users01.dbf

channel ORA_DISK_1: restoring datafile 00011 to /home/oracle/dbfile/cdb/pdb1/example01.dbf

channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/12.1.0.1/db_1/dbs/3fq62sqs_1_1

channel ORA_DISK_1: piece handle=/u01/app/oracle/product/12.1.0.1/db_1/dbs/3fq62sqs_1_1 tag=TAG20150504T073556

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:00:07

Finished restore at 04-MAY-15

Starting recover at 04-MAY-15

using channel ORA_DISK_1

starting media recovery

media recovery complete, elapsed time: 00:00:00

Finished recover at 04-MAY-15

sql statement: alter database datafile 8, 9, 10, 11 online

repair failure complete

(11)恢复完成后CDB并不会将PDB置为open状态,需要我们手工open

RMAN> list failure;

Database Role: PRIMARY

no failures found that match specification

RMAN> select name,open_mode from v$pdbs;

NAME                           OPEN_MODE

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

PDB$SEED                       READ ONLY

PDB1                           MOUNTED

PDB2                           READ WRITE

RMAN>alter pluggable database pdb1 open;

Statement processed

全文完

oracle 12c pdb 备份,12c PDB备份与恢复初体验相关推荐

  1. 数据是企业的无价财富——爱数备份存储柜服务器的初体验(图文)

    很早就像上这样一套数据备份系统,每天采用原来的软件备份加手动备份的方式,总有些不是太方便的地方.加上企业规模的不断扩大,系统的增多,业务数据也日显重要,容不得半点中断和数据丢失.这不,出于对系统数据的 ...

  2. 数据是企业的无价財富——爱数备份存储柜server的初体验(图文)

    非常早就像上这样一套数据备份系统,每天採用原来的软件备份加手动备份的方式,总有些不是太方便的地方. 加上企业规模的不断扩大,系统的增多,业务数据也日显重要.容不得半点中断和数据丢失.这不,出于对系统数 ...

  3. oracle pdb还原为no-cdb,oracle 12c中CDB和PDB的备份还原实验

    本文档分为两部分: 1.单个pdb备份还原 2.只cdb备份还原 1.rman只备份pdb SQL> show pdbs CON_ID CON_NAME                      ...

  4. Oracle 12c系列(二)|PDB的创建

    PDB数据库的创建可以从现存的数据库中复制数据文件,包括种子容器.可插拔数据库.non-CDB数据库,创建时可以使用CREATE PLUGGABLE.RMAN.DBCA以及EM等. 在12.1版本中在 ...

  5. Oracle二三事之 12c 可插拔数据库PDB

    2019独角兽企业重金招聘Python工程师标准>>> 针对Oracle 12c数据库测试用户的一份调查显示,新版本中他们认为最强大的功能就是PDB.就如同服务器虚拟化技术从底层硬件 ...

  6. Oracle 12C 多种方式创建PDB

    1.从PDB$SEED创建新PDB SQL> create pluggable database PDB3 admin user pdb3admin identified by oracle f ...

  7. Oracle二三事之 12c 可插拔数据库PDB

    针对Oracle 12c数据库测试用户的一份调查显示,新版本中他们认为最强大的功能就是PDB.就如同服务器虚拟化技术从底层硬件层面将操作系统抽象出来一样,Oracle 12c中的PDB就是从管理系统中 ...

  8. Oracle 12c R1 Plug/Unplug 迁移PDB实验(1): 插拔 RAC PDB到 Non-RAC PDB

    实验目标: 将RAC环境的PDB插拔后迁移到非RAC环境 实验环境: 数据库:Oracle 12c R1 操作系统:Oracle Linux 7.3 实验步骤: 1.源端环境准备 为本次实验克隆一个P ...

  9. abort oracle,Oracle 12c 多租户:PDB 支持 abort 关闭么?

    Oracle 12c 多租户:PDB 支持 abort 关闭么? 在Oracle 12c的考试中,有这样一道题目: When executing shutdown abort in a pluggab ...

最新文章

  1. html语言书写注意事项,CSS命名规范参考及书写注意事项
  2. 百度AI快车道—企业深度学习实战营,推荐系统主题专场即将开课
  3. svn提示服务器禁止修改目录,SVN Eclipse插件中如何忽略对服务器已有文件修改后的提交...
  4. JS最流行Rust最受喜爱Clojure最赚钱,PHP:那我走?|2021年全球开发者报告
  5. EasyExcel实现写操作
  6. Centos 6.2 单网卡安装pptpd 经验
  7. 谈谈Linux的栈回溯与妙用
  8. Android应用程序开发以及背后的设计思想深度剖析(5)
  9. 知识图谱+Recorder︱中文知识图谱API与工具、科研机构与算法框架
  10. 邮递员问题java实现_中国邮递员问题算法.PPT
  11. WPS word文档_页眉页脚横线的添加和删除
  12. 仿牛客社区项目3.2——发布帖子(异步通信技术AJAX)
  13. Elasticsearch核心知识点大全
  14. 在阿里 AI Lab 做 NLP 高级算法专家是一种什么样的体验?
  15. 数据分析师发展前景怎么样?
  16. 腾讯发布的开发语言安全指南:Javascript安全指南
  17. 重要消息总遗漏?机器人插件显神通!
  18. 百度地图案例-修改地图样式
  19. java 自动行高,20191012——POI设置单元格自动行高(思路)
  20. 易通超市(百货版) 2009 注册机

热门文章

  1. python哈姆雷特词频统计_人生苦短我用Python——哈姆雷特词频统计
  2. 微软亚洲研究院实习生面试
  3. 数人云|PaaS Innovation 2017开幕在即,共襄技术演进与商业碰撞盛宴
  4. 【STM32】STM32CUBEMX + ADC(单通道,双通道DMA)
  5. “指针”和“指针变量”的区别
  6. PhotoShop常用的快捷键及 瘦身
  7. 【JavaScript--React】本篇文章将带你体验不同于vue框架的react框架
  8. Mac教程macOS教程 苹果电脑教程
  9. 费城交响乐团将于5月16日至28日开启2019年中国巡演之旅
  10. clr错误 8004005程序将立即终止是什么原因 | clr80004005错误修复方法