备份Oracle数据库
软件世界
Oracle是一种典型的关系型数据库管理系统,它功能强大、性能卓越,操作灵活方便,在当今大型数据库管理系统中占有极其重要的地位,是目前使用广泛的几个数据库管理系统之一。在我们公安部门内使用最多的也是Oracle数据库系统。我处开发的某办证系统,选用的就是Oracle7.3数据库。在正常情况下,Oracle数据库自身提供了较高的安全保障,会保证数据的安全、稳定,为用户提供正确的数据,但由于计算机系统本身的故障(硬件故障、软件故障、网络故障和系统故障)甚至一些人为因素(如操作不当等)会影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失,造成整个系统处于瘫痪甚至崩溃状态。这种结局将会是灾难性的,会严重影响到我们的日常业务工作。因此,数据库的安全性问题已被提到了一个十分重要的议事日程上,如何保证Oracle数据库的安全就成为整个应用系统安全的重要组成部分。
那么该如何保障Oracle数据库的安全性呢?我认为应该以数据库的备份和恢复来防止计算机本身故障以及充分利用Oracle提供的用户角色管理机制来避免人为因素的破坏。
在日常工作中,数据库的备份是数据库管理员必须不断进行的一项工作,Oracle的备份分为物理备份和逻辑备份两种。
一、物理备份
物理备份即拷贝构成数据库的物理文件而不管其逻辑内容。它是数据库管理员经常使用的一种备份方式,它又分为脱机备份和联机备份两种,它们各有所长,在实际应用中可以根据具体情况和所处状态进行选择。
在介绍Oracle数据库的物理备份之前,我们必须先谈谈组成Oracle数据库的几个重要文件:数据文件、日志文件、控制文件、密码文件和参数文件。
我们知道Oracle是将表空间作为逻辑结构-单元,而表空间的物理结构是数据文件,数据文件是在磁盘介质上被物理地创建,每一个表空间都对应一个或多个数据文件。换一句话说数据库里的数据就是被存储在这些数据文件中。
日志文件。每一个Oracle数据库实例都提供日志,负责记录当前数据库所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所做的全部修改。一旦在线日志填满后一个Oracle数据库实例,可形成在线日志归档文件。归档的在线日志文件被唯一标识并合并成归档日志。Oracle数据库可运行在以下两种不同的模式下:归档模式和非归档模式。数据库在非归档模式下使用时,不能进行日志文件的归档。而数据库在归档模式下运行时可以进行日志文件的归档。两种模式可相互切换。合理的应用日志文件,可以使数据库在发生灾难时得到最大限度的恢复。
控制文件。一般用于存储数据库的物理结构的状态。控制文件中某些状态信息在实例恢复和介质恢复期间用于引导Oracle。
密码文件。在Oracle数据库系统中,用户如果要以特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle数据库可以有两种身份验证的方法:使用与操作系统集成的身份验证或使用Oracle数据库的密码文件进行身份验证。因此,管理好密码文件,对于控制授权用户从远端或本机登录Oracle数据库系统和执行数据库管理工作,具有重要的意义。
参数文件。Oracle数据库系统根据初始化参数文件init.ora中设置的参数来配置自身的启动,每个实例在启动之前,首先读取这些参数文件中设置的不同参数。
了解了这几种文件的重要性后,我们就知道了它们就是我们物理备份所要备份的对象了。
首先来看脱机备份。其操作是在Oracle数据库正常关闭后,对Oracle数据库进行备份,备份的内容包括刚才所提到的几组文件:所有的数据文件、所有的控制文件、所有的日志文件、数据库的参数文件和密码文件。把这几组文件在操作系统级用拷贝命令复制到不同的物理磁盘或磁带上,其中尤其对于控制文件要多在几个物理磁盘上制作副本,控制文件在数据库恢复期间用于引导Oracle,因此保持多个控制文件的备份,可以确保在出现磁盘故障后,能有可用的控制文件用于数据库的恢复。
还有一种就是联机备份,这种备份方式主要是针对运行在归档模式下的Oracle数据库。在这种方式下,联机日志被归档,在数据库内部建立一个所有作业的完整记录。相对于脱机备份来说,联机备份拥有两大优势:提供了完全的时间点的恢复和在文件系统备份时允许数据库保持打开状态。
物理备份的好处是可将Oracle数据库管理系统完整转储,一旦发生故障,可以方便及时地恢复,以减少数据库管理员重新安装Oracle的麻烦。
二、逻辑备份
我们再来看看逻辑备份,逻辑备份就是将整个或部分数据库的记录读出并将其写入到一个文件中,这也是经常使用的一种备份方式。具体到Oracle数据库系统就是使用Export(导出)和Import(导入)命令。导出命令可以将某个数据文件、某个用户的数据文件或整个数据库进行备份。导入命令则将导出命令建立的转储文件读入到数据库系统中,也可按某个数据文件、用户或整个数据库进行。
由于不同的备份方式所对应的恢复方式也不同,所以在实际操作中经常使用逻辑备份结合物理备份的方式,以发挥出它们各自的优势。对于像我处办证系统这种要求24小时不停机的应用系统应当使数据库系统运行在归档模式下,每天进行一次联机备份操作,备份所有增量数据、所有归档日志文件及控制文件(放在不同的物理磁盘上),每周要进行一次逻辑Export操作,每季度进行一次脱机物理备份。
参照我处办证系统所采取安全措施,除了以上的备份策略外在服务器及存储系统的硬件上还采取了加强措施。在操作系统级,使用大容量磁盘阵列,通过磁盘映像技术(RAID5)使每一个数据库文件自动分布于每个物理磁盘。这样,当某个物理磁盘出现物理损坏时,操作系统会自动引发映像磁盘来取代失效的磁盘,保证数据库的正常运行。此外,在数据库服务器上,我们使用的是双服务器,Oracle数据库安装成OPS方式,在另一服务器上保留一个备份数据库。备份数据库与正在使用的数据库具有相同的参数状态,这样在数据库发生故障后,只须作必需的最少恢复,最大限度地缩短了恢复时间。