This section describes the steps to mount the XVC snapshots of the PROD database volumes that were created in the previous section and re-create the snapshot copy of the PROD database that is based on these XVC snapshots of volumes. The steps that are provided in this section apply to both XVC databases, although we use XVC DEV as the example database.
Perform all the steps below as the root user to detect the snapshot volumes, configure the multipath, and create the new udev rules:
[root#] rescan-scsi-bus.sh
multipath {
wwid 3514f0c5a4c200090
alias C2_DATA11_DEV
}
multipath {
wwid 3514f0c5a4c200091
alias C2_DATA12_DEV
}
multipath {
wwid 3514f0c5a4c200092
alias C2_DATA13_DEV
}
multipath {
wwid 3514f0c5a4c200093
alias C2_DATA14_DEV
}
multipath {
wwid 3514f0c5a4c200094
alias C2_FRA_DEV
}
multipath {
wwid 3514f0c5a4c200095
alias C2_REDO1_DEV
}
multipath {
wwid 3514f0c5a4c200096
alias C2_REDO2_DEV
}
Note: For each device, the WWID is ‘3<NAA Identifier >’.
In this example, the WWID of C2_DATA11_DEV is ‘3514f0c5a4c200090 and the NAA Identifier is ‘514f0c5a4c200090’.
[root#] service multipathd reload
KERNEL=="dm-*", ENV{DM_NAME}=="C2_DATA11_DEV?", OWNER:="grid", GROUP:="asmadmin", MODE="0660"
KERNEL=="dm-*", ENV{DM_NAME}=="C2_DATA12_DEV?", OWNER:="grid", GROUP:="asmadmin", MODE="0660"
KERNEL=="dm-*", ENV{DM_NAME}=="C2_DATA13_DEV?", OWNER:="grid", GROUP:="asmadmin", MODE="0660"
KERNEL=="dm-*", ENV{DM_NAME}=="C2_DATA14_DEV?", OWNER:="grid", GROUP:="asmadmin", MODE="0660"
KERNEL=="dm-*", ENV{DM_NAME}=="C2_FRA_DEV?", OWNER:="grid", GROUP:="asmadmin", MODE="0660"
KERNEL=="dm-*", ENV{DM_NAME}=="C2_REDO1_DEV?", OWNER:="grid", GROUP:="asmadmin", MODE="0660"
KERNEL=="dm-*", ENV{DM_NAME}=="C2_REDO2_DEV?", OWNER:="grid", GROUP:="asmadmin", MODE="0660"
[root#] udevadm trigger
grid$ renamedg dgname=REDO2 newdgname=REDO2_DEV asm_diskstring=/dev/mapper/* verbose=TRUE
grid$ renamedg dgname=REDO1 newdgname=REDO1_DEV asm_diskstring=/dev/mapper/* verbose=TRUE
grid$ renamedg dgname=DATA newdgname=DATA_DEV asm_diskstring=/dev/mapper/* verbose=TRUE
grid$ renamedg dgname=FRA newdgname=FRA_DEV asm_diskstring=/dev/mapper/* verbose=TRUE
grid$ asmcmd mount --restrict FRA_DEV
grid$ asmcmd mount --restrict REDO1_DEV
grid$ asmcmd mount --restrict REDO2_DEV
grid$ asmcmd mount --restrict DATA_DEV
grid$ sqlplus / as sysasm
SQL> alter diskgroup REDO2_DEV rename disks all;
SQL> alter diskgroup REDO1_DEV rename disks all;
SQL> alter diskgroup DATA_DEV rename disks all;
SQL> alter diskgroup FRA_DEV rename disks all;
grid$ sqlplus / as sysasm
SQL> alter diskgroup REDO2_DEV dismount;
SQL> alter diskgroup REDO1_DEV dismount;
SQL> alter diskgroup DATA_DEV dismount;
SQL> alter diskgroup FRA_DEV dismount;
SQL> alter diskgroup REDO2_DEV mount;
SQL> alter diskgroup REDO1_DEV mount;
SQL> alter diskgroup DATA_DEV mount;
SQL> alter diskgroup FRA_DEV mount;
grid$ sqlplus / as sysasm
SQL> SELECT d.path, d.name disk_name, g.name group_name,
g.state mount_state
FROM v$asm_disk d, v$asm_diskgroup g WHERE d.group_number = g.group_number and d.path like '%_%DEV%';
PATH DISK_NAME GROUP_NAME
--------------------------- --------------- -----------
MOUNT_STATE
-----------
/dev/mapper/C2_REDO2_DEV1 REDO2_DEV_0000 REDO2_DEV MOUNTED
/dev/mapper/C2_REDO1_DEV1 REDO1_DEV_0000 REDO1_DEV MOUNTED
/dev/mapper/C2_FRA_DEV1 FRA_DEV_0000 FRA_DEV MOUNTED
/dev/mapper/C2_DATA14_DEV1 DATA_DEV_0003 DATA_DEV MOUNTED
/dev/mapper/C2_DATA13_DEV1 DATA_DEV_0002 DATA_DEV MOUNTED
/dev/mapper/C2_DATA12_DEV1 DATA_DEV_0001 DATA_DEV MOUNTED
/dev/mapper/C2_DATA11_DEV1 DATA_DEV_0000 DATA_DEV MOUNTED
/dev/mapper/C2_FRA_DEV1 FRA_DEV_0000 FRA_DEV MOUNTED
The four new diskgroups are: DATA_DEV, REDO1_DEV, REDO2_DEV and FRA_DEV.
SQL> create pfile=’/home/oracle/pfile_dbprod.ora’ from spfile;
*.cluster_database=false
*db_create_file_dest=’DATA_DEV’
*.thread=1
*.control_files='+DATA_DEV/DBCAP/CONTROLFILE/current.262.986035347','+FRA_DEV/DBCAP/CONTROLFILE/current.296.986035347'
* .db_recovery_file_dest='+FRA_DEV
oracle$ sqlplus / as sysdba
SQL> startup nomount pfile=pfile_dbcap_new.ora
ORACLE instance started.
Total System Global Area 2.1475E+10 bytes
Fixed Size 22787792 bytes
Variable Size 7314868528 bytes
Database Buffers 1.4093E+10 bytes
Redo Buffers 44318720 bytes
SQL> alter database mount;
Database altered.
SQL> select name from v$datafile;
SQL> select member from v$logfile;
SQL> alter database rename file '+DATA/DBCAP/DATAFILE/system.258.986035241' to '+DATA_DEV/DBCAP/DATAFILE/system.258.986035241';
SQL> alter database rename file '+DATA/DBCAP/DATAFILE/tpcctab.268.986040989' to '+DATA_DEV/DBCAP/DATAFILE/tpcctab.268.986040989';
SQL> alter database rename file '+DATA/DBCAP/DATAFILE/sysaux.259.986035277' to '+DATA_DEV/DBCAP/DATAFILE/sysaux.259.986035277';
SQL> alter database rename file '+DATA/DBCAP/DATAFILE/undotbs1.260.986035293' to '+DATA_DEV/DBCAP/DATAFILE/undotbs1.260.986035293';
SQL> alter database rename file '+DATA/DBCAP/DATAFILE/undotbs2.266.986035373' to '+DATA_DEV/DBCAP/DATAFILE/undotbs2.266.986035373';
Database altered.
SQL> alter database rename file '+DATA/DBCAP/DATAFILE/users.261.986035293' to '+DATA_DEV/DBCAP/DATAFILE/users.261.986035293';
Rename REDO logs files:
SQL> alter database rename file '+REDO1/DBCAP/ONLINELOG/group_5.262.986037407' to '+REDO1_DEV/DBCAP/ONLINELOG/group_5.262.986037407';
SQL> alter database rename file '+REDO2/DBCAP/ONLINELOG/group_6.263.986037413' to '+REDO2_DEV/DBCAP/ONLINELOG/group_6.263.986037413';
SQL> alter database rename file '+REDO1/DBCAP/ONLINELOG/group_7.263.986037417' to '+REDO1_DEV/DBCAP/ONLINELOG/group_7.263.986037417';
SQL> alter database rename file '+REDO2/DBCAP/ONLINELOG/group_8.261.986037421' to '+REDO2_DEV/DBCAP/ONLINELOG/group_8.261.986037421';
SQL> alter database rename file '+REDO1/DBCAP/ONLINELOG/group_9.258.986037557' to '+REDO1_DEV/DBCAP/ONLINELOG/group_9.258.986037557';
SQL> alter database rename file '+REDO2/DBCAP/ONLINELOG/group_10.262.986037565' to '+REDO2_DEV/DBCAP/ONLINELOG/group_10.262.986037565';
SQL> alter database rename file '+REDO1/DBCAP/ONLINELOG/group_11.259.986037571' to '+REDO1_DEV/DBCAP/ONLINELOG/group_11.259.986037571';
SQL> alter database rename file '+REDO2/DBCAP/ONLINELOG/group_12.258.986037575' to '+REDO2_DEV/DBCAP/ONLINELOG/group_12.258.986037575';
sqlplus / as sysdba
SQL> alter database open;
SQL> shutdown immediate;
oracle$ export ORACLE_SID=dbcdev
oracle$ which nid
/u01/app/oracle/product/12.2.0/dbhome_2/bin/nid
oracle $ export ORACLE_SID=dbcdev
oracle $ /u01/app/oracle/product/12.2.0/dbhome_2/bin/nid TARGET=/ DBNAME=dbcdev
DBNEWID: Release 12.2.0.1.0 - Production on Tue Sep 25 16:02:41 2018
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
Connected to database DBCAP (DBID=4233973522)
Connected to server version 12.2.0
Control Files in database:
+DATA_DEV/DBCAP/CONTROLFILE/current.262.986035347
+FRA_DEV/DBCAP/CONTROLFILE/current.296.986035347
Change database ID and database name DBCAP to DBCDEV? (Y/[N]) => Y
Proceeding with operation
Changing database ID from 4233973522 to 3638836129
Changing database name from DBCAP to DBCDEV
Control File +DATA_DEV/DBCAP/CONTROLFILE/current.262.986035347 - modified
Control File +FRA_DEV/DBCAP/CONTROLFILE/current.296.986035347 - modified
Datafile +DATA_DEV/DBCAP/DATAFILE/system.258.98603524 - dbid changed, wrote new name
Datafile +DATA_DEV/DBCAP/DATAFILE/tpcctab.268.98604098 - dbid changed, wrote new name
Datafile +DATA_DEV/DBCAP/DATAFILE/sysaux.259.98603527 - dbid changed, wrote new name
Datafile +DATA_DEV/DBCAP/DATAFILE/undotbs1.260.98603529 - dbid changed, wrote new name
Datafile +DATA_DEV/DBCAP/DATAFILE/undotbs2.266.98603537 - dbid changed, wrote new name
Datafile +DATA_DEV/DBCAP/DATAFILE/users.261.98603529 - dbid changed, wrote new name
Datafile +DATA_DEV/DBCAP/TEMPFILE/temp.267.98772752 - dbid changed, wrote new name
Control File +DATA_DEV/DBCAP/CONTROLFILE/current.262.986035347 - dbid changed, wrote new name
Control File +FRA_DEV/DBCAP/CONTROLFILE/current.296.986035347 - dbid changed, wrote new name
Instance shut down
Database name changed to DBCDEV.
Modify parameter file and generate a new password file before restarting.
Database ID for database DBCDEV changed to 3638836129.
All previous backups and archived redo logs for this database are unusable.
Database is not aware of previous backups and archived logs in Recovery Area.
Database has been shutdown, open database with RESETLOGS option.
Successfully changed database name and ID.
DBNEWID - Completed successfully.
*.db_name='dbcdev'
SQL> ALTER DATABASE ADD LOGFILE GROUP 13 ('+REDO1_DEV') size 1G;
SQL> ALTER DATABASE ADD LOGFILE GROUP 14 ('+REDO2_DEV') size 1G;
SQL> ALTER DATABASE ADD LOGFILE GROUP 15 ('+REDO1_DEV') size 1G;
SQL> ALTER DATABASE ADD LOGFILE GROUP 16 ('+REDO2_DEV') size 1G;
SQL> create spfile='+DATA_DEV/dbcdev/dbcdevspfile.ora'
from pfile='/home/oracle/pfile_dbcap_new.ora’
spfile='+DATA_DEV/dbcdev/dbcdevspfile.ora'
SQL> CREATE TEMPORARY TABLESPACE TEMP TEMPFILE ‘+TEMP' size 50G;
oracle$ export ORACLE_SID=dbcdev
oracle$ sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup;
The XVC snapshot database is created and running. Change other database initialization parameters, such as SGA_TARGET, as needed.