版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/ctypyb2002/article/details/86641692
os: centos 7.4
db: oracle 12.1.0.2
线上的 oracle 数据库必须启用 archivelog 模式,否则毫无安全性可言.
archivelog 对数据库的恢复至关重要,决不能丢失.因为你不清楚数据库什么时候需要进行恢复操作,莫要在需要恢复时发现无法恢复.
dbf 方式启用
archivelog 最好和 datafile,online redo log 落在不同的 pv 上,以避免io竞争.
# mkdir -p /u02/archivelog
# chown -R oracle:oinstall /u02
查看归档模式
# su - oracle
$ sqlplus / as sysdba;
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 28
Current log sequence 30
SQL>
SQL>
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/fast_recovery_area
db_recovery_file_dest_size big integer 4560M
SQL>
SQL>
SQL> show parameter archive;
SQL>
SQL> alter system set log_archive_dest_1='location=/u02/archivelog' scope = spfile;
SQL> alter system set archive_lag_target = 600;
SQL>
SQL>
SQL> shutdown immediate;
SQL> startup mount;
SQL>
SQL> alter database archivelog;
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u02/archivelog
Oldest online log sequence 28
Next log sequence to archive 30
Current log sequence 30
SQL> alter database open;
验证归档
SQL> alter system switch logfile;
SQL>
SQL> alter system archive log current;
SQL>
$ ls -l /u02/archivelog
total 6208
-rw-r----- 1 oracle oinstall 6350336 Jan 25 10:39 1_30_998234027.dbf
-rw-r----- 1 oracle oinstall 1024 Jan 25 10:39 1_31_998234027.dbf
至此,dbf 方式的数据库的归档设置完成.比较简单
asm 方式启用
这里说的 asm 方式是指 单实例+asm,和 单实例+dbf 相对应
可以考虑为 archivelog 单独创建一个磁盘组
# su - oracle
$ sqlplus / as sysdba;
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 24
Current log sequence 26
SQL>
SQL>
SQL> show parameter DB_RECOVERY_FILE_DEST;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string +DG_DATA
db_recovery_file_dest_size big integer 4560M
SQL>
SQL>
SQL> show parameter archive;
SQL>
SQL>
SQL> alter system set log_archive_dest_1='location=+dg_data' scope=spfile;
SQL> alter system set archive_lag_target = 600 scope=spfile;
SQL>
SQL>
SQL> shutdown immediate;
SQL> startup mount;
SQL>
SQL>
SQL> alter database archivelog;
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +DG_DATA
Oldest online log sequence 24
Next log sequence to archive 26
Current log sequence 26
SQL>
SQL>
SQL> alter database open;
验证归档
SQL> alter system switch logfile;
SQL>
SQL> alter system archive log current;
SQL>
# su - grid
$ asmcmd
ASMCMD> cd +dg_data/orcl/archivelog/2019_01_25
ASMCMD> ls -l
Type Redund Striped Time Sys Name
ARCHIVELOG UNPROT COARSE JAN 25 11:00:00 Y thread_1_seq_26.279.998478787
ARCHIVELOG UNPROT COARSE JAN 25 11:00:00 Y thread_1_seq_27.280.998478791
哈哈,发现使用 asm 挺好,唯一担心的就是 asm 出现问题,就死翘翘了.
rac 方式启用
rac 的方式 和 asm 的方式基本一致,只是需要把 rac 的所有实例关闭后,启动其中一个实例到mount状态下修改归档模式.
参考:
https://docs.oracle.com/database/121/REFRN/GUID-405D335F-5549-4E02-AFB9-434A24465F0B.htm#REFRN10003