Oracle备份恢复的归档模式有以下要求:
- 数据库必须开启归档模式。
- 支持数据库归档日志在闪回区环境下进行备份,但由于闪回区空间有限,请确保闪回区空间足够并能够实时监控闪回区空间利用率。
- 请确保归档路径所在目录有足够的空间用于承载用户的数据库应用。
检查归档模式是否开启
-
登录数据库所在客户端后,进入SQL命令行。
-
执行
archive log list;
命令,查看归档日志状态。-
未开启归档模式的数据库,回显为“非存档模式”或“No Archived Mode”。示例如下所示:
SQL> archive log list; 数据库日志模式 非存档模式 自动存档 禁用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 321 当前日志序列 326
-
开启归档模式的数据库,回显为“存档模式”或“Archived Mode”,同时显示具体的归档路径。示例如下所示:
数据库日志模式 存档模式 自动存档 启用 存档终点 /u01/arch 最早的联机日志序列 321 下一个存档日志序列 326 当前日志序列 326
-
如数据库未开启归档模式,请按照以下步骤开启归档模式。
开启归档模式
下面以Linux 环境为例说明操作步骤。
Linux环境_单/双机
-
登录数据库所在客户端,进入SQL命令行。
-
执行
shutdown immediate;
命令,立即关闭数据库。回显示例如下所示:SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 Oracle例程已经关闭。
-
执行
startup mount;
命令,启动数据库至MOUNTED状态。回显示例如下所示:SQL> startup mount; Oracle例程已经启动。 数据库装载完毕。
-
执行
alter system set log_archive_dest_1='location=/u01/app/arch' scope =both;
命令,设置归档路径。回显示例如下所示:SQL> alter system set log_archive_dest_1='location=/u01/app/arch' scope =both; 数据库已更改。
注意:此处若使用闪回区,且闪回区路径已设置,此步骤可忽略。
-
执行
alter database archivelog;
命令,启动数据库归档模式。 -
执行
alter database open;
命令,更改数据库状态至OPEN。回显示例如下所示:SQL> alter database open; 数据库已更改。
-
执行
archive log list;
命令,查看归档路径是否修改成功。回显实例如下所示,表示修改成功:SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 /u01/app/arch 最早的联机日志序列 321 下一个存档日志序列 326 当前日志序列 326
-
执行
alter system switch logfile;
命令,检查是否可以正常归档。注意:
- 若已经开启归档日志模式,您需要将归档路径由闪回区修改为本地路径,同样需要重启数据库实例至MOUNTED状态进行修改。
- 同理,归档路径也可以在共享存储上,将第4步中的本地路径“/xx/xx”修改为“+xx/xx”即可。
- 归档模式已开启,仅需要更改日志归档路径,不需要重启数据库。
Linux环境_RAC
您可以在Oracle数据库安装用户下执行如下操作。
注意:若Oracle RAC环境的归档路径设置在本地文件系统上,则代表日志存储在节点上。
-
登录数据库所在客户端,进入SQL命令行。
-
执行
srvctl stop database -d db_name;
命令,关闭数据库。 -
执行
srvctl start database -d db_name -o mount;
命令,启动数据库至MOUNTED状态。 -
执行
alter system set log_archive_dest_1='location=/u01/app/arch' scope =both;
命令,设置归档路径。回显示例如下所示:SQL> alter system set log_archive_dest_1='location=/u01/app/arch' scope =both; 数据库已更改。
注意:此处若使用闪回区,且闪回区路径已设置,此步骤可忽略。
-
执行
alter database archivelog;
命令,开启数据库归档模式。注意:Oracle RAC环境仅需要在一个节点上开启归档模式。
-
执行
alter database open;
命令,更改数据库状态至OPEN。回显示例如下所示:SQL> alter database open; 数据库已更改。
注意:Oracle RAC环境下,每个节点均需要更改数据库状态至OPEN。
-
执行
archive log list;
命令,查看归档路径是否修改成功。回显实例如下所示,表示修改成功:SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 +data/rac/arch 最早的联机日志序列 321 下一个存档日志序列 326 当前日志序列 326
-
执行
alter system switch logfile;
命令,检查是否可以正常归档。注意:
- 若已经开启归档日志,您需要将归档路径由闪回区修改为本地路径,同样需要重启数据库实例至MOUNTED状态进行修改。
- 同理,归档路径也可以在共享存储上,将第4步中的本地路径“/xx/xx”修改为“+xx/xx”即可。
- 归档模式已开启,仅需要更改日志归档路径,不需要重启数据库。