Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/07/2007, 19h02   #1
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
Par défaut Mélange device de data et de logs

suite a un problème de prod nous avons due faire un alter database pour augmenter le "coquille" de la base, malheureusement nous avons maintenant notre base avec l'option mix log
Code :
1
2
toto                         49989.0 MB sa                            4 Nov 23, 2006
         SELECT INTO/bulkcopy/pllsort, trunc log ON chkpt, mixed log AND DATA
lors de l'alter nous avions ce méssage
Code :
This command adds DATA space TO disk 'toto_data20', which previously contained only log.  You must specify WITH OVERRIDE
Visiblement nous avons mélangé log et data non ??? pour modifier les choses comment s'en sortir ?? un load sur un serveur "bis" va t'il suffir?
Merci de vos précisions.
THX d'avance
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 07h59   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Premièrement, au vu du message (you must specify "with override") la personne qui a fait l'ALTER aurait peut-être dû se douter qu'il y avait un problème...

Il est possible qu'on puisse récupérer cela en "bidouillant" dans master..sysusages, mais en général je préfère la méthode "propre":

1. Exécute sp_helpdb <mabase> pour voir la taille de tous les fragments.
2. Trouver l'order et le type de tous les fragments:
Code :
1
2
 
SELECT case when segmap = 4 then "log" else "data" end, size / 512 FROM master..sysusages WHERE dbid = db_id(<mabase>) ORDER BY lstart
(le size / 512 suppose que la base est en page de 2k - à ajuster si ce n'est pas le cas)
3. Faire un dump de la base.
4. Drop database <mabase>
5. Créer la base, avec tous les fragments trouvés sous 2. (dans le bon ordre, et sur les bons devices).
6. Load de la base.

Pour une base de 50GB cela implique une intérruption de service de 2 heures environs (+/-, en fonction de la vitesse des disques, évidemment), le temps de faire le dump/create database/load.

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 09h57   #3
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
Merci pour ces informations, mais comme j'ai une deuxième machine identique a notre prod, si je refais mon dataserver en créant les devices qui vont bien séparant log et data et que je fais un dump de ma primaire pour faire un load sur cette secondaire nouvellement construite, est ce que cela va aller ou vais je avoir encore mon
Code :
1
2
 toto                         50893.0 MB sa                            4 Jul 09, 2007
         SELECT INTO/bulkcopy/pllsort, trunc log ON chkpt, mixed log AND DATA
, ou cela me fait "retomber" sur nos pattes ??
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h55   #4
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Ce n'est pas une question de créer les devices correctes (même si cela a aussi son importance). Ce qui est important c'est que les fragments (les entrées dans master..sysusages) soient de la bonne taille et dans le bon ordre.

Par example, voici une base qui a été créée en plusieurs fois:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
[22] TOTO.master.1> SELECT lstart, vstart, segmap, size / 512 FROM sysusages WHERE dbid = db_id('toto') ORDER BY lstart;
 lstart      vstart      segmap
 ----------- ----------- ----------- -----------
           0    50331650           3         400
      204800    67108866           4         300
      358400    50536450           3         600
      665600    67262466           4         200
      768000    50843650           3         300
      921600    67364866           4         400
     1126400    50997250           3        1100
     1689600    67569666           4        2500
     2969600    51560450           3        2100
 
(9 rows affected)
Il y a donc 9 fragments - pour faire un load database dans un nouveau serveur je dois faire:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
CREATE DATABASE toto ON dev1 = 400 log ON dev1_log = 300
go
ALTER DATABASE toto ON dev1 = 600 log ON dev1_log = 200
go
ALTER DATABASE toto ON dev1 = 300 log ON dev1_log = 400
go
ALTER DATABASE toto ON dev1 = 1100 log ON dev1_log = 2500
go
ALTER DATABASE toto ON dev1 = 2100
go
Dans chaque ALTER DATABASE on peut spécifier les mêmes devices (si ils sont assez grands) ou des devices différend. L'important c'est que l'ordre de création des fragments soit respecté, et de comprendre qu'une base ASE est une suite de pages logiques (de 0 à ....) et que les entrées dans sysusages permettent de faire le mapping de la page logique sur la page physique (cad sur le device). La colonne lstart fait référence à la page logique (logical start), et la colonne vstart est utilisée pour trouver le device.

En espérant que cela explique un peu le problème...

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 12h07   #5
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
oui oui tres clair de ta part merci de tes infos je vais mixer les deux création des devices recréation de la base avec les alter comme tu l'explique.
Merci de ton aide.
A+
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 15h41   #6
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
Mickael je reviens vers toi car je suis entrain de reconstruire la base, lors de ma création je sépare bien sur des devices différents mes logs et mes data, Je fais mes alter sur les devices en question en ne croisant pas sur un même device log et data, pourtant lors d'un load avec le dump préallablement fait j'ai bien peur que ma base soit de nouveau en mix log et data ... Qu'en pense tu ?
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 17h55   #7
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Ton problème est que tu n'as pas créé les fragments (via create database et/ou alter database) dans le bon ordre, ou alors qu'il y a un fragment dans la base source qui est mélangé.

Si tu fais sp_helpdb <db> est-ce qu'il y a une ligne qui sort avec "data and log" ?

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 10h59   #8
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
et bien voila ce que j'ai :
en pièce jointe !!!
Mais ce qui m'étonne c'est qu'il y'a eu un alter sans la spécification de l'option override?? Et pourtant visiblement nous sommes bien dans une situation de mix log and data... Ce n'est pas un problème en soit car comme j'avais lut dans un de tes méssages sur un autre sujet notre base étant en trunc log on cheikpoint c'est moins grave ... mais comme c'est pas propre je voudrais remettre cela bien ...
Merci d'avance.
Fichiers attachés
Type de fichier : txt devcom.txt (32,3 Ko, 2 affichages)
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 12h17   #9
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Citation:
fda_data23 552.0 MB data and log Jul 17 2007 6:28PM 0
Bon - tu as un fragment dont le segmap est 7 (data et log).

Normallement ce n'est possible (dans ta situation) que via des opérations directement sur la table sysusages, ou peut-être en exécutant sp_addsegment logsegment sur le fragment.

Pour moi il y a eu une intervention manuelle qui a mis le fragment dans cet état.
Il est possible que tu puisse corriger cela en faisant:
Code :
1
2
 
UPDATE master..sysusages SET segmap = 3 WHERE dbid = db_id('ma_db') AND segmap = 7
Attention - appliquer toutes les précautions d'usages (begin tran, bien vérifier que l'update a changé ce qui devait l'être, etc)!

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 14h18   #10
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
Bon je vais faire cela mais il faut que je planifie cela... Visiblement un ex-collègue avait toucher aux tables système manuellement avant de quitter la mission ... Je pense que cela doit venir de la car il est parti en début de semaine..!!!
Mais bon je te tient au courant.A+
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 15h16   #11
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
Mickael j'ai réalisé cela sur une bases secondaire qui avait le même type de problème que ma base principal. et j'ai toujours dans le cadre d'sp_helpdb les informations suivantes (select into/bulkcopy/pllsort, trunc log on chkpt, mixed log and data)
Mais j'ai bien mes logs et data séparé. J'ai tenté un reboot mais pas de modifs non plus. Comment puis je modifier cela ?? (pas grave mais pas propre ...)
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 15h41   #12
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Sans voir le sp_helpdb complets (et éventuellement l'output de select * from sysusages where dbid = db_id(ma_base)) c'est très difficile de voir quel est le problème...

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 16h29   #13
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
Voila ce que tu demandais :
name db_size owner dbid created
status
------------------------ ------------- ------------------------ ------ ------------------
------------------------------------------------------------------------------------------------------
fda 54187.0 MB sa 4 Jul 09, 2007
select into/bulkcopy/pllsort, trunc log on chkpt, mixed log and data

(1 row affected)
device_fragments size usage created free kbytes
------------------------------ ------------- -------------------- ------------------------- ----------------
fda_data01 500.0 MB data only Jul 18 2007 9:42AM 5404
fda_data01 1400.0 MB log only Jul 18 2007 9:42AM not applicable
fda_data01 53.0 MB data only Jul 18 2007 9:42AM 560
fda_log01 1953.0 MB data only Jul 18 2007 9:42AM 37366
fda_data02 1953.0 MB data only Jul 18 2007 9:42AM 28364
fda_log02 1953.0 MB data only Jul 18 2007 9:42AM 38016
fda_data03 1953.0 MB data only Jul 18 2007 9:42AM 20194
fda_log03 1953.0 MB data only Jul 18 2007 9:42AM 14448
fda_data04 1953.0 MB data only Jul 18 2007 9:42AM 42490
fda_data05 1953.0 MB data only Jul 18 2007 9:42AM 288858
fda_data06 1953.0 MB data only Jul 18 2007 9:42AM 319390
fda_data07 1953.0 MB data only Jul 18 2007 9:42AM 489864
fda_data08 1953.0 MB data only Jul 18 2007 9:42AM 826916
fda_data10 1953.0 MB data only Jul 18 2007 9:42AM 77924
fda_data11 1953.0 MB data only Jul 18 2007 9:42AM 61490
fda_data12 1953.0 MB data only Jul 18 2007 9:42AM 88544
fda_data09 1953.0 MB data only Jul 18 2007 9:42AM 44922
fda_data13 1105.0 MB data only Jul 18 2007 9:42AM 19944
fda_data13 848.0 MB log only Jul 18 2007 9:42AM not applicable
fda_data14 1953.0 MB log only Jul 18 2007 9:42AM not applicable
fda_data15 1199.0 MB log only Jul 18 2007 9:42AM not applicable
fda_data15 754.0 MB data only Jul 18 2007 9:42AM 21946
fda_data16 1953.0 MB data only Jul 18 2007 9:42AM 72266
fda_data17 1389.0 MB data only Jul 18 2007 9:42AM 65026
fda_data17 564.0 MB log only Jul 18 2007 9:42AM not applicable
fda_data18 36.0 MB log only Jul 18 2007 9:42AM not applicable
fda_data18 1917.0 MB data only Jul 18 2007 9:42AM 177880
fda_data19 131.0 MB data only Jul 18 2007 9:42AM 3612
fda_data19 1822.0 MB log only Jul 18 2007 9:42AM not applicable
fda_data20 226.0 MB log only Jul 18 2007 9:42AM not applicable
fda_data20 1727.0 MB data only Jul 18 2007 9:42AM 263766
fda_data21 1953.0 MB data only Jul 18 2007 9:42AM 209756
fda_data22 1953.0 MB data only Jul 18 2007 9:42AM 97214
fda_data26 612.0 MB data only Jul 18 2007 9:42AM 9142
fda_data25 552.0 MB data only Jul 18 2007 9:42AM 563040
fda_data25 904.0 MB data only Jul 18 2007 9:42AM 922080
fda_data26 1341.0 MB data only Jul 18 2007 5:00PM 1367820
fda_data23 1953.0 MB data only Jul 19 2007 3:10PM 1992060

--------------------------------------------------------------
log only free kbytes = 8208958
(return status = 0)
dbid segmap lstart size vstart pad unreservedpgs crdate
------ ----------- ----------- ----------- ----------- ------ ------------- --------------------------
4 3 0 256000 83886080 NULL 2702 Jul 18 2007 9:42AM
4 4 256000 716800 84142080 NULL 713992 Jul 18 2007 9:42AM
4 3 972800 27136 84858880 NULL 280 Jul 18 2007 9:42AM
4 3 999936 999936 100663296 NULL 18683 Jul 18 2007 9:42AM
4 3 1999872 999936 167772160 NULL 14182 Jul 18 2007 9:42AM
4 3 2999808 999936 67108864 NULL 19008 Jul 18 2007 9:42AM
4 3 3999744 999936 201326592 NULL 10097 Jul 18 2007 9:42AM
4 3 4999680 999936 469762048 NULL 7224 Jul 18 2007 9:42AM
4 3 5999616 999936 184549376 NULL 21245 Jul 18 2007 9:42AM
4 3 6999552 999936 218103808 NULL 144429 Jul 18 2007 9:42AM
4 3 7999488 999936 234881024 NULL 159695 Jul 18 2007 9:42AM
4 3 8999424 999936 251658240 NULL 244932 Jul 18 2007 9:42AM
4 3 9999360 999936 268435456 NULL 413458 Jul 18 2007 9:42AM
4 3 10999296 999936 301989888 NULL 38962 Jul 18 2007 9:42AM
4 3 11999232 999936 318767104 NULL 30745 Jul 18 2007 9:42AM
4 3 12999168 999936 335544320 NULL 44272 Jul 18 2007 9:42AM
4 3 13999104 999936 285212672 NULL 22461 Jul 18 2007 9:42AM
4 3 14999040 565760 352321536 NULL 9972 Jul 18 2007 9:42AM
4 4 15564800 434176 352887296 NULL 432480 Jul 18 2007 9:42AM
4 4 15998976 999936 369098752 NULL 996030 Jul 18 2007 9:42AM
4 4 16998912 613888 385875968 NULL 611490 Jul 18 2007 9:42AM
4 3 17612800 386048 386489856 NULL 10973 Jul 18 2007 9:42AM
4 3 17998848 999936 402653184 NULL 36133 Jul 18 2007 9:42AM
4 3 18998784 711168 419430400 NULL 32513 Jul 18 2007 9:42AM
4 4 19709952 288768 420141568 NULL 287640 Jul 18 2007 9:42AM
4 4 19998720 18432 436207616 NULL 18360 Jul 18 2007 9:42AM
4 3 20017152 981504 436226048 NULL 88940 Jul 18 2007 9:42AM
4 3 20998656 67072 452984832 NULL 1806 Jul 18 2007 9:42AM
4 4 21065728 932864 453051904 NULL 929220 Jul 18 2007 9:42AM
4 4 21998592 115712 486539264 NULL 115260 Jul 18 2007 9:42AM
4 3 22114304 884224 486654976 NULL 131883 Jul 18 2007 9:42AM
4 3 22998528 999936 553648128 NULL 104878 Jul 18 2007 9:42AM
4 3 23998464 999936 536870912 NULL 48607 Jul 18 2007 9:42AM
4 3 24998400 313344 150994944 NULL 4571 Jul 18 2007 9:42AM
4 3 25311744 282624 134217728 NULL 281520 Jul 18 2007 9:42AM
4 3 25594368 462848 134500352 NULL 461040 Jul 18 2007 9:42AM
4 3 26057216 686592 151308288 NULL 683910 Jul 18 2007 5:00PM
4 3 26743808 999936 520093696 NULL 996030 Jul 19 2007 3:10PM

(38 rows affected)
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 20h52   #14
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
C'est relativement simple:
Citation:
fda_data01 500.0 MB data only Jul 18 2007 9:42AM 5404
fda_data01 1400.0 MB log only Jul 18 2007 9:42AM not applicable
fda_data01 53.0 MB data only Jul 18 2007 9:42AM 560
Rien que là on voit que sur le même device (fda_data01) on a 500MB de data, puis 1400MB de log, puis encore 53MB de datas.

La correction implique (comme je l'ai mentionné plus haut) de recréer la base en faisant bien attention de créer les fragments dans le bon ordre (et sur les bons devices).

Ici il faudrait commencer par:
Code :
1
2
3
4
5
6
 
CREATE DATABASE fda ON fda_data01 = 500 log ON fda_log01 = 1400
go
ALTER DATABASE fda ON fda_data01 = 53
go
etc.
La requête que j'avais postée avant permet de déterminer quelle est la taille et le type (log ou data) de chaque fragment. Ensuite à toi de voir quels devices tu as à disposition pour mapper ces fragments.

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 10h09   #15
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
oki oki, le problème est avec des loads qui viennent de bases qui est en mixed log and data je pense... non???
Mais je vais refaire complètement cette base avec une reconstruction des devices et faire des alter cohérent avec ce que tu as expliqué.
Merci encore ...
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 10h28   #16
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Non - le problème ne vient pas du load en tant que tel. Le problème vient de la création de la base avant de faire le load.

Si la base source avait des fragments mixed (segmap = 7 dans sysusages) ces fragments se retrouveraient dans la base de destination. Par contre si la taille des fragments dans la base source ne correspond pas à la taille des fragments dans la destination alors les load va modifier les fragments existants avec le mapping des fragments de la source.

Michael

PS. Il me semble qu'un tuto sur le sujet s'impose
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 11h55   #17
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
Yep là j'ai mieux compris, je suis entrain de recréer ma base de destination avec les bon device et alter ... le problème est que mon boulot va servir a rien vu qu(il faut que je fasse un lod ensuite avec ma base source qui elle a été 'pourrie' par qq'un.
Bon en tout cas ta formation a été instructive.
Merci à toi.
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h31.


 
 
 
 
Partenaires

Hébergement Web