Oracle怎么實現(xiàn)跨平臺傳輸PDB-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“Oracle怎么實現(xiàn)跨平臺傳輸PDB”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Oracle怎么實現(xiàn)跨平臺傳輸PDB”吧!

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的林周網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

PDB可以被傳輸并插入到與源平臺不同的目標(biāo)CDB數(shù)據(jù)庫中。除了需要對PDB創(chuàng)建備份外還需要將PDB插入到目標(biāo)CDB中所需要的元數(shù)據(jù)。源CDB與目標(biāo)CDB中的compatible參數(shù)必須設(shè)置為12.2,并且源平臺與目標(biāo)平臺有相同的字節(jié) 序。

下面的例子將Linux平臺上的RAC CDB中的PDB數(shù)據(jù)庫(jypdb與testpdb)傳輸?shù)絯indows平臺上的單實例CDB數(shù)據(jù)庫中。 執(zhí)行跨平臺傳輸?shù)牟僮魅缦?
1.檢查源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫的compatible參數(shù)是否設(shè)置為12.0.0或更高版本
源數(shù)據(jù)庫

SQL> show parameter compatible

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
compatible                           string      12.2.0
noncdb_compatible                    boolean     FALSE

目標(biāo)數(shù)據(jù)庫

SQL> show parameter compatible

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
compatible                           string      12.2.0
noncdb_compatible                    boolean     FALSE

2.檢查源平臺與目標(biāo)平臺的字節(jié)序
源平臺

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

目標(biāo)平臺

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.將要被傳輸?shù)膒db(jypdb,testpdb)設(shè)置為關(guān)閉狀態(tài)

SQL> alter pluggable database jypdb close immediate;

Pluggable database altered.

SQL> alter pluggable database testpdb close immediate;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
PDB$SEED                                                                                                                         READ ONLY
JYPDB                                                                                                                            MOUNTED
TESTPDB                                                                                                                          MOUNTED

4.使用backup pluggable database命令來為PDB(jypdb,testpdb)創(chuàng)建跨平臺完全備份
下面的例子是為PDB(jypdb,testpdb)創(chuàng)建跨平臺傳輸備份目標(biāo)平臺為Microsoft Windows x86 64-bit。使用unplug into子句將生成將PDB插入目標(biāo)CDB中所需要的元數(shù)據(jù)XML文件。

RMAN> backup to platform='Microsoft Windows x86 64-bit' unplug into '/ora_backup/tpdbs/metadata_jypdb.xml' pluggable database jypdb format '/ora_backup/tpdbs/transport_jypdb.bck';

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=00028 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/users.278.962209649
input datafile file number=00025 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/sysaux.316.962209649
input datafile file number=00026 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undotbs1.264.962209649
input datafile file number=00027 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undo_2.268.962209649
input datafile file number=00024 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/system.271.962209649
input datafile file number=00029 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/test.275.962210609
input datafile file number=00030 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353
input datafile file number=00031 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/transport_jypdb.bck tag=TAG20180211T223539 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
Finished backup at 11-FEB-18
starting full resync of recovery catalog
full resync complete

RMAN> backup to platform='Microsoft Windows x86 64-bit' unplug into '/ora_backup/tpdbs/metadata_testpdb.xml' pluggable database testpdb format '/ora_backup/tpdbs/transport_testpdb.bck';

Starting backup at 11-FEB-18
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=00033 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/sysaux.259.962469409
input datafile file number=00034 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undotbs1.265.962469409
input datafile file number=00032 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/system.260.962469409
input datafile file number=00035 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undo_2.266.962469409
input datafile file number=00037 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/test.269.962469409
input datafile file number=00036 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/transport_testpdb.bck tag=TAG20180211T223830 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


[oracle@jytest1 tpdbs]$ ls -lrt
total 1707044
-rw-r--r-- 1 oracle asmadmin      11417 Feb 11 16:36 metadata_jypdb.xml
-rw-r----- 1 oracle asmadmin 1038204928 Feb 11 16:37 transport_jypdb.bck
-rw-r--r-- 1 oracle asmadmin       9575 Feb 11 16:38 metadata_testpdb.xml
-rw-r----- 1 oracle asmadmin  709779456 Feb 11 16:39 transport_testpdb.bck

5.將步驟4生成的備份文件與XML文件傳輸?shù)侥繕?biāo)主機上的D:\app\oracle\oradata\pdbs目錄中

6.確保目標(biāo)CDB數(shù)據(jù)庫的狀態(tài)為讀寫狀態(tài)

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

7.執(zhí)行dbms_pdb.check_plug_compatibility過程來判斷被傳輸?shù)腜DB與目標(biāo)CDB是否兼容。

SQL> declare
  2    c boolean;
  3  begin
  4    c:=dbms_pdb.check_plug_compatibility('D:\app\oracle\oradata\pdbs\metadata_jypdb.xml','JYPDB');
  5    if (c) then dbms_output.put_line('True');
  6      else dbms_output.put_line('False');
  7    end if;
  8  end;
  9  /

PL/SQL 過程已成功完成。

SQL> declare
  2    c boolean;
  3  begin
  4    c:=dbms_pdb.check_plug_compatibility('D:\app\oracle\oradata\pdbs\metadata_testpdb.xml','TESTPDB');
  5    if (c) then dbms_output.put_line('True');
  6      else dbms_output.put_line('False');
  7    end if;
  8  end;
  9  /

PL/SQL 過程已成功完成。

8.還原PDB備份
使用using子句來存儲將源PDB插入目標(biāo)CDB所需要的元數(shù)據(jù)所在的XML文件名。為了將數(shù)據(jù)文件復(fù)制到與XML文件所描述的不同位置使用file_name_convert子句。

RMAN> restore using 'D:\app\oracle\oradata\pdbs\metadata_jypdb.xml'   foreign pluggable database JYPDB format 'D:\APP\ORACLE\ORADATA\JY\DATAFILE\%U' from backupset 'D:\app\oracle\oradata \pdbs\transport_jypdb.bck';

從位于 11-2月 -18 的 restore 開始
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_1: 正在還原備份片段中的所有外部文件
通道 ORA_DISK_1: 正在讀取備份片段 D:\app\oracle\oradata\pdbs\transport_jypdb.bck
通道 ORA_DISK_1: 將外部文件 28 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-USERS_FNO-28_IASR0EH6
通道 ORA_DISK_1: 將外部文件 25 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-SYSAUX_FNO-25_EGSR0EH6
通道 ORA_DISK_1: 將外部文件 26 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-UNDOTBS1_FNO-26_TESR0EH6
通道 ORA_DISK_1: 將外部文件 27 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-UNDO_2_FNO-27_D2SR0EH6
通道 ORA_DISK_1: 將外部文件 24 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-SYSTEM_FNO-24_FFSR0EH6
通道 ORA_DISK_1: 將外部文件 29 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-TEST_FNO-29_OMSR0EH6
通道 ORA_DISK_1: 將外部文件 30 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-TTS_FNO-30_SUSR0EH6
通道 ORA_DISK_1: 將外部文件 31 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-CS_FNO-31_7LSR0EH6
通道 ORA_DISK_1: 外部片段句柄 = D:\app\oracle\oradata\pdbs\transport_jypdb.bck
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時: 00:00:36
通道 ORA_DISK_1: 正在為 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/system.271.962209649 插入文件 24
通道 ORA_DISK_1: 正在為 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/sysaux.316.962209649 插入文件 25
通道 ORA_DISK_1: 正在為 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undotbs1.264.962209649 插入文件 26
通道 ORA_DISK_1: 正在為 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/TEMPFILE/temp.258.967837571 插入文件 5
通道 ORA_DISK_1: 正在為 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undo_2.268.962209649 插入文件 27
通道 ORA_DISK_1: 正在為 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/users.278.962209649 插入文件 28
通道 ORA_DISK_1: 正在為 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/test.275.962210609 插入文件 29
通道 ORA_DISK_1: 正在為 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353 插入文件 30
通道 ORA_DISK_1: 正在為 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783 插入文件 31
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: 位于 02/11/2018 23:22:50 的 restore 命令失敗
RMAN-00600: internal error, arguments [5302] [] [] [] []





RMAN> restore using 'D:\app\oracle\oradata\pdbs\metadata_testpdb.xml'   foreign pluggable database testpdb format 'D:\APP\ORACLE\ORADATA\JY\DATAFILE\%U' from backupset 'D:\app\oracle \oradata\pdbs\transport_testpdb.bck';

從位于 11-2月 -18 的 restore 開始
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_1: 正在還原備份片段中的所有外部文件
通道 ORA_DISK_1: 正在讀取備份片段 D:\app\oracle\oradata\pdbs\transport_testpdb.bck
通道 ORA_DISK_1: 將外部文件 33 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-SYSAUX_FNO-33_N4SR0EOK
通道 ORA_DISK_1: 將外部文件 34 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-UNDOTBS1_FNO-34_S1SR0EOK
通道 ORA_DISK_1: 將外部文件 32 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-SYSTEM_FNO-32_KTSR0EOK
通道 ORA_DISK_1: 將外部文件 35 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-UNDO_2_FNO-35_PGSR0EOK
通道 ORA_DISK_1: 將外部文件 37 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-TEST_FNO-37_1MSR0EOK
通道 ORA_DISK_1: 將外部文件 36 還原到 D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-USERS_FNO-36_9ASR0EOK
通道 ORA_DISK_1: 外部片段句柄 = D:\app\oracle\oradata\pdbs\transport_testpdb.bck
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時: 00:00:16
通道 ORA_DISK_1: 正在為 +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/system.260.962469409 插入文件 32
通道 ORA_DISK_1: 正在為 +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/sysaux.259.962469409 插入文件 33
通道 ORA_DISK_1: 正在為 +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undotbs1.265.962469409 插入文件 34
通道 ORA_DISK_1: 正在為 +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/TEMPFILE/temp.276.967837623 插入文件 6
通道 ORA_DISK_1: 正在為 +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undo_2.266.962469409 插入文件 35
通道 ORA_DISK_1: 正在為 +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/users.267.962469409 插入文件 36
通道 ORA_DISK_1: 正在為 +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/test.269.962469409 插入文件 37
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: 位于 02/11/2018 23:26:28 的 restore 命令失敗
RMAN-00600: internal error, arguments [5302] [] [] [] []

上面的錯誤是因為XMl文件所描述的數(shù)據(jù)文件名是源數(shù)據(jù)庫中的文件名,手功修改XML文件中的數(shù)據(jù)文件名為目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)文件名,并執(zhí)行下面的命令來創(chuàng)建PDB

SQL> create pluggable database jypdb using 'D:\app\oracle\oradata\pdbs\metadata_jypdb.xml';

插接式數(shù)據(jù)庫已創(chuàng)建。

SQL> create pluggable database testpdb using 'D:\app\oracle\oradata\pdbs\metadata_testpdb.xml';

插接式數(shù)據(jù)庫已創(chuàng)建。



SQL> alter pluggable database all open;

插接式數(shù)據(jù)庫已變更。

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表中的數(shù)據(jù)來驗證跨平臺傳輸PDB是否操作成功

SQL> select count(*) from tts.t1;

  COUNT(*)
----------
        90

SQL> select count(*) from cs.t2;

  COUNT(*)
----------
        92

到此,相信大家對“Oracle怎么實現(xiàn)跨平臺傳輸PDB”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞標(biāo)題:Oracle怎么實現(xiàn)跨平臺傳輸PDB-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/article34/csgpse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、服務(wù)器托管、品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、網(wǎng)站維護(hù)、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管