Oracle CDB管理實(shí)現(xiàn)多租戶(hù)管理功能
目錄
- CDB的管理
- 1.當(dāng)前容器
- 2.修改CDB的參數(shù)
- 3.修改PDB的參數(shù)
- 1.使用ALTER DATABASE 命令修改CDB的參數(shù)
- 2.使用ALTER DATABASE命令修改CDB的UNDO模式
- 4.CDB和PDB參數(shù)保存位置說(shuō)明
- CDB Fleet特性
- 配置CDB FLEET環(huán)境
- 管理PDB
CDB的管理
1.當(dāng)前容器
通過(guò)SYS_CONTEXT命令來(lái)查看,
col con_id format a10
col con_name format a20
select sys_context('userenv','con_id') as con_id,sys_context('userenv','con_name') as
con_name from dual;
通過(guò)show 命令
[oracle@oracle-db-19c ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 30 11:07:06 2022 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> col con_id format a10 SQL> col con_name format a20 SQL> select sys_context("userenv","con_id") as con_id,sys_context("userenv","con_name") as con_name from dual; CON_ID CON_NAME ---------- -------------------- 1 CDB$ROOT SQL> SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT SQL> SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO 4 PDB2 MOUNTED 5 CNDBAPDB MOUNTED 6 CNDBAPDB3 MOUNTED 7 CNDBAPDB2 MOUNTED 8 CNDBAPDB4_FRESHREAD ONLY NO SQL> alter session set container=PDB1; Session altered. SQL> show user; USER is "SYS" SQL> show con_name; CON_NAME ------------------------------ PDB1 SQL>
2.修改CDB的參數(shù)
[oracle@oracle-db-19c ~]$ [oracle@oracle-db-19c ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 30 11:26:54 2022 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> col name for a20 SQL> select con_id,name,ispdb_modifiable from v$system_parameter where name="open_cursors"; CON_ID NAME ISPDB ---------- -------------------- ----- 0 open_cursors TRUE SQL> set linesize 200 SQL> show parameter open_cursors; NAME TYPEVALUE ------------------------------------ ----------- ------------------------------ open_cursors integer 300 SQL> alter system set open_cursors = 301; System altered. SQL> show parameter open_cursors; NAME TYPEVALUE ------------------------------------ ----------- ------------------------------ open_cursors integer 301 SQL> alter session set container=PDB1; Session altered. SQL> show parameter open_cursors; NAME TYPEVALUE ------------------------------------ ----------- ------------------------------ open_cursors integer 301 SQL>
3.修改PDB的參數(shù)
1.使用ALTER DATABASE 命令修改CDB的參數(shù)
- 以公共用戶(hù)身份連接到CDB root,可以通過(guò)ALTER PLUGGABLE DATABASE 語(yǔ)句來(lái)修改PDB的相關(guān)配置
- 也可以直接連接到PDB中,通過(guò)ALTER DATABASE 語(yǔ)句來(lái)修改相關(guān)配置。
(1) 修改CDB。當(dāng)公共用戶(hù)連接的是CDB root時(shí),通過(guò)ALTER DATABASE 命令執(zhí)行如下語(yǔ)句會(huì)修改整個(gè)CDB.
startup/recovery/logfile/controlfile/standbydatabase/instance/security/RENAME/GLOBAL_NAME/ENABLE LOCK CHANGE TRACKING/DISABLE LOCK CHANGE TRACKING
(2) 只修改CDB root 。當(dāng)公共用戶(hù)連接的是CDB root時(shí),通過(guò)ALTER DATABASE 命令執(zhí)行如下語(yǔ)句只修改CDB root
datafile/DEFAULT EDITION/DEFAULT TABLESPACE/ DEFAULT TEMPORARY TABLESPACE
(3) 修改一個(gè)或多個(gè)PDB。公共用戶(hù)連接到CDB root時(shí),可以通過(guò)ALTER PLUGGABLE DATABASE 語(yǔ)句修改PDB的打開(kāi)狀態(tài)(MOUNT/READ ONLY/READ WRITE),以及保存/忽略PDB的打開(kāi)狀態(tài)。
2.使用ALTER DATABASE命令修改CDB的UNDO模式
[oracle@oracle-db-19c ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 30 13:39:46 2022 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> show user; USER is "SYS" SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT SQL> col property_name for a30; SQL> col property_value for a20; SQL> select property_name,property_value from database_properties where property_name="LOCAL_UNDO_ENABLED"; PROPERTY_NAME PROPERTY_VALUE ------------------------------ -------------------- LOCAL_UNDO_ENABLED TRUE SQL>
TRUE代表本地UNDO模式,F(xiàn)LASE代表共享UNDO模式。
(2)共享UNDO模式轉(zhuǎn)換為本地UNDO模式的步驟如下:
關(guān)閉CDB,代碼如下
shutdown immediate;
以UPGRADE方式啟動(dòng)CDB,代碼如下:
STARTUP UPGRADE;
確認(rèn)當(dāng)前容器是CDB root,代碼如下:
show con_name;
啟動(dòng)本地UNDO,代碼
ALTER DATABASE LOCAL UNDO ON;
重啟 CDB,正常打開(kāi),
SHUTDOWN IMMEDIATE;STARTUP;
(3) 本地UNDO模式轉(zhuǎn)換為共享UNDO模式的步驟如下:
關(guān)閉CDB
shutdown immediate
以UPGRADE方式啟動(dòng)CDB,
STARTUP UPGRADE;
確認(rèn)當(dāng)前容器是CDB root,
SHOW CON_NAME
禁用本地UNDO
ALTER DATABASE LOCAL UNDO OFF
重啟CDB,正常打開(kāi),
SHUTDOWN IMMEDIATE;STARTUP;
4.CDB和PDB參數(shù)保存位置說(shuō)明
# CDB SQL> SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT SQL> show parameter spfile; NAME TYPEVALUE ------------------------------------ ----------- ------------------------------ spfile string /u01/app/oracle/product/19.3.0 /dbhome_1/dbs/spfilecdb1.ora SQL> SQL> alter session set container=PDB1; Session altered. SQL> show parameter spfile; NAME TYPEVALUE ------------------------------------ ----------- ------------------------------ spfile string /u01/app/oracle/product/19.3.0 /dbhome_1/dbs/spfilecdb1.ora SQL> alter session set container=cdb$root; Session altered. SQL>
CDB Fleet特性
Fleet就是一個(gè)邏輯的CDB集合。其中,Lead CDB 是CDB Fleet中用于監(jiān)控和管理其它CDB的。
在CDB Fleet中,可以通過(guò)以下方式來(lái)訪(fǎng)問(wèn)CDB和PDB中的數(shù)據(jù):
- CDB視圖
- GV$視圖
- CONTAINERS子句
- 容器映射
配置CDB FLEET環(huán)境
1.設(shè)置Lead CDB ,通過(guò)以下命令啟動(dòng)該特性:
# 啟動(dòng) LEAD CDB SQL> SQL> alter database set lead_cdb = true; Database altered. SQL> select property_value from database_properties where property_name="LEAD_CDB"; PROPERTY_VALUE -------------------- TRUE SQL>
管理PDB
管理PDB和管理普通的Non-CDB一樣,可以管理表空間、數(shù)據(jù)文件、臨時(shí)文件和用戶(hù)對(duì)象等。
- 啟動(dòng)和關(guān)閉CDB
- 修改CDB
- 管理以下組件:進(jìn)程、內(nèi)存、錯(cuò)誤和告警信息、診斷數(shù)據(jù)、控制文件、在線(xiàn)redo日志、歸檔日志、UNDO模式。
- 創(chuàng)建、插入、拔出和刪除PDB。
在系統(tǒng)級(jí)別修改PDB
到此這篇關(guān)于Oracle CDB管理實(shí)現(xiàn)多租戶(hù)管理功能的文章就介紹到這了,更多相關(guān)Oracle CDB管理內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
