如何记录数据库执行的insert、update、delete?

xsj635953015 2016-11-13 02:28:24

已经开发好的java web 项目,部署在外网上,现在客户需要我们把数据都实时交换到内网

从外网到内网的交换通道由第三方公司的安全交换边界来完成,所有数据以文件形式传递。

现在我的思路是,不改动我们的web项目,通过实时记录oracle这一层的insert、update、delete sql,然后形成实时文件,由第三方公司交换到内网,然后我在内网写程序读取文件,并逐条执行sql,经过以上步骤,达到内外网数据交互的目的。

所以,我怎么样才可以实时记录所有sql语句到文件中?
或者大家有其他解决方案的,希望提供下,先行谢过!!!!!!
...全文
1234 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxq129601 2016-12-05
  • 打赏
  • 举报
回复
ORACLE审计,触发器都行,但这种最终还要自己拼SQL写程序,容易出错。不如OGG、shareplex等同步方式来的稳定妥当
我不叫康师傅 2016-12-05
  • 打赏
  • 举报
回复
用trigger,条件多考虑考虑,不要误动 可能需要一段时间运行观察,debug
穿山甲 2016-12-02
  • 打赏
  • 举报
回复
一般做法是用网闸,传xml文件解析,
<xml1>
<temp1>name:value</temp1>
<temp2>age:value</temp2>
</xml1>


小凤雏 2016-11-16
  • 打赏
  • 举报
回复
select * from v$sqlarea a where module='JDBC Thin Client' order by a.FIRST_LOAD_TIME desc,oracle里面应该有监控语句的,可以查job找某时刻执行的语句,然后写入文件流,传递,到达内网后读取流,执行即可。
小灰狼 2016-11-15
  • 打赏
  • 举报
回复
如果是 MySQL,可以把事务日志导出成为一个 sql,然后在备份的数据库上重新执行一次 但是Oracle能不能酱紫就不知道了
sych888 2016-11-14
  • 打赏
  • 举报
回复
引用 10 楼 xsj635953015 的回复:
[quote=引用 6 楼 sych888 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不清楚你们内外网有什么限制 比如OGG,它传递的也是文件,二进制文件[/quote] OGG可以在本地生成文件吗?然后由第三方公司传递到内网,然后我如何在内网解析OGG文件?[/quote] 你内网内不是也有数据库吗?再安装OGG,OGG自己就能解析自己的队列文件,然后把队列文件转换成DML操作,应用到内网数据库上
卖水果的net 2016-11-14
  • 打赏
  • 举报
回复
引用 9 楼 xsj635953015 的回复:
这样我这边要交互的有33张表,每张表都对应N个字段,你这个触发器在每一次更新都要记录N条数据到日志表?
更新一记录,就写一行日志,更新一个字段要写一行,更新 10 个字段,也是写一条;
xsj635953015 2016-11-14
  • 打赏
  • 举报
回复
引用 8 楼 jdsnhan 的回复:
[quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不管以哪种形式同步,网络肯定是连通的吧。内网的数据库服务器能直接ping通外网服务器所在地址吗[/quote] 安全边界中安全审计一层又一层,不可能ping通,只能帮你传递文件。
xsj635953015 2016-11-14
  • 打赏
  • 举报
回复
引用 6 楼 sych888 的回复:
[quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不清楚你们内外网有什么限制 比如OGG,它传递的也是文件,二进制文件[/quote] OGG可以在本地生成文件吗?然后由第三方公司传递到内网,然后我如何在内网解析OGG文件?
xsj635953015 2016-11-14
  • 打赏
  • 举报
回复
引用 5 楼 wmxcn2000 的回复:
[quote=引用 3 楼 xsj635953015 的回复:] [quote=引用 1 楼 wmxcn2000 的回复:] 如果业务不算繁忙的话,可以用触发器来实现; 把每次的操作,都记录在一张日志表中,交换数据时,直接取日志表的内容;
所有表的操作,都记录到同一张吗?里面做一个字段,存储sql?如果业务表有clob字段呢?[/quote] 不存SQL, 存具体的业务数据,有 LOB 也没有关系,都可以复制过去的;[/quote] 这样我这边要交互的有33张表,每张表都对应N个字段,你这个触发器在每一次更新都要记录N条数据到日志表?
jdsnhan 2016-11-14
  • 打赏
  • 举报
回复
引用 4 楼 xsj635953015 的回复:
[quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不管以哪种形式同步,网络肯定是连通的吧。内网的数据库服务器能直接ping通外网服务器所在地址吗
moscot_wu 2016-11-14
  • 打赏
  • 举报
回复
引用 4 楼 xsj635953015 的回复:
[quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 你这个说的,不管以什么方式交换,网络必须通,网络通为什么不能做DG 主从复制,第三方估计也是这样搞忽悠你,oracle有自己的工具你不用那没办法
xsj635953015 2016-11-14
  • 打赏
  • 举报
回复
引用 18 楼 sych888 的回复:
[quote=引用 17 楼 xsj635953015 的回复:] [quote=引用 16 楼 sych888 的回复:] [quote=引用 14 楼 xsj635953015 的回复:] [quote=引用 7 楼 moscot_wu 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 你这个说的,不管以什么方式交换,网络必须通,网络通为什么不能做DG 主从复制,第三方估计也是这样搞忽悠你,oracle有自己的工具你不用那没办法[/quote] 通不过的,网络安全审计非常严格,只能按照特定的格式传递文件,所以我想先记录好数据库变化
引用 13 楼 sych888 的回复:
[quote=引用 10 楼 xsj635953015 的回复:] [quote=引用 6 楼 sych888 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不清楚你们内外网有什么限制 比如OGG,它传递的也是文件,二进制文件[/quote] OGG可以在本地生成文件吗?然后由第三方公司传递到内网,然后我如何在内网解析OGG文件?[/quote] 你内网内不是也有数据库吗?再安装OGG,OGG自己就能解析自己的队列文件,然后把队列文件转换成DML操作,应用到内网数据库上[/quote] 表示根本没用过OGG,第三方公司取完文件传输到内网后,会把外网的文件给删除掉,请问,OGG是否支持每次都生成一个新的同步文件?[/quote] 可以设置文件大小 文件有源端 传到 目的端,传过去后就可以删除 目的端应用文件后也可以删除 OGG同步比较快,可以当作实时传输[/quote] 首先谢谢你耐心的回复。 我从未接触过OGG,通过今天在网上的了解,发现OGG的配置比较复杂。 目前还没了解到它是如何生成文件的? 生成的文件路径是否可以自定义? 生成后被第三方公司取走,是否会影响下一次生成文件? 被取到内网的文件是否可以被内网的OGG系统解析? 望回复![/quote] OGG要有源端和目的端 源端和目的端都有自己的队列文件,各自维护各自的 不过你要用OGG的话,这个软件是另收费的[/quote] 查了下确实是收费,这样一来我们公司这边不会同意
sych888 2016-11-14
  • 打赏
  • 举报
回复
引用 17 楼 xsj635953015 的回复:
[quote=引用 16 楼 sych888 的回复:] [quote=引用 14 楼 xsj635953015 的回复:] [quote=引用 7 楼 moscot_wu 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 你这个说的,不管以什么方式交换,网络必须通,网络通为什么不能做DG 主从复制,第三方估计也是这样搞忽悠你,oracle有自己的工具你不用那没办法[/quote] 通不过的,网络安全审计非常严格,只能按照特定的格式传递文件,所以我想先记录好数据库变化
引用 13 楼 sych888 的回复:
[quote=引用 10 楼 xsj635953015 的回复:] [quote=引用 6 楼 sych888 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不清楚你们内外网有什么限制 比如OGG,它传递的也是文件,二进制文件[/quote] OGG可以在本地生成文件吗?然后由第三方公司传递到内网,然后我如何在内网解析OGG文件?[/quote] 你内网内不是也有数据库吗?再安装OGG,OGG自己就能解析自己的队列文件,然后把队列文件转换成DML操作,应用到内网数据库上[/quote] 表示根本没用过OGG,第三方公司取完文件传输到内网后,会把外网的文件给删除掉,请问,OGG是否支持每次都生成一个新的同步文件?[/quote] 可以设置文件大小 文件有源端 传到 目的端,传过去后就可以删除 目的端应用文件后也可以删除 OGG同步比较快,可以当作实时传输[/quote] 首先谢谢你耐心的回复。 我从未接触过OGG,通过今天在网上的了解,发现OGG的配置比较复杂。 目前还没了解到它是如何生成文件的? 生成的文件路径是否可以自定义? 生成后被第三方公司取走,是否会影响下一次生成文件? 被取到内网的文件是否可以被内网的OGG系统解析? 望回复![/quote] OGG要有源端和目的端 源端和目的端都有自己的队列文件,各自维护各自的 不过你要用OGG的话,这个软件是另收费的
xsj635953015 2016-11-14
  • 打赏
  • 举报
回复
引用 16 楼 sych888 的回复:
[quote=引用 14 楼 xsj635953015 的回复:] [quote=引用 7 楼 moscot_wu 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 你这个说的,不管以什么方式交换,网络必须通,网络通为什么不能做DG 主从复制,第三方估计也是这样搞忽悠你,oracle有自己的工具你不用那没办法[/quote] 通不过的,网络安全审计非常严格,只能按照特定的格式传递文件,所以我想先记录好数据库变化
引用 13 楼 sych888 的回复:
[quote=引用 10 楼 xsj635953015 的回复:] [quote=引用 6 楼 sych888 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不清楚你们内外网有什么限制 比如OGG,它传递的也是文件,二进制文件[/quote] OGG可以在本地生成文件吗?然后由第三方公司传递到内网,然后我如何在内网解析OGG文件?[/quote] 你内网内不是也有数据库吗?再安装OGG,OGG自己就能解析自己的队列文件,然后把队列文件转换成DML操作,应用到内网数据库上[/quote] 表示根本没用过OGG,第三方公司取完文件传输到内网后,会把外网的文件给删除掉,请问,OGG是否支持每次都生成一个新的同步文件?[/quote] 可以设置文件大小 文件有源端 传到 目的端,传过去后就可以删除 目的端应用文件后也可以删除 OGG同步比较快,可以当作实时传输[/quote] 首先谢谢你耐心的回复。 我从未接触过OGG,通过今天在网上的了解,发现OGG的配置比较复杂。 目前还没了解到它是如何生成文件的? 生成的文件路径是否可以自定义? 生成后被第三方公司取走,是否会影响下一次生成文件? 被取到内网的文件是否可以被内网的OGG系统解析? 望回复!
sych888 2016-11-14
  • 打赏
  • 举报
回复
引用 14 楼 xsj635953015 的回复:
[quote=引用 7 楼 moscot_wu 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 你这个说的,不管以什么方式交换,网络必须通,网络通为什么不能做DG 主从复制,第三方估计也是这样搞忽悠你,oracle有自己的工具你不用那没办法[/quote] 通不过的,网络安全审计非常严格,只能按照特定的格式传递文件,所以我想先记录好数据库变化
引用 13 楼 sych888 的回复:
[quote=引用 10 楼 xsj635953015 的回复:] [quote=引用 6 楼 sych888 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不清楚你们内外网有什么限制 比如OGG,它传递的也是文件,二进制文件[/quote] OGG可以在本地生成文件吗?然后由第三方公司传递到内网,然后我如何在内网解析OGG文件?[/quote] 你内网内不是也有数据库吗?再安装OGG,OGG自己就能解析自己的队列文件,然后把队列文件转换成DML操作,应用到内网数据库上[/quote] 表示根本没用过OGG,第三方公司取完文件传输到内网后,会把外网的文件给删除掉,请问,OGG是否支持每次都生成一个新的同步文件?[/quote] 可以设置文件大小 文件有源端 传到 目的端,传过去后就可以删除 目的端应用文件后也可以删除 OGG同步比较快,可以当作实时传输
moscot_wu 2016-11-14
  • 打赏
  • 举报
回复
只能说楼主不要被第三方公司忽悠了,这些oracle 的DG还有OGG 都可以实现,至于说网络层面的限制,oracle 的不同产品也有不同的方案,第三方也不过做的是代理或者包装下。无非是归档日志的同步而已。
xsj635953015 2016-11-14
  • 打赏
  • 举报
回复
引用 7 楼 moscot_wu 的回复:
[quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 你这个说的,不管以什么方式交换,网络必须通,网络通为什么不能做DG 主从复制,第三方估计也是这样搞忽悠你,oracle有自己的工具你不用那没办法[/quote] 通不过的,网络安全审计非常严格,只能按照特定的格式传递文件,所以我想先记录好数据库变化
引用 13 楼 sych888 的回复:
[quote=引用 10 楼 xsj635953015 的回复:] [quote=引用 6 楼 sych888 的回复:] [quote=引用 4 楼 xsj635953015 的回复:] [quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不清楚你们内外网有什么限制 比如OGG,它传递的也是文件,二进制文件[/quote] OGG可以在本地生成文件吗?然后由第三方公司传递到内网,然后我如何在内网解析OGG文件?[/quote] 你内网内不是也有数据库吗?再安装OGG,OGG自己就能解析自己的队列文件,然后把队列文件转换成DML操作,应用到内网数据库上[/quote] 表示根本没用过OGG,第三方公司取完文件传输到内网后,会把外网的文件给删除掉,请问,OGG是否支持每次都生成一个新的同步文件?
sych888 2016-11-13
  • 打赏
  • 举报
回复
引用 4 楼 xsj635953015 的回复:
[quote=引用 2 楼 sych888 的回复:] 为什么不考虑数据库复制或同步软件呢?比如OGG
第三方公司以文件形式做内外网交换,数据库复制或同步软件也只能在外网上交换吧~[/quote] 不清楚你们内外网有什么限制 比如OGG,它传递的也是文件,二进制文件
加载更多回复(5)

3,497

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧