文章目录

  • 前言
  • 一、开启归档:
  • 二、自动启动归档后台进程:
  • 三、ARCn进程设置:
  • 四、设置所有归档日志文件路径:
  • 只有启用一份归档日志文件,其他都为无效(默认)
  • 更改归档文件路径(log_archive_dest_1~3):
  • 五、重做日志切换:
  • 六、归档文件管理维护:
  • 七、关闭/开启归档日志功能:



前言

开启归档模式,我们可以进行实现rman的数据备份以及xtts等数据恢复。
开启归档需要停库操作:建议提前断掉应用服务,这样可以正常启停数据库,否则需要强行关掉数据库服务,会造成数据库回滚时间长。


提示:以下是本篇文章正文内容,下面案例可供参考

一、开启归档:

SQL> shutdown immediate

mysql 数据表归档 数据库归档怎么做_SQL

SQL> startup mount

mysql 数据表归档 数据库归档怎么做_SQL_02

SQL> alter database archivelog;

mysql 数据表归档 数据库归档怎么做_oracle_03

SQL> alter database open;

mysql 数据表归档 数据库归档怎么做_数据库_04

SQL> archive log list

mysql 数据表归档 数据库归档怎么做_mysql 数据表归档_05

二、自动启动归档后台进程:

SQL> show parameter log_archive_start

mysql 数据表归档 数据库归档怎么做_mysql 数据表归档_06

SQL> alter system set log_archive_start=true scope=spfile;

System altered.

重启数据库检查!

mysql 数据表归档 数据库归档怎么做_数据库_07

三、ARCn进程设置:

如果数据库DML操作过于频繁的话,有可能导致ARCn(归档进程)的读写跟不上LGWR(重做日志写进程),此时数据库LGWR就会进行等待数据库将挂起,造成效率下降。

查看系统ARCn进程数:

SQL> show parameter log_archive_max_processes

mysql 数据表归档 数据库归档怎么做_SQL_08

SQL> alter system set log_archive_max_processes=6;
System altered.

四、设置所有归档日志文件路径:

(8i:5份归档文件、9i和10:10份归档文件、11g和12c:31份归档文件)

SQL> show parameter LOG_ARCHIVE_DEST_

查看数据字典:

SQL> col DESTINATION for a25    
SQL>  select destination,binding,target,status from v$archive_dest;

mysql 数据表归档 数据库归档怎么做_mysql 数据表归档_09

只有启用一份归档日志文件,其他都为无效(默认)

更改归档文件路径(log_archive_dest_1~3):

SQL> alter system set log_archive_dest_1="LOCATION=/data/ARCn_log/desk1 mandatory";

System altered.

LOCATION:代表归档文件存放在本地磁盘上
mandatory:代表该目录下的日志文件是强制的(没有写成功前,重做日志不能重用)
optional:表示日志文件是可选的(没有写成功,重做日志可以重用)
默认值:optional

SQL> show parameter log_archive_dest_1

mysql 数据表归档 数据库归档怎么做_SQL_10

SQL> alter system set log_archive_dest_2="LOCATION=/data/ARCn_log/desk2";              

System altered.

SQL> alter system set log_archive_dest_3="LOCATION=/data/ARCn_log/desk3 optional";

System altered.

mysql 数据表归档 数据库归档怎么做_mysql 数据表归档_11


其他日志文件为INACTIVE不可用。(此时数据库也是一个较为脆弱的状态,因为只有一个日志文件为强制性,如果损坏导致无法完全恢复)

五、重做日志切换:

以上操作完成后可进行查看归档日志文件路径:

mysql 数据表归档 数据库归档怎么做_数据库_12


原因:此期间没有足够的DML操作 重做日志不会被填满,因此也就不能产生归档日志文件

SQL> alter system switch logfile;  

System altered.

mysql 数据表归档 数据库归档怎么做_mysql 数据表归档_13

六、归档文件管理维护:

由于我们设置只有log_archive_dest_1是mandatory状态,使数据库运行在一个很脆弱的状态,oracle引进log_archive_min_succeed_dest.。
如果log_archive_min_succeed_dest小于或等于mandatory个数=对系统无影响
如果log_archive_min_succeed_dest大于mandatory个数=除了mandatory外,成功的归档日志文件数至少不能低于这个数值。

SQL> show parameter log_archive_min_succeed_dest

mysql 数据表归档 数据库归档怎么做_hive_14

SQL> alter system set log_archive_min_succeed_dest=2;

System altered.

七、关闭/开启归档日志功能:

通过log_archive_dest_state_n动态参数控制:

SQL> show parameter log_archive_dest_state_

mysql 数据表归档 数据库归档怎么做_oracle_15

SQL> alter system set log_archive_dest_state_1=defer;

System altered.

mysql 数据表归档 数据库归档怎么做_数据库_16


DEFER状态是一个临时的维护状态,一旦维护结束要转回ENABLE状态

SQL>  alter system set log_archive_dest_state_1=enable;