安徽省“一体化”平台数据的备份与恢复技术概要

作 者:

作者简介:
方心富,安徽省南陵县审计局

原文出处:
安徽审计

内容提要:

02


期刊代号:V3
分类名称:审计文摘
复印期号:2016 年 08 期

关 键 词:

字号:

      一、县级数据恢复与上报方法

      县级数据处理是报送工作的起点,在源头做好数据的恢复与导出工作,才可为市级、省级逐级汇总上报提供良好的基础。按照省厅实施方案的要求,首先需要创建一个“地区编码_CZYTH_年度_上报年月”格式名的用户,然后将财政备份数据导入到该用户模式下,最后导出该模式下的对象。因财政部门提供数据逻辑备份方式不同,数据恢复方法也不同。

      (一)恢复方法

      1.EXP方式导出文件的恢复

      (1)利用DBCA向导创建一个空数据库,在创建过程中一般保持默认选项即可;

      (2)在CMD模式下,以system身份登录,创建5个表空间:ltsysdata01、ltsysdata02、ltsysdata03、ltsysdata04、ltslobdata01,因安徽省财政“一体化”平台中部分对象的创建指定了特定表空间,如果不事先创建这些表空间,对象导入将会失败。表空间创建格式如下:

      CREATE TABLESPACE ltsysdata01 DATAFILE‘文件路径\xxx.dbf’SIZE 50M AUTOEXTEND ON;

      SIZE大小根据实际需要确定,将表空间中数据文件设置为自动增长,其他表空间的创建方法相同。

      (3)以system身份登录,按命名规则创建新用户,并授予DBA角色,其默认的表空间为ltsysdata01,也可以是USERS或其他表空间,并具有该表空间无限配额,因用户名以地区编码打头,需用西文双引号标识,语法如下:

      CREATE USER“用户名”IDENTIFIED BY密码DEFAULT TABLESPACE ltsysdata01 QUOTA UNLIMITED ON ltsysdata01;

      (4)以system身份或者以新创建的用户身份导入备份文件的内容,在CMD命令提示符下输入:

      IMP system/密码@数据库连接符file=备份文件的路径及文件名fromuser=备份数据导出用户名(严格地说是对象所有者,可从财政提供的导出日志文件中获取)touser=新创建的用户log=日志文件存放路径及文件名

      2.EXPDP方式导出文件的恢复

      如果财政部门以数据泵(EXPDP)方式导出的备份文件,那么县级审计机关应在本地服务器(数据库安装在本机)上使用IMPDP方式导入,步骤如下:

      (1)创建数据库、表空间、用户以及给用户授权操作同方法1中(1)~(3)步骤;

      (2)以system身份登录创建目录,并将财政提供的备份文件置于该目录中:

      CREATE OR REPIACE DIRECTORY目录名AS‘路径’;

      (3)以创建的用户导入,需要给创建的用户授予目录的读写权限及导入权限:

      GRANT READ,WRITE ON DIRECTORY目录名TO用户;

      GRANT IMP_FULL_DATABASE,EXP_FULL_DATABASE TO用户;

      (4)在CMD命令行提示符下,以创建的用户身份导入数据:

      IMPDP用户名/密码@数据库服务名DIRECTORY=目录名DUMPFILE=备份文件名SCHEMAS=导出用户名(对象所有者)LOGFILE=日志文件名job_name=作业名称PARALLEL=整数。

      Job_name是对执行作业的命名,通过作业名,可以与当前执行的作业进行交互,parallel可以忽略,默认值为1,上述处理是将备份文件中对象导入到当前模式下。

      第(4)步中也可以使用system身份导入,导入命令如下:

      IMPDP system/密码@数据库服务名DIRECTORY=目录名DUMPFILE=备份文件名REMAP_SCHEMA=原备份文件中的模式名:创建的用户名LOGFILE=日志文件名job_name=作业名称PARALLEL=整数。

      县导入数据过程中最常见的问题是“ora-12899”错误,这种错误主要是由于源数据库的字符集与目标数据库的字符集不一致造成的。安徽省“一体化”平台使用的是ZHS16GBK与AL16UTF16 NCHAR字符集,如果在11.2.0.1.0版本上创建数据库,未指定字符集,默认为UTF-8,UTF-8使用3个字节存储每个汉字,而ZHS16GBK只用2个字节,故极易引发此类错误,解决办法是在创建数据库时指定字符集,或者在导入结束后,以sys身份将数据库启动到MOUNT状态下修改字符集,然后重新启动数据库,最后根据日志记录删除有问题的表,以tables选项指定需要导入的表;另外一种是编译之类的警告,如“IMP-00041创建的对象带有编译警告”,主要原因是ORACLE在不基于表的情况下可以事先创建视图,由于无法编译而发出警告,这种错误可以忽略。

      (二)数据导出

      根据导出方式不同,分为常规方式导出(EXP)与数据泵导出(EXPDP),步骤分别如下:

      1.常规导出方式:以system身份或者对象所有者身份,利用EXP工具导出,在CMD命令行提示符下输入:

相关文章: