1. 程式人生 > >oracle 12c 多租戶 pdb 恢復(單個pdb數據文件、非系統pdb表空間、整個pdb數據庫)

oracle 12c 多租戶 pdb 恢復(單個pdb數據文件、非系統pdb表空間、整個pdb數據庫)

數據文件 ota ora-01110 創建 正常 方式 cti users rman

環境:數據庫版本 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

實驗準備:
1.-- 數據庫歸檔模式
SQL> select name,log_mode from v$database;
NAME LOG_MODE
--------- ------------
ANDYCDB ARCHIVELOG > 數據庫歸檔模式

2.-- 登錄 PDB 中創建實驗表空間 與 用戶
[[email protected] ~]$ sqlplus [email protected]

/* */:1521/pdb01 as sysdba
SQL>
create tablespace bbb logging datafile ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf‘
size 1m autoextend on next 1m maxsize 2m extent management local;
Tablespace created.
SQL>alter tablespace bbb add datafile ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf‘size 1M
autoextend on next 1m maxsize 2m ;
Tablespace altered.

create user andy identified by andy default tablespace users;
create user bbb identified by bbb default tablespace bbb;
grant dba to andy;
grant dba to bbb;

3.-- 備份整個CDB及其下面的所有PDB
[[email protected]
/* */ ~]$ mkdir /home/oracle/rmanback/
[[email protected] ~]$ rman target /

run{
alter system archive log current;
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup incremental level 0 database plus archivelog delete input
format ‘/home/oracle/rmanback/db_%d_%U‘
tag=db_inc_0;
release channel ch1;
release channel ch2;
}
Finished backup at 12-MAY-17

一、 恢復 PDB 數據文件

數據庫在open的時候,會對當前的數據的所有數據文件進行檢查。
對於system,sysaux和undo表空間的數據文件,如果有問題,數據庫無法open。如果是PDB中某個普通的數據文件出現丟失,我們可以先用offline方式跳過,然後再打數據庫,稍後再對數據文件做恢復:
[[email protected]
/* */ ~]$ sqlplus [email protected]:1521/pdb01 as sysdba
SQL> show con_name
CON_NAME
------------------------------
PDB01
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/andycdb/pdb01/system01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/sysaux01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/undotbs01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf
6 rows selected.

摸擬pdb數據文件 user 刪除
[[email protected] ~]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/
[[email protected] ~]$ mv users01.dbf users01.dbf.bak
-- 模擬業務
C:\Users\andy>sqlplus [email protected]:1521/pdb01
SQL> create table andy as select * from all_objects;
create table andy as select * from all_objects *
ERROR at line 1:
ORA-01116: error in opening database file 12
ORA-01110: data file 12:
‘/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf‘
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
SQL> alter system checkpoint;
System altered.
-- alert_andycdb.log 日誌查看報錯:
ORA-01110: data file 12: ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf‘
ORA-01565: error in identifying file ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf‘
-- 進入 PDB 查看數據文件狀態
SQL>
col name for a60;
select file#,status,name from v$datafile;
FILE# STATUS NAME
---------- ------- ------------------------------------------------------------
9 SYSTEM /home/oracle/app/oracle/oradata/andycdb/pdb01/system01.dbf
10 ONLINE /home/oracle/app/oracle/oradata/andycdb/pdb01/sysaux01.dbf
11 ONLINE /home/oracle/app/oracle/oradata/andycdb/pdb01/undotbs01.dbf
12 ONLINE /home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf
13 ONLINE /home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf
14 ONLINE /home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf
6 rows selected.

說明: 12c r1版本,如果pdb數據文件損壞,會造成 cdb 一起宕機。 12c r2版本 pdb數據文件損壞,cdb 與 pdb 都沒有宕機。
-- 使用 rman 恢復
[[email protected] pdb01]$ rman target [email protected]:1521/pdb01
RMAN> recover datafile 12;
RMAN-06094: datafile 12 must be restored
RMAN> alter database datafile 12 offline;
RMAN> alter database datafile 12 offline;
RMAN> restore datafile 12;
RMAN> recover datafile 12;
Finished recover at 12-MAY-17
然後對數據文件進行online處理
RMAN> alter database datafile 12 online;
Statement processed
-- 模擬業務 成功!
SQL> create table andy as select * from all_objects;
Table created.

二、 恢復 PDB 非系統表空間

實驗: 模擬 PDB 非系統表空間 bbb 損壞。
[[email protected] ~]$ sqlplus [email protected]:1521/pdb01 as sysdba
--查詢表空間情況
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
BBB ONLINE
SQL>
col tablespace_name for a15
col file_name for a55
SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files where tablespace_name=‘BBB‘ ORDER BY tablespace_name;
TABLESPACE_NAME FILE_ID FILE_NAME TOTAL_SPACE
--------------- ---------- ------------------------------------------------------- -----------
BBB 13 /home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf 1
BBB 14 /home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf 1
--模擬表空間損壞
[[email protected] pdb01]$ pwd
/home/oracle/app/oracle/oradata/andycdb/pdb01
[[email protected] pdb01]$ ll bbb*
-rw-r-----. 1 oracle oinstall 1056768 May 12 06:42 bbb02.dbf
-rw-r-----. 1 oracle oinstall 1056768 May 12 06:42 bbb.dbf
[[email protected] pdb01]$ rm -rf bbb*
--模擬業務
C:\Users\andy>sqlplus [email protected]:1521/pdb01
SQL> create table andy as select * from all_objects;
ERROR at line 1:
ORA-01116: error in opening database file 13
ORA-01110: data file 13:
‘/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf‘
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
-- alert_andycdb.log 日誌查看報錯:
ORA-01110: data file 13: ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf‘
ORA-01565: error in identifying file ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf‘
ORA-27037: unable to obtain file status
ORA-01110: data file 14: ‘/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf‘
SQL> alter system checkpoint;
System altered.
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
BBB ONLINE
-- 使用 rman 恢復
[[email protected] pdb01]$ rman target [email protected]:1521/pdb01
RMAN> alter tablespace bbb offline;
ORA-27041: unable to open file
RMAN> alter tablespace bbb offline immediate;
Statement processed
RMAN> recover tablespace bbb;
RMAN-06094: datafile 13 must be restored
RMAN> restore tablespace bbb;
Finished restore at 12-MAY-17
RMAN> recover tablespace bbb;
Finished recover at 12-MAY-17
RMAN> alter tablespace bbb online;
Statement processed
-- 模擬業務 成功!
SQL> create table andy as select * from all_objects where rownum>2;
Table created.

三、 單個PDB數據庫恢復
恢復單個PDB的前提是CDB已經能夠正常啟動,在CDB啟動的情況下在RMAN中采用restore pluggable database pdb名稱指定單個PDB數據庫進行恢復,如下
SQL> show con_name
CON_NAME
------------------------------
PDB01
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_system_dk5wmv0s_.dbf
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_sysaux_dk5wmv11_.dbf
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_users_dk6wky42_.dbf
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_undo_1_dk5wmv13_.dbf
-- 模擬整個 pdb 損壞
[[email protected] datafile]$ cd /home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598
[[email protected] 4ECF8621E3DA38EEE0531019640AA598]$ rm -rf datafile/
SQL> alter system checkpoint;
System altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 MOUNTED
RMAN>restore pluggable database pdb01;
Finished restore at 11-MAY-17
RMAN>recover pluggable database pdb01;
Finished recover at 11-MAY-17
[[email protected] ~]$ sqlplus / as sysdba
SQL> alter pluggable database pdb01 open;
Pluggable database altered.

oracle 12c 多租戶 pdb 恢復(單個pdb數據文件、非系統pdb表空間、整個pdb數據庫)

相關推薦

oracle 12c 租戶 pdb 恢復單個pdb系統pdb空間整個pdb

數據文件 ota ora-01110 創建 正常 方式 cti users rman 環境:數據庫版本 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production實驗準備:1.--

Oracle 12c 租戶 CDB 與 PDB之 shared undo 與 Local undo 切換

方便 12c global database refresh oba 開啟 mod down undo 在12C R1版本中只支持Global Shared Undo模式, 所有container共享一個UNDO表空間, 目前保留這種模式只是為了升級過渡, 在12C R2引

Oracle 12c 租戶在 CDB 中 Plug A PDB,Unplugging A PDB

演示 nco str using edi num pwd 多個 cat Oracle 數據庫 12 c 中介紹了多租戶選項允許單個容器數據庫 (CDB) 來承載多個單獨的可插拔數據庫 (PDB)。本文簡單的演示了如何在 CDB 中 Plug A PDB,Unplugging

Oracle 12c 租戶 CDB 與 PDB 備份

dev sel app 12c cti input tin tag dot 一、 CDB 備份 1.1 只備份CDB 只備份CDB數據庫需要具有SYSDBA或SYSBACKUP權限用戶連接到CDB的root環境下,執行backupdatabase root命令即可完成對

Oracle 12c 租戶專題】PDB的記憶體資源管理

在12.2之前的版本,我們根本沒有辦法控制一個單獨的PDB能使用的記憶體總量。導致的結果就是“一個糟糕的鄰居”可能佔用大量記憶體從而導致同一個例項下其他PDB的效能下降。在Oracle 12.2中,你可以控制某單個PDB能使用的記憶體總量。 如果你的

Oracle 12c 租戶常用管理命令

oracle12c 多租戶 管理命令 --進入cdb sqlplus /nolog conn sys/sys as dba --查看數據庫基本信息select name,cdb from v$database;--查看容器的相關信息select con_id,name from v$cont

Oracle 12C 新特性之 恢復

play 截斷 mman temp 租戶 ict total 重啟 修改表結構 RMAN的表級和表分區級恢復應用場景:1、You need to recover a very small number of tables to a particular point in t

[原創]Oracle 12c的備份和恢復策略

alt star 恢復數據庫 空間 開啟歸檔 acl eas spf bak Oracle 12c的備份和恢復策略(RMAN備份[開啟歸檔/控制文件/數據文件/歸檔日誌]): 備份策略: * 每半年做一個數據庫的全備份(包括所有的數據和只讀表空間) * 每周做一次零

oracle 12C RAC 集群日誌cluster log)目錄

oracle 12C RAC 集群日誌([grid@shurkcs ~]$ adrci ADRCI: Release 12.2.0.1.0 - Production on Thu Mar 1 09:25:45 2018 Copyright (c) 1982, 2017, Oracle and/or its a

Centos 7下安裝Oracle 12c 以及裝後優化附軟

strong 當前 unix kernel immediate .so 大數 相等 圖形化 Oracle 12c 數據庫概述 ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產品,是目前最流行的客戶/服務器(CLIENT/SERV

12c容器導入操作_筆記Linux/oracle借用shell工具導入操作

ftw alt dir acl soft lte counter rst point Linux/oracle借用shell工具導入數據文件操作 一、使用shell工具,遠程連接到Linux下的oracle數據庫服務上 Xshell 6 (Build 0095) Copyr

oracle 12c GI安裝詳細步驟oracle 12C + Grid Infrastructure(GI) + UDEV + ASM +centos6.4

1、前面準備階段部落格: http://blog.csdn.net/kadwf123/article/details/78235488 2、scan初體驗: [[email protected] ~]# nslookup rac4 Server:  &nbs

資料層的租戶淺談SAAS租戶資料庫設計

在上一篇“淺析多租戶在 Java 平臺和某些 PaaS 上的實現”中我們談到了應用層面的多租戶架構,涉及到 PaaS、JVM、OS 等,與之相應的是資料層也有多租戶的支援。 資料層的多租戶綜述 多租戶(Multi Tenancy/Tenant)是一種軟體架構,其定義是: 在一臺伺服器上執行單個應用例項,

Oracle 12c 資料庫備份與恢復

這是一篇學習筆記,在這篇筆記中,對Oracle資料庫和歸檔日誌進行了備份,然後將資料庫刪掉。之後通過恢復spfile+恢復控制檔案+restore資料庫+recover資料庫的方式進行了恢復。環境: Oracle 12.2.0.1.0 on LINUX準備工作: 資料庫為歸檔

oracle 12c RMAN異機恢復還原RAC叢集(ASM)為單例項(檔案系統)記錄

CONFIGURE CONTROLFILE AUTOBACKUP ON備份集準備 backup database format '/home/databak/whole_%d_%U'; backup spfile format '/home/databak/spfile_%

oracle 12c企業版 收費標準2017.7月

一、Ocacle  12c c:cloud  雲端計算 10g,11g   g:grid    網格運算,分散式計算 9i   i:internet    表明當時是internet概念盛行的年

Oracle 12C 新特性之在線重命名遷移活躍的

查看 查詢 存在 data gop ddl ins aux 正在 Oracle 數據庫 12c 版本中對數據文件的遷移或重命名不再需要太多繁瑣的步驟,可以使用 ALTER DATABASE MOVE DATAFILE 這樣的 SQL 語句對數據文件進行在線重命名和移動。而當

Linux下Oracle 被物理誤刪除的恢復

oracle linux 數據文件被物理誤刪除的恢復 #加深對Linux句柄的理解/緊急情況下Oracle的快速恢復不同於從Oracle中drop掉數據文件,在某些情況下,可能會遇到數據庫在運行時數據文件在操作系統級別被刪除,而此時Oracle實例並未崩潰,仍然處於open狀態。此時就要求盡量在最

oracle誤刪除在線恢復方法

便是 ora rwx 重啟 信息 緩沖 grep offline bdump oracle誤刪除數據文件在線恢復方法 如果因為操作系統rm命令或者數據庫語句誤刪除Oracle數據庫的數據文件,**並且數據庫未重啟的話**,可以使用利用**文件描述符的方式**來進行恢復。 ①

oracle rman恢復路徑不一致

over ora release 後臺 tar rod ada backup alloc 編輯恢復腳本:vi recover.txt run{allocate channel c1 type sbt;allocate channel c2 type sbt;allocate