rac ASM下最简单归档开启方法

时间:2024-06-16 15:37:08

原创作品,出自 “深蓝的blog” 博客,深蓝的blog:http://blog.****.net/huangyanlong/article/details/47172639
本次先来介绍一下在rac环境下,开启归档的最简单的方法。
环境:oracle11g RAC 11.2.0.4

登陆sqlplus
Last login: Wed Jul 29 09:25:43 2015 from 10.112.16.22
[root@hyldb1 ~]# su - oracle
[oracle@hyldb1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Jul 29 09:29:44 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

查看ASM空间使用率
SQL> select group_number,name,total_mb,free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME                             TOTAL_MB    FREE_MB
------------ ------------------------------ ---------- ----------
           1 OCR_ARCH                          2048000    2042322
           2 OCR_DATA                         26112000   23640108
           3 OCR_VOTE                            61440      60514

查看归档状态
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     29061
Current log sequence           29065

SQL> show user
USER is "SYS"

节点1、2,分别关库,或使用命令:srvctl stop instance -d hyl来关闭所有实例。
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

节点1,启库到mount
SQL> startup mount;
ORACLE instance started.

Total System Global Area 3.9284E+10 bytes
Fixed Size                  2261608 bytes
Variable Size            7516196248 bytes
Database Buffers         3.1675E+10 bytes
Redo Buffers               89997312 bytes
Database mounted.

查看节点1的状态
SQL> select status from gv$instance;

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

为节点1开启归档
开启归档
SQL> alter database archivelog;
Database altered.

查看归档状态,可以看到默认归档路径为USE_DB_RECOVERY_FILE_DEST
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     29061
Next log sequence to archive   29065
Current log sequence           29065

节点1启库
SQL> alter database open;

Database altered.

SQL> select status,instance_name from gv$instance;

STATUS       INSTANCE_NAME
------------ ----------------
OPEN         hyl1

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     29061
Next log sequence to archive   29065
Current log sequence           29065

来看一下,归档路径的信息,默认是直接指向了ASM中的路径
SQL> show parameter recover

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      +OCR_ARCH
db_recovery_file_dest_size           big integer 4407M
db_unrecoverable_scn_tracking        boolean     TRUE
recovery_parallelism                 integer     0

节点2启库:
SQL> startup;
ORACLE instance started.

Total System Global Area 3.9284E+10 bytes
Fixed Size                  2261608 bytes
Variable Size            6710889880 bytes
Database Buffers         3.2481E+10 bytes
Redo Buffers               89997312 bytes
Database mounted.
Database opened.

查看集群实例启动状态
SQL> select status,instance_name from gv$instance;

STATUS       INSTANCE_NAME
------------ ----------------
OPEN         hyl2
OPEN         hyl1

查看节点2的归档状态
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     48485
Next log sequence to archive   48489
Current log sequence           48489

查看db_recovery_file_dest信息
SQL> show parameter recover

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      +OCR_ARCH
db_recovery_file_dest_size           big integer 4407M
db_unrecoverable_scn_tracking        boolean     TRUE
recovery_parallelism                 integer     0

到ASM下看一下归档文件
ASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB   Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576   2048000   2042300                0         2042300              0             N  OCR_ARCH/
MOUNTED  EXTERN  N         512   4096  1048576  26112000  23640108                0        23640108              0             N  OCR_DATA/
MOUNTED  NORMAL  N         512   4096  1048576     61440     60514            20480           20017              0             Y  OCR_VOTE/
ASMCMD> cd +OCR_ARCH/hyl/ARCHIVELOG/2015_07_29
ASMCMD> ls -s 
Block_Size  Blocks     Bytes     Space  Name
       512   43974  22514688  23068672  thread_2_seq_48488.268.886327155

节点1上切一下归档
SQL> alter system switch logfile;
System altered.

在看一下归档文件的信息
ASMCMD> ls -ls
Type        Redund  Striped  Time             Sys  Block_Size  Blocks      Bytes      Space  Name
ARCHIVELOG  UNPROT  COARSE   JUL 29 10:00:00  Y           512  378883  193988096  196083712  thread_1_seq_29065.269.886328273
ARCHIVELOG  UNPROT  COARSE   JUL 29 09:00:00  Y           512   43974   22514688   23068672  thread_2_seq_48488.268.886327155
可以看到线程1,即节点1的归档文件已经成功生成了。

这种设置归档路径使用的db_recovery_file_dest,但是要注意db_recovery_file_dest的大小设置,默认设置往往比较小,对于生成环境显然是不够的,需要调整。

如果默认设置过小,使用这种方式,开启归档后常常遇到如下错误:
ORA-00257: archiver error. Connect internal only, until freed
如指令:
SQL> alter system set db_recovery_file_dest_size=200G;