Oracle12c中多宿主环境(CDB&PDB)的数据库触发器(Database Trigger)
来源:互联网 发布:3d分析软件 编辑:程序博客网 时间:2024/06/11 14:13
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中触发,且随后该触发器被删除。如果触发器失败,去插拔操作也将失败。
- Oracle12c中多宿主环境(CDB&PDB)的数据库触发器(Database Trigger)
- 浅谈Oracle12c 数据库、用户、CDB与PDB之间的关系
- 浅谈Oracle12c 数据库、用户、CDB与PDB之间的关系
- 如何配置Hibernate连接oracle12c 的PDB和CDB数据库
- Oracle12c CDB和PDB数据库的启动与关闭说明
- Oracle12c CDB和PDB数据库的启动与关闭说明
- Oracle12c中配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB)
- jdbc-connect-oracle12c-pdb/cdb(jdbc连接oracle12c的pdb和cdb)
- Oracle12c多租户CDB 与 PDB 参数文件位置探讨、查询CDB 与 PDB 不同值的参数
- Oracle12c多租户如何连接到CDB或PDB、CDB与PDB容器切换
- oracle12c 之 oerr ora 65096引出的CDB/PDB
- 二、Oracle12c中的CDB与PDB
- Oracle12c 新概念CDB与PDB 解析
- ORACLE12C 新特性CDB与PDB
- oracle12c cdb和pdb参数修改
- oracle12c 新特性 CDB与PDB
- Oracle12c多租户如何启动关闭CDB或PDB (PDB自动启动)
- 详谈Oracle12c新特点容器数据库&可插拔数据库(CDB&PDB)
- SpringMvc整合shiro报错(一)
- UITableView使用注意事项(unable to dequeue a cell with identifier)
- 常用JS技巧
- iOS多线程的初步研究(七、八、九)-- dispatch对象-- dispatch队列-- dispatch源-- dispatch同步
- JDk的环境变量如何设置
- Oracle12c中多宿主环境(CDB&PDB)的数据库触发器(Database Trigger)
- 复合主键
- 20181220_eglSwapBuffers详解
- MyEclipse 常用快捷键
- 计算器较长表达式整体运算
- 人脸识别之特征脸方法(Eigenface)
- 判断用户设备的方法(只有真机有效)
- Redis服务器搭建/配置/及Jedis客户端的使用方法
- mybatis 批量插入