Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

การทำสำเนาฐานข้อมูลจากการสแตนด์บายทางกายภาพ

บล็อกนี้อธิบายวิธีการทำซ้ำฐานข้อมูลจากฐานข้อมูลสแตนด์บายจริง

การทำสำเนาฐานข้อมูลจะคัดลอกฐานข้อมูลเป้าหมายผ่านเครือข่ายไปยังปลายทางสำรอง จากนั้นจึงสร้างฐานข้อมูลที่ซ้ำกัน คุณไม่จำเป็นต้องสำรองข้อมูลและคัดลอก RMAN ที่มีอยู่แล้ว

ฐานข้อมูลที่ซ้ำกันจากการสแตนด์บายทางกายภาพได้รับการสนับสนุนตั้งแต่ Oracle® 11grelease 2 ขึ้นไป

ในการดำเนินการทำซ้ำ RMAN จากโหมดสแตนด์บายทางกายภาพ คุณต้องมีสิ่งต่อไปนี้:

  • ฐานข้อมูล:Oracle 11g เป็นเวอร์ชันล่าสุด
  • แพลตฟอร์ม:Linux® 7
  • ชื่อฐานข้อมูลสแตนด์บาย:PROD_DR
  • ชื่อฐานข้อมูลเป้าหมาย:TEST

เปิดฐานข้อมูลสแตนด์บายในโหมดอ่านอย่างเดียว

หยุดการกู้คืนที่ฐานข้อมูลสแตนด์บายจริง จากนั้นเปิดฐานข้อมูลในโหมดอ่านอย่างเดียวเพื่ออนุญาตให้ทำซ้ำได้

ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบสถานะของฐานข้อมูลสแตนด์บาย:

PROD_DR> select name, open_mode, log_mode from v$database;

คุณควรเห็นผลลัพธ์ที่คล้ายกับต่อไปนี้:

NAME      	OPEN_MODE             LOG_MODE
--------- 	--------------------  ------------
PROD_DR    	 MOUNTED              ARCHIVELOG

ใช้คำสั่งต่อไปนี้เพื่อหยุดการกู้คืนฐานข้อมูลสแตนด์บาย:

SQL> alter database recover managed standby database cancel;
Database altered.

จากนั้น เปิดฐานข้อมูลในโหมดอ่านอย่างเดียว:

SQL> alter database open read only;
Database altered.

ตรวจสอบสถานะของฐานข้อมูลอีกครั้งเพื่อดูว่าเป็นแบบอ่านอย่างเดียวแทนที่จะเมาต์:

PROD_DR> select name, open_mode,log_mode from v$database;

NAME   	      OPEN_MODE           	 LOG_MODE
--------- 	  -------------------- 	 ------------
PROD_DR   	  READ ONLY         	   ARCHIVELOG

เตรียมเซิร์ฟเวอร์เป้าหมาย

ในส่วนนี้ เราจะคัดลอกไบนารีโฮมของ Oracle ที่สแตนด์บายทั้งหมดไปยังเซิร์ฟเวอร์อินสแตนซ์เป้าหมาย เตรียม pfile จากฐานข้อมูลต้นทางและทำการเปลี่ยนแปลงตามชื่อฐานข้อมูลใหม่

หมายเหตุ: หากคุณกำลังทำซ้ำฐานข้อมูลไปยังเซิร์ฟเวอร์เดียวกัน คุณต้องใช้ค่าที่เหมาะสมสำหรับ DB_NAME , DB_UNIQUE_NAME , DB_FILE_NAME_CONVERT และLOG_FILE_NAME_CONVERT .

ขั้นแรก เตรียม pfile โดยใช้คำสั่งต่อไปนี้:

cd $ORACLE_HOME/dbs
initTEST.ora

*.control_files='+DATA/cntrl01.dbf', '+DATA/cntrl02.dbf'
*.db_create_file_dest='+DATA'
*.db_file_name_convert='+PROD_DR_DATA','+DATA'
*.db_name='TEST'
*.db_unique_name='TEST'
*.diagnostic_dest='/u01/app/diag'
*.log_file_name_convert='+PROD_DR_DATA','+DATA'

คัดลอกไฟล์รหัสผ่านสแตนด์บายที่มีอยู่และเปลี่ยนชื่อให้ตรงกับ SID ที่ใช้สำหรับฐานข้อมูล TEST หรือคุณสามารถสร้างไฟล์รหัสผ่านใหม่บนเซิร์ฟเวอร์เป้าหมายด้วยรหัสผ่านต้นทางเดียวกัน

cd $ORACLE_HOME/dbs
cp orapwPROD_DR orapwTEST

กำหนดค่าตัวฟังแบบคงที่

ใช้ขั้นตอนต่อไปนี้เพื่อกำหนดค่าตัวฟังแบบคงที่สำหรับฐานข้อมูลการทดสอบ:

cd $ORACLE_HOME/network/admin
cat listener.ora

ADR_BASE_LISTENER_LOCAL = /u01/app/oracle

LISTENER_LOCAL =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = TEST.ras.com)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
SID_LIST_LISTENER_LOCAL = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = DGNEER) (ORACLE_HOME = /u01/app/oracle/product/12.1.0.2/dbhome_1) (SID_NAME = TEST)))

เริ่มฟังโดยใช้คำสั่งต่อไปนี้:

lsnrctl status listener_local

คุณควรเห็นผลลัพธ์ที่คล้ายกับตัวอย่างต่อไปนี้:

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 09-JUN-2020 02:57:35

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= TEST.ras.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     listener_local
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                04-JAN-2020 04:53:15
Uptime                    156 days 21 hr. 4 min. 19 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/product/12.1.0.2/dbhome_1/admin/diag/tnslsnr/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= TEST.ras.com)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "TEST" has 2 instance(s).
  Instance "TEST", status UNKNOWN, has 1 handler(s) for this service...
  Instance "TEST", status READY, has 1 handler(s) for this service...
The command completed successfully

สร้างนามแฝง Oracle Net

ถัดไป คุณต้องสร้างนามแฝง Oracle Net เพื่อเข้าถึงฐานข้อมูลสแตนด์บาย:

PROD_DR=
        (DESCRIPTION=
                (ADDRESS=(PROTOCOL=tcp)(HOST= standbydb.ras.com)(PORT=1523))
            (CONNECT_DATA=
                (SID=PROD_DR)
            )
        )

เริ่มฐานข้อมูลเป้าหมาย

จากนั้นคุณต้องเริ่มฐานข้อมูลเป้าหมายใน nomount โดยใช้คำสั่งต่อไปนี้:

sqlplus "/ as sysdba"

startup nomount

SQL> show parameter db_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------
db_name                              string      TEST

SQL> show parameter uniq
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------
db_unique_name                       string      TEST

ใช้ RMAN เพื่อทดสอบการเชื่อมต่อ

หลังจากที่ฐานข้อมูลเป้าหมายทำงานใน nomount สถานะ ใช้ RMAN เพื่อทดสอบการเชื่อมต่อ:

[oracle@TEST.ras.com dbs]$ rman target sys@PROD_DR  auxiliary sys@TEST

Recovery Manager: Release 12.1.0.2.0 - Production on Thu Jun 09 03:25:22 2020

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

target database Password:
connected to target database: PROD_DR (DBID=4252464621)
auxiliary database Password:
connected to auxiliary database: TEST (not mounted)

กู้คืนและทำซ้ำฐานข้อมูล

ใช้คำสั่งต่อไปนี้เพื่อกู้คืนและทำซ้ำ databse สแตนด์บายไปยังฐานข้อมูลเป้าหมาย:

RMAN> target sys@PROD_DR  auxiliary sys@TEST
RMAN> duplicate target database to TEST from active database nofilenamecheck;

หลังจากคำสั่งที่ซ้ำกันเสร็จสิ้น คุณต้องรีสตาร์ทฐานข้อมูลสำรองและเปิดใช้งานการกู้คืนอีกครั้งโดยใช้คำสั่งต่อไปนี้:

PROD_DR> shut immediate
PROD_DR> startup mount;
PROD_DR> alter database recover managed standby database disconnect from session;

ตรวจสอบสถานะฐานข้อมูลเป้าหมาย

ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบสถานะของฐานข้อมูลเป้าหมาย:

[oracle@TEST.ras.com dbs]$ sqlplus "/ as sysdba"

SQL*Plus: Release 12.1.0.2.0 Production on Tue Jun 9 05:15:53 2020

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL>  select name, open_mode, log_mode , database_role from v$database;

NAME      OPEN_MODE            LOG_MODE     DATABASE_ROLE
--------- -------------------- ------------ ----------------
TEST      READ WRITE           ARCHIVELOG   PRIMARY

บทสรุป

ในบล็อกนี้ เราทำซ้ำฐานข้อมูลจากโหมดสแตนด์บายจริงโดยไม่ต้องทำการสำรองข้อมูลจริง และเรากู้คืนฐานข้อมูลเป้าหมายเป็นไฟล์เก็บถาวรล่าสุดที่จัดหาในฐานข้อมูลสำรอง

ข้อมูลอ้างอิง

  • กำลังดำเนินการ RMAN ซ้ำจากโหมดสแตนด์บายเพื่อสร้างโคลนใหม่ (Doc ID 1665784.1)

เรียนรู้เพิ่มเติมเกี่ยวกับฐานข้อมูล

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิกแชทขาย เพื่อแชทตอนนี้และเริ่มการสนทนา