1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
| /*************************************************************/
-- PROCEDURE A SUIVRE
-- PLAN
-- 1. Creation de 3 controlfile sur DATA et Suppression du controlfile de BACKUP
-- 2. Enlevement du disk BACKUP_0000 du diskgroup BACKUP
-- 3. Suppression du diskgroup BACKUP
-- 4. Requete pour valider que le disk dev/rdsk/c1t44d0s6 a le statut CANDIDATE
-- 5. Affectation du disk /dev/rdsk/c1t44d0s6 au groupe DATA en le renommant DATA_0001
/*************************************************************/
---------------------------------------------------------------------------------------------------
-- 1. Creation de 3 controlfile sur DATA et Suppression du controlfile de BACKUP
-- Adaptation de Note ID 345180.1
---------------------------------------------------------------------------------------------------
-- SQLPLUS (sys@BASE as sysdba) : situation des controlfiles
SELECT * FROM V$CONTROLFILE;
/* recuperer le nom du fichier sous ASM pour le coller dans l'instruction suivante */
-- fichier PFILE
-- *.control_files='+DATA/BASE/controlfile/current.256.654869529','+BACKUP/BASE/controlfile/current.256.655063389'
-- LINUX (oracle) : Status du cluster
chkcrs.sh
-- SQLPLUS (sys@BASE as sysdba) : definition d un nouvel emplacement de controlfile
ALTER SYSTEM
SET CONTROL_FILES='+DATA/BASE/controlfile/current.256.654869529','+DATA','+DATA'
SCOPE=spfile
SID='*'
;
-- LINUX (oracle) : arret database (apres status)
srvctl status database -d BASE -v
srvctl stop database -d BASE -o immediate
srvctl status database -d BASE -v
-- SQLPLUS (sys@BASE as sysdba) : Demarrage en NOMOUNT
startup nomount;
-- RMAN (rman) : duplication du controlfile
rman nocatalog
connect target;
restore controlfile from '+DATA/BASE/controlfile/current.256.654869529';
-- La commande va afficher les noms avec chemins des fichiers crees
-- SQLPLUS (sys@BASE as sysdba) : Mise a jour avec les noms complets des nouveaux fichiers
ALTER SYSTEM
SET CONTROL_FILES='+DATA/BASE/controlfile/current.256.654869529','+DATA/BASE/controlfile/current.257.654869529','+DATA/BASE/controlfile/current.258.654869529'
SCOPE=spfile
SID='*'
;
-- RMAN (rman) : duplication du controlfile
sql 'alter database mount';
sql 'alter database open';
exit;
-- LINUX (oracle) : Status du cluster
chkcrs.sh
-- LINUX (oracle) : redemarrage instance KO
srvctl start instance -d BASE -i BASEx
-- LINUX (oracle) : Status du cluster
chkcrs.sh
-- SQLPLUS (sys@BASE as sysdba) : situation des controlfiles
SELECT * FROM V$CONTROLFILE;
---------------------------------------------------------------------------------------------------
-- 2. Enlevement du disk BACKUP_0000 du diskgroup BACKUP
---------------------------------------------------------------------------------------------------
-- SQLPLUS (sys@BASE as sysdba) : Informations DiskGroups
SELECT
NAME
, STATE
, TYPE
, TOTAL_MB
, FREE_MB
FROM
V$ASM_DISKGROUP;
NAME STATE TYPE TOTAL_MB FREE_MB
------------------------------ ----------- ------ ---------- ----------
BACKUP CONNECTED EXTERN 102212 102094
DATA CONNECTED EXTERN 454656 56574
-- SQLPLUS (sys@BASE as sysdba) : Informations Disks
COL DISK FORMAT A25
COL GROUP FORMAT A25
COL PATH FORMAT A25
SELECT
V$ASM_DISK.NAME AS "DISK"
, V$ASM_DISKGROUP.NAME AS "GROUP"
, V$ASM_DISK.PATH
, V$ASM_DISK.TOTAL_MB
, V$ASM_DISK.FREE_MB
, V$ASM_DISK.READS
, V$ASM_DISK.WRITES
FROM
V$ASM_DISKGROUP
, V$ASM_DISK
WHERE
V$ASM_DISKGROUP.GROUP_NUMBER = V$ASM_DISK.GROUP_NUMBER;
DISK GROUP PATH TOTAL_MB FREE_MB READS WRITES
------------------------------ ------------------------------ ------------------------------ ---------- ---------- ---------- ----------
BACKUP_0000 BACKUP /dev/rdsk/c1t44d0s6 102212 0 2775 19421
DATA_0000 DATA /dev/rdsk/c1t44d0s5 454656 0 3549244 132347
-- fichier PFILE
-- *.db_create_file_dest='+DATA'
-- *.db_create_online_log_dest_1='+DATA'
-- *.db_create_online_log_dest_2='+DATA'
-- LINUX (oracle) : Changement d instance
ORACLE_SID=+ASM; export ORACLE_SID
-- SQLPLUS (sys@ASM as sysdba): Suppression du disk
ALTER DISKGROUP BACKUP
DROP DISK BACKUP_0000;
---------------------------------------------------------------------------------------------------
-- 3. Suppression du diskgroup BACKUP
---------------------------------------------------------------------------------------------------
-- SQLPLUS (sys@ASM as sysdba): Suppression du diskgroup
DROP DISKGROUP BACKUP;
---------------------------------------------------------------------------------------------------
-- 4. Requete pour valider que le disk dev/rdsk/c1t44d0s6 a le statut CANDIDATE
---------------------------------------------------------------------------------------------------
-- SQLPLUS (sys@ASM as sysdba): Statut des disks
SELECT
NVL(A.NAME, '[CANDIDATE]') DISK_GROUP_NAME
, B.PATH DISK_FILE_PATH
, B.NAME DISK_FILE_NAME
, B.FAILGROUP DISK_FILE_FAIL_GROUP
FROM
V$ASM_DISKGROUP A RIGHT OUTER JOIN V$ASM_DISK B USING (GROUP_NUMBER)
ORDER BY
A.NAME;
/* Exemple
Disk Group Name Path File Name Fail Group
--------------- --------------- -------------------- ---------------
TESTDB_DATA1 /dev/raw/raw1 TESTDB_DATA1_0000 CONTROLLER1
/dev/raw/raw2 TESTDB_DATA1_0001 CONTROLLER1
/dev/raw/raw3 TESTDB_DATA1_0002 CONTROLLER2
/dev/raw/raw4 TESTDB_DATA1_0003 CONTROLLER2
[CANDIDATE] /dev/raw/raw5
/dev/raw/raw6
/dev/raw/raw7
*/
---------------------------------------------------------------------------------------------------
-- 5. Affectation du disk /dev/rdsk/c1t44d0s6 au groupe DATA en le renommant DATA_0001
-- Quid du rebalancing ? combien de temps ?
---------------------------------------------------------------------------------------------------
-- SQLPLUS (sys@ASM as sysdba): Statut des disks
ALTER DISKGROUP DATA
ADD DISK '/dev/rdsk/c1t44d0s6' NAME DATA_0001;
/*
DISK GROUP REBALANCING
ASM automatically rebalances a disk group whenever disks are added or dropped.
Therefore, the rebalancing process requires no intervention.
Because ASM uses special indexing techniques to distribute extents over all available disks in a disk group, re-striping of the data is not required;
instead, ASM only moves enough data proportionally versus the amount of storage that's been added or removed.
This evenly redistributes the files and keeps a balanced I/O load across all disks in the disk group.
*/ |
Partager