计算机审计中如何实现平面文件的快速恢复,本文主要内容关键词为:如何实现论文,平面论文,快速论文,计算机论文,文件论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
在审计项目开展过程中,审计人员通常需要对被审计单位所提供的数据进行恢复,并在此基础上开展审计分析。由于不同数据库系统都有自己相对独立的存储体系,交换数据的格式也存在一定差异,因此在数据恢复过程中,审计人员不得不基于被审计单位的应用环境来构建分析环境,并完成数据恢复工作。上述操作显然对审计人员提出了更高的要求,因为它不仅需要审计人员了解被审计单位的具体业务,还要对不同数据库系统的使用有所了解,进一步增加了审计实施的难度。 目前,一种行之有效的方式是要求被审计单位提供存储数据的平面文件,即以特定字符分隔的文本文件,这种类型的文件不仅能够消除异构数据库系统底层间的差异,而且有助于提升数据转化及恢复的效率。对于审计人员来说,了解不同主流数据库产品对平面文件的支持情况及如何实现文件的快速恢复,是十分有必要的,因为它不仅有助于审计工作的顺利开展,同时也有助于加深对不同数据库系统的了解,提高自身计算机操作水平。 为此,本文以平面文件中常见CSV(逗号分隔)文件和审计分析过程中较为常见的关系数据库(Oracle、SQL Server、DB2、Sybase、Informix)为例,对平面文件的恢复方法及其性能进行分析,从而为审计人员的实际应用提供参考依据。 Oracle数据库恢复工具 Oracle是甲骨文公司开发的关系数据库管理系统,该系统在数据库领域一直处于领先地位,并被金融、电力等行业所青睐,同时也是被审计单位应用最多的数据库系统之一。Oracle具有使用方便、功能强大等特点,此外技术文档也比较完善,获取也较为容易。在外部数据交换方面,Oracle提供了一个名为SQL LOADER的数据加载工具,该工具能够支持多种平面文件格式向Oracle中加载数据,并支持传统路径和直接路径两种恢复模式。传统路径是指以SQL语句插入的形式进行加载,而直接路径则以直接格式化数据库文件的形式进行加载,相对来说,后者的执行效率更高。 利用SQL LOADER工具加载数据时,首先要建立对输入数据(如输入数据的位置、数据类型等)进行描述控制文件,该文件通常以文本形式保存,并以.CTL扩展名命名。以下是一个控制文件内容的简单示例: LOAD DATA INFILE文件名INTO TABLE表名FIELDS TERMINATED BY‘,’(字段1,字段2,…,字段n) 上述语句中,大写英文字母为数据库中的关键字。其中,INFILE指明要加载的平面文件,INTO TABLE指明要加载的数据表,FIELDS TERMINATED BY指明文本中列的分隔符,最后一行指出数据要加载到表的哪些列中。上述控制文件编写完成后,可在命令行提示符下执行如下语句即可完成数据加载。 SQLLDR USERID=用户名/密码CONTROL=控制文件名LOG=日志名 SQL Server数据库恢复工具 SQL Server是微软公司开发的关系数据库管理系统,该系统界面十分友好、操作也非常简便,审计人员通常将其作为实际项目中的分析环境。在外部数据交换方面,SQL Server提供两种数据加载方式,一种为BCP工具,一种为BULK INSERT命令。 BCP是SQL Server提供的专门用于大容量导出数据和大容量导入数据并生成格式化文件的命令行实用工具,该工具的使用较为简便,用户只需在命令提示符下执行如下语句即可实现大容量数据加载。其中,参数-c指明使用字符数据作为中间存储类型,-t和-r分别表示以指定的字符作为列和行分隔符。 BCP数据库名.架构名.表名IN文件名-U用户名-P密码-S实例名-c-t,-r\n BULK INSERT是SQL Server提供的将数据直接从数据文件导入到数据库表或未分区视图的SQL语句,该语句可直接在SQL Server Management Studio中执行,下面给出了该语句常用的语法格式,其中FIELDTERMINATOR指明文本中列的分隔符,ROWTERMINATOR指明文本中行的分隔符。 BULK INSERT数据库名.架构名,表名FROM文件名WITH(FIELDTERMINATOR=‘,’,ROWTERMINATOR=‘\n’) DB2数据库恢复工具 DB2是IBM公司开发的关系数据库管理系统,该系统通常被用于大型应用系统及海量数据处理当中,并支持从大型机到单用户的应用环境。在外部数据交换方面,DB2同样提供两种数据加载工具IMPORT和LOAD。 IMPORT与SQL LOADER的传统路径加载模式相类似,在数据加载过程中,IMPORT利用SQL INSERT语句向表或视图中填充数据,并在数据库的日志中记录插入的过程,进而实现数据加载失败时的快速恢复。该工具的调用语句如下所示,其中OF DEL指定文本格式,MESSAGES指定输出日志的文件名。 IMPORT FROM文件名OF DEL MESSAGES日志名INSERT INTO表名 LOAD与SQL LOADER的直接路径加载模式相类似,LOAD对数据的加载采用数据页级别的处理,并绕过数据库管理系统的多个处理层次,使数据的加载效率得到大幅度提升。该工具的调用语句如下所示,其中OF DEL指明加载文本的格式为字符文件,MESSAGES指明输出日志的文件名,NONRECOVERABLE指明执行恢复的类型。 LOAD FROM文件名OF DEL MESSAGES日志名INSERT INTO表名NONRECOVERABLE Informix数据库恢复工具 Informix是Informix公司开发的关系数据库管理系统,并以“高性能、低维护、低成本”著称。目前该系统已被IBM公司收购,并定位为IBM在线事务处理的旗舰数据库产品。在外部数据交换方面,Informix提供的数据加载工具为LOAD。LOAD语法相对简单、使用灵活,常常被用于表一级迁移。迁移过程中,用户能够根据需求订制表中的特定列,并可对数据进行汇总、排序等。该工具的调用如下所示。 LOAD FROM文件名DELIMITER‘,’INSERTINTO表名(字段1,字段2,…,字段n) Sybase数据库恢复工具 Sybase是由Sybase公司开发的关系数据库管理系统,在影响力上,该系统虽不及Oracle、DB2等大型关系数据库,但在许多国内大型企业当中,Sybase仍占有一定比例。目前,该系统一直致力于为企业提供一个高性能的数据及事务处理系统。在外部数据交换方面,Sybase提供的数据加载工具同样为BCP,原因在于Sybase最初是由Microsoft、Sybase等公司联合研发,因此在架构和工具上较为接近。由于BCP工具在SQL Server部分已做说明,故不再另行阐述。 由此可见,目前主流数据库产品都普遍支持平面文件的恢复,但由于底层实现方式的不同,在命令的调用或语法的使用上或多或少地存在些差异。数据库系统恢复工具对比表(见下页)对五种不同数据库系统恢复所使用的工具或命令进行了简要的总结,以便于审计人员加深对上述工具的认识。 为了给审计人员提供更直观的参考,本文对上述工具或命令的执行效率做了进一步测试。测试数据采用一百万条人工记录为样例,并记录恢复时间。 结果表明,对于一百万条记录的恢复,SQL Server、DB2的LOAD工具和Sybase用时较少,而DB2的IMPORT工具、Oracle的SQL LOADER工具和Informix的LOAD工具,由于记录日志的原因用时相对较多。但综合来看,不同数据库对于平面文件的恢复均有不俗的表现,因此,在实际项目中,审计人员可根据自己掌握的数据库系统并配合与其对应的高效工具,完成数据恢复即可,此外也可在关闭日志的基础上进一步提升性能,从而节省时间,提高审计实施效率。计算机审计中如何实现平面文件的快速恢复_数据库文件论文
计算机审计中如何实现平面文件的快速恢复_数据库文件论文
下载Doc文档