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 16/02/2007, 10h56   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
Par défaut [BCK]Problème dump transaction

Bonjour,

J'ai rajouté 1GB dans un device d'une DB et l'espace rajouté est malheureusement mixé (data/log)

aaa_datadev1_1 1000.0 MB data and log
Feb 13 2007 7:48AM 1020000

Le plus grave c'est que depuis ce rajout le dump transaction de fonctionne plus et le segment des logs ne cesse de grandir.

Pouvez-vous m'aider ?

Merci d'avance
Daniel
Daniel.gil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2007, 11h43   #2
Membre habitué
 
Inscription : mars 2006
Messages : 293
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 293
Points : 140
Points : 140
drop ton device et reconstruis le device en deux un log et un data.
arona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2007, 11h52   #3
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, il faut voir quel sont les segments sur le device - sp_helpsegment doit te renseigner sur ce point.

Si tu as un autre device qui est utilisé par le log tu dois normallement pouvoir faire un sp_dropsegment du segment log sur le device incriminé.

Tu peux aussi aller directement dans master..sysusages pour analyser la situation.

Poste peut-être le résultat de "select * from sysusages where dbid = db_id('nom_de_la_base')" pour qu'on regarde la situation.

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 16/02/2007, 12h05   #4
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
Salut Michael,

Voici le résultat de sysusages ainsi que le helpdb sur la db concernée :

1> select * from sysusages where dbid=5
2> go
dbid segmap lstart size vstart pad unreservedpgs
crdate
------ ----------- ----------- ----------- ----------- ------ -------------
--------------------------
5 27 0 1024000 33554434 NULL 60644
Feb 28 2004 9:33AM
5 4 1024000 163840 50331650 NULL 163200
Feb 28 2004 9:33AM
5 27 1187840 245760 50495490 NULL 18317
Feb 28 2004 9:33AM
5 27 1433600 163840 67108866 NULL 1558
Feb 28 2004 9:33AM
5 4 1597440 163840 67272706 NULL 163200
Feb 28 2004 9:33AM
5 27 1761280 81920 67436546 NULL 14478
Feb 28 2004 9:33AM
5 27 1843200 327680 335544322 NULL 83778
Feb 28 2004 9:33AM
5 4 2170880 81920 335872002 NULL 81600
Feb 28 2004 9:33AM
5 4 2252800 81920 385875970 NULL 81600
Feb 28 2004 9:33AM
5 27 2334720 327680 385957890 NULL 59493
Feb 28 2004 9:33AM
5 27 2662400 1024000 402653186 NULL 296565
Feb 28 2004 9:33AM
5 27 3686400 163840 134217730 NULL 12767
Feb 28 2004 9:33AM
5 27 3850240 163840 150994946 NULL 12136
Feb 28 2004 9:33AM
5 27 4014080 163840 167772162 NULL 29331
Feb 28 2004 9:33AM
5 27 4177920 1024000 436207618 NULL 154013
Feb 28 2004 9:33AM
5 27 5201920 512000 234881026 NULL 49887
Jan 24 2005 1:56PM
5 27 5713920 256000 352321538 NULL 89741
Jan 31 2005 12:46PM
5 27 5969920 512000 503316482 NULL 185208
Nov 4 2005 3:11PM
5 27 6481920 256000 503828482 NULL 143372
Aug 22 2006 1:04PM
5 27 6737920 256000 352577538 NULL 255000
Dec 18 2006 9:12AM
5 31 6993920 512000 50741250 NULL 510000
Feb 13 2007 7:48AM

(21 rows affected)

Helpdb

name db_size owner dbid
created
status
------------------------ ------------- ------------------------ ------
------------------
------------------------------------------------------------------------------------------------------
aaamaindb 14660.0 MB sgaaa 5
Dec 23, 2003
select into/bulkcopy/pllsort, mixed log and data

(1 row affected)
device_fragments size usage
created free kbytes
------------------------------ ------------- --------------------
------------------------- ----------------
aaa_datadev1 2000.0 MB data only
Feb 28 2004 9:33AM 120414
aaa_datadev1_1 320.0 MB log only
Feb 28 2004 9:33AM not applicable
aaa_datadev1_1 480.0 MB data only
Feb 28 2004 9:33AM 36428
aaa_datadev1_2 320.0 MB data only
Feb 28 2004 9:33AM 3210
aaa_datadev1_2 320.0 MB log only
Feb 28 2004 9:33AM not applicable
aaa_datadev1_2 160.0 MB data only
Feb 28 2004 9:33AM 28878
aaa_datadev1_3 640.0 MB data only
Feb 28 2004 9:33AM 167460
aaa_datadev1_3 160.0 MB log only
Feb 28 2004 9:33AM not applicable
aaa_datadev1_4 160.0 MB log only
Feb 28 2004 9:33AM not applicable
aaa_datadev1_4 640.0 MB data only
Feb 28 2004 9:33AM 118400
aaa_datadev1_5 2000.0 MB data only
Feb 28 2004 9:33AM 593146
aaa_logdev1 320.0 MB data only
Feb 28 2004 9:33AM 25534
aaa_logdev1_1 320.0 MB data only
Feb 28 2004 9:33AM 24272
aaa_logdev1_2 320.0 MB data only
Feb 28 2004 9:33AM 58662
aaa_datadev1_6 2000.0 MB data only
Feb 28 2004 9:33AM 296220
aaa_datadev1_7 1000.0 MB data only
Jan 24 2005 1:56PM 107844
aaa_datadev1_8 500.0 MB data only
Jan 31 2005 12:46PM 179498
aaa_datadev1_9 1000.0 MB data only
Nov 4 2005 3:11PM 367680
aaa_datadev1_9 500.0 MB data only
Aug 22 2006 1:04PM 283780
aaa_datadev1_8 500.0 MB data only
Dec 18 2006 9:12AM 510000
aaa_datadev1_1 1000.0 MB data and log
Feb 13 2007 7:48AM 1020000

--------------------------------------------------------------
log only free kbytes = 497734
Daniel.gil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2007, 13h18   #5
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
Je vois que c'est du Triple A - application que je supporte aussi :-)

Il devrait être possible de faire un sp_dropsegment logsegment pour ce device. Cependant cette commande doit être faite en mode "single-user".

S'il s'agit d'une base de production je suggère un appel au tech-support Sybase.

On peut aussi placer le mode "trunc. log on checkpoint" temporairement jusqu'à ce que le problème soit résolu.

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 16/02/2007, 13h23   #6
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
En faisant un peu de recherche supplémentaire j'ai trouvé ce qui suit, posté par Bret Halford de Sybase Tech Support:
First, drop the log segment from data_2 using sp_dropsegment
this will prevent future allocations of log extents on this device

Then do some logged activity in the database - enough to fill the
current extent of the log (i.e. grow syslogs by 8 pages).
this will cause the log to allocate a new extent, and the log device
will be the only device with the log segment, so it will be allocated there

Then dump tran with truncate_only
this will clean out the existing extents on the data device.

then take a full database dump.
this gives you a fresh starting point with all these changes done, and
lets you take tran dumps if you wish to do that.
Ce qui semble indiquer que la méthode que je suggère doit marcher.

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 16/02/2007, 13h47   #7
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
Merci beaucoup pour la réponse je vais essayer cette manière

Daniel
Daniel.gil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 08h46   #8
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
J'ai obtenu la fenêtre de mainenance ce week-end et le déplacement des segments s'est bien déroulée selon le processus de Bret Halford.

J'ai quand même un petit soucis, la proc sp_helpdb me montre une taille de la db de 15300MB alors que Sybase Central m'indique une taille de segment de 13700MB.

Est-ce que le transfert des segments logs en segments data ne s'est pas déroulé correctement ? ou aurais-je oublié qque chose ?

Merci encore pour votre aide
Daniel.gil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 09h49   #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
Il faudrait faire un "sp_helpsegment" dans la base aaamaindb pour bien voir quel est le "mapping" des segments et des devices.

P.ex.

Code :
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
 
[25] MADB_SQL.aaamaindb.1> sp_helpsegment;
 segment name                           STATUS
 ------- ------------------------------ ------
       0 system                              0
       1 DEFAULT                             1
       2 logsegment                          0
       3 maindb_data_seg1                    0
       4 maindb_idx_seg1                     0
 
(RETURN STATUS = 0)
[27] MADB_SQL.aaamaindb.1> sp_helpsegment maindb_data_seg1; 
 segment name                           STATUS
 ------- ------------------------------ ------
       3 maindb_data_seg1                    0
 
 device                         size                   free_pages
 ------------------------------ ---------------------- -----------
 aaamaindb01_dat                12000.0MB                    24155
 aaamaindb02_dat                12000.0MB                     8078
 aaamaindb03_dat                12000.0MB                   676639
 aaamaindb04_dat                8000.0MB                     13431
 
 table_name                     index_name                     indid
 ------------------------------ ------------------------------ ------
 acc_period                     acc_period                          0
 acc_period                     acc_period_uk_idx                   4
 acc_period_param               acc_period_param                    0
....
Ce qui devrait te permettre de voir si le mapping entre le segment et les devices est celui que tu escomptes.

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 26/02/2007, 13h49   #10
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
Salut Michael,

Ben... Le mapping a l'air d'être correct.

Un exemple : le device aaa_datadev1_1 a une grandeur de 1800MB. L'allocation au segment data n'est que de 1480MB car il y avait un segment log de 320MB que j'ai droppé hier.

Mais ces 320MB ainsi libérés n'ont pas été réalloués au segment des données

Code :
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
1>sp_helpdevice aaa_datadev1_1
2>go
 aaa_datadev1_1                 /sgdatabases/advantage/sgaaamaindb.dat_1
         special, dsync on, physical disk, 1800.00 MB                                                                       

1> sp_helpsegment
2> go
 segment name                           status
 ------- ------------------------------ ------
       0 system                              0
       1 default                             1
       2 logsegment                          0
       3 aaadb_data_seg1                     0
       4 aaadb_idx_seg1                      0
1> sp_helpsegment aaadb_data_seg1
2> go
 segment name                           status
 ------- ------------------------------ ------
       3 aaadb_data_seg1                     0
 device                         size                   free_pages
 ------------------------------ ---------------------- -----------
 aaa_datadev1                   2000.0MB                     80654
 aaa_datadev1_1                 1480.0MB                    537124
 aaa_datadev1_2                 480.0MB                      89389
 aaa_datadev1_3                 640.0MB                      57270
 aaa_datadev1_4                 640.0MB                      19147
 aaa_datadev1_5                 2000.0MB                    283595
 aaa_datadev1_6                 2000.0MB                    348502
 aaa_datadev1_7                 1000.0MB                     89388
 aaa_datadev1_8                 1000.0MB                    279500
 aaa_datadev1_9                 1500.0MB                    225233
 aaa_logdev1                    320.0MB                      31431
 aaa_logdev1_1                  320.0MB                       4890
 aaa_logdev1_2                  320.0MB                      39513
 table_name                     index_name                     indid
 ------------------------------ ------------------------------ ------
 acc_period                     acc_period                          0
 acc_period                     acc_period_uk_idx                   4
 acc_period_param               acc_period_param                    0
....
Daniel.gil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 15h53   #11
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
Hmmm, bizare.

Il doit y avoir une allocation autre sur ce device qui occupe la place.

Que donne:
Code :
1
2
 
SELECT s.* FROM sysusages s, sysdevices d WHERE s.vstart BETWEEN d.low AND d.high AND d.name = 'aaa_datadev_1_1'
Par exemple, moi j'ai qqch comme ceci:
Code :
1
2
3
4
5
 
 dbid   segmap      lstart      size        vstart      pad    unreservedpgs crdate
 ------ ----------- ----------- ----------- ----------- ------ ------------- -------------------
      4          11           0     2048000   100663298   NULL         15902 Sep 29 2006  4:10AM
      4          11     9728000     1024000   104759298   NULL          9747 Sep 29 2006  4:10AM
Où le "size" est la taille en page (4k dans mon cas), cad 12000MB...

Michael

(2 rows affected)
[/code]
__________________
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 27/02/2007, 10h54   #12
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
Voilà le résultat de la requète :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
1> SELECT s.* FROM sysusages s, sysdevices d WHERE s.vstart BETWEEN d.low AND d.high AND d.name = 'aaa_datadev1_1'
2> go
 dbid   segmap      lstart      size        vstart      pad    unreservedpgs
         crdate
 ------ ----------- ----------- ----------- ----------- ------ -------------
         --------------------------
      5           0     1024000      163840    50331650   NULL        163200
                Feb 28 2004  9:33AM
      5          27     1187840      245760    50495490   NULL         18273
                Feb 28 2004  9:33AM
      5          27     6993920      512000    50741250   NULL        510000
                Feb 13 2007  7:48AM
Ce sont des pages de 2k, donc 1800MB
Daniel.gil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h16   #13
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
On note que le "segmap" de la première ligne est à 0. Tu dois pouvoir faire la chose suivante:
Code :
1
2
3
4
5
6
7
8
9
10
 
sp_configure 'allow update', 1
go
begin transaction
UPDATE sysusages SET segmap = 27 WHERE dbid=5 AND lstart=1024000 AND segmap=0
go
-- vérifier que la bonne ligne a été updatée via un select...
-- si c'est OK, on commit
commit
go
et faire une relance du dataserver.

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 01/03/2007, 12h27   #14
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
Merci beaucoup Michael pour ton aide très précieuse. Il me reste maintenant à obtenir une nouvelle fenêtre de maintenance
Daniel.gil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h09.


 
 
 
 
Partenaires

Hébergement Web