oracle流

对于想要集中数据审计函数以创建通用审计过程的开发者,也许就该考虑使用Oracle流。我们要一个数据审计表,保存对数据库进行的所有修改。这个数据库范围的审计表可用于多进程,它会引发一些性能问题(这已超出本书范畴),但这些问题可通过调整对象存储参数来减轻。

集中式数据审计跟踪将包含一个主表和一个附表,命名为AUDIT_TRAIL_1和AUDIT_TRAIL_2。AUDIT_TRAIL_1如下:

 

AUDIT_TRAIL_2如下:

 

流使用SYS.ANYDATA类型来存储列值。(ANYDATA类型列包含了数据示例和数据类型描述。)在审计表中将使用相同的数据类型。

简单的流配置包含了两个进程:捕捉进程从重做日志中获取DML的修改,并将它们写入数据库队列。应用进程拆分修改队列,并将它们传递给DML处理过程,而这个过程由开发者自己编写。DML处理过程将把DML修改写入数据审计跟踪。

要使用流,必须满足一些先决条件。我们需要使用Oracle企业版,数据库必须运行于归档日志模式。一些初始化参数必须设置,而流管理员账户必须创建并配置。说太多步骤会脱离主题,但我们将涵盖足够多细节,以教给你在审计中使用流的方法。

通过如下PL/SQL过程调用来配置流:

 
配置特定表的DML中的捕捉和应用进程。它们的配置方法大致相同,就是开启审计。
 
添加额外信息到重做日志中,这样流中的每个修改就会包含行的主键了。
 
将用户过程与应用进程关联起来。这将在INSERT和DELETE操作中完成。
 

DML_HANDLER是一个向表AUDIT_TRAIL插入数据的程序。它是可用于任何表的通用程序。

流捕捉进程从重做日志文件中读取所做的修改。这些修改不包含执行修改的用户名和修改的日期,但审计跟踪需要这些信息。可以用下面的方法使其对DML_HANDLER可用。

 
触发器获得事务的SCN号,将其与用户名和时间戳相关联,并将这3个值保存在一个表中。(我们要不时地删除这个表。)流应用进程现在拥有所需的信息以创建完整的审计跟踪。它将获得通过使用事务SCN号所保存的用户名和日期,并把信息增加到审计跟踪里。下面就是DML_HANDLER。
 
 
 
下面是用流捕捉审计过程的例子。
 
注意到,在审计跟踪里可以看到真正的修改以及主键,但不是表中的所有列。这是DELETE示例。
 
如果想以正常顺序查看各列的数据,可以将审计跟踪与TAB_COLUMNS视图联结。
 
你也许想知道用于显示SYS.ANYDATA数据类型的DISP_ANY函数。下面是保存于SYS.ANYDATA列的值。
 

流进程可以自动地(松散地)基于事件执行程序。事件就是流捕捉进程,它能对所有记录于数据库重做日志中的DDL和DML修改起作用。创建一个好的流程序并不需很多编程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle复制(Oracle Stream Replication)是一种高级的数据复制技术,用于将数据实时地从一个Oracle数据库复制到另一个Oracle数据库。它是Oracle数据库提供的一种异步复制解决方案,可以在分布式环境实现数据的实时同步和复制。 Oracle复制基于日志(Redo Log)来捕获和传输数据库的变更信息。它利用数据库的归档日志或在线重做日志的变更记录,将这些变更记录作为(stream)传输到目标数据库,然后在目标数据库上重新应用这些变更,以保持源数据库和目标数据库之间的数据一致性。 Oracle复制具有以下特点: 1. 异步复制:源数据库和目标数据库之间的数据复制是异步进行的,即源数据库不需要等待目标数据库确认复制操作完成。这可以提高复制的效率和性能。 2. 实时同步:Oracle复制能够实现数据的实时同步,变更记录会尽可能快地传输到目标数据库,并在目标数据库上应用。 3. 灵活性:Oracle复制可以根据需求选择复制的对象(表、索引、触发器等),并且可以进行过滤、转换和转发等操作,以满足不同的业务需求。 4. 可靠性:Oracle复制提供了一些机制来确保数据的完整性和一致性,例如事务序列号(Transaction Sequence Number)和确认机制。 通过使用Oracle复制,用户可以在分布式环境实现数据的实时复制和同步,支持各种应用场景,如数据备份、故障恢复、数据分发等。它是Oracle数据库强大而灵活的复制解决方案之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值