天天看点

RAC 开启归档模式及设置归档路径

(1)将所有节点的实例都关闭

[root@rac1 ~]# srvctl stop database -d oradb

[root@rac1 ~]# srvctl status database -d oradb

Instance oradb1 is not running on node rac1

Instance oradb2 is not running on node rac2

(2)将所有实例启动到mount状态

[root@rac1 ~]# srvctl start database -d oradb -o mount

(3)开启归档需要设置两个参数,一个是归档路径log_archive_dest_1,另外一个是归档的格式log_archive_format,默认是%t_%s_%r.dbf,要设置为%t_%s_%r.arc

设置归档格式  需要重启数据库生效

SQL> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile; --这个参数不支持内存修改生效,要使用scope=spfile

System altered.

设置归档路径 不需要重启生效

如果所有节点归档路径在一个目录下面使用

SQL> alter system set log_archive_dest_1='LOCATION=+ARCHIVE' scope=both sid=’*’;

这样在配置文件里面是*. log_archive_dest_1=

如果每个节点都有自己的归档目录使用

SQL> alter system set log_archive_dest_1='LOCATION=+ARCHIVE' scope=both sid=’oradb1’

SQL> alter system set log_archive_dest_1='LOCATION=+DATA' scope=both sid=’oradb2’

这样在配置文件里面是oradb1. log_archive_dest_1=  oradb2. log_archive_dest_1=

修改完可以查看该参数

SQL> show parameter log_archive_dest_1;

NAME      TYPE  VALUE

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

log_archive_dest_1      string  LOCATION=+ARCHIVE

在RAC环境下,归档路径的选择是值得斟酌的,如果使用共享的归档目录作为归档路径,则可以减少备份时的复杂性。如果使用独立的目录,则备份时需要进行特殊处理。

(4)因为log_archive_format需要重启才能生效所以需要重启

[root@rac1 ~]# srvctl stop database -d oradb

[root@rac1 ~]# srvctl start database -d oradb -o mount  --所有实例启动到mount状态

(5)开启归档模式,开启归档的命令在任一节点执行都可以

SQL> alter database archivelog;

Database altered.

SQL> archive log list;  --在其余节点查看一下

Database log mode        Archive Mode

Automatic archival        Enabled

Archive destination        +ARCHIVE

Oldest online log sequence     38

Next log sequence to archive   40

Current log sequence        40

SQL> show parameter log_archive_format;

NAME      TYPE  VALUE

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

log_archive_format      string  %t_%s_%r.arc

归档已经开启,归档路径和格式已经设置好了,最后别忘记将实例启动到open状态。

SQL> alter system switch logfile;  --节点1上切换日志,产生归档

System altered.

SQL> select NAME,THREAD# from v$archived_log;  --可以看到修改的log_archive_format格式并不生效,asm采用自己的命名规则

NAME                                                      THREAD#

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

+ARCHIVE/oradb/archivelog/2020_03_03/thread_1_seq_40.270.1034098609      1

最后说一下,归档路径如果没有设置,默认和db_recovery_file_dest有关,需要设置db_recovery_file_dest_size参数的大小,建议不要设置这个值,假如设置10G,如果归档达到这个值就满了,产生不了归档,还是使用log_archive_dest_1来设置归档路径,这样归档最大值就是磁盘组容量最大值

SQL> show parameter db_r;

NAME      TYPE  VALUE

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