您好,登錄后才能下訂單哦!
一 從早期版本CDB拔出早期版本PDB
1、在PDB上運(yùn)行升級(jí)前信息工具。
例如,salespdbCDB中運(yùn)行的名為PDB 的位置$ORACLE_HOME_12.2:
$ORACLE_BASE/product/12.1.0/dbhome_1/jdk/bin/java -jar /u01/app/oracle/product/19.3.0/dbhome_1/rdbms/admin/preupgrade.jar dir /tmp -c salespdb
2、preupgrade_fixups.sql在您的源數(shù)據(jù)庫上運(yùn)行
例如:
CONNECT / AS SYSDBA
SQL> ALTER SESSION SET CONTAINER=salespdb;
SQL> @/tmp/preupgrade_fixups.sql
3、遵循中列出的所有建議preupgrade.log
4、Oracle APEX
在12.1.0.2.0中默認(rèn)安裝,而在12.2.0.1.0未默認(rèn)安裝,如果不進(jìn)行APEX卸載,在12.2.0.1.0中plug 12.1.0.2.0版本的pdb將報(bào)如下ORA-65346錯(cuò)誤:
當(dāng)然,如果您有使用到APEX,需要在12.2.0.1.0中安裝APEX,而無需卸載12.1.0.2.0中的APEX。
卸載方式:
SQL> select COMP_ID, STATUS from DBA_REGISTRY where COMP_ID='APEX';
COMP_ID STATUS
------------------------------ ----------------------
APEX VALID
$ cd $ORACLE_HOME/apex
$ sqlplus / as sysdba
SQL>@apxremov_con.sql
5、關(guān)閉要拔出的PDB
例如,使用以下命令關(guān)閉PDB salespdb:
SQL> ALTER PLUGGABLE DATABASE salespdb CLOSE;
6、重新登錄到CDB$ROOT:
CONNECT / AS SYSDBA
SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;
7、 使用以下SQL命令語法拔出早期版本的PDB,其中pdbPDB的名稱和pathPDB XML文件的位置:
ALTER PLUGGABLE DATABASE salespdb UNPLUG INTO '/home/oracle/salespdb.xml';
命令完成后,將顯示以下響應(yīng):
8、刪除可插入數(shù)據(jù)庫salespdb,但保留數(shù)據(jù)文件。
Oracle建議您執(zhí)行salespdb此過程后清除CDB視圖中的剩余信息,并避免將來出現(xiàn)問題。作為最佳實(shí)踐指南,請(qǐng)首先將PDB備份到目標(biāo)CDB中,然后DROP在源上發(fā)出命令。
要?jiǎng)h除可插入數(shù)據(jù)庫,請(qǐng)輸入以下命令:
SQL> DROP PLUGGABLE DATABASE salespdb KEEP DATAFILES;
二 將早期版本的PDB插入更高版本的CDB
1、拷貝xml與數(shù)據(jù)文件
要將PDB從較早版本的CDB插入到較早版本的CDB,請(qǐng)使用以下CREATE PLUGGABLE DATABASE命令。
此過程示例說明了在使用Oracle管理的文件時(shí)如何插入PDB。有關(guān)插入PDB的更多信息,請(qǐng)參考《Oracle數(shù)據(jù)庫管理員指南》。
連接到更高版本的CDB。使用以下SQL命令插入早期版本的PDB,其中pdbPDB path是PDB的名稱,也是PDB XML文件所在的路徑:
2、創(chuàng)建pdb
CREATE PLUGGABLE DATABASE salespdb USING '/home/oracle/salespdb.xml' SOURCE_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/orcl/salespdb','/u01/app/oracle/oradata/ORCL/salespdb') nocopy tempfile reuse;
由于APEX導(dǎo)致
解決方式:由于在unplugging 時(shí)沒有卸載APEX,后續(xù)可刪除xml文件中的
不過后續(xù)會(huì)報(bào)很多錯(cuò)誤。
命令完成后,將顯示以下響應(yīng):
三 將早期版本的PDB升級(jí)到更高版本
在UPGRADE模式下打開的PDB 使用Parallel Upgrade Utility來將較早發(fā)行的PDB升級(jí)到CDB的發(fā)行級(jí)別。
1、切換到升級(jí)PDB
例如,輸入以下命令以切換到PDB salespdb:
SQL> ALTER SESSION SET CONTAINER=salespdb;
2、在升級(jí)模式下打開PDB。
SQL> ALTER PLUGGABLE DATABASE OPEN UPGRADE;
3、使用“并行升級(jí)實(shí)用程序”命令(catctl.pl或shell實(shí)用程序dbupgrade)升級(jí)PDB 。
升級(jí)PDB時(shí),請(qǐng)使用通常與Parallel Upgrade Utility并行使用的命令。但是,您還可以添加選項(xiàng)以指定要升級(jí)的PDB。如以下示例所示,使用名為的PDB大寫PDB的名稱: -c PDBnamesalespdb
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d \
$ORACLE_HOME/rdbms/admin -c 'salespdb' -l $ORACLE_BASE catupgrd.sql
4、查看結(jié)果
日志的默認(rèn)文件路徑在path中,其中Oracle基本路徑,數(shù)據(jù)庫名稱以及升級(jí)的日期和時(shí)間。日期和時(shí)間字符串采用字符串格式Y(jié)YYY MM DD HH MM SC,其中YYYY表示年,MM表示月,DD表示日,HH表示小時(shí),MM表示分鐘,SC表示秒。 Oracle_base/cfgtoollogs/dbname/upgradedatetimeOracle_basedbnameupgradedatetime例如:
5、登錄到SQL * Plus,然后打開PDB以執(zhí)行升級(jí)后的修訂,并重新編譯INVALID數(shù)據(jù)庫中的對(duì)象:
SQL> STARTUP;
SQL> ALTER SESSION SET CONTAINER=salespdb;
6、使用該實(shí)用程序catcon.pl運(yùn)行腳本postupgrade_fixups.sql:
@/tmp/postupgrade_fixups.sql
7、使用該實(shí)用程序從目錄catcon.pl運(yùn)行:
@$ORACLE_HOME/rdbms/admin/utlrp.sql
該腳本將重新編譯INVALID數(shù)據(jù)庫中的對(duì)象,并將名稱為的日志文件放置在當(dāng)前目錄中comp0.log。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。