首页 > 范文大全 > 正文

金质工程数据安全技术研究与应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇金质工程数据安全技术研究与应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要数据库备份与恢复是保证数据库安全的一项重要措施,Oracle数据库管理系统提供了强大的数据库备份功能。针对金质工程各业务系统数据库的备份与恢复运行机制进行了分析,对于合理指导和实施备份与恢复作业、提高备份的有效性、完整性与可恢复性具有重要意义。重点阐述了RMAN的技术的备份与恢复机制,并通过实例演示金质工程相关数据库备份与恢复作业过程。

关键词金质工程RMAN 数据安全 备份 恢复

中图分类号:K826.16 文献标识码:A 文章编号:

1 概述

“金质工程”是国家级电子政务工程,是国家信息化建设重要组成部分。“金质工程”是一个面向多级质检机构,面向企业和社会,依托国家和地方各自优势,采取条块结合、联合共建的方式,实现信息网络互联、信息资源共享、业务工作协同,并与海关、工商等部门相关联的全国性的综合性信息化建设工程。主要由质量监督、检验检疫核心业务系统组成,典型业务系统包括:执法打假快速反应系统,检验检疫风险预警系统,产品质量监督管理系统,认证认可系统,标准化管理系统,WTO/TBT-SPS通报管理系统和检验检疫综合业务管理系统等。伴随各应用系统的深入推广应用,质检业务对信息化应用的依赖程度不断加深,信息安全事故造成的危害将日益严重,重要信息数据的丢失危害重大,保障各应用系统安全、稳定、高效运行问题日益凸显。

金质工程一期建设完成的系统平台以其强大的处理能力,取代了很多人为的工作,但是往往很多时候,它又是那么弱不禁风,服务器主板上的芯片、电路板、内存、电源等任何一项产生异常,都会导致硬件设备不能正常工作。当然.这些损坏可以修复,不会导致应用和数据的损坏。如果硬盘损坏,将会导致数据丢失,此时必须用备份恢复数据。在我们的现实世界中,已经存在很多备份策略,如RAID技术,双机热备、集群技术等。有很多时候,系统的备份的确就能解决数据库备份的问题,如磁盘介质的损坏,往往从镜相上面做简单的恢复,或简单的切换机器就可以了。但是,上面所说的系统备份策略是从硬件的角度来考虑备份与恢复的问题,这是需要代价的。我们所能选择备份策略的依据是:丢失数据的代价与确保数据不丢失的代价之比。还有的时候,硬件的备份有时根本满足不了现实需要,假如你误删了一个表,但是你又想恢复的时候.数据库的备份就变得重要了。

质检核心业务数据都存储在Oracle数据库中,数据库不能提供服务造成的影响将是全局性的,一旦数据库系统发生故障,其相关的业务活动如行政许可、认证认可、检验检疫、行政执法等都将被迫停止。随着各类检验检疫和质量技术监督信息系统应用的广泛和深入,应用系统对数据的依赖性越来越大,使用者希望获得稳定持续数据支持的要求也越来越迫切。数据库备份和恢复是提高系统可靠性的一项重要措施,收到了质检各级信息化领导的高度重视。关键业务数据都实施了经常性备份,一旦系统发生故障就可实现快速恢复。

2 Oracle数据库备份与恢复技术

所谓备份,就是把数据库复制到转储设备的过程。其中转储设备是指用于放置数据库拷贝的磁带或磁盘。完整正确的备份是保证可靠恢复的前提。Oracle 8i以前版本的数据库采用手工备份,系统维护工程师事先要做好周密的备份计划,查阅所有数据文件、控制文件、归档日志文件、网络配置文件以及口令文件等,备份过程要谨慎操作,中途不能出错,否则,可能会造成难以预测的后果,已经备份的数据文件也无法使用。

简单的按照备份进行的方式,可以分为逻辑备份、冷备份(脱机备份)、热备份(联机备份),其中冷备份与热备份又可以合称为物理备份。

RMAN ( Recovery Manager,RMAN)是Oracle公司自Oracle 8i版本之后提供的一种专门备份工具,能够实现数据库定制备份、自动备份等功能,简化了备份和恢复操作,降低了手工备份的复杂性和风险,提高了备份操作的可靠性和可恢复性。RMAN方便可靠,平台一致,较大的基于Oracle的数据中心一般都使用RMAN执行备份和恢复作业。为合理编写数据库备份和恢复脚本,有效实施Oracle数据库备份和恢复作业,充分发挥RMAN功能,我局通过正确理解RMAN基本组成结构和运行机制。有针对性的对办公自动化系统、网站、特种设备监督监察系统等制定了数据备份策略,并编写了相关的脚本,收到了良好的效果。

RMAN组成结构:RMAN 一般安装在数据库客户端,由RMAN命令执行器、目标数据库及其实例、恢复目录、介质管理库等四部分构成。

RMAN命令执行器与实例:RMAN 命令执行器本质上是一种命令解释程序。它获取用户输入的控制命令,并将其翻译成PL/SQL指令,通过网络连接目标数据库并将PL/SQL指令传送给数据库实例中的DBMS-BACKUPRESTORE和DBMS_RCVMAN两个PL/SQL程序包(这两个程序包由脚本CATPROC.SQL在创建数据库时自动创建),再由这两个PL/SQL程序包从目标数据库控制文件中获取备份知识信息,按照其中的指示要求,对目标数据库实施备份、还原、恢复或其它控制操作。

目标数据库是RMAN进行数据备份和恢复的对象。RMAN通过数据库实例与目标数据库控制文件紧密相连。控制文件是一种二进制文件,是数据库执行恢复动作的入口,也是RMAN启动备份和恢复工作首要访问对象。RMAN执行恢复操作时,通过控制文件找到备份路径和备份文件,然后执行还原和恢复任务。如果控制文件丢失,就无法获取相关信息来启动恢复工作。因此,控制文件的存在和正确是确保完成备份和恢复任务的关键。

RMAN 在备份操作完毕之后,立即将备份文件所在位置、备份文件大小、备份时间以及文件头部的系统变更流水码SCN等信息及时写入控制文件。恢复时,目标数据库首先恢复控制文件,然后再恢复其他文件。因此,一般不轻易重构控制文件,虽然重构控制文件可以重启数据库,但是会导致原先控制文件备份的废弃和原始控制信息的消失。恢复目录的存在强化了控制文件的可靠性,但真正指导目标数据库进行备份和恢复作业的仍然是控制文件而并不是恢复目录。

恢复目录是独立于目标数据库且位于异地数据库的特定存储空间,用于记录目标数据库备份与恢复信息,是目标数据库控制文件中有关数据备份内容的一个精确副本。它包括一些基本表、视图、触发器、存储过程以及程序包等,建立恢复目录具有显著优点。一是提高了目标数据库控制文件的可靠性。一旦数据文件和控制文件同时破坏或丢失造成数据库无法启动,RMAN将首先连接到恢复目录,通过恢复目录来恢复目标数据库的控制文件,然后再通过控制文件陆续还原和恢复数据文件和配置文件等,最后启动数据库。二是拓展了功能。通过对RMAN配置永久参数,存储并启动脚本对备份作业打包,在操作系统的配合下,可以用流水方式定时自动完成数据库备份作业,这进一步简化了备份操作,减轻数据库管理员的工作负担,提高备份工作的规范性和可恢复性。

需要注意的是,为维持恢复目录和控制文件的一致性,数据库管理员应当在目标数据库文件发生更改时,应及时执行同步操作,将所有更新写进恢复目录。

介质管理库与备份设备:介质管理库(Media Manage Library,MML)是RMAN为众多第三方存储设备供应商提供统一接口,例如磁带设备等,使得不同设备都能写进RMAN的输出数据。磁带设备虽然占用空间大,但是由于价格低廉,备份容量大,可靠性较高,因此,大型数据中心一般都需要介质管理库的支持。

RMAN运行机制与技术特点

RMAN块级操作机制:RMAN 支持小粒度的块级数据备份与恢复操作,与传统操作系统提供的文件级操作不同。首先,RMAN将需要备份或恢复的数据文件从存储设备中以块方式读人缓冲区,然后,在缓冲区中接受程序包的检查。程序包主要检查数据文件数据块的头信息,如果发现此数据块存有数据,就将该数据块传送至输出缓冲区,等候写人磁盘或磁带。否则,如果是空白数据块,则将其移出缓冲区。继续读取和检查下一个数据块直至完毕。当输出缓冲区装满时,程序包立即启动写操作,将数据文件写进指定的存储空间。

块级操作的好处是多方面的。一是压缩了备份占用空间。传统的文件级备份,不论数据块空白与否都不加区别地予以备份,备份空间与原数据文件空间同样大小。块备份通过检查,放弃了对空白块的备份,备份空间得到了压缩;二是正因为采用了块操作,RMAN才具备了支持增量备份的物理机制,使用增量备份可以大幅度减少备份工作量;三是支持数据块单独恢复。对于个别损坏的数据块,可以从归档日志文件中,依据文件号与数据块号,找到对应的原来完好的数据块执行还原操作即可,文件不必脱机,更不必对整个文件采取恢复操作,其他数据库对象在恢复过程中仍然对用户正常开放,减少了对用户的干扰,同时显著减少了恢复工作量和恢复时间。

块备份还有另外一个好处。利用操作系统进行手工复制归档日志时,一般用户无法判定归档日志进程ARCn是否还处于活动状态。如果用户备份了一个正在进行写入活动的归档日志,那么得到的可能是一个不确定的、不完整的归档日志备份,这种备份为将来恢复留下漏洞和隐患。RMAN利用块操作机制与RDBMS进行内部协同,完全消除了这种不确定性。

增量备份机制:数据库完全备份要备份数据库的所有数据文件,执行的是文件级备份,备份工作量大,时间长,一般定期作业。对于某些大型数据库,数据量虽然很大,但是变化并不频繁,如果每天都要进行完全备份,无疑是一项很重的负担。为此,RMAN提供了增量备份机制。所谓增量备份,是指仅备份自上次备份以来内容发生改变的数据块的一种备份方式。增量备份并不备份那些内容没有变化的数据块,备份工作量可以显著减少。RMAN支持多级增量备份,备份时指定增量级别,增量级别n可以取0,1,2,3,4,以此作为比较内容的参照标记。增量备份策略如下图所示:

RMAN 一般备份过程是:

(1 )执行完全备份,亦即进行0级增量备份。备份所有数据文件的数据块,不论数据块内容更新与否。所备份的数据块中的内容作为今后其他级别增量备份进行数据块比较时的参照。

(2) 指定增量级别,实施增量备份。增量备份的主要工作是将当前数据块与上次增量备份数据块进行比对。有两种比对方式,一是所谓累积增量备份,其用于比较的对象是上次低一个级别的增量备份的数据块。二是所谓非累积增量备份,其用于比较的对象则是上次同等级别增量备份的数据块。

二者的备份机制相同,不同之处是用于比照的对象不同。备份时,用当前数据块与上次同等级别的或者低一个级别的增量备份数据块进行比对,比对的内容是数据块头部的系统流水变更码SCN。如果发现,当前数据块的SCN大于上次备份数据块的SCN,则备份之。否则,予以放弃,继续取下一数据块进行比较,直至所有数据块对照、备份完毕。显然,将某一阶段自上次完全备份以来所有级别的增量备份都应用于完全备份,相当于执行了一次完全备份。由于增量备份工作量不大,因此这种形式的完全备份工作量很小。

通道是目标数据库与备份存储设备之间的一种数据连接。服务器为每个通道启用一个通道进程,每个通道备份两个文件。通道进程调用PL/SQL程序包,再由程序包访问控制文件。程序包按控制文件指示,找到一系列需要备份的文件,并在内存缓冲区为它们分别开辟输人缓冲区和输出缓冲区。

备份块(Backup Piece)是RMAN备份作业时在存储设备上建立的一种具有专用格式的输出文件。

这种文件包含来自一个或多个数据文件数据块的物理存储文件,只能专门由RMAN在恢复操作时使用。RMAN为每一个备份块建立4个输出缓冲区,供通道将数据文件输出到指定存储设备。

对于磁盘操作来说,启用多个通道可以加快数据备份和恢复速度。例如申请8个通道,就意味着可以有8个进程同时访问磁盘,多通道备份对于大型数据库数据备份作业,增速效果比较明显。但应注意,通道的输人输出缓冲区虽然内嵌在进程全局区(PGA)内,不与系统全局区(SGA)发生内存竞争,但是,启用通道需要消耗物理内存,只有拥有足够的内存资源才有可能分配较多的通道。否则,系统不仅不能增速,反而因资源消耗过大,可能造成用户的合理请求而无法响应,最终导致系统瘫痪。

因此,用户在执行备份作业时,应当在备份速度和消耗资源代价之间进行权衡。系统默认配置了三个通道,一般数据量的备份和恢复作业都可以得到较好地满足。

这里的恢复主要是指数据库介质恢复,它包括数据库还原和数据库恢复两个阶段。手工还原作业时,用户首先找到所需要的备份文件,然后利用操作系统备份命令,手工将备份传送到数据文件原来所在位置,完成还原工作。RMAN还原比较简单,它利用所收集的备份信息,在Restore命令发出后自动完成相关还原工作。数据文件还原之后,RMAN就着手启动恢复进程。RMAN首先检查是否存在能够加速恢复的增量备份文件,如果增量文件存在,则直接利用增量文件进行恢复。如果增量文件不存在,则继续判断能否从备份中还原归档日志文件。如果能还原日志文件,那么还原这些归档的日志文件,并将归档日志文件中的修改应用到数据文件中,使得还原的数据文件能够继续保持与控制文件同步。需要说明的是,RMAN是自动进行上述过程的,并不需要人工干预。

3 RMAN备份与恢复在金质工程中的应用实例

3.1数据备份

1. 开启数据库归档模式

步骤如下:

a备份pfile

create pfile='C: \pfile0922.ora' from spfile;

b 设置归档日志位置(在Z盘新建文件夹archivelog)

alter system setlog_archive_dest_1='Z:\archivelog'

c 修改log_archive_start为true

show parameter spfile

show parameter log_archive_start

ALTER SYSTEM SETlog_archive_start=truescope=spfile;

d 开启归档模式

shutdown immediate

startup mount;

alter databsse archivelog;

alter databsse open;

archive log start;

2. 建立相关文件夹

a 新建文件夹script(存放rman备份脚本和备份日志log),路径为:D:\oracle\script

其中,rman 备份脚本分别为:rman0.bat、 sql0.rman 和rman1.bat、sql1.rman

b 新建文件夹rmanbak(存放数据库备份和备份日志log)路径为Y:\ rmanbak

3. 部署备份脚本

在windows下添加计划任务

每周六晚上23:00进行整库RMAN全备份(rman0.bat调用sql0.rman数据库全备脚本);

周日-下周五晚上23:00进行RMAN增量备份(rman1.bat调用sql1.rman数据库增量备份脚本)。

Rman0.bat

@echo off

set oracle_sid=oracle

set oraclepath="D:\oracle\ora92\bin"

%oraclepath%\rman target / msglog D:\oracle\script\log\%date:~0,10%.log cmdfile=D:\oracle\script\sql0.rman

Sql0.rman

run

{

allocate channel d1 type disk;

backup incremental level=0 format '\\10.1.180.195\rman_d\1011804rmanbak\RMAN__%d-full%T%U' database;

backup format '\\10.1.180.195\rman_d\1011804rmanbak\RMAN_ARCH-full%T%U' archivelog all delete input;

release channel d1;

}

crosscheck backup;

delete noprompt expired backup;

delete noprompt obsolete;

Rman1.bat

@echo off

set oracle_sid=oracle

set oraclepath="D:\oracle\ora92\bin"

%oraclepath%\rman target / msglog D:\oracle\script\log\%date:~0,10%.log cmdfile=D:\oracle\script\sql1.rman

Sql0.rman

run

{

allocate channel d1 type disk;

backup incremental level=1 format '\\10.1.180.195\rman_d\1011804rmanbak\RMAN__%d-full%T%U' database;

backup format '\\10.1.180.195\rman_d\1011804rmanbak\RMAN_ARCH-full%T%U' archivelog all delete input;

release channel d1;

}

crosscheck backup;

delete noprompt expired backup;

delete noprompt obsolete;

3.2 数据恢复

模拟数据文件不能还原到原地的文件级完全恢复。对于能够还原到原始位置的数据文件,系统管理员只需执行Restore命令即可。对于原文件存储空间因磁道损坏或其他原因造成无法将备份文件还原的情况,应先将数据文件恢复到异地,然后执行数据文件切换,也可完成数据恢复操作。下面的脚本模拟了后一种情况。

第一步 ,数据文件异地还原和切换。

RMAN > run

{

set newname for datafile ‘g:\U ser0l.dbf' to K:\U ser0l.dbf

restore datafile K :\U ser0l.dbf

switch datafile g:\User01.dbf' to datafilecopy ‘K:\User01.dbf

}

第二步 , 数据文件恢复并打开数据库。

RM AN > run{

recover datafileI K:\User0l.dbf;

sql 'alter database open’;

}

4 结语

基于RMAN的Oracle数据库备份与恢复在金质工程数据安全中的具体应用,与以前的手工操作相比,具有备份可靠、功能适用、平台一致、操作简单等优点。应用系统管理员现已熟练掌握这种工具的使用方法,依据数据库运行工况和任务要求,有针对性地采取备份与恢复策略,不仅降低备份和恢复操作的复杂程度,减少工作量,也有助于从整体上提升系统的安全可靠性。原来管理员备份一个业务系统需要耗时近10个小时,数据容量近2T,现通过增量数据备份减少了近1T的数据,同时备份时间也减少了4个多小时。成效显著。

参考文献

[1] 黄河等 Oracle 9i 数据库培训教程(高级篇)[M]. 北京:清华大学出版社,2003

[2] 马和邦 周建中 赵萍 基于RMAN的Oracle数据库备份与恢复机制 计算机与数字工程 2008.3 49-52

[3] 何平等 基于Oracle l0g 的VLDB备份与恢复技术 [J].计算机工程,2006,32(19);79一81

[4] 程文芳 基于Oracle的数据库备份恢复系统的研究与实现 四川师范大学 硕士学位论文

[5] 余以胜 Oracle数据库备份解决方案的研究 计算机与数字工程 2006.1 118-119

作者简介:王运福,男,山东省质量技术监督局信息中心高级工程师,E_mail:

梁娜,女,山东省质量技术监督局信息中心高级工程师,E_mail: