溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Oracle的快照standby有什么特點(diǎn)

發(fā)布時(shí)間:2021-11-10 16:04:53 來源:億速云 閱讀:154 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫

這篇文章主要講解了“Oracle的快照standby有什么特點(diǎn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Oracle的快照standby有什么特點(diǎn)”吧!

眾所周知,Oracle的standby數(shù)據(jù)庫有三種模式:物理standby數(shù)據(jù)庫、邏輯standby數(shù)據(jù)庫和快照standby數(shù)據(jù)庫。在這里主要講述快照standby數(shù)據(jù)庫的特點(diǎn),數(shù)據(jù)庫版本為11gR2。

一、快照standby數(shù)據(jù)庫的特點(diǎn)

快照standby數(shù)據(jù)庫有如下特點(diǎn):

1、能在讀寫模式打開,是完全可更新的standby數(shù)據(jù)庫

2、從主數(shù)據(jù)庫接收相關(guān)日志,但不應(yīng)用

3、當(dāng)轉(zhuǎn)換為物理standby數(shù)據(jù)庫時(shí),首先會(huì)拋棄所有之前的更新,然后應(yīng)用接收到的redo數(shù)據(jù)

4、不能作為switchver或者failover的目標(biāo)。在執(zhí)行角色轉(zhuǎn)換之前,必須首先轉(zhuǎn)換為物理standby數(shù)據(jù)庫

5、在最大保護(hù)Data Guard配置中,快照standby數(shù)據(jù)庫不能是唯一的standby數(shù)據(jù)庫。

注意:使用Flashback Database技術(shù)的任何操作都是不可逆的,F(xiàn)lashback Database將阻止一個(gè)快照standby轉(zhuǎn)換為物理standby

二、快照standby數(shù)據(jù)庫的搭建

1、物理standby數(shù)據(jù)庫搭建

快照standby數(shù)據(jù)庫由物理standby數(shù)據(jù)庫轉(zhuǎn)換而來。因此首先搭建物理standby數(shù)據(jù)庫,過程略。

2、將物理standby數(shù)據(jù)庫轉(zhuǎn)換為快照standby數(shù)據(jù)庫

1)主庫上查看目的地的數(shù)據(jù)庫模式、恢復(fù)模式和保護(hù)模式

SQL> select dest_id,database_mode,recovery_mode,protection_mode from v$archive_dest_status where dest_id = 2;

   DEST_ID DATABASE_MODE   RECOVERY_MODE           PROTECTION_MODE

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

         2 OPEN_READ-ONLY  MANAGED REAL TIME APPLY MAXIMUM PERFORMANCE

可看到standby數(shù)據(jù)庫以只讀方式打開,在最高可用性級(jí)別實(shí)時(shí)應(yīng)用redo   

2)停止物理standby數(shù)據(jù)庫的Redo Apply

SQL> alter database recover managed standby database cancel;

Database altered.

3)如果物理standby數(shù)據(jù)庫是RAC,則只保留一個(gè)實(shí)例,其他關(guān)閉。本環(huán)境中物理standby數(shù)據(jù)庫是單實(shí)例。

4)確保閃回恢復(fù)區(qū)被配置

SQL> show parameter db_recover

NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string      /opt/app/oracle/fast_recovery_area

db_recovery_file_dest_size           big integer 4182M

否則在轉(zhuǎn)換時(shí)會(huì)報(bào)錯(cuò):

ORA-38784: Cannot create restore point 'SNAPSHOT_STANDBY_REQUIRED_10/24/2018 10:41:21'.

ORA-38786: Recovery area is not enabled.

5)將物理standby數(shù)據(jù)庫轉(zhuǎn)換為快照standby數(shù)據(jù)庫

備庫上執(zhí)行:

SQL> alter database convert to snapshot standby;

Database altered.

可看到數(shù)據(jù)庫創(chuàng)建了一個(gè)還原點(diǎn):

SQL> select name,storage_size from v$restore_point;

NAME                                            STORAGE_SIZE

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

SNAPSHOT_STANDBY_REQUIRED_10/24/2018 10:43:28     1073741824

此時(shí)數(shù)據(jù)庫處于mounted狀態(tài):

SQL> select name,

  2  database_role,

  3  switchover_status,

  4  open_mode,

  5  protection_mode

  6  from v$database;

NAME                 DATABASE_ROLE        SWITCHOVER_STATUS              OPEN_MODE            PROTECTION_MODE

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

BDDEV2               SNAPSHOT STANDBY     NOT ALLOWED                    MOUNTED              MAXIMUM PERFORMANCE

6)打開備庫

SQL> select name,

  2  database_role,

  3  switchover_status,

  4  open_mode,

  5  protection_mode

  6  from v$database;

此時(shí)備庫已轉(zhuǎn)換完成:

NAME                 DATABASE_ROLE        SWITCHOVER_STATUS              OPEN_MODE            PROTECTION_MODE

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

BDDEV2               SNAPSHOT STANDBY     NOT ALLOWED                    READ WRITE           MAXIMUM PERFORMANCE

三、快照standby轉(zhuǎn)換為物理standby

1.將備庫重啟到mount模式

SQL> startup force mount

ORACLE instance started.

2.備庫執(zhí)行語句,轉(zhuǎn)換為物理standby

SQL> alter database convert to physical standby;

Database altered.

轉(zhuǎn)換后數(shù)據(jù)庫被卸載,需要重啟

3.重啟數(shù)據(jù)庫

SQL> startup force;

ORACLE instance started.

4.恢復(fù)redo應(yīng)用

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

Database altered.

SQL> select name,

  2  database_role,

  3  switchover_status,

  4  open_mode,

  5  protection_mode

  6  from v$database;

NAME                 DATABASE_ROLE        SWITCHOVER_STATUS              OPEN_MODE            PROTECTION_MODE

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

BDDEV2               PHYSICAL STANDBY     RECOVERY NEEDED                READ ONLY            MAXIMUM PERFORMANCE

四、快照standby數(shù)據(jù)庫測試

1.測試是否可讀寫

1)對(duì)表scott.tb_test進(jìn)行更新:

SQL> delete from scott.tb_test where object_id = 20;

1 row deleted.

2)刪除表scott.tb_test:

SQL> drop table scott.tb_test purge;

Table dropped.

此時(shí)表scott.tb_test在備庫中已經(jīng)不存在了,但在主庫中還存在

3)創(chuàng)建新表

SQL> create table scott.tb_test2(id int);

Table created.

2.測試是否能接收日志且不應(yīng)用

主庫:

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /opt/app/oracle/archivelog/

Oldest online log sequence     77

Next log sequence to archive   79

Current log sequence           79

可看到主庫當(dāng)前日志序號(hào)為79

備庫:

SQL> SELECT PROCESS,

  2  PID,

  3  STATUS,

  4  SEQUENCE#,

  5  DELAY_MINS 

  6  FROM V$MANAGED_STANDBY;

PROCESS                               PID STATUS                SEQUENCE# DELAY_MINS

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

ARCH                                25422 CLOSING                      78          0

ARCH                                25425 CONNECTED                     0          0

ARCH                                25427 CLOSING                      76          0

ARCH                                25429 CLOSING                      77          0

RFS                                 26020 IDLE                          0          0

RFS                                 26023 IDLE                          0          0

RFS                                 26026 IDLE                         79          0

可看到備庫RFS進(jìn)程正在接收的redo序號(hào)也為79,因此備庫此時(shí)可以接收日志;備庫中MRP進(jìn)程沒有啟動(dòng),因此可斷定此時(shí)日志沒有應(yīng)用

3.將快照standby轉(zhuǎn)換為物理standby,看scott.tb_test是否能恢復(fù)

按照三中的步驟,將快照standby轉(zhuǎn)換為物理standby,此時(shí)查看備庫中是否有scott.tb_test:

SQL> select count(1) from scott.tb_test;

  COUNT(1)

----------

     86415

查看之前在備庫建的表scott.tb_test2還是否存在:

SQL> desc scott.tb_test2

ERROR:

ORA-04043: object scott.tb_test2 does not exist

綜上,說明快照standby轉(zhuǎn)換到物理standby時(shí),會(huì)拋棄在快照standby狀態(tài)時(shí)所做的更改。

感謝各位的閱讀,以上就是“Oracle的快照standby有什么特點(diǎn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Oracle的快照standby有什么特點(diǎn)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI