zoukankan      html  css  js  c++  java
  • 【测试】冷备及恢复(模拟数据库故障)

    对于备份Oracle信息而言,冷备份时最快和最安全的方法,此时,数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。

    ①查看控制文件,数据文件,日志文件路径:

    查看控制文件路径:
    SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/PROD/ora_control1.ctl /u01/app/oracle/oradata/enmo1/ora_control2.ctl /u01/app/oracle/oradata/enmo2/ora_control3.ctl /u01/app/oracle/oradata/enmo3/ora_control4.ctl
    查看数据文件路径:
    
    SQL> select name,file# from v$datafile;
    
     
    
    NAME                                 FILE#
    
    --------------------------------------------------------------------------------
    
    /u01/app/oracle/oradata/PROD/system01.dbf   1
    
    /u01/app/oracle/oradata/PROD/sysaux01.dbf    2
    
    /u01/app/oracle/oradata/PROD/undotbs01.dbf   3
    
    /u01/app/oracle/oradata/PROD/users01.dbf     4
    
    /u01/app/oracle/oradata/PROD/test101.dbf     5
    
    /u01/app/oracle/oradata/PROD/test102.dbf     6
    
    /u01/app/oracle/oradata/PROD/user02.dbf      7
    
     
    
    7 rows selected.

    查看日志文件:

    SQL> select member,group# from v$logfile order by 1;

     

    MEMBER GROUP#

    --------------------------------------------------------------------------------

    /u01/app/oracle/oradata/PROD/redo01a.log 1

    /u01/app/oracle/oradata/PROD/redo02a.log 2

    /u01/app/oracle/oradata/PROD/redo03a.log 3

    /u01/app/oracle/oradata/PROD/redo04a.log 4

    ②创建冷备的目录:

    [oracle@host02 ~]$ mkdir cold_bk
    
    [oracle@host02 ~]$ cd cold_bk/
    
    [oracle@host02 cold_bk]$ pwd
    
    /home/oracle/cold_bk

    ③关库保证一致性:

    SQL> shutdown immediate
    
    Database closed.
    
    Database dismounted.
    
    ORACLE instance shut down.

    ④备份参数文件,控制文件,数据文件以及日志文件:

    备份参数文件:
    
    [oracle@host02 cold_bk]$ cd $ORACLE_HOME/dbs
    
    [oracle@host02 dbs]$ ls
    
    hc_PROD.dat  init.ora  initPROD.ora  lkPROD  snapcf_PROD.f  spfilePROD.ora
    
    [oracle@host02 dbs]$ cp initPROD.ora /home/oracle/cold_bk
    
    [oracle@host02 dbs]$ cd /home/oracle/cold_bk
    
    [oracle@host02 cold_bk]$ ls
    
    initPROD.ora
    
    备份控制文件数据文件以及日志文件:
    
    oracle@host02 ~]$ cd /u01/app/oracle/oradata/PROD/
    
    [oracle@host02 PROD]$ ls
    
    ora_control1.ctl  redo03a.log   system01.dbf  temp_02.dbf  undotbs01.dbf
    
    redo01a.log       redo04a.log   temp_01.dbf   test101.dbf  user02.dbf
    
    redo02a.log       sysaux01.dbf  temp01.dbf    test102.dbf  users01.dbf
    
    [oracle@host02 PROD]$ cp * /home/oracle/cold_bk
    
    [oracle@host02 PROD]$ cd /home/oracle/cold_bk
    
    [oracle@host02 cold_bk]$ ls
    
    initPROD.ora      redo03a.log   temp_01.dbf  test102.dbf
    
    ora_control1.ctl  redo04a.log   temp01.dbf   undotbs01.dbf
    
    redo01a.log       sysaux01.dbf  temp_02.dbf  user02.dbf
    
    redo02a.log       system01.dbf  test101.dbf  users01.dbf

    ⑤模拟故障----删除数据库文件:

    删除参数文件:
    
    [oracle@host02 cold_bk]$ cd $ORACLE_HOME/dbs
    
    [oracle@host02 dbs]$ ls
    
    hc_PROD.dat  init.ora  initPROD.ora  lkPROD  snapcf_PROD.f  spfilePROD.ora
    
    [oracle@host02 dbs]$ rm initPROD.ora
    
    [oracle@host02 dbs]$ rm spfilePROD.ora
    
    [oracle@host02 dbs]$ ls
    
    hc_PROD.dat  init.ora  lkPROD  snapcf_PROD.f
    
    删除控制文件数据文件以及日志文件:
    
    [oracle@host02 PROD]$ cd /u01/app/oracle/oradata/PROD/
    
    [oracle@host02 PROD]$ ls
    
    ora_control1.ctl  redo03a.log   system01.dbf  temp_02.dbf  undotbs01.dbf
    
    redo01a.log       redo04a.log   temp_01.dbf   test101.dbf  user02.dbf
    
    redo02a.log       sysaux01.dbf  temp01.dbf    test102.dbf  users01.dbf
    
    [oracle@host02 PROD]$ rm *
    
    [oracle@host02 PROD]$ ls
    
    [oracle@host02 PROD]$

    启动数据库报错:

    SQL> startup
    
    ORA-01078: failure in processing system parameters
    
    LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initPROD.ora'

    ⑥现在开始恢复数据库文件:

    第一步首先恢复参数文件pfile:
    
    [oracle@host02 PROD]$ cd /home/oracle/cold_bk
    
    [oracle@host02 cold_bk]$ ls
    
    initPROD.ora      redo03a.log   temp_01.dbf  test102.dbf
    
    ora_control1.ctl  redo04a.log   temp01.dbf   undotbs01.dbf
    
    redo01a.log       sysaux01.dbf  temp_02.dbf  user02.dbf
    
    redo02a.log       system01.dbf  test101.dbf  users01.dbf
    
    [oracle@host02 cold_bk]$ cp initPROD.ora /u01/app/oracle/product/11.2.0/dbhome_1/dbs
    
    [oracle@host02 cold_bk]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs
    
    [oracle@host02 dbs]$ ls
    
    hc_PROD.dat  init.ora  initPROD.ora  lkPROD  snapcf_PROD.f
    
    此时将数据库启动到nomount状态没有问题:
    
    SQL> startup nomount
    
    ORACLE instance started.
    
     
    
    Total System Global Area  835104768 bytes
    
    Fixed Size                  2257840 bytes
    
    Variable Size             536874064 bytes
    
    Database Buffers          289406976 bytes
    
    Redo Buffers                6565888 bytes
    再根据pfile文件生成spfile:
    
    SQL> create spfile from pfile;
    
     
    
    File created.

    ⑦然后开始恢复控制文件,数据文件和日志文件:

    [oracle@host02 ~]$ cd /home/oracle/cold_bk/
    
    [oracle@host02 cold_bk]$ cp * /u01/app/oracle/oradata/PROD
    
    [oracle@host02 cold_bk]$ cd /u01/app/oracle/oradata/PROD/
    
    [oracle@host02 PROD]$ ls
    
    initPROD.ora      redo03a.log   temp_01.dbf  test102.dbf
    
    ora_control1.ctl  redo04a.log   temp01.dbf   undotbs01.dbf
    
    redo01a.log       sysaux01.dbf  temp_02.dbf  user02.dbf
    
    redo02a.log       system01.dbf  test101.dbf  users01.dbf

    ⑧此时数据库就已经恢复完成,启动数据库到open状态:

    SQL> alter database mount;
    
     
    
    Database altered.
    
     
    
    SQL> alter database open;
    
     
    
    Database altered.

    OK!

  • 相关阅读:
    hdu 3555 Bomb 【数位DP】
    ibatis动态的传入表名、字段名
    ibatis把表名作为一个参数报错问题的解决方案
    事务——原子性、一致性、隔离性和持久性的理解
    struts2 集成webservice 的方法
    MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK
    Javascript禁止网页复制粘贴效果,或者复制时自动添加来源信息
    asp.net关于Cookie跨域(域名)的问题
    Java cookie的使用
    关于Cookie跨域操作的一些总结
  • 原文地址:https://www.cnblogs.com/tomatoes-/p/5914300.html
Copyright © 2011-2022 走看看