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

Adaptive Server Enterprise Sybase Discussion :

[ASE 15.0.2] database load segments devices


Sujet :

Adaptive Server Enterprise Sybase

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Par défaut [ASE 15.0.2] database load segments devices
    Bonjour
    j'ai besoin d'effectuer un "load" à partir d'une base ci-dessous:
    create database xxx on xxx_data1 = 3072, xxx_log = 2048
    log on xxx_data1 = 1024
    with override
    Dans cette base, suite à une erreur d'administration, les data et le log se retrouvent sur le même device.

    La base cible est:
    create database yyy
    on yyy_data1="5G"
    log on yyy_log="2G"
    go
    Suite à un load classique, la structure de la base "yyy" devient identique que celle de base "xxx":
    Comment arriver à regrouper les data sur yyy_data1 et basculer le log sur yyy_log?

    Merci
    msomso
    P.S.
    En raison du nombre de tables existant dans la base, je cherche une autre solution que bcp.

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2003
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2003
    Messages : 148
    Par défaut
    As-tu essayer sybmigrate ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Par défaut
    Bonjour,
    je n'ai jamais utilisé sybmigrate.
    Je vais essayer de le tester.
    Sinon, il existe peut être une autre solution (plus simple ) ?
    Merci
    msomso

  4. #4
    Membre Expert

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Par défaut
    Attention: ne faire ce qui suit que si un backup existe!!!

    Première chose à faire - un select * from master..sysusages pour la base en question.

    qqch du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select * from master..sysusages u
    join master..sysdevices d
    on d.vdevno = u.vdevno
     where u.dbid = db_id('ma_base')
    Ensuite - je pense qu'on peut mettre segmap à 7 pour tous les fragments, puis exécuter sp_logdevice pour déplacer la log vers le device approprié.

    Ensuite les nouvelles allocations de log devraient aller sur le nouveau device...

    CAVEAT: je n'ai pas fait ce genre d'opération moi-même, et cela pourrait tout à fait ne pas marcher.

    Michael

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Par défaut
    Bonjour Michael
    en disant "pour la base en question", penses-tu à la base cible (chargée via load et avec des segments "reformatés" à l'identique de source) ?
    Autrement dit, cette intervention est-elle à faire avant ou après le chargement ?

    Sinon je joins le résultat du SELECT proposé dans un fichier res.xls

    D'après ce résultat, la colonne segmap prend la valeur 3 pour les data et 4 pour le log.
    Pourquoi, et pour quels "fragments", la mettre selon toi à "7" ?
    je pense qu'on peut mettre segmap à 7 pour tous les fragments
    Pourrais-tu me préciser davantage les étapes à suivre ?

    Merci
    msomso

  6. #6
    Membre Expert

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Par défaut
    En fait il y a deux possibilités:

    1) recréer la base cible avec les fragments dans le bon ordre. Cela devrait être qqch du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    create database <nom> on armen_data1 = '1024M'
    log on armen_log = '1024m'
    alter database <nom> on armen_data1 = <reste du data voulu>
    alter database <nom> log on armen_log = <reste du log voulu>
    et ensuite faire un load database. Cela va faire qu'on aura quand même plusieurs fragments, mais les fragments seront sur les bon devices.

    2) Bidouiller les tables systèmes de la base cible:

    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
     
    sp_configure 'allow up', 1
    go
    begin tran
    update sysusages set segmap = 7 where dbid = 5
    go
    -- faire un select pour vérifier que l'update a bien touché les bonnes
    -- lignes....
    -- si tout est OK:
    commit
    sp_configure 'allow up', 0
    go
    sp_dboption <ma_base>, 'single user', true
    go
    sp_logdevice <ma_base>, 'armen_log'
    go
    Maintenant les NOUVELLES allocations de log vont aller sur le device 'armen_log'. Si il y a des pages "data" qui sont allouées sur armen_log celles-ci n'auront pas été déplacées par cette opération. Pour s'assurer que tout est au bon endroit on peut dropper et recréer les "clustered" indexes, ce qui a pour effet de recopier la table au bon endroit. Note que d'après le res.xls le device armen_log semble vide, donc ce dernier step ne devrait pas être nécessaire.

    Je répéte: je n'ai pas eu l'occasion de faire ce genre de chose très souvent, donc je ne garantis pas que cela va marcher!!!

    Michael

Discussions similaires

  1. [ASE 15.0.2] dump load entre FS et RAW devices
    Par msomso dans le forum Adaptive Server Enterprise
    Réponses: 8
    Dernier message: 28/10/2010, 08h59
  2. RESTORE DATABASE (Loading)
    Par limto dans le forum Administration
    Réponses: 1
    Dernier message: 14/10/2008, 12h26
  3. [ASE] Comment faire un simple LOAD TABLE ?
    Par L_M_3 dans le forum Sybase
    Réponses: 3
    Dernier message: 19/02/2007, 10h11
  4. Réponses: 14
    Dernier message: 26/07/2006, 11h53

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