11g physical standby , change prrotect mode, ORA-16072

物理standby,主库保护模式由maximize performance 切换到 maximize protection。

出现ORA-16072

[@more@]


1 问题描述
SQL>
SQL> select protection_mode from v$database;

PROTECTION_MODE
----------------------------------------
MAXIMUM PERFORMANCE

SQL>
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 268436372 bytes
Database Buffers 260046848 bytes
Redo Buffers 5844992 bytes
数据库装载完毕。
SQL>
SQL> show parameter dest_2

NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_create_online_log_dest_2 string
log_archive_dest_2 string SERVICE=standby LGWR ASYNC VAL
ID_FOR=(ONLINE_LOGFILES,PRIMAR
Y_ROLE) DB_UNIQUE_NAME=standby
SQL>
SQL> alter database set standby database to maximize protection;

数据库已更改。

SQL>
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-16072: 需要一个备用数据库目标的最小值
ORA-16072: 需要一个备用数据库目标的最小值


SQL>
SQL> select protection_mode from v$database;
select protection_mode from v$database
*
第 1 行出现错误:
ORA-03113: 通信通道的文件结束
进程 ID: 3580
会话 ID: 170 序列号: 5


SQL>
SQL>


2 定位,解决
其实这个ORA-16072问题是由于log_archive_dest_2设置不当造成的。
做一下修改:
SQL>
SQL> conn sys/oracle as sysdba
已连接到空闲例程。
SQL> select protection_mode from v$database;
select protection_mode from v$database
*
第 1 行出现错误:
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0


SQL>
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 268436372 bytes
Database Buffers 260046848 bytes
Redo Buffers 5844992 bytes
数据库装载完毕。
SQL>
SQL> show parameter dest_2

NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_create_online_log_dest_2 string
log_archive_dest_2 string SERVICE=standby LGWR ASYNC VAL
ID_FOR=(ONLINE_LOGFILES,PRIMAR
Y_ROLE) DB_UNIQUE_NAME=standby
SQL>
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=standby SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby' scope=both;

系统已更改。

SQL>
SQL> show parameter dest_2

NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_create_online_log_dest_2 string
log_archive_dest_2 string SERVICE=standby SYNC AFFIRM VA
LID_FOR=(ONLINE_LOGFILES,PRIMA
RY_ROLE) DB_UNIQUE_NAME=standb
y
SQL>
SQL> alter database set standby database to maximize protection;

数据库已更改。

SQL>
SQL> select protection_mode from v$database;

PROTECTION_MODE
----------------------------------------
MAXIMUM PROTECTION

SQL>
SQL> alter database open;

数据库已更改。

SQL>

3 察看备库确认保护模式已经更改
SQL>
SQL> select database_role, protection_mode from v$database;

DATABASE_ROLE PROTECTION_MODE
---------------- --------------------
PHYSICAL STANDBY MAXIMUM PROTECTION

SQL>

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

转载于:http://blog.itpub.net/593324/viewspace-1009785/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值