ITPub博客

首页 > 数据库 > Oracle > DG架构下扩大备库的在线日志大小

DG架构下扩大备库的在线日志大小

原创 Oracle 作者:小馒头 时间:2016-03-02 14:17:33 0 删除 编辑

Handling ORL and SRL (Resize) on Primary and Physical Standby in Dataguard Environment (文档 ID 1532566.1)

Mos给出的方案在实际备库切换在线日志的时候碰到了bug

SQL> alter system switch logfile;    <---切换发现报告ora-600错误

ERROR at line 1:

ORA-00600: internal error code, arguments: [2713], [], [], [], [], [], [], [],

[], [], [], []

思路: 决定扩大主库的在线日志,后备份主库控制文件到备库的方式来扩充备库在线日志大小


现象:

当前备库在线日志才50M,需要修改成跟主库一致500M

SQL>  select group#,thread#,bytes/1024/1024 MB ,status from v$log;

    GROUP#    THREAD#         MB STATUS

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

         1          1         50 CLEARING

         2          1         50 CLEARING

         3          2         50 CLEARING

         4          2         50 CLEARING

当前主库

SQL> select group#,thread#,bytes/1024/1024 MB ,status from v$log;

    GROUP#    THREAD#         MB STATUS

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

        17          1        500 CURRENT

        18          2        500 CURRENT

        19          1        500 INACTIVE

        20          2        500 INACTIVE

当前备库archive log list也是跟主库不一致

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            +DATA2              备库:

Oldest online log sequence     11437                  10888

Next log sequence to archive   11438                   0

Current log sequence         11438                   10888

修改步骤:

1>主库关闭日志传送

alter system switch logfile;

alter system set log_archive_dest_state_2=defer;

2>备库停日志应用

alter database recover managed standby database cancel;

3>主库创建新的控制文件

alter database create standby controlfile as '/home/oracle/standby.ctl';

4>备库停库恢复控制文件

SQL> shutdown immediate;

SQL> startup nomount;

RMAN> restore standby controlfile from '/home/oracle/standby.ctl';
5>因为备库的文件路径跟主库不一致,需要修改
alter system set standby_file_management=MANUAL;
ALTER DATABASE RENAME FILE  '+DATA2/bbtech/datafile/system.291.870459433' TO  '+DATA2/bbtech/datafile/system.256.870200689';
........

alter system set standby_file_management=AUTO;

6>此时备库启动会报错

SQL> alter database open;

ERROR at line 1:

ORA-10458: standby database requires recovery

ORA-01152: file 1 was not restored from a sufficiently old backup

ORA-01110: data file 1: '+DATA2/bbtech/datafile/system.256.870200689'

需要主库先启动日志应用,因为控制文件是从主库过来的,需要同步最新的主库日志

同步日志,数据文件scn和控制文件scn就自动一致了

 

alter system set log_archive_dest_state_2=enable;           

备库先应用下日志

alter database recover managed standby database disconnect from session; 

备库会有删除不存在的在线日志的记录

而后再取消应用,再次打开ok了

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter database open;

Database altered.

而且自动重建了临时文件

此时备库的在线日志已经改过来了

7>

启动实时应用日志

SQL> alter database recover managed standby database using current logfile disconnect from session;

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            +DATA2

Oldest online log sequence     11440

Next log sequence to archive   0

Current log sequence           11441

SQL> select open_mode from v$database;

OPEN_MODE

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

READ ONLY WITH APPLY

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/61604/viewspace-2024036/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: OCM考试实验系列
请登录后发表评论 登录
全部评论

注册时间:2012-06-19

  • 博文量
    14
  • 访问量
    47560