oracle reinstate,[转帖]DG BROKER 之 REINSTATE DATABASE (把旧主库恢复到备用库)_MySQL, Oracle及数据库讨论区_Weblogic技术|Tux...

DGMGRL> connect sys/oracle@dbsalve;

已连接。

DGMGRL> show configuration;

配置 - DG_BROKER_SALVE

保护模式:    MaxAvailability

数据库:

DBSALVE - 主数据库

错误: ORA-16825: 检测到数据库的多个错误或警告, 包括与快速启动故障转移相关的错误或警告

DBMAST  - (*) 物理备用数据库 (禁用)

ORA-16661: 需要恢复备用数据库

快速启动故障转移: ENABLED

配置状态:

ERROR

DGMGRL> show configuration verbose;

配置 - DG_BROKER_SALVE

保护模式:    MaxAvailability

数据库:

DBSALVE - 主数据库

错误: ORA-16825: 检测到数据库的多个错误或警告, 包括与快速启动故障转移相关的错误或警告

DBMAST  - (*) 物理备用数据库 (禁用)

ORA-16661: 需要恢复备用数据库

(*)快速启动故障转移目标

属性:

FastStartFailoverThreshold      ='120'

OperationTimeout                ='30'

FastStartFailoverLagLimit       ='30'

CommunicationTimeout            ='180'

ObserverReconnect               ='0'

FastStartFailoverAutoReinstate  ='TRUE'

FastStartFailoverPmyShutdown    ='TRUE'

BystandersFollowRoleChange      ='ALL'

ObserverOverride                ='FALSE'

ExternalDestination1            =''

ExternalDestination2            =''

PrimaryLostWriteAction          ='CONTINUE'

快速启动故障转移: ENABLED

阈值:             120 秒

目标:             DBMAST

观察程序:       DB-Salve

滞后限制:       30 秒 (未使用)

关闭主数据库: TRUE

自动恢复:       TRUE

观察程序重新连接: (无)

观察程序覆盖: FALSE

配置状态:

ERROR

启动备用库

SQL> startup mount;

ORACLE 例程已经启动。

SQL> set linesize 1000

col name format a10;

col db_unique_name format a10;

col open_mode format a20;

col protection_mode format a20;

col database_role format a20;

col switchover_status format a20;

SQL> SELECTNAME,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,DB_UNIQUE_NAMEFROM V$DATABASE;

NAME          OPEN_MODE                   PROTECTION_MODE      DATABASE_ROLE   SWITCHOVER_STATUS    DB_UNIQUE_

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

DBMAST      MOUNTED              MAXIMUMAVAILABILITY PRIMARY                    NOT ALLOWED                DBMAST

郁闷还是主库角色

连接上备用库看看情况

DGMGRL> connect sys/oracle@DBMAST;

已连接。

DGMGRL> show configuration verbose;

配置 - DG_BROKER_SALVE

保护模式:    MaxAvailability

数据库:

DBSALVE - 主数据库

DBMAST  - (*) 物理备用数据库

(*)快速启动故障转移目标

属性:

FastStartFailoverThreshold      ='120'

OperationTimeout                ='30'

FastStartFailoverLagLimit       ='30'

CommunicationTimeout            ='180'

ObserverReconnect               = '0'

FastStartFailoverAutoReinstate  ='TRUE'

FastStartFailoverPmyShutdown    ='TRUE'

BystandersFollowRoleChange      ='ALL'

ObserverOverride                ='FALSE'

ExternalDestination1            =''

ExternalDestination2            =''

PrimaryLostWriteAction          ='CONTINUE'

快速启动故障转移: ENABLED

阈值:             120 秒

目标:             DBMAST

观察程序:       DB-Salve

滞后限制:       30 秒 (未使用)

关闭主数据库: TRUE

自动恢复:       TRUE

观察程序重新连接: (无)

观察程序覆盖: FALSE

配置状态:

ORA-16665: 从数据库等待结果时超时

DGM-17017: 无法确定配置状态

情况依旧

看看原来主库的DG信息

[oracle@DB-MASTERtrace]pwd

/u01/app/software/oracle/diag/rdbms/dbmast/DBMAST/trace

[oracle@DB-MASTER trace]ll drcDBMAST.log

-rw-r----- 1 oracle oinstall 2.1M 4月  25 15:25 drcDBMAST.log

04/25/2016 14:33:23

>> Starting Data Guard Brokerbootstrap <<

Broker Configuration File Locations:

dg_broker_config_file1 ="/u01/app/software/oracle/product/11.2.0/db_1/dbs/dr1DBMAST.dat"

dg_broker_config_file2 ="/u01/app/software/oracle/product/11.2.0/db_1/dbs/dr2DBMAST.dat"

04/25/2016 14:33:27

DMON Registering serviceDBMAST_DGB with listener(s)

Broker Configuration:       "DG_BROKER_SALVE"

Protection Mode:           Maximum Availability

Fast-Start Failover (FSFO): Enabled, flags=0x40051, version=2

Primary Database:          DBSALVE (0x01010000)

Standby Database:          DBMAST, Enabled Physical Standby (FSFO target) (0x02010000)

04/25/2016 14:33:31

Failed to connect to remote databaseDBSALVE. Error is ORA-12541

Failed to send message to site DBSALVE.Error code is ORA-12541.

database DBMAST unable to contact primarydatabase for version check; status ORA-12541

completing bootstrap of this database

Creating process RSM0

04/25/2016 14:33:34

SQL Execution error=604, sql=[ALTERDATABASE MOUNT]. See error stack below.

ORA-00604: 递归 SQL 级别 1 出现错误

ORA-01100: 数据库已装载

Failed to mount standby database.

Apply Instance for Database DBMAST set toDBMAST

Database Resource SetState Error (16746)

SQL Execution error=604, sql=[ALTERDATABASE RECOVER MANAGED STANDBY DATABASE THROUGH ALL SWITCHOVER DISCONNECT USING CURRENT LOGFILE]. See error stack below.

ORA-00604: 递归 SQL 级别 1 出现错误

ORA-01665: 控制文件不是备用控制文件

Failed to connect to remote databaseDBSALVE. Error is ORA-12541

Failed to send message to site DBSALVE.Error code is ORA-12541.

Command EDIT DATABASE DBMAST SET PROPERTYActualApplyInstance = DBMAST completed

04/25/2016 15:18:57

Site DBSALVE returned ORA-16665.

04/25/2016 15:19:12

Site DBSALVE returned ORA-16665.

04/25/2016 15:19:27

Site DBSALVE returned ORA-16665.

04/25/2016 15:19:42

Site DBSALVE returned ORA-16665.

04/25/2016 15:19:57

Site DBSALVE returned ORA-16665.

04/25/2016 15:20:12

Site DBSALVE returned ORA-16665.

04/25/2016 15:20:27

Site DBSALVE returned ORA-16665.

04/25/2016 15:20:42

Site DBSALVE returned ORA-16665.

04/25/2016 15:20:57

Site DBSALVE returned ORA-16665.

04/25/2016 15:21:12

Site DBSALVE returned ORA-16665.

04/25/2016 15:21:27

Site DBSALVE returned ORA-16665.

04/25/2016 15:21:43

Site DBSALVE returned ORA-16665.

04/25/2016 15:22:37

数据库跟踪信息

***********************************************************************

Fatal NI connect error 12514, connectingto:

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.202)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DBSALVE_DGB)(CID=(PROGRAM=oracle)(HOST=DB-MASTER)(USER=oracle))))

VERSION INFORMATION:

TNSfor Linux: Version 11.2.0.4.0 - Production

TCP/IPNT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production

Time: 25-4月 -2016 15:18:29

Tracing not turned on.

Tnserror struct:

ns main err code: 12564

TNS-12564:TNS: 拒绝连接

ns secondary err code: 0

nt main err code: 0

nt secondary err code: 0

nt OS err code: 0

Mon Apr 25 15:22:37 2016

NSV0 started with pid=24, OS id=1956

这个监听报错是啥么鬼? 下面这句话好难懂, 是说DB-MASTER 原来的主库启动一个连接,去连接202新主库服务名是DBSALVE_DGB

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.202)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DBSALVE_DGB)(CID=(PROGRAM=oracle)(HOST=DB-MASTER)(USER=oracle))))

而上面的 DG BROKER 跟踪信息报错是红色部分说DMON 自动注册个新服务在DB-MAST上.

那好吧我们在新主库人工注册个服务去

服务摘要..

服务 "DBSALVE" 包含 1 个实例。

实例"DBSALVE", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

服务 "DBSALVE_DGB"包含 1 个实例。

实例 "DBSALVE", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

服务 "DBSALVE_DGMGRL.shark.com" 包含 1 个实例。

实例"DBSALVE", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

命令执行成功

DGMGRL> REINSTATE DATABASE 'DBMAST';

正在恢复数据库 "DBMAST", 请稍候...

警告: ORA-16575: 故障转移正在进行中, 因此请求已终止

恢复数据库 "DBMAST" 失败

SQL> SELECTNAME,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,DB_UNIQUE_NAMEFROM V$DATABASE;

NAME           OPEN_MODE                   PROTECTION_MODE      DATABASE_ROLE   SWITCHOVER_STATUS    DB_UNIQUE_

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

DBMAST       MOUNTED              MAXIMUMAVAILABILITY PHYSICALSTANDBY  RECOVERY NEEDED      DBMAST

角色已经改变了,可配置信息

DGMGRL> show configuration ;

错误:

ORA-16795: 需要重新创建备用数据库

配置详细信息不能由 DGMGRL 确定

DGMGRL>

好吧,先试试下归档日志同步下

新主库

SQL> alter system set log_archive_dest_state_2=enablescope=both;

新备库

SQL> alter database recover managed standby databasedisconnect from session;

SQL> SELECTNAME,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,DB_UNIQUE_NAMEFROM V$DATABASE;

NAME           OPEN_MODE                   PROTECTION_MODE      DATABASE_ROLE   SWITCHOVER_STATUS    DB_UNIQUE_

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

DBMAST       MOUNTED              MAXIMUMAVAILABILITY PHYSICAL STANDBY   SWITCHOVER  PENDING   DBMAST

退出DGMGRL 重新进去

欢迎使用 DGMGRL, 要获取有关信息请键入"help"。

DGMGRL> connect sys/oracle@DBSALVE

已连接。

DGMGRL> show configuration;

配置 - DG_BROKER_SALVE

保护模式:   MaxAvailability

数据库:

DBSALVE - 主数据库

错误: ORA-16820: 快速启动故障转移观察程序不再对此数据库进行观察

DBMAST  - (*) 物理备用数据库 (禁用)

ORA-16661: 需要恢复备用数据库

快速启动故障转移: ENABLED

配置状态:

ERROR

发现新备库上目录里有FSFO.DAT文件 说明 观察程序已经运行中. 只是.. 算了 还是关闭它

DGMGRL> STOP OBSERVER

错误: ORA-16636: 快速启动故障转移目标备用数据库处于错误状态, 无法停止观察程序

失败。

OK 我们再来一次REINSTATE,关闭备库

SQL> select fs_failover_status from v$database;

FS_FAILOVER_STATUS

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

DISABLED

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount;

ORACLE 例程已经启动。

Total System Global Area 446775296 bytes

Fixed Size                2254104 bytes

Variable Size                  360712936 bytes

Database Buffers            79691776 bytes

Redo Buffers                    4116480 bytes

数据库装载完毕。

REINSTATE

DGMGRL> show configuration;

配置 - DG_BROKER_SALVE

保护模式:   MaxAvailability

数据库:

DBSALVE - 主数据库

错误: ORA-16820: 快速启动故障转移观察程序不再对此数据库进行观察

DBMAST  - (*) 物理备用数据库 (禁用)

ORA-16661: 需要恢复备用数据库

快速启动故障转移: ENABLED

配置状态:

ERROR

DGMGRL> reinstate database 'DBMAST';

正在恢复数据库 "DBMAST", 请稍候...

已成功恢复数据库 "DBMAST"

喔操 居然成功了 喜悦心情….

DGMGRL> show configuration;

配置 - DG_BROKER_SALVE

保护模式:   MaxAvailability

数据库:

DBSALVE - 主数据库

错误: ORA-16820: 快速启动故障转移观察程序不再对此数据库进行观察

DBMAST  - (*) 物理备用数据库

快速启动故障转移: ENABLED

配置状态:

ERROR

备库看看

SQL> SELECTNAME,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,DB_UNIQUE_NAMEFROM V$DATABASE;

NAME           OPEN_MODE                   PROTECTION_MODE      DATABASE_ROLE   SWITCHOVER_STATUS    DB_UNIQUE_

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

DBMAST       READ ONLY WITH APPLY MAXIMUM AVAILABILITYPHYSICAL STANDBY   NOT ALLOWED                DBMAST

然后在主备上

DGMGRL> stop OBSERVER;

完成。

然后再新主库上开启 OBSERVER;

DGMGRL> show configuration;

配置 - DG_BROKER_SALVE

保护模式:   MaxAvailability

数据库:

DBSALVE - 主数据库

DBMAST  - (*) 物理备用数据库

快速启动故障转移: ENABLED

配置状态:

SUCCESS

这里我们还是把OBSERVER 放在备库好 最好后台运行.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值