Duplicate Database using Rman Oracle Database 19c

Bài viết này sẽ hướng dẫn các bạn cách để Duplicate database sử dụng RMAN trong Oracle Database 19c.

Cài đặt Oracle database: https://datalinks.vn/huong-dan-cai-dat-oracle-database-19c-tren-oracle-linux/

CHI TIẾT DB:

word image 1117 1

SRV1 – server tôi đặt là Nguồn nhân bản, đã cài đặt cấu hình DB hoàn chỉnh.

SRV2 – server tôi đặt là DB sau khi nhân bản, chỉ cải đặt Software.

Mục tiêu là nhân bản Database từ SRV1 sang SRV2, không thay đổi thông tin gì về DB name….

Trên 2 SRV: cài đặt hosts file, và hostname như sau

vi /etc/hosts

192.168.1.11 srv1.localdomain srv1

192.168.1.12 srv2.localdomain srv2

trên SRV1:
hostnamectl set-hostname srv1.localdomain

trên SRV2:
hostnamectl set-hostname srv2.localdomain

Ping kiểm tra kết nối giữa 2 host:

ping srv2 -c 5

ping srv1 -c 5

SRV1 + SRV2: Tắt firewall trên cả Source và Target (quan trọng nếu không sẽ không tnsping được) (sử dụng user root)

systemctl stop firewalld.service

systemctl disable firewalld.service

Source – SRV1: Open database và check thông tin sơ bộ, tạo parameter file từ spfile

su oracle

cd

. .bash_profile

sqlplus / as sysdba

startup

select open_mode, name from v$database;

create pfile from spfile;

– Copy password file sang SRV2 target từ SRV1:

exit

cd /u01/app/oracle/product/19.3.0/dbhome_1/dbs

scp orapwduodb oracle@srv2:/u01/app/oracle/product/19.3.0/dbhome_1/dbs/orapwduodb

– Copy pfile sang SRV2 target từ SRV1:

scp initduodb.ora oracle@srv2:/u01/app/oracle/product/19.3.0/dbhome_1/dbs/initduodb.ora

SRV2 – Target:

– Tạo đường dẫn cần thiết, tương thích với pfile (xem các đường dẫn cần thiết trong pfile, các đường dẫn phải chính xác và đầy đủ, rất quan trọng nếu không sẽ fail khi duplicate)

su oracle

mkdir -p /u01/app/oracle/oradata/DUODB

mkdir -p /u01/app/oracle/oradata/DUODB/controlfile

mkdir -p /u01/app/oracle/DUODB/fast_recovery_area

mkdir -p /u01/app/oracle/archive/DUODB

mkdir -p /u01/app/oracle/admin/duodb/adump

– Tạo biến bash_profile môi trường cho DUODB database

cd

vi .bash_profile
# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1

ORACLE_SID=duodb

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin

export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID

– Open Target database trong Mount State:

cd

. .bash_profile

sqlplus / as sysdba

startup nomount pfile ='/u01/app/oracle/product/19.3.0/dbhome_1/dbs/initduodb.ora'

create spfile from pfile;

shut immediate

startup nomount;

!ps -ef | grep pmon

SRV2 – Target: cấu hình listener (để SRV1 kết nối được với SRV2 thì thì trên SRV2 phải có listener tương ứng lắng nghe kết nối đến)

exit

cd /u01/app/oracle/product/19.3.0/dbhome_1/network/admin

vi listener.ora
LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = srv2)(PORT = 1521))

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)

(SID_NAME = duodb)

)

)

– Khởi động listener

lsnrctl start

SRV1 – Source: cấu hình tnsnames.ora (để SRV1 kết nối được với SRV2 thì thì trên SRV1 phải có bản ghi tnsnames.ora chỉ ra thông tin service name kết nối tương ứng)

## clone => kết nối sang srv2, dịch vụ duodb

cd /u01/app/oracle/product/19.3.0/dbhome_1/network/admin

vi tnsnames.ora
clone =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = srv2)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = duodb)

)

)

– Tiến hành tnsping từ SRV1 sang SRV2 xem thông chưa??

tnsping clone

[oracle@srv1 admin]$ tnsping clone

TNS Ping Utility for Linux: Version 19.0.0.0.0 – Production on 09-MAY-2024 09:03:13

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)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = duodb)))

OK (0 msec)

SRV1 – Source: thực hiện kết nối rman trên SRV1 đồng thời sang SRV2 và duplicate database.

rman target sys/oracle auxiliary sys/oracle@clone

duplicate database to 'duodb' from active database NOFILENAMECHECK;

[oracle@srv1 DUODB]$ rman target sys/oracle auxiliary sys/oracle@clone

Recovery Manager: Release 19.0.0.0.0 – Production on Thu May 9 10:38:26 2024

Version 19.3.0.0.0

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

connected to target database: DUODB (DBID=381617332)

connected to auxiliary database: DUODB (not mounted)

RMAN> duplicate database to ‘duodb’ from active database NOFILENAMECHECK;

Starting Duplicate Db at 09-MAY-24

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=255 device type=DISK

current log archived

duplicating Online logs to Oracle Managed File (OMF) location

duplicating Datafiles to Oracle Managed File (OMF) location

cataloged datafile copy

datafile copy file name=/u01/app/oracle/oradata/DUODB/datafile/o1_mf_sysaux_0g2qc507_.dbf RECID=1 STAMP=1168512055

cataloged datafile copy

datafile copy file name=/u01/app/oracle/oradata/DUODB/datafile/o1_mf_undotbs1_0h2qc50e_.dbf RECID=2 STAMP=1168512055

cataloged datafile copy

datafile copy file name=/u01/app/oracle/oradata/DUODB/datafile/o1_mf_users_0i2qc50l_.dbf RECID=3 STAMP=1168512055

datafile 3 switched to datafile copy

input datafile copy RECID=1 STAMP=1168512055 file name=/u01/app/oracle/oradata/DUODB/datafile/o1_mf_sysaux_0g2qc507_.dbf

datafile 4 switched to datafile copy

input datafile copy RECID=2 STAMP=1168512055 file name=/u01/app/oracle/oradata/DUODB/datafile/o1_mf_undotbs1_0h2qc50e_.dbf

datafile 7 switched to datafile copy

input datafile copy RECID=3 STAMP=1168512055 file name=/u01/app/oracle/oradata/DUODB/datafile/o1_mf_users_0i2qc50l_.dbf

contents of Memory Script:

{

Alter clone database open resetlogs;

}

executing Memory Script

database opened

Finished Duplicate Db at 09-MAY-24

SRV2 – Target: test database sau khi duplicate

sqlplus / as sysdba

select name, open_mode from v$database;

[oracle@srv2 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 – Production on Thu May 9 10:44:22 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 name, open_mode from v$database;

NAME OPEN_MODE

——— ——————–

DUODB READ WRITE

Duplicate Database thành công.

 

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