Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103728956
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-12 13:17:19

    来源:csai    作者:susun

摘要:任何数据库在长期使用过程中,都会存在一定的安全隐患。对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制。当任何人为的或是自然的灾难一旦出现,而导致数据库崩溃、物理介质损坏等,就可以及时恢复系统中重要的数据,不影响整个单位业务的运作。然而如果没有可靠的备份数据和恢复机制,就会带来系统瘫痪、工作停滞、经济损失等等不堪设想的后果。本文以ORACLE数据库为例,结合医院的业务应用环境,介绍 ORACLE数据库的备份恢复。

首先,应当制定一个严格的工作制度,规范化数据库维护的工作流程。

总结实际工作中的经验,数据库管理员应当按照以下原则进行数据库系统的维护:

要求:每日值班的数据库管理员应当随时监控主数据库服务器、备份数据库服务器的软件、硬件的正常运行,一旦出现故障,应立即向领导汇报并采取相应恢复措施。

一、管理员应当每日察看数据库的冷备份报告,出现问题及时检查备份文件,保障每日数据库服务器的备份正常运行。

二、当主数据库服务器出现数据库错误时,应检查数据库的工作状态。如果工作不正常应及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。如果重新启动后数据库系统不能正常运行,则数据库系统文件被破坏,应重新安装ORACLE数据库并启用紧急恢复方案。

三、当主数据库服务器出现硬件故障时,应在1小时内更新备份数据库为最新数据,并启动备份数据库服务器,将备份数据库服务器升级为主数据库服务器。对于损坏的主数据库服务器应重新安装ORACLE数据库,并启用紧急恢复方案。

四、当备份数据库服务器出现数据库错误时,应检查ORACLE数据库的工作状态,如果工作不正常应及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。如果重新启动后数据库系统不能正常运行,则数据库系统文件被破坏,应重新安装ORACLE数据库并启用紧急恢复方案。如果ORACLE工作不正常,应重新安装ORACLE数据库并启用紧急恢复方案。

五、当备份数据库服务器出现硬件故障时,应尽快修复。等待硬件正常工作后,首先重新安装ORACLE数据库,并采用紧急恢复方案恢复ORACLE数据库。

六、每周至少三次将备份数据转移到移动磁盘内,以防止出现自然灾害的事故而导致的备份数据丢失。

1.ORACLE数据库系统的安装

首次安装ORACLE7.3数据库。进入安装光盘的NT_x86目录,运行setup.exe,进行安装。选择安装目录:D:\ORANT(在本文中以将ORACLE数据库安装到D盘为例,下不累述。) 选择安装模式:oracle7 server product 选中:oracle7 con text option 2.0.4.0.0oracle7 spatail data option 7.3.3.0.0. 选择标准安装模式。配置数据库:在net easy config中添加本地数据库的别名、ip地址。修改注册表的字符集为us7ascii(根据需要)。用internal帐户启动当前数据库,验证当前数据库已正确安装。Shutdown当前数据库。设置数据库为ARCHIVELOG方式:

1)将系统设置成自动归档写满的联机日志文件,修改参数文件D:\ORANT\Database\INITORACL.ORA文件,设置:

Log_archive_start= TRUE 
LOG_ARCHIVE_DEST = C:\ARCHIVE

(一般采用c:\archive,最好是与备份数据库文件分开放置的单独硬盘)LOG_ ARCHIVE_FORMAT = a%s(设置归档日志的格式:短文件名格式)

2)将系统设置成设置数据库为ARCHIVELOG方式:

启动INSTANCE,并MOUNT数据库。

   
      \ORANT\BIN>SVRMGR23
   SVRMGR> connect internal
   Password:
   Connected.
   SVRMGR> startup mount
   ORACLE instance started .
   Database mounted
   SVRMGR> alter database archivelog ;     
   Statement processed
   SVRMGR> alter database open ;       
   Statement processed .
   SVRMGR> exit ;
   Server Manager complete .

拷贝最近备份的数据文件覆盖当前数据库的database目录;拷贝最近备份ARCHIVE日志覆盖当前数据库的ARCHIVE目录;先将当前的 Log1orcl.ora、Log2orcl.ora、Ctrl1orcl.ora、Ctrl2orcl.ora控制文件更名为*.old文件,然后拷贝最近备份的控制文件到当前数据库的database目录。重新启动服务器,以INTERNAL帐号登陆ORACLE数据库。

重新安装ORACLE7.3数据库。首先停止所有ORACLE服务。删除ORACLE的所有数据文件(如:d:\orant目录中的所有信息)。删除注册表的 hkey_local_machine\software\oracle键值。按照首次安装ORACLE7.3数据库的步骤进行以后的安装。

如果安装ORACLE8i数据库,应当注意在安装过程中选择合适的安装方式、安装路径、选择合适的语言格式和字符集、全局数据库名和SID、设置各个扩展段大小和日志文件大小、SQA参数、注册表中的语言格式应当与安装时选择的语言格式一致。以上参数非常重要,一旦确认安装之后,不能再更改,否则一旦安装完毕发现某个参数错误,只能整个数据库系统重新安装。

2. 数据库备份方案

2.1数据文件备份

数据库管理员需要定制详细的备份方案,关键是适合的备份时间点。如果数据库服务器是7*24小时不间断服务,那么至少在一周内的一、三、五的每天早、中、晚都有备份点。一般选择在服务器不太忙的时候。结合医院的业务要求,在早上3:00、中午13:00、晚上18:00三个时间点进行备份,因为在这几个段内基本没有业务进行处理,便于系统快速处理备份任务。备份任务由操作系统来调度,我们可以使用windows2000服务器的任务调度程序来完成每天的备份安排。oracle的orant目录下所有数据复制到另一个磁盘空间(这里拷贝到E:\ Orant\database\目录中),建议存到备份服务器的一个专属磁盘空间。

2.2日志、控制文件备份

由于日志和控制文件是ORACLE数据库在恢复时不可缺少的组成数据,应当在做数据备份时进行同步日志和控制文件的备份。为了确保安全,建议日志和控制文件备份到与数据备份不同的物理介质上。对于备份时间和备份调度,建议一天一次,同样调度在系统闲时。由于日志和控制文件起到了增量恢复的作用,控制文件的备份点应当比数据文件的备份点多。由于控制文件小,不会占用系统资源,建议在重要的业务数据操作时间点之后紧接着进行备份。一般医院在上午10:00、上午12:00、下午4:00、下午7:00、晚上12:00,是比较重要的数据处理节点,所以建议进行日志和控制文件的备份。

2.3备份方法

一种最简单的备份方法:首先写DOS复制命令形成一个bat批处理文件,然后在WINDOWS2000系统中调度执行bat批处理文件。

3. 紧急恢复方案

一、数据库现状

主数据库服务器:Mainserver ,运行Oracle 主数据库。

备份数据库服务器:BackServer ,存放主服务器的所有数据备份,是进行数据恢复的主要依据。

二、恢复准备

检查当前数据库是否已经设置为归档日志方式,即:察看文件D:\ORANT\Database\INITORACL.ORA中,是否设置:

Log_archive_start= TRUE
  LOG_ARCHIVE_DEST = C:\ARCHIVE

如果没有进行此项设置,则无法尽行恢复。

进行恢复过程:

1. 在主数据库服务器:MainServer上进行数据恢复

1) 重新安装Oracle7.3,完成所有数据库设置。

2) 先将本机中ORANT\Database\上的Log1orcl.ora、Log2orcl.ora、Ctrl1orcl.ora、Ctrl2orcl.ora控制文件更名为*.old文件。

3) 拷贝备份数据:将最新的冷备份数据拷贝到MainServer上的D:\Orant\database\ 目录中,并覆盖原有数据。

4) 拷贝日志和控制文件:将最近备份的控制文件拷贝到当前数据库的database目录,将最近备份的归档日志文件到本机的C:\ARCHIVE中。

5) 启动MainServer上的数据库服务器。

    
        D:\ORANT\BIN>SVRMGR32
    SVRMGR> connect internal
    Password:
    Connected.
    SVRMGR> startup mount ;
    ORACLE instance started .
    Database mounted
    SQLDBA>recover database     
    输入:AUTO   (即自动恢复)
    SQLDBA>alter database open ;   
    Statement processed .
    SQLDBA>exit ;
    Server Manager complete

6)重新启动数据库服务器,登陆后可正常使用。

2. 在备份数据库服务器:BackServer上进行数据恢复

当主数据库服务器不可用时,需要在备份数据库服务器上进行恢复。

1)手动升级辅域服务器为主数据库控制器

2) 停止BackServer当前数据库服务器,重新安装Oracle7.3

3) 先将最近备份的4个控制日志文件拷贝到BackServer上的D:\Orant\database\ 目录中,并覆盖已有的同名文件。再将最新的冷备份数据Copy到BackServer上的D:\Orant\database\ 目录中。

4) 检查C:\ARCHIVE目录下的日志文件,如果不可用则需要拷贝主数据库服务器上C:\ARCHIVE目录中所有的归档日志到BackServer的C:\ARCHIVE目录中。

5) 启动BackServer上的数据库服务器。

 
        D:\ORANT\BIN>SVRMGR23
    SVRMGR> conn䁥ct internal/oracle
    Password:
    CoѮnected.
    SVRMGR> startup mount
    ORACLE instance started...
    Databasѥ mounted...
    SQLDBA>recover database   
    输入:AUTO   (即自动恢复)
    等待系统完成任务后,显示:Media recovѥry complete
    SQLDBA>alter database open ;   
    Statement processed .
    SQLDBA>exit ;       
    Server Manager complete

6)重新启动数据库服务器,登陆后可正常使用。

注意:如果恢复时的归档日志文件与控制文件的时间不一致,则恢复到控制文件的时间状态。

综上所述,得到下面的公式:恢复数据 = 冷备份数据 + 所有Archive Log文件+ 四个ORA控制文件。

不同的备份方式有不同的备份方法,正确选择适合软硬件环境和系统安全要求的备份方案非常重要,有时需要多种备份方式结合的方案。

阅读(137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~