说说如何做oracle数据库的sql审核:
1。如何做到预先的语法检查呢
<代码>首先要熟悉繁杂的甲骨文语法规范,并能提前报错(这不是问题)代码>
2。DDL语句列的检查,索引的检查这些是直接执行才会发现的,难道要把表的结构全部导出来,操作检查一遍吗
(貌似可行)那么要准备一个存储其他库表结构的oracle数据库
3。DML语句如何检查数据冲突呢?
<代码>可以使用不提交事物的方式检查,但如果碰到大量数据的操作呢?会造成锁的代码>
4。如何记录回滚语句?
<代码>能否解析日志呢,日志先写入重做,logminer会降低甲骨文性能 可不去回滚DDL语句,和插入、删除语句, 主要预防更新语句,那么提前把更新前语句的数据选择备份起来,而不直接生成回滚更新。代码>
5。这个工作流程是什么样子的呢?
<代码>。目标库的元数据备份到审核库 b。外部传参给审核程序,参数包括(ip、端口、用户名、密码、sql、backip,补丁,巴克斯,接回传球) c。审核程序先在审核库预执行,看看是否有语法错误,对于DDL语句就直接更新了,对于插入语句就直接执行了, d。对于删除语句检查句法,因此,删除之前要先备份导入到审核库,无法检查数据是否存在, e。对于更新语句,先要导入到备份库,只能检查语法,因为对于多表依赖的更新无法导出多表。代码>
检查完之后就代表通过了,就操作线上库