Oracle Data Guard SWITCHOVER sử dụng DGMGRL Utility Oracle Data Guard 19c

DGMGRL cho phép bạn thực hiện các hoạt động quản lý Data Guard như tạo cấu hình, thêm bản sao dữ liệu, kích hoạt và vô hiệu hóa cấu hình, kiểm tra trạng thái của các thành phần Data Guard, thực hiện failover và switchover, và nhiều hơn nữa.

Dưới đây là một số tính năng chính của DGMGRL:

  1. Quản lý cấu hình Data Guard: Tạo cấu hình, thêm hoặc xóa database, thiết lập connect identifiers.
  2. Quản lý trạng thái: Kiểm tra trạng thái của các bản sao dữ liệu và bản gốc, bao gồm lag, mode, protection, và role.
  3. Thực hiện failover và switchover: Chuyển đổi giữa các bản sao dữ liệu và bản gốc khi cần thiết, đảm bảo tính sẵn sàng và liên tục của hệ thống.
  4. Thực hiện các hoạt động về bảo trì: Kích hoạt và vô hiệu hóa cấu hình, tắt và bật quản lý Data Guard Observer.
  5. Xem báo cáo và log: Xem thông tin chi tiết về các sự kiện, log và báo cáo của Data Guard.

Các bạn có thể xem các bước dựng CSDL Data Guard tại đây: https://datalinks.vn/huong-dan-cai-dat-oracle-data-guard-physical-standby-ver-19c-voi-rman/

THÔNG TIN CHI TIẾT 2 NODE:

word image 1074 1

SRV1 – server tôi đặt là Primary

SRV2 – server tôi đặt là Standby

Mục tiêu của demo này là chuyển đổi SRV1 thành Standby và SRV2 thành Primary.

Kiểm tra thông tin database:

Primary: login vào database thông qua DGMGRL, kiểm tra thông tin DB

exit

dgmgrl

connect sys/oracle@duodb

show configuration;

show database verbose 'duodb';

DGMGRL> show database verbose ‘duodb’;

Database – duodb

Role: PRIMARY

Intended State: TRANSPORT-ON

Instance(s):

duodb

Properties:

DGConnectIdentifier = ‘duodb’

ObserverConnectIdentifier = ”

FastStartFailoverTarget = ”

PreferredObserverHosts = ”

LogShipping = ‘ON’

RedoRoutes = ”

LogXptMode = ‘ASYNC’

DelayMins = ‘0’

Binding = ‘optional’

MaxFailure = ‘0’

ReopenSecs = ‘300’

NetTimeout = ’30’

RedoCompression = ‘DISABLE’

PreferredApplyInstance = ”

ApplyInstanceTimeout = ‘0’

ApplyLagThreshold = ’30’

TransportLagThreshold = ’30’

TransportDisconnectedThreshold = ’30’

ApplyParallel = ‘AUTO’

ApplyInstances = ‘0’

StandbyFileManagement = ”

ArchiveLagTarget = ‘0’

LogArchiveMaxProcesses = ‘0’

LogArchiveMinSucceedDest = ‘0’

DataGuardSyncLatency = ‘0’

LogArchiveTrace = ‘0’

LogArchiveFormat = ”

DbFileNameConvert = ”

LogFileNameConvert = ”

ArchiveLocation = ”

AlternateLocation = ”

StandbyArchiveLocation = ”

StandbyAlternateLocation = ”

InconsistentProperties = ‘(monitor)’

InconsistentLogXptProps = ‘(monitor)’

LogXptStatus = ‘(monitor)’

SendQEntries = ‘(monitor)’

RecvQEntries = ‘(monitor)’

HostName = ‘srv1.localdomain’

StaticConnectIdentifier = ‘(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.11)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=duodb_DGMGRL.localdomain)(INSTANCE_NAME=duodb)(SERVER=DEDICATED)))’

TopWaitEvents = ‘(monitor)’

SidName = ‘(monitor)’

Log file locations:

Alert log : /u01/app/oracle/diag/rdbms/duodb/duodb/trace/alert_duodb.log

Data Guard Broker log : /u01/app/oracle/diag/rdbms/duodb/duodb/trace/drcduodb.log

Database Status:

SUCCESS

Primary: tiến hành check thông tin DB standby

show database verbose 'stand';

show database 'stand';

DGMGRL> show database verbose ‘stand’;

Database – stand

Role: PHYSICAL STANDBY

Intended State: APPLY-ON

Transport Lag: 0 seconds (computed 0 seconds ago)

Apply Lag: 0 seconds (computed 0 seconds ago)

Average Apply Rate: 37.00 KByte/s

Active Apply Rate: 885.00 KByte/s

Maximum Apply Rate: 921.00 KByte/s

Real Time Query: ON

Instance(s):

stand

Properties:

DGConnectIdentifier = ‘stand’

ObserverConnectIdentifier = ”

FastStartFailoverTarget = ”

PreferredObserverHosts = ”

LogShipping = ‘ON’

RedoRoutes = ”

LogXptMode = ‘ASYNC’

DelayMins = ‘0’

Binding = ‘optional’

MaxFailure = ‘0’

ReopenSecs = ‘300’

NetTimeout = ’30’

RedoCompression = ‘DISABLE’

PreferredApplyInstance = ”

ApplyInstanceTimeout = ‘0’

ApplyLagThreshold = ’30’

TransportLagThreshold = ’30’

TransportDisconnectedThreshold = ’30’

ApplyParallel = ‘AUTO’

ApplyInstances = ‘0’

StandbyFileManagement = ”

ArchiveLagTarget = ‘0’

LogArchiveMaxProcesses = ‘0’

LogArchiveMinSucceedDest = ‘0’

DataGuardSyncLatency = ‘0’

LogArchiveTrace = ‘0’

LogArchiveFormat = ”

DbFileNameConvert = ”

LogFileNameConvert = ”

ArchiveLocation = ”

AlternateLocation = ”

StandbyArchiveLocation = ”

StandbyAlternateLocation = ”

InconsistentProperties = ‘(monitor)’

InconsistentLogXptProps = ‘(monitor)’

LogXptStatus = ‘(monitor)’

SendQEntries = ‘(monitor)’

RecvQEntries = ‘(monitor)’

HostName = ‘srv2.localdomain’

StaticConnectIdentifier = ‘(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.12)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=STAND_DGMGRL.localdomain)(INSTANCE_NAME=stand)(SERVER=DEDICATED)))’

TopWaitEvents = ‘(monitor)’

SidName = ‘(monitor)’

Log file locations:

Alert log : /u01/app/oracle/diag/rdbms/stand/stand/trace/alert_stand.log

Data Guard Broker log : /u01/app/oracle/diag/rdbms/stand/stand/trace/drcstand.log

Database Status:

SUCCESS

DGMGRL> show database ‘stand’;

Database – stand

Role: PHYSICAL STANDBY

Intended State: APPLY-ON

Transport Lag: 0 seconds (computed 0 seconds ago)

Apply Lag: 0 seconds (computed 0 seconds ago)

Average Apply Rate: 36.00 KByte/s

Real Time Query: ON

Instance(s):

stand

Database Status:

SUCCESS

Primary: validate trạng thái sẵn sàng chuyển đổi sang Standby

dgmgrl

connect sys/oracle@duodb

validate database 'duodb';

show configuration;

exit

sqlplus / as sysdba

select switchover_status from v$database;

[oracle@srv1 ~]$ dgmgrl

DGMGRL for Linux: Release 19.0.0.0.0 – Production on Tue May 7 22:50:37 2024

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

Welcome to DGMGRL, type “help” for information.

DGMGRL> connect sys/oracle@duodb

Connected to “duodb”

Connected as SYSDBA.

DGMGRL> validate database ‘duodb’;

Database Role: Primary database

Ready for Switchover: Yes

Managed by Clusterware:

duodb: NO

Validating static connect identifier for the primary database duodb…

Unable to connect to database using (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.11)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=duodb_DGMGRL.localdomain)(INSTANCE_NAME=duodb)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

Failed.

Warning: Ensure primary database’s StaticConnectIdentifier property

is configured properly so that the primary database can be restarted

by DGMGRL after switchover

DGMGRL> show configuration;

Configuration – duong_primary

Protection Mode: MaxPerformance

Members:

duodb – Primary database

stand – Physical standby database

Fast-Start Failover: Disabled

Configuration Status:

SUCCESS (status updated 55 seconds ago)

DGMGRL> exit

[oracle@srv1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 – Production on Tue May 7 22:51:40 2024

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production

Version 19.3.0.0.0

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS

——————–

TO STANDBY

Primary: thực hiện lệnh switchover

dgmgrl

connect sys/oracle@duodb

switchover to 'stand';

[oracle@srv1 ~]$ dgmgrl

DGMGRL for Linux: Release 19.0.0.0.0 – Production on Tue May 7 22:56:00 2024

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

Welcome to DGMGRL, type “help” for information.

DGMGRL> connect sys/oracle@duodb

Connected to “duodb”

Connected as SYSDBA.

DGMGRL> switchover to ‘stand’;

Performing switchover NOW, please wait…

Operation requires a connection to database “stand”

Connecting …

Connected to “STAND”

Connected as SYSDBA.

New primary database “stand” is opening…

Operation requires start up of instance “duodb” on database “duodb”

Starting instance “duodb”…

Primary + Standby: check thông tin 2 node:

startup DB nếu hệ thống không tự động bật

select status,instance_name,database_role,open_mode from v$database,v$Instance;

select process,status,sequence# from v$managed_standby;

SQL> select status,instance_name,database_role,open_mode from v$database,v$Instance;

STATUS INSTANCE_NAME DATABASE_ROLE OPEN_MODE

———— —————- —————- ——————–

OPEN duodb PHYSICAL STANDBY READ ONLY WITH APPLY

SQL> select status,instance_name,database_role,open_mode from v$database,v$Instance;

STATUS INSTANCE_NAME DATABASE_ROLE OPEN_MODE

———— —————- —————- ——————–

OPEN stand PRIMARY READ WRITE

SQL> select process,status,sequence# from v$managed_standby;

PROCESS STATUS SEQUENCE#

——— ———— ———-

DGRD ALLOCATED 0

ARCH CONNECTED 0

DGRD ALLOCATED 0

ARCH CONNECTED 0

ARCH CONNECTED 0

ARCH CONNECTED 0

RFS IDLE 0

RFS IDLE 22

RFS IDLE 0

RFS IDLE 0

MRP0 APPLYING_LOG 22

11 rows selected.

Như vậy là đã tiến hành chuyển đổi thành công, hiện Srv1 đang là Standby và Srv2 đang là Primary.

Chúc các bạn thành công.

 

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA - https://www.youtube.com/@DuoDBA) tác giả của blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn muốn có người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận