• 8. 在NOARCHIVELOG模式下用户管理的备份与恢复


    8.1 NOARCHIVE 模式简介

    1. NOARCHIVELOG 模式

    NOARCHIVELOG 是指不保留重做历史记录的日志操作模式。这种操作模式只能用于保护例程失败(例如系统断电),而不能保护介质失败。NOARCHIVELOG 模式具有以下特点:

    • 当检查点完成之后,后台进程LGWR 可以覆盖原有重做日志内容。
    • 如果在数据库备份之后的重做日志内容已经被覆盖,那么当数据文件出现介质失败时,只能恢复到过去的完全备份点。
    • 当数据库处于OPEN 状态时,不能备份数据库。
    • 当执行数据库备份时,必须使用SHUTDOWN NORMAL 或 SHUTDOWN IMMEDIATE 关闭数据库。
    • 当执行数据库备份时,必须备份所有数据文件和控制文件。

    2. 改变为NOARCHIVELOG 模式

    关闭数据库:SHUTDOWN IMMEDIATE

    装载数据库:STARTUP MOUNT

    改变日志操作模式:ALTER DATABASE NOARCHIVELOG;

    打开数据库:ALTER DATABASE OPEN;

    SQL> conn / as sysdba
    已连接。
    SQL> shutdown immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup mount
    ORACLE 例程已经启动。

    Total System Global Area  167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              75498852 bytes
    Database Buffers           88080384 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    SQL> alter database noarchivelog ;

    数据库已更改。

    SQL> alter database open;

    数据库已更改。

    8.2 在 NOARCHIVELOG 模式下的备份

    (1) 列出要备份的数据文件和控制文件。

    (2) 关闭数据库。

    (3) 复制所有数据文件和控制文件到备份目录。

    (4) 启动例程并打开数据库。

    SQL> select name from v$datafile
      2  union
      3  select name from v$controlfile;

    NAME
    ----------------------------------------------------------------------------------
    C:\DEMO\CONTROL02.CTL
    D:\DEMO\CONTROL01.CTL
    D:\DEMO\SYSAUX01.DBF
    D:\DEMO\SYSTEM01.DBF
    D:\DEMO\UNDOTBS01.DBF
    D:\DEMO\USERS01.DBF

    已选择6行。

    SQL> shutdown immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> host copy C:\DEMO\CONTROL02.CTL d:\0927

    SQL> host copy D:\DEMO\CONTROL01.CTL d:\0927

    SQL> host copy D:\DEMO\SYSAUX01.DBF d:\0927

    SQL> host copy D:\DEMO\SYSTEM01.DBF d:\0927

    SQL> host copy D:\DEMO\UNDOTBS01.DBF d:\0927

    SQL> host copy D:\DEMO\USERS01.DBF d:\0927

    SQL> startup
    ORACLE 例程已经启动。

    Total System Global Area  167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              75498852 bytes
    Database Buffers           88080384 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    数据库已经打开。

    8.3 在NOARCHIVELOG 模式下的恢复

    8.3.1 数据文件出现介质失败但重做日志未被覆盖

    (1) 装载数据库。

    (2) 确定需要恢复的数据文件。

    (3) 复制数据文件备份。

    (4) 恢复数据文件。

    (5) 打开数据库。

    SQL> shutdown immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> host del d:\demo\system01.dbf

    SQL> startup
    ORACLE 例程已经启动。

    Total System Global Area  167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              75498852 bytes
    Database Buffers           88080384 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
    ORA-01110: 数据文件 1: 'D:\DEMO\SYSTEM01.DBF'

    SQL> select status from v$instance;

    STATUS
    ------------
    MOUNTED

    SQL> select file#,error from v$recover_file;

         FILE# ERROR
    ---------- -----------------------------------------------------------------
             1 FILE NOT FOUND

    SQL> host copy d:\0927\system01.dbf d:\demo

    SQL> recover datafile 1
    完成介质恢复。
    SQL> alter database open;

    数据库已更改。

     

    8.3.2 次要数据文件出现介质失败

    次要数据文件是指只包含次要数据的数据文件。如果次要数据文件出现介质失败,并且备份以来的重做日志内容已经被覆盖,那么可以删除次要数据文件。

    SQL> select name from v$datafile;

    NAME
    ----------------------------------------------------------------------------------------------------
    D:\DEMO\SYSTEM01.DBF
    D:\DEMO\UNDOTBS01.DBF
    D:\DEMO\SYSAUX01.DBF
    D:\DEMO\USERS01.DBF
    D:\DEMO\USER01.DBF
    D:\DEMO\USER02.DBF

    已选择6行。
    SQL> shutdown immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> host del D:\DEMO\USER02.DBF

    SQL> startup
    ORACLE 例程已经启动。

    Total System Global Area  167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              75498852 bytes
    Database Buffers           88080384 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
    ORA-01110: 数据文件 6: 'D:\DEMO\USER02.DBF'

    SQL> select status from v$instance;

    STATUS
    ------------
    MOUNTED

    SQL> alter database datafile 6 offline drop;

    数据库已更改。

    SQL> alter database open;

    数据库已更改。

    8.3.3 重要数据文件出现介质失败

    (1) 关闭数据库。

    (2) 复制所有数据文件和控制文件备份。

    (3) 装载数据库。

    (4) 用RESETLOGS 选项打开数据库。


    SQL> startup
    ORACLE 例程已经启动。

    Total System Global Area  167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              62915940 bytes
    Database Buffers          100663296 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
    ORA-01110: 数据文件 4: 'D:\DEMO\USERS01.DBF'

    SQL> select status from v$instance;

    STATUS
    ------------
    MOUNTED

    SQL> shutdown immediate
    ORA-01109: 数据库未打开

    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> host copy d:\0927\SYSTEM01.DBF D:\DEMO

    SQL> host copy d:\0927\UNDOTBS01.DBF D:\DEMO

    SQL> host copy d:\0927\SYSAUX01.DBF D:\DEMO

    SQL> host copy d:\0927\USERS01.DBF D:\DEMO

    SQL> host copy d:\0927\CONTROL01.CTL D:\DEMO

    SQL> host copy d:\0927\CONTROL02.CTL C:\DEMO

    SQL> startup mount
    ORACLE 例程已经启动。

    Total System Global Area  167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              62915940 bytes
    Database Buffers          100663296 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    SQL> recover database until cancel;
    完成介质恢复。

    在NOARCHIVELOG模式下,RECOVER DATABASE UNTIL CANCEL 命令并未执行任何恢复操作,只是提示控制文件不再使用原有重做日志。
    SQL> alter database open resetlogs;

    数据库已更改。

    E-MAIL:yiwuya@hotmail.com
    MSN:yiwuya@hotmail.com
    QQ:304899972
    纺织软件
  • 相关阅读:
    ThreadLocal
    mysql
    heroku 的用法
    Redis
    disruptor
    RxJava
    TCP
    虚拟机的安装及配置等
    k8s
    Ribbon源
  • 原文地址:https://www.cnblogs.com/yiwuya/p/1301233.html
Copyright © 2020-2023  润新知