一、问题描述:

数据库版本:11.2.0.3 单实例的DG

在2019-03-26号,某个备库的/目录空间不是很充裕,将原来的归档目录/arcdg/center/archivelog更换为/oradata/archivelog新目录。(两个是不同的盘)

操作步骤如下:

  • 主库关闭日志投递
  • 备库关闭日志应用
  • 备库修改归档路径

Oracle修改归档路径后,归档生成在两个路径下

  • 备库开启日志应用
  • 主库开启日志投递

在2019-03-28巡检发现,在旧的归档路径下仍然生成一部分归档文件。

Oracle修改归档路径后,归档生成在两个路径下

二、问题分析:

数据库中有两个参数LOG_ARCHIVE_DEST_1,STANDBY_ARCHIVE_DEST,2者的关系如下:

STANDBY_ARCHIVE_DEST参数指定从主库接收的归档日志存储在备库中的位置。

1)主库的LOG_ARCHIVE_DEST_n='service'默认的arch传输方式,primary会远程将archived log传输到standby_archive_dest下

2)fal_*是通过arch传输过来的,所以使用的是STANDBY_ARCHIVE_DEST目录,如果不存在这个目录,就使用LOG_ARCHIVE_DEST_n

3)If both parameters are specified, the STANDBY_ARCHIVE_DEST initialization parameter

  overrides the directory location specified with the LOG_ARCHIVE_DEST_n parameter.

如果STANDBY_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n两个参数指定,STANDBY_ARCHIVE_DEST初始化覆盖LOG_ARCHIVE_DEST_n目录指定位置参数。

4)If none of the initialization parameters have been specified, thenarchived redo log files are stored inthe default location forthe STANDBY_ARCHIVE_DEST initialization parameter.

如果STANDBY_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n都没有配置,将会把归档日志放到STANDBY_ARCHIVE_DEST的默认目录 

5)如果STANDBY_ARCHIVE_DEST未配置,而配置了LOG_ARCHIVE_DEST_n,那么产生的归档将放置到LOG_ARCHIVE_DEST_n

6)建议:STANDBY_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n=‘location’的配置相同

7)在11g,已经不建议使用STANDBY_ARCHIVE_DEST,也就是说建议配置dg的时候尽量使用standby redo logfile

在11g的版本中该参数已经弃用,并且会自动选择适当的位置。默认值是?/dbs/arch。

备库接收主库的归档路径选择优先顺序从高到低依次为:

STANDBY_ARCHIVE_DEST > LOG_ARCHIVE_DEST_1> STANDBY_ARCHIVE_DEST的默认值?/dbs/arch。

在11g版本,STANDBY_ARCHIVE_DEST不用再设置,但实际值继承LOG_ARCHIVE_DEST_1参数设置。当修改LOG_ARCHIVE_DEST_1时,STANDBY_ARCHIVE_DEST继承旧值,不刷新,而LOG_ARCHIVE_DEST_1即时刷新,不需重启库,重启库STANDBY_ARCHIVE_DEST继承LOG_ARCHIVE_DEST_1的新值(即当前值)。

Oracle修改归档路径后,归档生成在两个路径下

Oracle修改归档路径后,归档生成在两个路径下

如果备库利用standby redo log,那么日志将会被arch进程生成归档到LOG_ARCHIVE_DEST_n

如果备库是利用主库的arch进程传输日志文件,那么将会被放置到STANDBY_ARCHIVE_DEST

由于修改LOG_ARCHIVE_DEST_1值之后,LOG_ARCHIVE_DEST_1即时刷新,而STANDBY_ARCHIVE_DEST未刷新,继承了dest_1的旧值,导致STANDBY_ARCHIVE_DEST参数仍然是LOG_ARCHIVE_DEST_1变更前的路径:

Oracle修改归档路径后,归档生成在两个路径下

这样就导致主库传递的归档文件在/arcdg/center/archivelog/路径下,主库传递的standby redo log并生成的归档在/oradata/archivelog路径下,归档产生在两个路径。

三、问题解决:

重启数据库实例,STANDBY_ARCHIVE_DEST参数自动变化

Oracle修改归档路径后,归档生成在两个路径下

相关文章:

  • 2022-01-11
  • 2022-02-12
  • 2021-11-13
  • 2022-12-23
  • 2022-12-23
  • 2022-01-29
  • 2022-01-04
猜你喜欢
  • 2021-07-02
  • 2022-12-23
  • 2022-12-23
  • 2021-10-03
  • 2021-05-20
相关资源
相似解决方案