Khi chúng ta muốn thực hiện switchover trong data guard mà xuất hiện lỗi này thì xử lý thế nào?
Kiểm tra thông tin Primary:
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
——————–
FAILED DESTINATION
Chạy tiếp lệnh này thì xuất hiện lỗi này:
SQL> SELECT DESTINATION, ERROR FROM V$ARCHIVE_DEST;
DESTINATION
——————————————————————————–
ERROR
—————————————————————–
USE_DB_RECOVERY_FILE_DEST
STAND
ORA-12541: TNS:no listener
Nguyên nhân: Primary không kết nối được với Standby do chưa bật hoặc chưa có Listener
Khắc phục: bật Listener trên 2 SRV và tiến hành TNSPING thử xem thông nhau chưa
[oracle@srv1 ~]$ tnsping stand
TNS Ping Utility for Linux: Version 19.0.0.0.0 – Production on 05-MAY-2024 16:26:15
Copyright (c) 1997, 2019, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = srv2.localdomain)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = stand.localdomain)))
OK (0 msec)
[oracle@srv2 ~]$ tnsping duodb
TNS Ping Utility for Linux: Version 19.0.0.0.0 – Production on 05-MAY-2024 16:26:08
Copyright (c) 1997, 2019, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = srv1.localdomain)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = duodb.localdomain)))
OK (0 msec)
Sau khi bật lên thì đã thông tnsping
Kiểm tra lệnh này trên Primary:
select switchover_status from v$database;
SWITCHOVER_STATUS
——————–
TO STANDBY
Kiểm tra mode trên cả 2 node: đảm bảo rằng prim là read-write còn stand là mounted (read-only)
SELECT name, open_mode FROM v$database;
NAME OPEN_MODE
——— ——————–
DUODB MOUNTED
NAME OPEN_MODE
——— ——————–
DUODB READ WRITE
Primary đã chuyển sang trạng thái TO STANDBY có nghĩa là đã sẵn sàng switchover.