多租戶最佳實踐和已知問題 (文件 ID 2047555.1)
適用於:
Oracle Database - Enterprise Edition - 版本 12.1.0.1 到 12.1.0.1 [發行版 12.1]本文件所含資訊適用於所有平臺
用途
關於多租戶選項的最佳實踐以及一些常見問題。
詳細資訊
1. 連線 Container 或者 Pluggable 例項時的 tnsnames
對於 pluggable 資料庫來說,應當配置 tnsnames.ora,比如在 tnsnames.ora 中新增一個 tns 條目:
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MFarag-OEL)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = pdb_omf_1)
)
)
另外也可以採用如下的簡單連線語法:
Connected.
A@mfarag-oel/PDB_OMF_1>conn xx/xx@mfarag-oel/XX
Connected.
XX@mfarag-oel/XX>
在 $ORACLE_HOME/sqlplus/admin 目錄下的 glogin.sql 指令碼里新增如下的條目:
2. 當 Container 是可插拔的情況下,總是採用 OMF(Oracle Managed Files)來管理 pluggable 資料庫:
from V_$CONTAINERS ;
CON_ID DBID GUID
---------- ---------- --------------------------------
NAME OPEN_MODE
------------------------------ ----------
1 1949193435 DD7C48AA5A4504A2E04325AAE80A403C
CDB$ROOT READ WRITE
2 4075234582 EC25D0EC10347332E043CC8DAB0A7AE1
PDB$SEED READ ONLY
3 3255612964 EC25E0FB670B76A8E043CC8DAB0A08D8
PDB READ WRITE
CON_ID DBID GUID
---------- ---------- --------------------------------
NAME OPEN_MODE
------------------------------ ----------
4 3244820336 EC276A999A790163E043CC8DAB0AD357
PDBOMF MOUNTED
.
.
SYS@CDB>alter session set container=pdbomf ;
Session altered.
SYS@CDB>alter pluggable database open ;
Pluggable database altered.
3. 在需要修改 Pluggable 資料庫的名字時,需要將其啟動到 Restricted 模式
Enter password:
Connected.
SYS@pdb_omf_1>alter pluggable database close ;
SYS@pdb_omf_1>alter pluggable database open restricted;
SYS@pdb_omf_1>alter pluggable database pdbomf rename global_name to pdb_omf_1 ;
4. 插拔資料庫:
SYS@CDB1>alter pluggable database y unplug into '/home/oracle/XDESC.xml' ;
SYS@CDB1>drop pluggable database y ;
SYS@CDB1>create pluggable database y using '/home/oracle/XDESC.xml' nocopy ;
5. 一步啟動 Pluggable 資料庫:
from V$containers;
CON_ID GUID NAME
---------- -------------------------------- ------------------------------
OPEN_MODE
----------
1 DD7C48AA5A4504A2E04325AAE80A403C CDB$ROOT
READ WRITE
2 EC25D0EC10347332E043CC8DAB0A7AE1 PDB$SEED
READ ONLY
3 EC2B4C003E221F09E0438636AF0AA57B X
MOUNTED
CON_ID GUID NAME
---------- -------------------------------- ------------------------------
OPEN_MODE
----------
4 EC276A999A790163E043CC8DAB0AD357 PDB_OMF_1
MOUNTED
SYS@CDB>alter pluggable database all open ;
SYS@CDB>select CON_ID,GUID,NAME,OPEN_MODE
from V$containers
CON_ID GUID NAME
---------- -------------------------------- ------------------------------
OPEN_MODE
----------
1 DD7C48AA5A4504A2E04325AAE80A403C CDB$ROOT
READ WRITE
2 EC25D0EC10347332E043CC8DAB0A7AE1 PDB$SEED
READ ONLY
3 EC2B4C003E221F09E0438636AF0AA57B X
READ WRITE
CON_ID GUID NAME
---------- -------------------------------- ------------------------------
OPEN_MODE
----------
4 EC276A999A790163E043CC8DAB0AD357 PDB_OMF_1
READ WRITE
注意: 啟動 CDB 時,預設會把所有的 PDB 置為 mount 狀態。
6. 在執行一些指令碼的時候,採用 catcon 這個 perl 指令碼來選擇特定資料庫或者選擇全部 pluggable 和 container 資料庫:
例如: 執行 awrinfo 指令碼來獲取所有資料庫中 sysaux 下 AWR 的使用情況
$ perl catcon.pl -u SYS -U SYS -d $ORACLE_HOME/rdbms/admin -l '/home/oracle' -b catblock_output awrinfo.sql
--確認以上指令碼是在所有的資料庫上執行的:
$cd /home/oracle
$ grep -i "CURRENT CONTAINER" *
catblock_output0.log:==== Current Container = CDB$ROOT ====
catblock_output0.log:==== Current Container = PDB$SEED ====
catblock_output1.log:==== Current Container = XX ====
catblock_output2.log:==== Current Container = PDB_OMF_1 ====
注意:採用 -c 選項來指定該指令碼在特定的資料庫上執行。
7. 如何使用 non-seed 模板來建立 CDB + Pluggable 資料庫:
Enter PDBADMIN
注意:以上命令採用 non-seed Custome_DB_ template 為模板靜默建立名稱為 FOFO 的 CDB 和一個名稱為 pdb_silent 的 PDB。
8. 將"_datafile_write_errors_crash_instance"引數值修改為 FALSE
**這樣做的好處是可以在 PDB 由於某些原因丟失資料檔案後,允許 CDB 繼續執行。
注意: 只對 PDB 的非系統資料檔案有效。
9. 如何檢查一個引數是否已經在 PDB 中被修改過?
SYS@CDB>column NAME format a20
SYS@CDB>column VALUE$ format a20
SYS@CDB>select p.PDB_NAME,s.name,s.value$
from cdb_pdbs p , pdb_spfile$ s
where p.CON_UID=s.PDB_UID
PDB_NAME NAME VALUE$
-------------------- -------------------- --------------------
XX cursor_sharing 'SIMILAR'
YY_NEW cursor_sharing 'SIMILAR'
**注意: 不能透過 alertlog 來檢查 PDB 初始化引數的非預設值。
參考
NOTE:1575186.1 - Syntax Error Encountered During The Creation Of A Pluggable DatabaseNOTE:1511619.1 - Oracle Multitenant Option - 12c : Frequently Asked Questions
NOTE:1516202.1 - How to Monitor Process Memory Usage on Pluggable Databases
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31393455/viewspace-2129620/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MyBatis-Plus 實現多租戶管理的實踐MyBatis
- K8s 實踐 | 如何解決多租戶叢集的安全隔離問題?K8S
- 多租戶
- 「從零單排HBase 10」HBase叢集多租戶實踐
- Part II 配置和管理多租戶環境概述-Oracle多租戶管理員指南Oracle
- 最佳實踐:針對效能問題的主動型資料收集 (文件 ID 1549179.1)
- 【多租戶技術】
- 實現saas多租戶方案比較
- RAC 和 Oracle Clusterware 最佳實踐和初學者指南 (AIX) (文件 ID 1526555.1)OracleAI
- [譯] Retrofit官方文件最佳實踐
- RAC 和 Oracle Clusterware 最佳實踐和初學者指南 (Linux) (文件 ID 1525820.1)OracleLinux
- 基於 Ionic 2 多主題、多租戶構建方案探索
- 10個專案文件最佳實踐
- 10 個專案文件最佳實踐
- 如何理解多租戶架構?架構
- HBase多租戶-Namespace Quota管理namespace
- 關於備份和恢復的10 個最佳實踐 (文件 ID 1549189.1)
- TPP穩定性之場景隔離和多租戶
- Oracle 18c新特性詳解-多租戶專題Oracle
- 3.3.2 多租戶環境的工具
- 多租戶商城系統解說
- 詳解ABP框架的多租戶框架
- Oracle多租戶特性的常用操作Oracle
- 圖解:什麼是多租戶?圖解
- 故障分析 | 租戶 memstore 記憶體滿問題排查記憶體
- Android Emoji 最佳實踐Android
- Android MVP 最佳實踐AndroidMVP
- 3.3 用於多租戶環境的任務和工具
- Oracle 12c 多租戶配置和修改 CDB 和 PDB 引數Oracle
- TiDB 7.1 多租戶在中泰證券中的應用TiDB
- 技術解讀資料庫如何實現“多租戶”?資料庫
- SpringBoot 專案使用 Mybatis Plus 實現多租戶Spring BootMyBatis
- Hbase rowKey 最佳實踐 和 mysql id 對比MySql
- 事件風暴 - 分解問題領域的最佳實踐事件
- 3.3.1 多租戶環境的任務
- 2 多租戶體系結構概述
- Oracle 20C 多租戶_新特性Oracle
- 一種Django多租戶解決方案Django