更新时间:2024-06-14 10:25:56

Oracle备份恢复的归档模式有以下要求:

  • 数据库必须开启归档模式。
  • 支持数据库归档日志在闪回区环境下进行实时复制,但由于闪回区空间有限,请确保闪回区空间足够并能够实时监控闪回区空间利用率。
  • 请确保归档路径所在目录有足够的空间用于承载用户的数据库应用。

检查归档模式是否开启

  1. 登录数据库所在客户端后,进入SQL命令行。

  2. 执行archive log list;命令,查看归档日志状态。

    • 未开启归档模式的数据库,回显为“非存档模式”或“No Archived Mode”。示例如下所示:

      0SQL> archive log list;
      1数据库日志模式 非存档模式
      2自动存档 禁用
      3存档终点 USE_DB_RECOVERY_FILE_DEST
      4最早的联机日志序列 321
      5当前日志序列 326
      复制
    • 开启归档模式的数据库,回显为“存档模式”或“Archived Mode”,同时显示具体的归档路径。示例如下所示:

      0数据库日志模式 存档模式
      1自动存档 启用
      2存档终点 /u01/arch
      3最早的联机日志序列 321
      4下一个存档日志序列 326
      5当前日志序列 326
      复制

如数据库未开启归档模式,请按照以下步骤开启归档模式。

开启归档模式

下面以Linux 环境为例说明操作步骤。

Linux环境_单/双机

  1. 登录数据库所在客户端,进入SQL命令行。

  2. 执行shutdown immediate;命令,立即关闭数据库。回显示例如下所示:

    0SQL> shutdown immediate;
    1数据库已经关闭。
    2已经卸载数据库。
    3Oracle例程已经关闭。
    复制
  3. 执行startup mount;命令,启动数据库至MOUNTED状态。回显示例如下所示:

    0SQL> startup mount;
    1Oracle例程已经启动。
    2数据库装载完毕。
    复制
  4. 执行alter system set log_archive_dest_1='location=/u01/app/arch' scope =both;命令,设置归档路径。回显示例如下所示:

    0SQL> alter system set log_archive_dest_1='location=/u01/app/arch' scope =both;
    1数据库已更改。
    复制

    注意:此处若使用闪回区,且闪回区路径已设置,此步骤可忽略。

  5. 执行alter database archivelog;命令,启动数据库归档模式。

  6. 执行alter database open;命令,更改数据库状态至OPEN。回显示例如下所示:

    0SQL> alter database open;
    1数据库已更改。
    复制
  7. 执行archive log list;命令,查看归档路径是否修改成功。回显实例如下所示,表示修改成功:

    0SQL> archive log list;
    1数据库日志模式 存档模式
    2自动存档 启用
    3存档终点 /u01/app/arch
    4最早的联机日志序列 321
    5下一个存档日志序列 326
    6当前日志序列 326
    复制
  8. 执行alter system switch logfile;命令,检查是否可以正常归档。

    注意:

    • 若已经开启归档日志模式,您需要将归档路径由闪回区修改为本地路径,同样需要重启数据库实例至MOUNTED状态进行修改。
    • 同理,归档路径也可以在共享存储上,将第4步中的本地路径“/xx/xx”修改为“+xx/xx”即可。
    • 归档模式已开启,仅需要更改日志归档路径,不需要重启数据库。

Linux环境_RAC

您可以在Oracle数据库安装用户下执行如下操作。

注意:若Oracle RAC环境的归档路径设置在本地文件系统上,则代表日志存储在节点上。

  1. 登录数据库所在客户端,进入SQL命令行。

  2. 执行srvctl stop database -d db_name;命令,关闭数据库。

  3. 执行srvctl start database -d db_name -o mount;命令,启动数据库至MOUNTED状态。

  4. 执行alter system set log_archive_dest_1='location=/u01/app/arch' scope =both;命令,设置归档路径。回显示例如下所示:

    0SQL> alter system set log_archive_dest_1='location=/u01/app/arch' scope =both;
    1数据库已更改。
    复制

    注意:此处若使用闪回区,且闪回区路径已设置,此步骤可忽略。

  5. 执行alter database archivelog;命令,开启数据库归档模式。

    注意:Oracle RAC环境仅需要在一个节点上开启归档模式。

  6. 执行alter database open;命令,更改数据库状态至OPEN。回显示例如下所示:

    0SQL> alter database open;
    1数据库已更改。
    复制

    注意:Oracle RAC环境下,每个节点均需要更改数据库状态至OPEN。

  7. 执行archive log list;命令,查看归档路径是否修改成功。回显实例如下所示,表示修改成功:

    0SQL> archive log list;
    1数据库日志模式 存档模式
    2自动存档 启用
    3存档终点 +data/rac/arch
    4最早的联机日志序列 321
    5下一个存档日志序列 326
    6当前日志序列 326
    复制
  8. 执行alter system switch logfile;命令,检查是否可以正常归档。

    注意:

    • 若已经开启归档日志,您需要将归档路径由闪回区修改为本地路径,同样需要重启数据库实例至MOUNTED状态进行修改。
    • 同理,归档路径也可以在共享存储上,将第4步中的本地路径“/xx/xx”修改为“+xx/xx”即可。
    • 归档模式已开启,仅需要更改日志归档路径,不需要重启数据库。