IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sybase Discussion :

[BCK]Problème dump transaction


Sujet :

Sybase

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Points : 8
    Points
    8
    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

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 293
    Points : 182
    Points
    182
    Par défaut
    drop ton device et reconstruis le device en deux un log et un data.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    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

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    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

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    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

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    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

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup pour la réponse je vais essayer cette manière

    Daniel

  8. #8
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    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

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    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 : 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
     
    [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

  10. #10
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    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 : 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
    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
    ....

  11. #11
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Hmmm, bizare.

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

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

  12. #12
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Voilà le résultat de la requète :

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

  13. #13
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    On note que le "segmap" de la première ligne est à 0. Tu dois pouvoir faire la chose suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  14. #14
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup Michael pour ton aide très précieuse. Il me reste maintenant à obtenir une nouvelle fenêtre de maintenance

Discussions similaires

  1. [delphi][interbase]problème de transaction
    Par daheda dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/10/2006, 10h12
  2. Problème de Transactions
    Par blaspalles dans le forum Access
    Réponses: 4
    Dernier message: 18/09/2006, 18h05
  3. problème de transaction et load data
    Par jccanut dans le forum Installation
    Réponses: 6
    Dernier message: 14/09/2006, 12h38
  4. [SQL 2k] Problème de transaction choisie comme victime
    Par Actarion dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 04/07/2006, 18h17
  5. Encore un petit problème de transaction
    Par devdev dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/03/2005, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo