1. Tạo diskgroup mới
##Disk group name:
OCR (3 LUN - 20GB/LUN - Total: 60GB)
ARCH (1 LUN - 500GB/LUN - Total: 500GB)
BACKUP (1 LUN - 500GB/LUN - Toal: 500GB)
REDO1:(2 LUN - 20GB/LUN - Toal: 40GB)
REDO2: (2 LUN - 20GB/LUN - Toal: 40GB)
DGDATA: (3 LUN - 300GB/LUN - Toal: 900GB)
2. Tạo database nhỏ dùng file system để test CALIBRATE_IO (link)
CONN / AS SYSDBA
SET SERVEROUTPUT ON
DECLARE
l_latency PLS_INTEGER;
l_iops PLS_INTEGER;
l_mbps PLS_INTEGER;
BEGIN
DBMS_RESOURCE_MANAGER.calibrate_io (num_physical_disks => 1,
max_latency => 20,
max_iops => l_iops,
max_mbps => l_mbps,
actual_latency => l_latency);
DBMS_OUTPUT.put_line('Max IOPS = ' || l_iops);
DBMS_OUTPUT.put_line('Max MBPS = ' || l_mbps);
DBMS_OUTPUT.put_line('Latency = ' || l_latency);
END;
/
Max IOPS = 95
Max MBPS = 449
Latency = 20
PL/SQL procedure successfully completed.
SQL>3. Migrate datafile oracle database
3.1 CREATE NEW DISKGROUP (ONLINE)
3.2 BACKUP AS COPY DATABASE (ONLINE)
rman target /
## set PARALLEL để tăng tốc độ backup
CONFIGURE DEVICE TYPE DISK PARALLELISM 20 BACKUP TYPE TO BACKUPSET;
backup as copy database format '+DGDATA';
3.3 SWITCH DATABASE TO COPY (OFFLINE)
srvctl stop database -d coredb
srvctl start instance -d coredb -i coredb1 -o mount
rman target /
switch database to copy;
recover database;
srvctl stop instance -d coredb -i coredb1
srvctl start database -d coredb
4. Migrate TEMP FILE
4.1 Check total size temp files old
SELECT tablespace_name, sum(round((bytes / 1024 / 1024), 2)) AS "Size (MB)"
FROM dba_temp_files group by tablespace_name;
4.2 Check temp files size
set line 200
col name for a60
col status for a20
select name, bytes/1024/1024/1024 MB,status from v$tempfile;
4.3 Create the new temp files
ALTER TABLESPACE TEMP ADD TEMPFILE '+ARCH' SIZE 10M AUTOEXTEND ON NEXT 1M MAXSIZE 100M;
4.4 Make sure there is no session is using the temp tablespace
SELECT USERNAME, SESSION_NUM, SESSION_ADDR FROM V$SORT_USAGE;
SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE SERIAL#=SESSION_NUM;
Or
SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE SADDR=SESSION_ADDR;
4.5 Change the status of the temp files to Offline.
alter database tempfile '<PATH>/XXX_PF_TMP_001.dbf' OFFLINE;
alter database tempfile '<PATH>/XXX_PF_TMP_002.dbf' OFFLINE;
4.6 Drop the old temp files.
ALTER DATABASE TEMPFILE '<PATH>/XXX_PF_TMP_001.dbf' DROP;
ALTER DATABASE TEMPFILE '<PATH>/XXX_PF_TMP_002.dbf' DROP;
Verify the info of the new temp files.
SQL> select * from dba_temp_files;
Or
SQL> select * from V$TEMPFILE;
5. Migrate online redo logfile (online)
Tạo thêm các redo log group nằm trên diskgroup mới
Thực hiện drop các redo log group cũ đang inactive
ALTER DATABASE ADD LOGFILE THREAD 1 ('+REDO1', '+REDO2') SIZE 200M;
ALTER DATABASE ADD LOGFILE THREAD 1 ('+REDO1', '+REDO2') SIZE 200M;
ALTER DATABASE ADD LOGFILE THREAD 1 ('+REDO1', '+REDO2') SIZE 200M;
ALTER DATABASE ADD LOGFILE THREAD 2 ('+REDO1', '+REDO2') SIZE 200M;
ALTER DATABASE ADD LOGFILE THREAD 2 ('+REDO1', '+REDO2') SIZE 200M;
ALTER DATABASE ADD LOGFILE THREAD 2 ('+REDO1', '+REDO2') SIZE 200M;
6. Migrate spfile (offline)
Note: alter system set archive_log_dest_1='LOCATION=+ARCH';
. oraenv
coredb
sqlplus / as sysdba
create pfile='/tmp/init/init_coredb.ora' from spfile;
create spfile='+DGDATA' from pfile='/tmp/init/init_coredb.ora';
##Check lại location spfile
$srvctl config database -d coredb
7. Migrate controlfile (offline)
sqlplus / as sysdba
alter system set controlfile ='+new_diskgroup/ctr1.ora',''+new_diskgroup/ctr2.ora' scope = spfile sid='*';
srvctl stop database -d coredb
Vào asm
copy control file từ đường dẫn cũng sang đường dẫn mới.
srvctl start database -d coredb
8. Migrate OCR (online)
#$ORACLE_HOME/bin/ocrcheck
#$crsctl query css votedisk
#$ORACLE_HOME/bin/bin/ocrconfig -add +OCR //(+OCR diskgroup mới)
#$ORACLE_HOME/bin/bin/ocrconfig -delete +ASM //(+ASM diskgroup cũ)
#$ORACLE_HOME/bin/crsctl replace votedisk +OCR //(+OCR diskgroup mới)
#$ORACLE_HOME/bin/crsctl query css votedisk // check vote disk
#$ORACLE_HOME/bin/ocrcheck
==MODIFY THE BACKUP LOCATION FOR THE OCR
ocrconfig -showbackup
ocrconfig -backuploc <new location>
9. Migrate asm spfile (offline)
oraenv
+ASM1
sqlplus / as sysasm
create pfile='/tmp/initasm.ora' from spfile;
create spfile='+OCR' from pfile='/tmp/initasm.ora';
$ORACLE_HOME/bin/gpnptool get
10. Move password file asm
Login as user grid
$srvctl config asm
$asmcmd pwmove --asm -f +ASM/orapwASM +OCR/orapwASM
## Change location backup of password file asm
Login as user grid
$ srvctl modify asm -pwfilebackup +OCR/orapwASM_backup
==STOP VÀ START CRS TRÊN ALL NODES
#crsctl stop crs -f
#crsctl start crs -wait
#crsctl status res -t
11. ROLLBACK (SỐ NGÀY ROLLBACK PHỤ THUỘC VÀO SỐ NGÀY ARCHIVE ĐƯỢC GIỮ)
srvctl stop database -d coredb
srvctl start instance -d coredb -i coredb1 -o mount
rman target /
switch database to copy;
recover database;
srvctl stop instance -d coredb -i coredb1
srvctl start database -d coredb
Không có nhận xét nào:
Đăng nhận xét