Bài viết này sẽ hướng dẫn các bạn cách để Restore Oracle database từ bản backup piece sang 1 server mới (nhân bản CSDL) sử dụng RMAN trong Oracle Database 19c.
Clone database – Restore Oracle Database to New Server using Rman 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:
Ở đây tôi sẽ sử dụng IP lần lượt là 192.168.68.11 và 192.168.68.12 cho trùng với dải IP của tôi, các bạn cũng có thể đặt theo dải IP thực tế của các bạn.
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.68.11 srv1.localdomain srv1 192.168.68.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
SRV1 – Source: 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
– Tạo bản babckup database:
mkdir -p /u01/backup sqlplus / as sysdba startup exit rman target / backup database format '/u01/backup/full_db_backup'; backup archivelog all format '/u01/backup/archivelog'; backup current controlfile format '/u01/backup/controlfile';
– Copy backup sang SRV2 target từ SRV1:
SRV2: tạo thư mục backup trên server để lưu file backup piece từ SRV1:
su oracle mkdir -p /u01/backup
Srv1: thực hiện copy (thay tên file theo thông tin file của bạn hiện tại)
cd /u01/backup ls scp archivelog oracle@srv2:/u01/backup/archivelog scp controlfile oracle@srv2:/u01/backup/controlfile scp full_db_backup oracle@srv2:/u01/backup/full_db_backup
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/fast_recovery_area/DUODB 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 NOMount 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: tiến hành restore và recover, thay controlfile_ bằng tên file backup hiện tại của bạn nhé
exit
ls /u01/backup/
-- kiểm tra tên file controlfile backup ở bên trên sau đó đưa vào file bên dưới thực hiện restore lại hệ thống.
rman target /
run {
restore controlfile from '/u01/backup/controlfile';
alter database mount;
restore database;
restore archivelog all;
recover database;
}
alter database open resetlogs;
SRV2 – Target: login vao SQLplus test db
exit sqlplus / as sysdba select open_mode, name from v$database;
[oracle@srv2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 – Production on Thu May 9 12:26:27 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 open_mode, name from v$database;
OPEN_MODE NAME
——————– ———
READ WRITE DUODB
Restore Database sang New server thành công.