Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Sao chép cơ sở dữ liệu từ chế độ chờ vật lý

Blog này mô tả cách sao chép cơ sở dữ liệu từ cơ sở dữ liệu dự phòng vật lý.

Nhân bản cơ sở dữ liệu sao chép cơ sở dữ liệu đích qua mạng đến đích phụ và sau đó tạo cơ sở dữ liệu trùng lặp. Bạn không cần các bản sao lưu và sao lưu RMAN có sẵn.

Cơ sở dữ liệu trùng lặp từ chế độ chờ vật lý được hỗ trợ từ Oracle® 11grelease 2 trở đi.

Để thực hiện nhân bản hoạt động RMAN từ chế độ chờ vật lý, bạn cần những điều sau đây:

  • Cơ sở dữ liệu:Oracle 11g lên phiên bản mới nhất
  • Nền tảng:Linux® 7
  • Tên DB ở chế độ chờ:PROD_DR
  • Tên DB mục tiêu:TEST

Mở cơ sở dữ liệu chờ ở chế độ chỉ đọc

Dừng khôi phục ở cơ sở dữ liệu dự phòng vật lý, sau đó mở cơ sở dữ liệu ở chế độ chỉ đọc để cho phép sao chép.

Sử dụng lệnh sau để kiểm tra trạng thái của cơ sở dữ liệu dự phòng:

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

Bạn sẽ thấy đầu ra tương tự như sau:

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

Sử dụng lệnh sau để dừng khôi phục cơ sở dữ liệu dự phòng:

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

Sau đó, mở cơ sở dữ liệu ở chế độ chỉ đọc:

SQL> alter database open read only;
Database altered.

Kiểm tra lại trạng thái của cơ sở dữ liệu để xem nó ở chế độ chỉ đọc thay vì được gắn kết:

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

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

Chuẩn bị máy chủ đích

Trong phần này, chúng tôi sẽ sao chép toàn bộ mã nhị phân gia đình Oracle ở chế độ chờ sang máy chủ phiên bản mục tiêu, chuẩn bị pfile từ cơ sở dữ liệu nguồn và thực hiện các thay đổi theo tên cơ sở dữ liệu mới.

Lưu ý: Nếu bạn đang sao chép cơ sở dữ liệu vào cùng một máy chủ, bạn phải sử dụng các giá trị thích hợp cho DB_NAME , DB_UNIQUE_NAME , DB_FILE_NAME_CONVERTLOG_FILE_NAME_CONVERT .

Trước tiên, hãy chuẩn bị pfile bằng cách sử dụng các lệnh sau:

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'

Sao chép tệp mật khẩu dự phòng hiện có và đổi tên nó để khớp với SID được sử dụng cho cơ sở dữ liệu TEST hoặc bạn có thể tạo tệp mật khẩu mới trên máy chủ đích với cùng một mật khẩu nguồn.

cd $ORACLE_HOME/dbs
cp orapwPROD_DR orapwTEST

Định cấu hình trình nghe tĩnh

Sử dụng các bước sau để định cấu hình trình nghe tĩnh cho testdatabase:

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)))

Khởi động trình nghe bằng cách sử dụng lệnh sau:

lsnrctl status listener_local

Bạn sẽ thấy đầu ra tương tự như ví dụ sau:

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

Tạo bí danh Oracle Net

Tiếp theo, bạn cần tạo bí danh Oracle Net để truy cập cơ sở dữ liệu dự phòng:

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

Khởi động cơ sở dữ liệu đích

Sau đó, bạn cần khởi động cơ sở dữ liệu đích trong nomount trạng thái bằng cách sử dụng các lệnh sau:

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

Sử dụng RMAN để kiểm tra kết nối

Sau khi cơ sở dữ liệu đích đang chạy trong nomount trạng thái, sử dụng RMAN để kiểm tra kết nối:

[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)

Khôi phục và sao chép cơ sở dữ liệu

Sử dụng các lệnh sau để khôi phục và sao chép cơ sở dữ liệu dự phòng vào cơ sở dữ liệu mục tiêu:

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

Sau khi hoàn thành lệnh trùng lặp, bạn cần khởi động lại cơ sở dữ liệu dự phòng và bật lại khôi phục bằng cách sử dụng các lệnh sau:

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

Kiểm tra trạng thái cơ sở dữ liệu đích

Sử dụng các lệnh sau để kiểm tra trạng thái của cơ sở dữ liệu đích:

[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

Kết luận

Trong blog này, chúng tôi đã sao chép cơ sở dữ liệu từ chế độ chờ vật lý mà không cần thực hiện nhiều bản sao lưu vật lý và chúng tôi đã khôi phục cơ sở dữ liệu đích thành bản lưu trữ mới nhất được áp dụng trong cơ sở dữ liệu dự phòng.

Tham chiếu

  • Thực hiện sao chép RMAN từ chế độ chờ để tạo bản sao mới (Doc ID 1665784.1)

Tìm hiểu thêm về Cơ sở dữ liệu.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể nhấp vào Trò chuyện bán hàng để trò chuyện ngay bây giờ và bắt đầu cuộc trò chuyện.