RSS
热门关键字:  数据挖掘  人工智能  数据仓库  搜索引擎  数据挖掘导论

用Oracle的热备份重建数据库

来源: 作者:unkonwn 时间:2005-07-26 点击:

为了检验我为公司开发的Oracle数据库在线自动备份系统,我根据“Oracle数据库在线自动备份系统”产生的备份文件来重建和恢复Oracle数据库。为了让大家共享其方法和步骤(也适合于用其它方式对Oracle做的热备份进行重建数据库)现整理如下。

数据挖掘研究院

一、系统环境

本次测试所使用的系统环境如下: 数据挖掘研究院

1.   硬件环境 数据挖掘实验室

服务器:Dell PowerEdge 1300 (CPUP 550MHz  内存:128MB  硬盘:36GB) 数据挖掘实验室

2.   软件环境 数据挖掘研究院

操作系统:UnixWare 7.1 数据挖掘研究院

数据库: Oracle 8.1.6 for Unix 企业版,SIDora816

数据挖掘实验室

Oracle安装路径:/home/oracle

数据挖掘研究院

备份文件:所有数据库文件、控制文件、初始化文件、数据库备份以来的所有归档日志文件。

数据挖掘研究院

二、恢复步骤 数据挖掘研究院

下面根据从用户处带回来的备份数据,在一台新的服务器重建Oracle数据库。其详细步骤如下:   

数据挖掘研究院

1.       创建数据库恢复使用的环境

数据挖掘研究院

在新的Dell服务器上,安装与原来的数据库服务器相同的操作系统UnixWare 7.1;然后安装与原数据库相同版本的Oracle 8.1.6 for Unix 企业版。 数据挖掘研究院

2.       删除新服务器上的Oracle实例 数据挖掘研究院

启动新数据库服务器上的Oracle,在sqlplus中,查找到数据库文件的路径,并保存在当前路径下的文件file_name.txt中:

数据挖掘研究院

$ sqlplus system/manager

数据挖掘研究院

SQL> spool file_name.txt 数据挖掘研究院

SQL> select file_name from sys.dba_data_files; 数据挖掘实验室

SQL> spool end

SQL>exit 数据挖掘研究院

关闭新服务器的Oracle,然后根据文件file_name.txt中的路径,删除新装的Oracle实例的所有数据库文件。

从本步开始所有操作都是用Oracle用户登录操作系统(Unix)后进行。文中所有的黑色粗体5号字符(标题除外)的语句可以直接执行,黑色倾斜粗体5号字符的语句需要修改后执行。

3.       恢复数据库文件

数据挖掘研究院

把备份的所有数据库文件用Ftp上传新的数据库服务器中的相同路径下。如果原来的路径已不存在,可以拷贝到其他路径下,恢复时详细处理方法见步骤7<2>

4.       恢复初始化参数文件

数据挖掘研究院

把备份的initSID.ora文件用Ftp上传到新数据库服务器中Oracle实例的initSID.ora文件位置,覆盖之。其位置一般在$ORACLE_HOME/dbs目录下。 数据挖掘研究院

5.       恢复控制文件

数据挖掘研究院

把备份的ControlFile.bak文件用Ftp上传到新数据库服务器中Oracle实例的各个镜像路径下,并按初始化参数文件initSID.ora中的该项的位置和名称命名。 数据挖掘研究院

control_files = ("/home/oracle/app/oracle/oradata/ora816/control01.ctl", "/home/oracle/app/oracle/oradata/ora816/control02.ctl","/home/oracle/app/oracle/oradata/ora816/control03.ctl")

数据挖掘研究院

其路径如有变动,在初始化参数文件initSID.ora中修改如上内容的路径和名称,使其实际路径与该参数的路径一致。   

数据挖掘研究院

6.       恢复归档日志文件

数据挖掘研究院

把数据库备份后的归档日志用Ftp上传到新数据库服务器的相同路径下。路径如有变动可以根据初始化参数文件initSID.ora中如下位置进行修改,使其实际路径与该参数的路径一致。

数据挖掘研究院

log_archive_dest_1 = "location=/home/oracle/app/oracle/admin/ora816/arch" 数据挖掘研究院

   数据挖掘研究院

7.       恢复数据库 数据挖掘研究院

经过以上6个步骤,把所有的备份文件已经上传到了新数据库服务器中。下面开始根据这些文件恢复并启动数据库,先在操作系统的提示符下做如下操作:

数据挖掘研究院

$svrmgrl 数据挖掘研究院

SVRMGR>connect internal 数据挖掘研究院

SVRMGR>startup mount

数据挖掘研究院

<1> 创建口令文件

数据挖掘实验室

如果原来的数据库配置了口令文件,并且在mount数据库时报如下错误:

ORA-01990: error opening password file "/home/oracle/app/oracle/product/8.1.6/dbs/orapw"

可以到/home/oracle/app/oracle/product/8.1.6/dbs/路径下,用以下命令创建口令文件: 数据挖掘研究院

orapwd 数据挖掘研究院

其用法如下:

Usage: orapwd file=<fname> password=<password> entries=<users> 数据挖掘研究院

       where

      file - name of password file (mand),(口令文件的命名方式为:orapwSID 数据挖掘研究院

      password - password for SYS and INTERNAL (mand),

数据挖掘研究院

      entries - maximum number of distinct DBA and OPERs (opt), 数据挖掘研究院

       There are no spaces around the equal-to (=) character.

例如: orapwd  file=orapwora816  password=manager 数据挖掘实验室

然后重新执行如下语句mount数据库: 数据挖掘实验室

SVRMGR>startup mount

数据挖掘研究院

<2> 修改数据库文件的路径 数据挖掘实验室

如果在上述的步骤3中修改了恢复的数据库文件的路径,可以用如下语句对数据库文件重新命名  数据挖掘研究院

              alter database rename file "old_file" to "new_file"; 数据挖掘研究院

如把原来路径/home/oracle/app/oracle/oradata/ora816下的文件system01.dbf改到了/u21/oracle/app/oracle/oradata/ora816下:

SVRMGR>alter database rename file 数据挖掘研究院

    "/home/oracle/app/oracle/oradata/ora816/system01.dbf" 数据挖掘研究院

                to  "/u21/oracle/app/oracle/oradata/ora816/system01.dbf"; 数据挖掘研究院

按照上面的方法把所有修改路径的数据库文件重新命名。 数据挖掘研究院

<3> 根据控制文件和归档日志文件恢复数据库

数据挖掘实验室

下面开始用控制文件和归档日志文件恢复数据库:

数据挖掘研究院

SVRMGR>recover database using backup controlfile until cancel;

出现如下提示:

数据挖掘研究院

ORA-00279: change 50971 generated at 08/23/2002 09:21:27 needed for thread 1

数据挖掘研究院

ORA-00289: suggestion: /home/oracle/app/oracle/admin/ora8/arch/arch_1_399.arc

数据挖掘研究院

ORA-00280: change 50971 for thread 1 is in sequence #399

数据挖掘研究院

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}输入:

       auto 数据挖掘研究院

如果有如下提示,则表示成功。

数据挖掘研究院

ORA-00279: change 51007 generated at 08/23/2002 11:23:13 needed for thread 1 数据挖掘研究院

ORA-00289: suggestion: /home/oracle/app/oracle/admin/ora8/arch/arch_1_400.arc

ORA-00280: change 51007 for thread 1 is in sequence #400 数据挖掘研究院

ORA-00278: log file "/home/oracle/app/oracle/admin/ora8/arch/arch_1_399.arc" noy 数据挖掘研究院

Log applied. 数据挖掘研究院

       意外处理:如果其它提示可能是需要的日志文件不存在,检查ORA-00289中该文件是否存在。

数据挖掘研究院

直到出现如下提示: 数据挖掘研究院

ORA-00279: change 51011 generated at 08/23/2002 11:23:45 needed for thread 1 数据挖掘研究院

ORA-00289: suggestion: /home/oracle/app/oracle/admin/ora8/arch/arch_1_401.arc

数据挖掘研究院

ORA-00280: change 51011 for thread 1 is in sequence #401

数据挖掘研究院

ORA-00278: log file "/home/oracle/app/oracle/admin/ora8/arch/arch_1_400.arc" noy

ORA-00308: cannot open archived log "/home/oracle/app/oracle/admin/ora8/arch

/arch_1_401.arc" 数据挖掘研究院

ORA-27037: unable to obtain file status 数据挖掘研究院

Intel SVR4 UNIX Error: 2: No such file or directory

Additional information: 3 数据挖掘实验室

<4> 重置日志

SVRMGR>alter database open resetlogs;

意外处理:如果提示创建日志的路径不存在,按提示路径创建目录。然后再重置日志。

<5> 重启数据库,完成恢复 数据挖掘研究院

SVRMGR>shutdown immediate 数据挖掘研究院

SVRMGR>startup 

ORACLE instance started.

数据挖掘研究院

Total System Global Area                        123437040 bytes 数据挖掘研究院

Fixed Size                                          69616 bytes 数据挖掘实验室

Variable Size                                   106418176 bytes 数据挖掘研究院

Database Buffers                                 16777216 bytes 数据挖掘研究院

Redo Buffers                                       172032 bytes 数据挖掘研究院

Database mounted. 数据挖掘研究院

Database opened.  数据挖掘研究院

数据库正常打开,数据库重建恢复成功。 数据挖掘研究院

  数据挖掘研究院

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?