Oracle12c中配置例項引數和修改容器資料庫(CDB)及可插拔資料庫(PDB)

sqysl發表於2016-06-26

Oracle12c中的多宿主選項允許一個容器資料庫(CDB)容納多個獨立的可插拔資料庫(PDB)。本文將展示如何配置例項引數和修改容器資料庫(CDB)及可插拔資料庫(PDB)。
1. 配置CDB中的例項引數(ALTER SYSTEM)
配置CDB例項引數和配置非CDB例項引數沒什麼不一樣。ALTER SYSTEM命令用來設定初始化引數,而有些資料庫配置修改需要用ALTER DATABASE命令。
作為一個特權使用者登入且連線到根容器時,任何ALTER SYSTEM命令預設都將作用於該根容器。這意味著如下兩個命令在這種情況下是一樣的。
ALTER SYSTEM SET parameter_name=value;
ALTER SYSTEM SET parameter_name=value CONTAINER=CURRENT;
除了預設操作,在根容器中改變初始化引數能用如下語法來作用到所有容器。
ALTER SYSTEM SET parameter_name=value CONTAINER=ALL;
透過使用CONTAINER=ALL,指示PDBs繼承根容器的確定引數。除非透過本地引數來覆蓋同樣的引數設定,隨後根容器該確定引數的任何修改都會被PDBs繼承。
透過在PDBs中釋出本地ALTER SYSTEM命令,可以覆蓋一些引數設定。
2. 在PDB中配置例項引數(ALTER SYSTEM)
在前面,我們提到了可以在根容器中使用帶CONTAINER=ALL子句的ALTER SYSTEM命令來設定該根容器中所有PDBs的例項引數。即使當這些引數設定被繼承時,也能透過PDB中的本地ALTER SYSTEM命令來覆蓋這些設定。僅有一部分初始化引數能在PDB中修改,這些引數能透過如下查詢獲取。
COLUMN name FORMAT A35
COLUMN value FORMAT A35
 
SELECT name, value
FROM   v$system_parameter
WHERE  ispdb_modifiable = 'TRUE'
ORDER BY name;
為了修改本地PDB設定,需要確信已連線到了PDB的特權使用者,或透過通用使用者連線到該PDB。如前所述,如果沒用CONTAINER子句,則修改當前容器的設定。因此,下面的ALTER SYSTEM 命令作用等價。
CONN / AS SYSDBA
ALTER SESSION SET CONTAINER = pdb1;


ALTER SYSTEM SET parameter_name=value;
ALTER SYSTEM SET parameter_name=value CONTAINER=CURRENT;
3. 修改CDB(ALTER DATABASE)
從CDB的角度,ALTER DATABASE命令和非CDB資料庫類似。你只需知道正在做的修改的作用範圍。有些應用於CDB的ALTER DATABASE命令將會影響CDB中的所有PDBs。而其他則只作用於CDB自己。
4. 修改PDB(ALTER PLUGGABLE DATABASE)
透過連線到相關容器和ALTER PLUGGABLE DATABASE命令,可以修改PBD。但為了向後相容,ALTER DATABASE命令能進行大部分修改。毫無疑問,這些修改只是CDB或非CDB的一部分。
記住,為了修改PDB,你必須透過指向PDB的服務名直接連線到特權使用者,或先連線到根容器,然後,切換到PDB容器。下面展示一些可用於PDB的修改。
CONN / AS SYSDBA
ALTER SESSION SET CONTAINER = pdb1;


-- PDB的預設版本
ALTER PLUGGABLE DATABASE DEFAULT EDITION = ora$base;


-- PDB的預設表空間型別
ALTER PLUGGABLE DATABASE SET DEFAULT BIGFILE TABLESPACE;
ALTER PLUGGABLE DATABASE SET DEFAULT SMALLFILE TABLESPACE;


-- PDB的預設表空間
ALTER PLUGGABLE DATABASE DEFAULT TABLESPACE users;
ALTER PLUGGABLE DATABASE DEFAULT TEMPORARY TABLESPACE temp;


-- 改變全域性名。這也會改變容器名和註冊到監聽的預設服務名
ALTER PLUGGABLE DATABASE OPEN RESTRICTED FORCE;
ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO pdb1a.localdomain;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN;


-- PDB的時區
ALTER PLUGGABLE DATABASE SET TIME_ZONE='GMT';


-- 使PDB資料檔案離線/線上及做儲存修改
ALTER PLUGGABLE DATABASE DATAFILE '/u01/app/oracle/oradata/cdb1/pdb1/pdb1_users01.dbf' OFFLINE;
ALTER PLUGGABLE DATABASE DATAFILE '/u01/app/oracle/oradata/cdb1/pdb1/pdb1_users01.dbf' ONLINE;


ALTER PLUGGABLE DATABASE DATAFILE '/u01/app/oracle/oradata/cdb1/pdb1/pdb1_users01.dbf'
  RESIZE 1G AUTOEXTEND ON NEXT 1M;


-- PDB的補充日誌
ALTER PLUGGABLE DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER PLUGGABLE DATABASE DROP SUPPLEMENTAL LOG DATA;
此外,有機制可以控制PDB最大大小和可用共享臨時空間的大小。
-- 限制PDB的總儲存空間(資料檔案和本地臨時檔案).
ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 5G);


-- 限制可用共享臨時檔案的大小
ALTER PLUGGABLE DATABASE STORAGE (MAX_SHARED_TEMP_SIZE 2G);


--組合以上兩者
ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 5G MAX_SHARED_TEMP_SIZE 2G);


--移除限制
ALTER PLUGGABLE DATABASE STORAGE UNLIMITED;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-2121013/,如需轉載,請註明出處,否則將追究法律責任。

相關文章