|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : mai 2008 Messages : 462 ![]() |
Bonjour,
Nous utilisons SAP R/3 sur Oracle 10G. Suite à une suppression d'une partie des données dans la base (environ 30%) je me retrouve avec une taille sur le disque qui ne correspond pas à la taille que pourrait occuper les données. Mes données sont donc un peu éparpillées entre mes datafile dans ce format : X|0|X|X|0|0|0|X J'ai vu dans la FAQ que le Coalesce ne faisait que regrouper les espaces vides ensemble X|0|X|X|000|X mais ne permettait pas un regain d'espace disque. Je souhaiterai supprimer les |0|0|0 et suppirmer l'espace disque inutilisé pour le rendre au système afin de gagner du temps de sauvegarde(sur mes sauvegardes à froid par exemple). Avez vous une idée sur la manière de procéder, est ce possible ? Je vérifierai ensuite mes infos auprès de SAP, mais savoir comment Oracle le fait me permettra d'en savoir un peu plus. Merci |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : avril 2007 Messages : 134 ![]() |
Bonjour,
Ce que tu souhaites faire est une réorganisation de la base de données. Le plus simple est de procéder par export/import de la base de données: Etape 1 : tu exportes le schéma SAP Etape 2 : tu supprimes les tables exporter Etape 3 : tu retailles le datafile ou tu supprime et recrée le tablespace à la bonne taille Etape 4 : tu importes ton dump En plus du gain d'espace, tu vas gagner en performances |
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Si vous voulez uniquement réduire la taille des sauvegardes, vous pouvez utiliser RMAN pour faire les sauvegrades car RMAN ne copie que les blocs alloués à des segments et pour libérer des blocs non utilisés dans des tables avec Oracle 10.2, vous pouvez utiliser les commandes suivantes:
Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : mai 2008 Messages : 462 ![]() |
Le temps de maintenance risque d'être un peu long mais les étapes semblent répondre à mes attentes.
Dommage qu'une suppression en ligne des datafiles ne soit pas possible. La taille des bases allant de 600 Gb à 1,5 Tb l'export import risque de prendre quelques temps. |
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Pour pouvoir supprimer un datafile en 10g, il faut qu'il soit absolument vide.
Pour pouvoir diminuer la taille d'un datafile, il faut que l'espace dans le datafile situé au delà de la nouvelle taille du datafile soit inutilisé. Si vous tenez absolument à réduire la taille des datafiles, le plus simple est sans doute recréer un nouveau tablespace et de déplacer les tables et les index dans le nouveau tablespace avec: Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : avril 2007 Messages : 134 ![]() |
Pour réduire l'export/import, tu peux paralléliser.
Pour l'étape d'export, tu lances plusieurs export en parallèle, sachant qu'un export occupe en général 20% de CPU et qu'il faut laisser 20% de CPU libre pour la gestion du système. Dans ton système SAP, il doit y avoir quelques tables uniquement qui doivent utiliser 50% de l'espace (ce qui est el cas dans mes environnements SAP). Dans ce cas, 1 export par grosse table + 1 export avec le restant des tables. Pour l'étape d'import, tu importes en parallèle tes différents dump. Cette parallélisation a permis de gagner 50% du temps, et l'opération a permis de gagner 30% d'espace disque et 5% de perf... Pour gagner encore plus de temps: Etape 1 : tu exportes le schéma SAP en parallélisant Etape 2 : tu supprimes les tables exportées Etape 3 : tu retailles le datafile ou tu supprime et recrée le tablespace à la bonne taille Etape 4 : tu recréer les tables en mode nologging Etape 5 : tu importes tes dumps sans les index en parallèle Etape 6 : tu repasses les tables en mode logging Etape 7 : tu importes les indexes |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com