Oracle Zero Downtime Migration (ZDM) - Installation
ZDM - Install ZDM 21.4
Requirements:
- Minimum OS version Oracle Linux 7
Install Pre-Req:
[root@zdmhost01]# yum install glibc-devel expect libnsl ncurses-compat-libs
Install ZDM:
[oracle@zdmhost01]# cd /opt/zdmsoftware/zdm21.4.1/
[oracle@zdmhost01]# ./zdminstall.sh setup oraclehome=/opt/app/zdm oraclebase=/opt/app/base
ziploc=/opt/zdmsoftware/zdm21.4.1/zdm_home.zip
oracle@zdmhost01]# cd /opt/zdm21.4.1/app/zdm/bin
oracle@zdmhost01]$ ./zdmservice start
No instance detected, starting zdmservice
spawn /opt/app/zdm/mysql/server/bin/mysqladmin
--defaults-file=/opt/app/base/crsdata/instance-20231111-1137/rhp/conf/my.cnf -u root -p
ping
ZDM - Setting up ZDM Machine
Setup Passwordless SSH.
[oracle@zdmhost01 ~]$ cat .ssh/id_rsa.pub
#on the source database host as user oracle
#Add ZDM public keys in source and target host.
[oracle@sourcedb01 ~]$ vi .ssh/authorized_keys
#insert the public key and save the changes
[opc@targetdb01 ~]$ vi .ssh/authorized_keys
#insert the public key and save the changes
#add the following in source, target and ZDM machines.
[root@zdmhost01 ~]# vi /etc/hosts
#add the following entries
10.10.10.01 sourcedb
10.10.10.02 targetdb
ZDM - Prepare Source Database
Turn on FORCE LOGGING at the primary database.
SQL> alter database force logging;
SQL> select force_logging from v$database;
FORCE_LOGGING
---------------------------------------
YES
-- Enable ARCHIVELOG mode for the database.
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
-- For Oracle Database 12c Release 2 and later, it is mandatory to configure TDE.
SQL> select wrl_type, status from v$encryption_wallet;
WRL_TYPE STATUS
-------------------- ------------------------------
FILE OPEN
-- Set RMAN CONFIGURE CONTROLFILE AUTOBACKUP to ON.
[oracle@sourcedb01 ~]$ rman target /
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
ZDM - Prepare Target Database
01 Ensure source and Target has different db_unique_name
02 Configure listener in the Target Node.
03 Make sure password file is created and same password for SYS for source and target
04 Set SQL*Net connectivity between source and target database servers.
ZDM - Migration Response File
[oracle@zdmhost01 ~]$ vi /opt/zdmsoftware/physical_online.rsp
MIGRATION_METHOD=ONLINE_PHYSICAL
DATA_TRANSFER_MEDIUM=OSS
HOST=https://cloud.oracle.com/object-storage/buckets/ax6yc1uoj1112/bucket-12234
/objects?region=us-phoenix-1
OPC_CONTAINER=bucket-12234
TGT_DB_UNIQUE_NAME=TARGETDB
PLATFORM_TYPE=VMDB
ZDM - Initiate Migration
[oracle@zdmhost01 ~]$ $ZDMHOME/bin/zdmcli migrate database -rsp /opt/zdmsoftware/physical_online.rsp \
-sourcesid srcdb \
-sourcenode source \
-srcauth zdmauth \
-srcarg1 user:oracle \
-srcarg2 identity_file:/home/oracle/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode target \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/opc/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-targethome /u01/app/dbhome \
-backupuser "oracleidentitycloudservice/naresh@xyz.com" \
-eval
Enter source database srcdb SYS password:
Enter user "oracleidentitycloudservice/naresh@xyz.com" password:
zdmhost01: 2023-10-14T07:59:53.865Z : Processing response file ...
Operation "zdmcli migrate database" scheduled with the job ID "1".
ZDM - Check the Status
$ZDMHOME/bin/zdmcli query job -jobid
Job ID: 1
User: oracle
Client: zdmhost01
Job Type: "EVAL"
...
Current status: SUCCEEDED
Current Phase: "ZDM_GET_SRC_INFO"
...
# For checking the eval job id's
$ZDM_HOME/bin/zdmcli query job -eval
# For checking the migrate job id's
$ZDM_HOME/bin/zdmcli query job -migrate
ZDM - Run Actual Migration
[oracle@zdmhost01 ~]$ $ZDMHOME/bin/zdmcli migrate database -rsp
/opt/zdmsoftware/physical_online.rsp \
-sourcesid srcdb \
-sourcenode source \
-srcauth zdmauth \
-srcarg1 user:oracle \
-srcarg2 identity_file:/home/oracle/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode target \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/opc/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-targethome /u01/app/dbhome \
-backupuser "oracleidentitycloudservice/naresh@xyz.com" \
-pauseafter ZDM_CONFIGURE_DG_SRC
Enter source database srcdb SYS password:
Enter user "oracleidentitycloudservice/naresh@xyz.com" password:
zdmhost01: 2023-10-14T13:59:53.865Z : Processing response file ...
Operation "zdmcli migrate database" scheduled with the job ID "2".
ZDM - Pause and Complete the Migration
[oracle@zdmhost01 ~]$ $ZDMHOME/bin/zdmcli query job -jobid 2
...
Job Type: "MIGRATE"
...
Current status: PAUSED
SQL> select database_role from v$database;
DATABASE_ROLE
----------------
PHYSICAL STANDBY
# Complete the migration.
[oracle@zdmhost01 ~]$ $ZDMHOME/bin/zdmcli resume job -jobid 2
[opc@target ~]$ sqlplus / as sysdba
SQL> select database_role from v$database;
DATABASE_ROLE
----------------
PHYSICAL STANDBY
No comments:
Post a Comment