共計 8792 個字符,預計需要花費 22 分鐘才能閱讀完成。
本篇內容主要講解“怎么將 Linux 上的 PDB 數據庫傳輸到 windows 的 CDB 數據庫”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“怎么將 Linux 上的 PDB 數據庫傳輸到 windows 的 CDB 數據庫”吧!
為了將整個 PDB 傳輸到不同的平臺,源平臺與目標平臺必須使用相同的字節序。compatible 參數在源 CDB 數據庫與目標 CDB 數據庫中必須設置為 12.1 或更高版本。
下面的例子將 Linux 平臺上的 RAC CDB 中的 PDB 數據庫 (jypdb 與 testpdb) 傳輸到 windows 平臺上的單實例 CDB 數據庫中。執行跨平臺傳輸的操作如下:
1. 檢查源數據庫與目標數據庫的 compatible 參數是否設置為 12.0.0 或更高版本
源數據庫
SQL show parameter compatible
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 12.2.0
noncdb_compatible boolean FALSE
目標數據庫
SQL show parameter compatible
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 12.2.0
noncdb_compatible boolean FALSE
2. 檢查源平臺與目標平臺的字節序
源平臺
SQL select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name;
PLATFORM_NAME ENDIAN_FORMAT
----------------------------------------------------------------------------------------------------- --------------
Linux x86 64-bit Little
目標平臺
SQL select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name;
PLATFORM_NAME ENDIAN_FORMAT
-------------------------------------------------------------------------------- --------------
Microsoft Windows x86 64-bit Little
3. 將要被傳輸的 pdb(jypdb,testpdb)設置為只讀狀態
SQL alter pluggable database all close immediate;
Pluggable database altered.
SQL set long 200
SQL set linesize 200
SQL select name,open_mode from v$pdbs;
NAME OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
PDB$SEED READ ONLY
JYPDB MOUNTED
TESTPDB MOUNTED
4. 備份要傳輸的 PDB 數據庫,可以使用以下一種方法來跨平臺傳輸 PDB
4.1 使用 RMAN 連接到 CDB 的 root 容器,并使用 backup for transport … pluggable database 或者 backup to platform … pluggable database 命令來為 PDB 創建跨平臺備份。
4.2 使用 RMAN 連接到 PDB,并使用 backup for transport 或 backup to platform 命令來為 PDB 創建跨平臺備份。
因為我這里要傳輸兩個 PDB 所以選擇第一種方法
RMAN backup for transport unplug into /ora_backup/tpdbs/metadata_jypdb.xml pluggable database jypdb format /ora_backup/tpdbs/pdb_%U
Starting backup at 11-FEB-18
using channel ORA_DISK_1
running UNPLUG on the specified pluggable database: JYPDB
UNPLUG file path : /ora_backup/tpdbs/metadata_jypdb.xml
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00014 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/users.278.962209649
input datafile file number=00011 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/sysaux.316.962209649
input datafile file number=00012 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undotbs1.264.962209649
input datafile file number=00013 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undo_2.268.962209649
input datafile file number=00010 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/system.271.962209649
input datafile file number=00015 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/test.275.962210609
input datafile file number=00022 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353
input datafile file number=00023 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783
channel ORA_DISK_1: starting piece 1 at 11-FEB-18
channel ORA_DISK_1: finished piece 1 at 11-FEB-18
piece handle=/ora_backup/tpdbs/pdb_8csqvqc5_1_1 tag=TAG20180211T173748 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:56
Finished backup at 11-FEB-18
starting full resync of recovery catalog
full resync complete
RMAN backup for transport unplug into /ora_backup/tpdbs/metadata_testpdb.xml pluggable database testpdb format /ora_backup/tpdbs/pdb_%U
Starting backup at 11-FEB-18
starting full resync of recovery catalog
full resync complete
using channel ORA_DISK_1
running UNPLUG on the specified pluggable database: TESTPDB
UNPLUG file path : /ora_backup/tpdbs/metadata_testpdb.xml
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00017 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/sysaux.259.962469409
input datafile file number=00018 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undotbs1.265.962469409
input datafile file number=00016 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/system.260.962469409
input datafile file number=00019 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undo_2.266.962469409
input datafile file number=00021 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/test.269.962469409
input datafile file number=00020 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/users.267.962469409
channel ORA_DISK_1: starting piece 1 at 11-FEB-18
channel ORA_DISK_1: finished piece 1 at 11-FEB-18
piece handle=/ora_backup/tpdbs/pdb_8dsqvqpj_1_1 tag=TAG20180211T174458 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
Finished backup at 11-FEB-18
starting full resync of recovery catalog
full resync complete
total 1707488
-rw-r--r-- 1 oracle asmadmin 11413 Feb 11 11:38 metadata_jypdb.xml
-rw-r----- 1 oracle asmadmin 1038368768 Feb 11 11:39 pdb_8csqvqc5_1_1
-rw-r--r-- 1 oracle asmadmin 9569 Feb 11 11:45 metadata_testpdb.xml
-rw-r----- 1 oracle asmadmin 710066176 Feb 11 11:45 pdb_8dsqvqpj_1_1
5. 將在源平臺上使用 rman backup 命令生成的備份集與備份的控制文件傳輸到目標平臺的 D:\app\oracle\oradata\pdbs 目錄中
6. 將 PDB(jypdb,testpdb)還原到目標數據庫
RMAN restore from platform Linux x86 64-bit foreign pluggable database jypdb to new from backupset D:\app\oracle\oradata\pdbs\pdb_8csqvqc5_1_1
從位于 11- 2 月 -18 的 restore 開始
使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=1522 設備類型 =DISK
通道 ORA_DISK_1: 正在開始還原數據文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數據文件
通道 ORA_DISK_1: 正在還原備份片段中的所有外部文件
通道 ORA_DISK_1: 正在讀取備份片段 D:\app\oracle\oradata\pdbs\pdb_8csqvqc5_1_1
通道 ORA_DISK_1: 將外部文件 14 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_USERS_F805GPMS_.DBF
通道 ORA_DISK_1: 將外部文件 11 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_SYSAUX_F805GPMS_.DBF
通道 ORA_DISK_1: 將外部文件 12 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_UNDOTBS1_F805GPMS_.DBF
通道 ORA_DISK_1: 將外部文件 13 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_UNDO_2_F805GPMS_.DBF
通道 ORA_DISK_1: 將外部文件 10 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_SYSTEM_F805GPN8_.DBF
通道 ORA_DISK_1: 將外部文件 15 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_TEST_F805GPN8_.DBF
通道 ORA_DISK_1: 將外部文件 22 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_TTS_F805GPN8_.DBF
通道 ORA_DISK_1: 將外部文件 23 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_CS_F805GPN8_.DBF
通道 ORA_DISK_1: 外部片段句柄 = D:\app\oracle\oradata\pdbs\pdb_8csqvqc5_1_1
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時: 00:00:36
在 11- 2 月 -18 完成了 restore
RMAN restore from platform Linux x86 64-bit foreign pluggable database testpdb to new from backupset D:\app\oracle\oradata\pdbs\pdb_8dsqvqpj_1_1
從位于 11- 2 月 -18 的 restore 開始
使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=1522 設備類型 =DISK
通道 ORA_DISK_1: 正在開始還原數據文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數據文件
通道 ORA_DISK_1: 正在還原備份片段中的所有外部文件
通道 ORA_DISK_1: 正在讀取備份片段 D:\app\oracle\oradata\pdbs\pdb_8dsqvqpj_1_1
通道 ORA_DISK_1: 將外部文件 17 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_SYSAUX_F806C6WT_.DBF
通道 ORA_DISK_1: 將外部文件 18 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_UNDOTBS1_F806C6WT_.DBF
通道 ORA_DISK_1: 將外部文件 16 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_SYSTEM_F806C6WT_.DBF
通道 ORA_DISK_1: 將外部文件 19 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_UNDO_2_F806C6XB_.DBF
通道 ORA_DISK_1: 將外部文件 21 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_TEST_F806C6XB_.DBF
通道 ORA_DISK_1: 將外部文件 20 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_USERS_F806C6XB_.DBF
通道 ORA_DISK_1: 外部片段句柄 = D:\app\oracle\oradata\pdbs\pdb_8dsqvqpj_1_1
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時: 00:00:26
在 11- 2 月 -18 完成了 restore
7. 在目標主機上修改 metadata_jypdb.xml 與 metadata_testpdb.xml 文件將數據文件路徑修改為還原后數據文件所在路徑
8. 將傳輸過來的 PDB(jypdb,testpdb)插入 CDB
SQL create pluggable database jypdb using D:\app\oracle\oradata\pdbs\metadata_jypdb.xml nocopy;
插接式數據庫已創建。
SQL create pluggable database testpdb using D:\app\oracle\oradata\pdbs\metadata_testpdb.xml nocopy ;
插接式數據庫已創建。SQL set long 200
SQL set linesize 200
SQL select name,open_mode from v$pdbs;
NAME OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
PDB$SEED READ ONLY
JYPDB MOUNTED
TESTPDB MOUNTED
SQL alter pluggable database all open;
插接式數據庫已變更。SQL select name,open_mode from v$pdbs;
NAME OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
PDB$SEED READ ONLY
JYPDB READ WRITE
TESTPDB READ WRITE
9. 查詢 tts.t1 與 cs.t2 表中的數據來驗證跨平臺傳輸 PDB 是否操作成功
SQL select count(*) from tts.t1;
COUNT(*)
----------
90
SQL select count(*) from cs.t2;
COUNT(*)
----------
92
到此,相信大家對“怎么將 Linux 上的 PDB 數據庫傳輸到 windows 的 CDB 數據庫”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!