Oracle日志分析之 事务级精准撤销
鼎甲作为国内首家成功通过 Oracle BSP(Backup Solutions Program)的官方授权的灾备产品供应商,产品DBackup 在针对 Oracle 数据库灾备上,表现出独特的优势:利用 Oracle 日志解析的功能,不仅仅只是实现了事务级精准恢复,还可以实现事务级精准撤销。
一、事务撤销的常规操作
对于数据库运维人员来说,会常遇到这样的报障:“我录入系统时,不小心把***数据给写错了,请帮我修改一下,或者删除后我再重新录入。”运维人员在得到确认修改许可后,如果只是独立的一个数据值修改,往往只是通过SQL语句的update来更新数据。但如果是有关联性的数据,直接数据修改是不可行的,容易导致对数据的二次伤害,所以需要通过“事务撤销处理”的方式来还原数据,常规撤销的处理步骤:
-
首先,需要和数据录入人员确定误操作的时间范围;
-
接着,调用LogMiner工具进行数据分析。使用过LogMiner的都清除,这是一个纯指令操作的工具,要寻找到误操作的事务或SCN,需要执行以下常规操作步骤:
-
进入数据库,将数据库当前数据字典分析出来,生成数据字典文件;
-
将需要分析的归档文件添加到分析列表,如果要分析多个日志文件就添加多个;
-
查看当前分析列表;
-
以时间段为基准进行分析;
-
查询分析结果。
-
-
最后,通过日志的分析后,确定误操作的事务,执行UNDO操作。
这是一个繁琐和复杂的处理过程,需要有一定经验的DBA才能处理,不适用于大多数系统维护人员。所以当发生误操作时,往往需要求助于原厂服务或者寻找有经验的DBA处理,无论哪种方式价格都不菲。而最关键是由于需要协调人员,误操作处理无法做到及时和快速的处理。
二、鼎甲简易的事务撤销操作
现在,您可以借助于鼎甲灾备产品对Oracle数据库日志文件的解析功能,直观查看每个事务的SCN信息,并进行事务的撤销处理。
DBackup做为鼎甲灾备产品的核心一员,我们来看看在对事务撤销处理上是如何实现和操作的。
1. 事务撤销
1) 日志备份。DBackup是备份容灾系统,所有还原和恢复的数据,都依赖于备份作业所获取的备份集数据。所以,要支持事务的撤销处理,首先得配有日志的备份作业,获取到Oracle的日志文件,包括:重做日志(Redo log)、归档日志(Archive log)。
2) 日志分析。基于日志备份集,用户只需确定需要进行日志分析的时间段,DBackup将自动提取该时间段的数据进行分析,并以列表方式直观展现。
3) 选择事务撤销。依据分析出来的日志信息,选择一个或多个事务,创建撤销作业,针对生产环境中的在线数据库进行数据UNDO处理,可以定点撤销某些已经提交的事务,把数据还原正确。
2. 操作简易
基于已有的日志备份集数据,只需简易几步即可完成撤销操作。
1) 选择需要日志分析的时间段。用户只需在管理界面上的时间控件中选择起始和终止的时间点。(彩蛋:如果需要选择的时间不在已有备份集范围,也是可以的。)
2) 深度查看分析结果。点击事务信息,即可查看每个事务所关联的SCN,了解SCN所执行的内容。
3)配置撤销作业。以事务为基数,选择需要撤销的事务,DBackup自动读取出需要撤销的事务提交ID,并创建作业立即执行。
4) 撤销事务审计。直接在Oracle的执行UNDO操作,虽然数据库日志中会记录操作的审计信息,但如果要查看,还得进行复杂的日志分析处理。但在DBackup中,当用户进行了事务级撤销操作,系统将会自动把该行为记录到系统日志中,提供审计管理。
把复杂的事务处理实现简单化,这是一个优秀产品的行业水准。在Oracle事务撤销处理的业务实现上,鼎甲灾备产品把“繁琐复杂”变成了“简单易用”,使得数据库的日常运维工作更加容易,让更多非专业DBA的运维人员受用,企业也会因此而降低运维成本,提高运维效率,同时还可以更有效地审计运维人员对数据库的操作。