首頁 > 軟體

Oracle CDB管理實現多租戶管理功能

2022-12-09 14:04:12

CDB的管理

1.當前容器

通過SYS_CONTEXT命令來檢視,

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;

通過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_FRESH                READ 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的引數

[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                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     300
SQL> alter system set open_cursors = 301;
System altered.
SQL> show parameter open_cursors;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     301
SQL> alter session set container=PDB1;
Session altered.
SQL> show parameter open_cursors;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     301
SQL> 

3.修改PDB的引數

1.使用ALTER DATABASE 命令修改CDB的引數

  • 以公共使用者身份連線到CDB root,可以通過ALTER PLUGGABLE DATABASE 語句來修改PDB的相關設定
  • 也可以直接連線到PDB中,通過ALTER DATABASE 語句來修改相關設定。

(1) 修改CDB。當公共使用者連線的是CDB root時,通過ALTER DATABASE 命令執行如下語句會修改整個CDB.

startup/recovery/logfile/controlfile/standbydatabase/instance/security/RENAME/GLOBAL_NAME/ENABLE LOCK CHANGE TRACKING/DISABLE LOCK CHANGE TRACKING

(2) 只修改CDB root 。當公共使用者連線的是CDB root時,通過ALTER DATABASE 命令執行如下語句只修改CDB root

datafile/DEFAULT EDITION/DEFAULT TABLESPACE/ DEFAULT TEMPORARY TABLESPACE

(3) 修改一個或多個PDB。公共使用者連線到CDB root時,可以通過ALTER PLUGGABLE DATABASE 語句修改PDB的開啟狀態(MOUNT/READ ONLY/READ WRITE),以及儲存/忽略PDB的開啟狀態。

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模式,FLASE代表共用UNDO模式。

(2)共用UNDO模式轉換為本地UNDO模式的步驟如下:

關閉CDB,程式碼如下

shutdown immediate;

以UPGRADE方式啟動CDB,程式碼如下:

STARTUP UPGRADE;

確認當前容器是CDB root,程式碼如下:

show con_name;

啟動本地UNDO,程式碼

ALTER DATABASE LOCAL UNDO ON;

重啟 CDB,正常開啟,

SHUTDOWN IMMEDIATE;STARTUP;

(3) 本地UNDO模式轉換為共用UNDO模式的步驟如下:

關閉CDB

shutdown immediate

以UPGRADE方式啟動CDB,

STARTUP UPGRADE;

確認當前容器是CDB root,

SHOW CON_NAME

禁用本地UNDO

ALTER DATABASE LOCAL UNDO OFF

重啟CDB,正常開啟,

SHUTDOWN IMMEDIATE;STARTUP;

4.CDB和PDB引數儲存位置說明

# CDB
SQL> 
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL> show parameter spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
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                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
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就是一個邏輯的CDB集合。其中,Lead CDB 是CDB Fleet中用於監控和管理其它CDB的。

在CDB Fleet中,可以通過以下方式來存取CDB和PDB中的資料:

  • CDB檢視
  • GV$檢視
  • CONTAINERS子句
  • 容器對映

設定CDB FLEET環境

1.設定Lead CDB ,通過以下命令啟動該特性:

# 啟動 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一樣,可以管理表空間、資料檔案、臨時檔案和使用者物件等。

  • 啟動和關閉CDB
  • 修改CDB
  • 管理以下元件:程序、記憶體、錯誤和告警資訊、診斷資料、控制檔案、線上redo紀錄檔、歸檔紀錄檔、UNDO模式。
  • 建立、插入、拔出和刪除PDB。

在系統級別修改PDB

到此這篇關於Oracle CDB管理實現多租戶管理功能的文章就介紹到這了,更多相關Oracle CDB管理內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com