如何实现Oracle数据向低版本或SQL server的采集与转换
王国清(江苏省南京市审计局)
【发布时间:2011年06月22日】
字号:【大】 【中】 【小】
     
    近年来,随着被审计单位对信息化重视程度的不断提高,对信息系统的投入也越来越大,后台数据库不断升级更新,而审计人员的工具往往低于被审计单位的版本。比如;审计人员经常碰到被审计单位使用oracle11g数据库,而审计人员只有oracle10g,甚至只有oracle9i,这就给审计人员的数据采集与转换带来困难,笔者在审计过程中经过不断摸索、尝试、反复实践,探索出数据采集与转换方式方法,供广大审计同行参考。
    一、oracle高版本向低版本的采集与转换
    Oracle数据从高版本到低版本的采集转换,若两个版本相差较大,如oracle11g到oracle9i实现较为困难,最好的办法是进行软件升级;若是相邻版本,如被审计单位是oracle11g而审计人员的是oracle10g,主要有以下两种解决办法:
    一是通过oracle10g连接被审计单位的oracle11g的数据库,利用oracle10g的exp工具,导出oracle11g中需要导出的数据,然后通过oracle10g的imp工具导入到审计人员的oracle10g数据库中。
    二是通过被审计单位oracle11g的exp工具导出文件,直接通过oralce 10g的imp工具导入到oracle10g中,这种方法容易出错,不容易实现,且容易造成数据丢失,故不作推荐。
    二、Oracle数据向SQL server的采集与转换
    Oracle数据到SQL server采集转换的主要方法如下:
    一是在被审计单位的服务器上安装SQL server 2000,通过SQL server 2000的DTS工具进行采集,然后把SQL server数据库分离、备份然后恢复到审计人员的数据库中。
    二是先将被审计单位oracle的导出数据(dmp文件),导入恢复到审计人员建立的oracle 数据库中,然后再通过SQL server 2000的DTS 数据采集转换工具即可(笔者通过实践发现oracle的dmp文件无法导入到SQL Server 2005中)。
    下面以笔者在同级财政审计时预算执行系统的数据采集为例,作具体介绍。主要采集转换过程是oracle11g--->oracle10g---> SQL server2000,具体方法步骤如下:
    采集转换时的条件:被审计单位预算执行系统的后台数据库为oracle11g,服务器没有安装SQL sever2000数据库,审计人员只有oracle10g和SQL server2000数据库,而没有oracle11g数据库。
    第一步:数据的采集
    方法是让财政部门的技术人员通过oracle10g连接被审计单位预算执行系统的后台oracle11g数据库,利用oracle10g的exp工具,导出oracle11g中审计所需要的数据。
    参考语句如下:
    exp YSZX/123 full=yes file=H:
    jyszx2010.dmp log=H:\daochunjyszx.txt
    说明:如果审计人员有oracle11g数据库,直接在oracle11g中利用exp工具导出即可。
    第二步:数据的转换
    利用oracle10g的imp工具把njyszx2010.dmp导入到审计人员的oracle10g数据库中。先以sysdba 身份登录审计建立的oracle数据库,然后进行以下操作:
    1. 建立预算执行的表空间和相应的数据文件。注意:数据文件的大小建议根据被审计单位导出的dmp文件大小的4倍建立,以防被审计单位在导出数据时进行了压缩,恢复时由于空间不够而导致恢复不成功或者数据丢失,具体执行语句如下:
    SQL> CREATE TABLESPACE YSZX DATAFILE 'YSZX' SIZE 15000 M REUSE AUTOEXTEND ON NEXT 100 M MAXSIZE UNLIMITED;
    2. 建立以“YSZX”为名的用户,数据库密码为123,缺省表空间为步骤(1)所建立的“YSZX”的表空间,具体执行语句如下:
    SQL> CREATE USER "YSZX" PROFILE "DEFAULT" IDENTIFIED BY "123" DEFAULT TABLESPACE "YSZX" ACCOUNT UNLOCK;
    3. 分别给YSZX用户授予访问、连接等权限,具体执行语句如下:
    SQL> GRANT UNLIMITED TABLESPACE TO "YSZX";
    SQL> GRANT "CONNECT","RESOURCE","DBA" TO "YSZX";
    4. 在dos模式,把财政部门提供的dmp数据导入到审计oracle数据库YSZX用户下,同时建议被审计单位在导出数据时、审计人员在恢复数据时,都要生成相应的日志文件,以便于核对审计人员恢复的数据与财政部门导出的数据是否一致,有无产生数据丢失,具体导入语句如下:
    imp YSZX/123 full=yes file=H:
    jyszx2010.dmp COMMIT=Y IGNORE=Y log=H:\YSZX.TXT
    5.通过odbc建立oracle 数据源:
    (1)选择oracle 10g数据源驱动:
        (2)配置oracle odbc 驱动
    (3)点击Test Connection,进行数据库连接测试: 
    6.通过SQL Server 2000 的DTS工具导入到SQL Sever中:
    首先选择oracle数据源(见第二步建立),然后按正常的SQL  server数据导入,选择源表和目的sql server数据库即可。(王国清)


【关闭】    【打印】