Oracle12c中多宿主環境(CDB&PDB)的資料庫觸發器(Database Trigger)
Oracle12c中可插拔資料庫(PDBs)上的多宿主資料庫觸發器
隨著多宿主選項的引入,資料庫事件觸發器可以在CDB和PDB範圍內建立。
1. 觸發器範圍
為了在CDB中建立資料庫事件觸發器,需要以通用使用者登入到資料庫,且該使用者需要被授予ADMINISTER DATABASETRIGGER系統許可權。
CONN sys@cdb1 AS SYSDBA
CREATE OR REPLACE TRIGGER cdb1_aftr_strtup_trg
AFTER STARTUP ON DATABASE
BEGIN
--觸發器操作程式碼
NULL;
END;
/
為了在PDB中建立一個資料庫觸發器,需要以通用使用者或本地使用者連線該資料庫,且該使用者需要被授予該資料庫範圍內的ADMINISTER DATABASETRIGGER系統許可權。ON DATABASE 和ON PLUGGABLE DATABASE子句在PDB內作用是一樣的,但有些事件要求顯式的ON PLUGGABLE DATABASE子句。
CONN sys@pdb1 AS SYSDBA
CREATE OR REPLACE TRIGGER pdb1_aftr_strtup_trg
AFTER STARTUP ON PLUGGABLE DATABASE
BEGIN
-- 觸發器操作程式碼
NULL;
END;
/
CREATE OR REPLACE TRIGGER pdb1_aftr_strtup_trg
AFTER STARTUP ON DATABASE
BEGIN
-- 觸發器操作程式碼
NULL;
END;
/
有些事件觸發器也可以用於CDB和PDB的模式層面。功能並未因多宿主選項而改變。
CONN sys@cdb1 AS SYSDBA
CREATE OR REPLACE TRIGGER cdb1_aftr_lgn_trg
AFTER LOGON ON test.SCHEMA
BEGIN
-- 觸發器操作程式碼
NULL;
END;
/
CONN sys@pdb1 AS SYSDBA
CREATE OR REPLACE TRIGGER pdb1_aftr_lgn_trg
AFTER LOGON ON test.SCHEMA
BEGIN
-- 觸發器操作程式碼
NULL;
END;
/
2. 可用事件
1) 下列資料庫時間均可用於CDB和PDB層面。
ü AFTER STARTUP :CDB或PDB開啟後觸發器觸發。
ü BEFORE SHUTDOWN :CDB或PDB關閉前觸發器觸發。
ü AFTER SERVERERROR。可用於PDB當伺服器錯誤資訊被記錄且觸發錯誤觸發器安全時觸發器將被觸發,可用於資料庫或模式層面。
ü AFTER LOGON :當客戶端登入到CDB或PDB時觸發器觸發,可用於資料庫或模式層面。
ü BEFORE LOGOFF:客戶端退出CDB或PDB時觸發,可用於資料庫或模式層面。
ü AFTER SUSPEND :當伺服器錯誤引起事務暫停時觸發器觸發,可用於資料庫或模式層面。
ü BEFORE SET CONTAINER:SET CONTAINER命令執行前觸發器觸發,可用於資料庫或模式層面。
ü AFTER SET CONTAINER:SET CONTAINER命令執行後觸發器觸發,可用於資料庫或模式層面。
2) 下列資料庫事件僅用於CDB層面。
ü AFTER DB_ROLE_CHANGE:在DG配置環境中,當資料庫角色從主庫切換為備庫或從備庫切換為主庫時觸發。
3) 下列資料庫事件只能用於PDB層面,且要求顯式的ON PLUGGABLEDATABASE子句,使用ON DATABASE子句會導致報錯。
ü AFTER CLONE :克隆操作完成後,觸發器就在新PDB中觸發,且隨後該觸發器被刪除。如果觸發器失敗,克隆操作也會失敗。
ü BEFORE UNPLUG :在去插拔操作前,觸發器在PDB中觸發,且隨後該觸發器被刪除。如果觸發器失敗,去插拔操作也將失敗。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-2120967/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle12c中多宿主容器資料庫(CDBs)和可插拔資料庫(PDBs)新特性之執行指令碼Oracle資料庫指令碼
- 詳談Oracle12c新特點容器資料庫&可插拔資料庫(CDB&PDB)Oracle資料庫
- Mysql之觸發器triggerMySql觸發器
- 禁止oracle表的觸發器triggerOracle觸發器
- MySQL入門-- TRIGGER(觸發器)MySql觸發器
- PL/SQL 07 觸發器 triggerSQL觸發器
- SQLite建立觸發器 CREATE TRIGGERSQLite觸發器
- oracle trigger觸發器這servererrorOracle觸發器ServerError
- 資料庫開發---常用物件-觸發器資料庫物件觸發器
- 資料庫觸發器,禁止DDL操作資料庫觸發器
- SQL資料庫觸發器例項SQL資料庫觸發器
- sql觸發器刪除資料庫中的級聯記錄SQL觸發器資料庫
- Oracle資料庫DDL審計觸發器觸發的bug問題Oracle資料庫觸發器
- oracle 觸發器實現禁止在資料庫中建立dblink ---透過觸發器實現Oracle觸發器資料庫
- SQL Server資料庫級別觸發器SQLServer資料庫觸發器
- 資料庫環境中的shell指令碼應用資料庫指令碼
- Oracle12c多租戶資料庫 - PDB資料庫的unplug及plug 2Oracle資料庫
- Oracle12c多租戶資料庫 - PDB資料庫的unplug及plug 1Oracle資料庫
- Oracle12c多租戶資料庫 - PDB資料庫的unplug及plug 3Oracle資料庫
- 審計資料庫登陸登出觸發器資料庫觸發器
- 2.10.1 在non-CDB(非多租戶)環境中克隆資料庫資料庫
- Oracle12c多租戶資料庫 - PDB資料庫的unplug及plug 參考Oracle資料庫
- rman 可否克隆rac資料庫到另外一個rac環境的資料庫中?資料庫
- 觸發器限制指定IP訪問oracle資料庫觸發器Oracle資料庫
- oracle巧用觸發器提高資料庫安全級別Oracle觸發器資料庫
- 審計資料庫登陸失敗觸發器資料庫觸發器
- linux系統資料庫開發環境搭建Linux資料庫開發環境
- [MySQL光速入門]026 觸發器 trigger!!!MySql觸發器
- oracle trigger觸發器審計schema物件的變更ddlOracle觸發器物件
- 利用Sql server 2005的資料庫觸發器開發的資料庫稽核追蹤系統SQLServer資料庫觸發器
- Docker環境Oracle資料庫搭建DockerOracle資料庫
- uat環境停不了資料庫資料庫
- 通過觸發器記錄資料庫連線資訊觸發器資料庫
- oracle12c新特點之可插拔資料庫(Pluggable Database,PDB)Oracle資料庫Database
- jquery中trigger無法觸發hover事件的解決方案jQuery事件
- DG環境下重新構建物理備庫oracle12COracle
- RAC環境中的資料庫部署技術——RAC部署和效能資料庫
- 從Oracle資料庫中批量抓取Trigger指令碼的方法Oracle資料庫指令碼