利用Oracle触发器 实现数据库自动化(oracle触发器类型)
备份
在维护和使用数据库系统过程中,定期备份数据对于防止灾难性的数据的丢失至关重要,尤其是大量保存着客户重要数据信息的企业数据库。有些系统操作人员会以定时把数据库信息备份到指定的设备来实现备份任务。这样可以保证数据库数据安全,但是效率低下。
Oracle 触发器可以提供一种机制,以自动完成定时备份数据库的计划任务。Oracle 触发器是一种特殊的存储过程,能够被特定事件自动触发处理当表发生变化时自动触发,进行相应的处理:例如将备份数据库的信息添加到备份的表中。
下面以一个简单的案例,使用 Oracle 触发器来实现数据库自动备份,此案例使用 PL/SQL 语言脚本执行备份任务。
首先,要创建一个用于保存备份状态的表:
CREATE TABLE backup_log
( backup_time DATE, //备份时间
status NUMBER(1) //0表示备份失败,1表示备份完成。);
接着,创建一个库操作触发器, 用于自动执行备份任务:
create or replace
trigger db_backupBEFORE
insert on backup_log //当插入backup_log表时触发BEGIN
insert into backup_log values (sysdate,1); //插入表中,表明备份开始 execute immediate('backup database to destination'); //执行备份操作
insert into backup_log values (sysdate,0); //插入表中,表明备份完成END;
最后,启用触发器并将 backup_log 表中的备份时间设置为定时任务:
ALTER trigger db_backup ENABLE //启用触发器
CREATE OR REPLACE TRIGGER backup_triggerAFTER INSERT ON backup_log
BEGIN DBMS_SCHEDULER.CREATE_JOB (
job_name => 'Database_Backup', job_type => 'STORED_PROCEDURE' ,
job_action => 'Backup_Database' , repeat_interval => 'FREQ=DAILY;INTERVAL=1;BYHOUR=1',
comments => 'perform db backup', enabled => TRUE);
END;/
以上就是使用 Oracle 触发器来实现数据库自动化备份的全部过程,通过简单地编写一系列 PL/SQL 脚本就可以实现自动化运行定时备份数据库信息,大大提高定时任务的执行效率,同时保证数据库数据安全性。