Bonjour,

Je travaille sur un RAC à 2 noeuds en 10.2.0.3, sous Solaris pour la PROD et Linux pour la DEV.

La base de PROD utilise ASM avec 2 diskgroups : un pour le DATA et l'autre destiné au BACKUP - à l'origine - , avec un 1 disk dans chaque (en réalité un LUN pour chaque). J'hérite de l'architecture créée par une société de service.

Le BACKUP n'a jamais servi et ne stocke qu'un controlfile.
Le DATA arrive à saturation.

L'idée de manoeuvre est de repositionner les controlfiles, de supprimer le BACKUP pour réallouer son disk au DATA. L'opération déclenchera un rebalancing sur les deux disques.
N'ayant jamais réalisé cette manoeuvre, je sollicite vos avis pour savoir si je suis dans le vrai

Question Subsidiaire : Combien de temps dure le rebalancing ? 10s, 10min, 10h ? Base d'environ 500Go actuellement.

Toute remarque/critique sera appréciée.

Merci beaucoup d'avance.

Ci-dessous la "procédure" telle que je compte la dérouler.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
 
*/