Oracle12c使用SQL*Plus來創(chuàng)建與移動(dòng)應(yīng)用程序Seeds

可以使用多種方法來創(chuàng)建應(yīng)用程序seeds,包括使用CDB seed,克隆現(xiàn)有的PDB或Non-CDB,與附加一個(gè)卸載的PDB。也可以從應(yīng)用程序容器中刪除應(yīng)用程序seeds。

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括成安網(wǎng)站建設(shè)、成安網(wǎng)站制作、成安網(wǎng)頁制作以及成安網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,成安網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到成安省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

為了在應(yīng)用程序容器中創(chuàng)建新的應(yīng)用程序seed,可以執(zhí)行帶有as seed子句的create pluggable database語句??梢允褂脩?yīng)用程序種子為應(yīng)用程序提供一個(gè)應(yīng)用程序容器。通常在應(yīng)用程序seed創(chuàng)建之前應(yīng)用程序容器的應(yīng)用程序被安裝在應(yīng)用程序root中。在應(yīng)用程序seed創(chuàng)建之后它將與應(yīng)用程序root進(jìn)行同步,因此應(yīng)用程序被安裝在應(yīng)用程序seed中。當(dāng)創(chuàng)建應(yīng)用程序seed之后,使用應(yīng)用程序seed創(chuàng)建的任何PDB都安裝應(yīng)用程序。當(dāng)應(yīng)用程序root中的應(yīng)用程序被升級(jí)或打補(bǔ)丁后,應(yīng)用程序seed必須使用應(yīng)用程序root進(jìn)行同步來應(yīng)用這些改變。

通過執(zhí)行帶有as seed子句的create pluggable database語句來創(chuàng)建應(yīng)用程序seed。

一個(gè)應(yīng)用程序容器可以有零或一個(gè)應(yīng)用程序seed。當(dāng)使用as seed子句創(chuàng)建應(yīng)程序seed時(shí),不用指定它的名字。應(yīng)用程序seed名字總是以application_container_name$SEED命名,其中application_container_name是應(yīng)用程序seed的應(yīng)用程序容器的名字。例如,在salesact應(yīng)用程序容器中的應(yīng)用程序seed它的名字必須是salesact$SEED。

當(dāng)創(chuàng)建一個(gè)新的應(yīng)用程序seed時(shí),必須為在create pluggable database語句中為應(yīng)用程序容器指定管理員。這個(gè)語句將在應(yīng)用程序容器中創(chuàng)建一個(gè)本地用戶的管理員,并且被授予pdb_dba角色。

創(chuàng)建應(yīng)用程序seed的所需要滿足的條件:
.CDB必須存在

.CDB必須處于讀寫模式

.應(yīng)用程序seed所屬的應(yīng)用程序容器必須處于讀寫模式

.當(dāng)前用戶必須是一個(gè)公共用戶,應(yīng)用程序seed所屬的應(yīng)用程序root是當(dāng)前容器

.當(dāng)前用戶有create pluggable database系統(tǒng)權(quán)限

.在應(yīng)用程序容器中對(duì)于包含應(yīng)用程序的應(yīng)用程序seed,應(yīng)用程序必須安裝在應(yīng)用程序root

創(chuàng)建應(yīng)用程序seed
可以通過執(zhí)行帶有as seed子句的create pluggable database語句來創(chuàng)建應(yīng)用程序。應(yīng)用程序容器中的應(yīng)用程序seed類似于CDB中的seed。一個(gè)應(yīng)用程序seed能用來快速與簡單的創(chuàng)建滿足應(yīng)用程序容器要求的應(yīng)用程序PDB。創(chuàng)建應(yīng)用程序seed的操作如下:
1.在SQL*Plus中,確保當(dāng)前容器是應(yīng)用程序root。

2.執(zhí)行帶有as seed子句的create pluggable database語句來創(chuàng)建應(yīng)用程序seed。根據(jù)需要還可以指定其它子句。在創(chuàng)建完應(yīng)用程序seed后,它處于mounted模式,狀態(tài)為new??梢酝ㄟ^查詢v$pdbs視圖的open_mode列來檢查應(yīng)用程序seed的打開模式??梢酝ㄟ^查詢cdb_pdbs或者dba_pdbs視圖的status列來查看應(yīng)用程序seed的狀態(tài)。還會(huì)為應(yīng)用程序seed創(chuàng)建缺省的服務(wù)名。服務(wù)名與應(yīng)用程序seed同名并且可以被用來訪問應(yīng)用程序seed。

3.以讀寫模式來打開新的應(yīng)用程序seed

4.為了將新應(yīng)用程序seed集成到應(yīng)用程序容器中必須以讀寫模式來打開新的應(yīng)用程序seed。如果試圖以只讀模式來打開新的應(yīng)用程序seed將會(huì)返回錯(cuò)誤信息。在應(yīng)用程序seed以讀寫模式打開后,它的狀態(tài)將為normal。

5.執(zhí)行一個(gè)或多個(gè)以下操作:
5.a 如果使用CDB seed中創(chuàng)建應(yīng)用程序seed,那么將容器切換到應(yīng)用程序seed,并且執(zhí)行帶有sync子句的alter pluggable database語句來同步應(yīng)用程序seed。同步使用應(yīng)用程序root來實(shí)例化應(yīng)用程序seed中的一個(gè)或多個(gè)應(yīng)用程序root的應(yīng)用程序。

5.b 如果使用應(yīng)用程序root中創(chuàng)建應(yīng)用程序seed,那么將容器切換到應(yīng)用程序seed,然后執(zhí)行pdb_to_apppdb.sql腳本來將應(yīng)用程序root轉(zhuǎn)換為應(yīng)用程序PDB。

當(dāng)通過克隆一個(gè)應(yīng)用程序PDB來創(chuàng)建應(yīng)用程序seed時(shí)這些操作不需要執(zhí)行。

6.關(guān)閉應(yīng)用程序seed,然后以只讀模式來打開它。

7.備份應(yīng)用程序seed。

使用CDB seed來創(chuàng)建應(yīng)用程序seed
這個(gè)例子假設(shè)滿足以下條件:
.應(yīng)用程序seed將被創(chuàng)建在名為salesact的應(yīng)用程序容器中。

.對(duì)應(yīng)用程序seed不使用存儲(chǔ)限制,因此不指定storage子句。

.應(yīng)用程序seed不創(chuàng)建缺省表空間。

.不指定path_prefix子句。

.不指定file_name_convert與create_file_dest子句??梢詫?duì)CDB啟用OMF或設(shè)置pdb_file_name_convert初始化參數(shù)。與CDB相關(guān)的文件將會(huì)基于OMF配置或參數(shù)設(shè)置被復(fù)制到新目錄中。

.在目標(biāo)目錄中沒有與新temp文件同名的文件存在,將會(huì)創(chuàng)建新的temp文件,因此不用指定tempfile reuse子句。

.不需要預(yù)先定義Oracle角色被授予給pdb_dba角色。

執(zhí)行的語句如下:
先切換到應(yīng)用程序容器salesact中

SQL> alter session set container=salesact;

Session altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE

執(zhí)行語句來使用CDB seed來在應(yīng)用程序容器salesact中創(chuàng)建應(yīng)用程序seed,并打開應(yīng)用程序seed。

SQL> create pluggable database as seed admin user actseedadm identified by "xxzx7817600";

Pluggable database created.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE
SALESACT$SEED                                                                                                                    MOUNTED

SQL> alter pluggable database salesact$seed open;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE
SALESACT$SEED                                                                                                                    READ WRITE

切換容器到應(yīng)用程序seed(salesact$SEED)中,使用應(yīng)用程序root中的所有應(yīng)用程序來同步應(yīng)用程序seed。

SQL> alter session set container=salesact$seed;

Session altered.

SQL>  select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT$SEED                                                                                                                    READ WRITE

SQL> alter pluggable database application all sync;

Pluggable database altered.

關(guān)閉應(yīng)用程序seed(salesact$seed),然后以只讀模式來打開應(yīng)用程序seed。

SQL> alter pluggable database close immediate;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT$SEED                                                                                                                    MOUNTED

SQL> alter pluggable database  open read only;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT$SEED                                                                                                                    READ ONLY

因?yàn)閼?yīng)用程序容器名為salesact,所以應(yīng)用程序seed名為salesact$seed。在創(chuàng)建應(yīng)用程序seed時(shí)一起創(chuàng)建了一個(gè)本地管理用戶并且被授予了pdb_dba公共角色。如果這個(gè)用戶在創(chuàng)建應(yīng)用程序seed時(shí)沒有授予管理權(quán)限,那么使用sys與system公共用戶來管理應(yīng)用程序seed。當(dāng)創(chuàng)建應(yīng)用程序seed時(shí),將使用應(yīng)用程序root來同步應(yīng)用程序seed。因此應(yīng)用程序seed將包含安裝在應(yīng)用程序root中的應(yīng)用程序與應(yīng)用程序公共對(duì)象它們是這些應(yīng)用程序的一部分。當(dāng)使用應(yīng)用程序seed來創(chuàng)建新的應(yīng)用程序PDB時(shí),應(yīng)用程序PDB也會(huì)包含這些安裝的應(yīng)用程序與應(yīng)用程序公共對(duì)象。

使用應(yīng)用程序PDB創(chuàng)建應(yīng)用程序seed
這個(gè)例子假設(shè)滿足以下條件:
.在應(yīng)用程序容器salesact中創(chuàng)建了應(yīng)用程序seed。

.將在應(yīng)用程序PBD(salesapppdb)所在的應(yīng)用程序容器中創(chuàng)建應(yīng)用程序seed。

.對(duì)應(yīng)用程序seed不使用存儲(chǔ)限制,因此不指定storage子句。

.應(yīng)用程序seed不包含缺省表空間。

.不指定path_prefix子句。

.不指定file_name_convert與create_file_dest子句??梢詥⒂肙MF或設(shè)置pdb_file_name_convert初始化參數(shù)。與應(yīng)用程序root相關(guān)的文件會(huì)基于OMF的配置或初始化參數(shù)設(shè)置被復(fù)制到新目錄中。

.在目標(biāo)目錄中沒有與新temp文件同名的文件存在,因此不需要使用tempfile reuse子句。

切換容器到應(yīng)用程序容器(salesact),并執(zhí)行以下命令來創(chuàng)建應(yīng)用程序seed。

SQL> create pluggable database as seed from salesapppdb;

Pluggable database created.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE
SALESAPPPDB                                                                                                                      READ WRITE
SALESACT$SEED                                                                                                                    MOUNTED

然后打開應(yīng)用程序seed,再關(guān)閉應(yīng)用程序seed,最后再以只讀方式打開應(yīng)用程序seed。

SQL> alter pluggable database salesact$seed open;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE
SALESAPPPDB                                                                                                                      READ WRITE
SALESACT$SEED                                                                                                                    READ WRITE

SQL> alter pluggable database salesact$seed close immediate;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE
SALESAPPPDB                                                                                                                      READ WRITE
SALESACT$SEED                                                                                                                    MOUNTED

SQL> alter pluggable database salesact$seed open read only;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE
SALESAPPPDB                                                                                                                      READ WRITE
SALESACT$SEED                                                                                                                    READ ONLY

因?yàn)閼?yīng)用程序容器名為salesact,所以應(yīng)用程序seed名字默認(rèn)為salesact$seed。應(yīng)用程序seed是使用應(yīng)用程序pdb而創(chuàng)建的,因此應(yīng)用程序seed就包含了安裝在應(yīng)用程序root中的應(yīng)用程序與應(yīng)用程序公共對(duì)象,它們是這些應(yīng)用程序的一部分。當(dāng)使用應(yīng)用程序seed來創(chuàng)建新的應(yīng)用程序pdb時(shí),應(yīng)用程序pdb也會(huì)包含安裝的應(yīng)用程序與應(yīng)用程序公共對(duì)象。

使用應(yīng)用程序root來創(chuàng)建應(yīng)用程序seed
這個(gè)例子假設(shè)滿足以下條件:
.應(yīng)用程序seed將創(chuàng)建在應(yīng)用程序容器(salesact)中。應(yīng)用程序seed使用對(duì)應(yīng)用程序容器的root進(jìn)行克隆進(jìn)行創(chuàng)建。

.對(duì)應(yīng)用程序seed不使用存儲(chǔ)限制,因此不使用storage子句。

.應(yīng)用程序seed不包含缺省表空間。

.不使用path_prefix子句。

.不使用file_name_convert與create_file_dest子句??梢詥⒂肙MF或設(shè)置pdb_file_name_convert初始化參數(shù)?;贠MF配置或初始化參數(shù)的設(shè)置與應(yīng)用程序root相關(guān)的文件會(huì)被復(fù)制到新目錄中。

.在目標(biāo)目錄中沒有與新temp文件同名的文件存在,因此不需要使用tempfile reuse子句。

切換到應(yīng)用程序容器(salesact)中,執(zhí)行下面的命令來創(chuàng)建應(yīng)用程序seed。

SQL> create pluggable database as seed from salesact;

Pluggable database created.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE
SALESACT$SEED                                                                                                                    MOUNTED
SALESAPPPDB                                                                                                                      READ WRITE

打開應(yīng)用程序seed,切換容器到應(yīng)用程序seed,然后執(zhí)行pdb_to_apppdb.sql腳本將應(yīng)用程序root轉(zhuǎn)換為應(yīng)用程序pdb。

SQL> alter pluggable database salesact$seed open;

Warning: PDB altered with errors.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE
SALESACT$SEED                                                                                                                    READ WRITE
SALESAPPPDB                                                                                                                      READ WRITE

SQL> alter session set container=salesact$seed;

Session altered.

SQL> @$ORACLE_HOME/rdbms/admin/pdb_to_apppdb.sql

...
SQL> BEGIN
  2    execute immediate '&open_sql &restricted_state';
  3  EXCEPTION
  4    WHEN OTHERS THEN
  5    BEGIN
  6      IF (sqlcode <> -900) THEN
  7        RAISE;
  8      END IF;
  9    END;
 10  END;
 11  /

PL/SQL procedure successfully completed.

SQL> 
SQL> WHENEVER SQLERROR CONTINUE;



SQL> alter pluggable database close immediate instances=all;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT$SEED                                                                                                                    MOUNTED

1 row selected.

SQL> alter pluggable database open read only instances=all;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT$SEED                                                                                                                    READ ONLY

1 row selected.

因?yàn)閼?yīng)用程序容器名為salesact,所以應(yīng)用程序seed名為salesact$seed。應(yīng)用程序seed是使用應(yīng)用程序root進(jìn)行創(chuàng)建的。因此應(yīng)用程序seed包含安裝在應(yīng)用程序root中的應(yīng)用程序與應(yīng)用程序公共對(duì)象,它們是這些應(yīng)用程序的一部分。當(dāng)使用應(yīng)用程序seed來創(chuàng)建新應(yīng)用程序PDB時(shí),應(yīng)用程序pdb也會(huì)包含安裝的應(yīng)用程序與應(yīng)用程序公共對(duì)象。

從應(yīng)用程序容器中拔出應(yīng)用程序seed
拔出應(yīng)用程序seed就是斷開應(yīng)用程序seed與應(yīng)用程序容器的關(guān)聯(lián)。當(dāng)不再需要應(yīng)用程序seed時(shí)可以將其刪除。拔出應(yīng)用程序seed類似于拔出PDB。為了拔出應(yīng)用程序seed,連接到它的應(yīng)用程序root并使用alter pluggable database語句來指定生成xml文件或.pdb文件。當(dāng)指定xml文件后,在卸載完成后生成的xml文件會(huì)包含描述應(yīng)用程序seed的元數(shù)據(jù)。

SQL> alter pluggable database salesact$seed close immediate instances=all;

Pluggable database altered.



SQL>  select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
SALESACT                                                                                                                         READ WRITE
SALESACT$SEED                                                                                                                    MOUNTED
SALESAPPPDB                                                                                                                      READ WRITE

3 rows selected.



SQL> alter pluggable database salesact$seed unplug into '/tts/plug/salesact_seed.xml';

Pluggable database altered.

刪除應(yīng)用程序seed
當(dāng)不再需要應(yīng)用程序seed時(shí),可以執(zhí)行drop pluggable database語句來刪除。當(dāng)刪除應(yīng)用程序seed時(shí),CDB的控制文件會(huì)被修改來刪除與被刪除應(yīng)用程序seed的所有相關(guān)信息,但是歸檔重做日志與備份不會(huì)被刪除,但可以使用RMAN來刪除它們。

SQL> drop pluggable database salesapppdb including datafiles;

Pluggable database dropped.

創(chuàng)建應(yīng)用程序PDB
可以在應(yīng)用程序root容器中執(zhí)行create pluggable database語句來創(chuàng)建應(yīng)用程序PDB。創(chuàng)建應(yīng)用程序pdb與在CDB root中創(chuàng)建PDB都是使用相同的SQL語句。當(dāng)在應(yīng)用程序root中執(zhí)行create pluggable database語句時(shí)新創(chuàng)建的PDB為應(yīng)用程序PDB。SQL語句必須在應(yīng)用程序root中執(zhí)行并且對(duì)應(yīng)用程序root中所定義的應(yīng)用程序數(shù)據(jù)庫有顯式依賴性。創(chuàng)建應(yīng)用程序PDB的操作如下:

1.在SQL*Plus中,確保當(dāng)前容器為應(yīng)用程序root

2.執(zhí)行create pluggable database語句。在應(yīng)用程序PDB完成創(chuàng)建之后,它處于mounted模式并且狀態(tài)為NEW。可以通過查詢v$pdbs視圖的open_mode列來查看應(yīng)用程序pdb的打開模式,可以通過查詢cdb_pdbs或dba_pdbs視圖的status列來查看應(yīng)用程序pdb的狀態(tài)。對(duì)于新創(chuàng)建的應(yīng)用程序PDB也會(huì)創(chuàng)建一個(gè)缺省的服務(wù)名,服務(wù)名與應(yīng)用程序PDB同名并且可以被用來訪問應(yīng)用程序PDB。

3.以讀寫模式來打開應(yīng)用程序PDB

4.為了將新的應(yīng)用程序PDB集成到應(yīng)用程序容器必須以讀寫模式來打開新的應(yīng)用程序PDB。如果試圖以只讀模式來打開應(yīng)用程序PDB將會(huì)返回錯(cuò)誤信息。在應(yīng)用程序PDB以讀寫模式打開后它的狀態(tài)將變?yōu)镹ORMAL。

5.切換容器為應(yīng)用程序PDB

6.執(zhí)行alter pluggable database ... sync來同步應(yīng)用程序PDB。同步使用應(yīng)用程序PDB來實(shí)例化應(yīng)用程序PDB中的一個(gè)或多個(gè)應(yīng)用程序root中的應(yīng)用程序。

7.關(guān)閉應(yīng)用程序PDB,然后以只讀模式打開。

8.備份應(yīng)用程序PDB。

新聞標(biāo)題:Oracle12c使用SQL*Plus來創(chuàng)建與移動(dòng)應(yīng)用程序Seeds
本文URL:http://bm7419.com/article42/gejehc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、建站公司、網(wǎng)站改版、云服務(wù)器域名注冊(cè)

廣告

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

成都定制網(wǎng)站建設(shè)