ORA-16456錯誤,由於備庫未mount而在主庫執行切換,解決辦法詳解

來源:互聯網
上載者:User

ORA-16456錯誤,由於備庫未mount而在主庫執行切換,解決辦法詳解

如果對資料庫進行主備庫的切換需要的前提條件是:

(1)備庫必須mount狀態下,主庫open狀態

(2)必須不能在最大保護模式下 

我們有時做主備庫的切換,結果忘記了把備庫處於mount狀態而是open狀態下;

當在primary執行過切換操作之後:

SQL>alterdatabase commit to switchover to physical standby; 

Databasealtered.

現在對primary庫進行查看:

00:26:00sys@felix SQL>select switchover_status from v$database; 

SWITCHOVER_STATUS

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

RECOVERY NEEDED 

狀態我們發現時recovery needed 

這個時刻,我感覺出事了,該怎麼辦??

我就在主庫執行了如下操作:(以為這樣會可以的,但是不行)

00:26:26 sys@felix SQL>alter database commit to switchoverto primary;

alter database commit to switchover to primary

*

ERROR at line 1:

ORA-16456: switchover to standby in progress or completed 

0:26:54 sys@felix SQL>shutdown immediate;

ORA-01092: Oracle instance terminated.Disconnection forced

00:27:17 sys@felix SQL>startup mount;

ORA-24324: service handle not initialized

ORA-01041: internal error. hostdefextension doesn't exist

00:27:25 sys@felix SQL>exit 

然後mount主庫:

00:27:30 SQL>startup mount;

ORACLE instance started.

 

Total System Global Area 417546240 bytes

Fixed Size 2228944 bytes

Variable Size 289410352 bytes

Database Buffers 121634816 bytes

Redo Buffers 4272128 bytes

Database mounted. 

在standby庫執行:

mount備庫:

03:21:36 SQL>shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

03:21:48 SQL>startup mount;

ORACLE instance started.

 

Total System Global Area 417546240 bytes

Fixed Size 2228944 bytes

Variable Size 289410352 bytes

Database Buffers 121634816 bytes

Redo Buffers 4272128 bytes

Database mounted.

03:22:02 SQL> 

開啟主庫: 

00:27:41 SQL>alter database open; 

Database altered. 

把主庫的切換狀態進行切換過來,再試一下:

00:31:30 SQL>alter database commit to switchover to primary; 

Database altered. 

Ok,成功了,看來往下面走是有希望了 

繼續,go!!!!

00:32:08 sys@felix SQL>select statusfrom v$instance; 

STATUS

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

MOUNTED

 

00:32:22 sys@felix SQL>alter database open;

 

Database altered.

 

00:32:32 sys@felix SQL>selectswitchover_status from v$database; 

SWITCHOVER_STATUS

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

TO STANDBY 

終於看到to standby了,心裡算是鬆了一口氣!! 

ok,開始真正的主備庫的切換:

一定要注意:主庫一定要處於open狀態,備庫一定要處於mount狀態

 

0:41:57 sys@felix SQL> alter database commit to switchoverto physical standby 

Database altered.

主庫執行成功: 

在備庫要進行操作: 

03:46:06 SQL>select switchover_status from v$database; 

SWITCHOVER_STATUS

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

RECOVERY NEEDED

 03:46:46 SQL>alter database recover managed standbydatabase disconnect session;

alter database recovermanaged standby database disconnect session

*

ERROR at line 1:

ORA-00274: illegalrecovery option SESSION 

為什麼錯???少了一個關鍵字,from

03:52:23 SQL>alter database recover managed standby database disconnect FROMsession; 

Database altered. 

ORACLE instance shut down.

03:56:01 SQL>startup

ORACLE instance started.

 

Total System Global Area 417546240 bytes

Fixed Size 2228944 bytes

Variable Size 301993264 bytes

Database Buffers 109051904 bytes

Redo Buffers 4272128 bytes

Database mounted.

Database opened.

03:56:43 SQL>select switchover_status from v$database;

 

SWITCHOVER_STATUS

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

TO PRIMARY 

03:57:13 SQL>alter database commit to switchover to primary; 

Database altered. 

03:57:42 SQL>shutdown immediate;

ORA-01109: database not open

 

Database dismounted.

ORACLE instance shut down.

03:58:20 SQL> 

Ok,開啟主備庫: 

Ok,到此主備庫已經完整切換了

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.