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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 禁止oracle表的觸發器triggerOracle觸發器
- MySQL入門-- TRIGGER(觸發器)MySql觸發器
- 資料庫的觸發器的使用資料庫觸發器
- [MySQL光速入門]026 觸發器 trigger!!!MySql觸發器
- 資料庫檢視,索引,觸發器資料庫索引觸發器
- 2.10.1 在non-CDB(非多租戶)環境中克隆資料庫資料庫
- jquery中trigger無法觸發hover事件的解決方案jQuery事件
- ORA-01031 CREATE TRIGGER ON DATABASEDatabase
- database資料庫的資料結構Database資料庫資料結構
- 通過觸發器記錄資料庫連線資訊觸發器資料庫
- 【Azure Function】Azure Function中的Timer Trigger無法自動觸發問題Function
- 專案開發中的pro、pre、test、dev環境及SpringBoot多環境配置devSpring Boot
- python環境連結Oracle資料庫PythonOracle資料庫
- python下多環境開發(虛擬環境)Python
- 頭歌資料庫實驗七:函式與觸發器資料庫函式觸發器
- 【MySQL資料庫】認識資料庫+環境搭建--------Windows系統MySql資料庫Windows
- unity中animator中Trigger多次觸發動畫的解決方法(基於 stateInfo和ResetTrigger)Unity動畫
- Quartz入門及觸發器與Trigger的介紹&&Spring task Vs Quartz的比較quartz觸發器Spring
- Win環境至Linux環境Oracle資料庫遷移全過程LinuxOracle資料庫
- AWR1243+DCA1000——硬體觸發(Hardware Trigger)
- 教小白搭建sybase資料庫環境資料庫
- Mac環境下安裝MongoDB資料庫MacMongoDB資料庫
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- Linux大資料開發centos7中的zookeeper開發環境搭建Linux大資料CentOS開發環境
- 資料庫分片(Database Sharding)詳解資料庫Database
- 3. 資料庫 database & Eloquent ORM資料庫DatabaseORM
- 資料庫應有與之匹配的基礎環境資料庫
- 瞭解SQL Server觸發器及觸發器中的事務AWSQLServer觸發器
- openGauss資料庫JDBC環境連線配置(Eclipse)資料庫JDBCEclipse
- 【伺服器虛擬化資料恢復】Xen Server環境下資料庫資料恢復案例伺服器資料恢復Server資料庫
- 【教程】Spring+Mybatis環境配置多資料來源SpringMyBatis
- CentOS7 安裝Oracle12c資料庫CentOSOracle資料庫
- Sealos Devbox 使用教程:使用 Cursor 一鍵搞定資料庫開發環境dev資料庫開發環境
- Item描述資訊的更改也會導致will trigger ORDERADM_H的update函式觸發函式
- SAP 資料更新的觸發
- 1.2.1. 任務1:評估資料庫伺服器硬體環境資料庫伺服器
- oracle 觸發器,當一個表更新或插入時將資料同步至另個庫中的某個表中Oracle觸發器
- Android資料庫檢視庫---Android-Debug-DatabaseAndroid資料庫Database
- 2.4.1 使用 CREATE DATABASE 子句建立資料庫Database資料庫