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

Administration Oracle Discussion :

Tentative de configuration de standby


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 200
    Par défaut Tentative de configuration de standby
    Bonjour

    J'ai testé sur mon petit pc perso de créer une base de secours a l aide de 2 tutos, l un présent dans les officiels de ce site et le second trouvé dans les forums (je n arrive d ailleurs plus a retrouver le post ce qui m embête bien)

    D'ailleurs une phrase me trouble dans le tuto officiel : Si une base de secours est activée, elle ne pourra revenir dans son état précédent

    Cela signifie que si la primary crash, la secondary passera primary "a vie" et que l on doit tout reconfigurer pour que le procces de standby soit a nouveau en place ?


    sinon j'ai suivi ces étapes

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    Mise en place d'une base standby
     
    SGBD: Oracle 9
    SE: windows 2000 server
    architecture matérielle: les deux bases (primaires et standby) sont sur le même serveur.
    (Normalement le but d'une standby est de garder les données en cas de désastre sur la base primaire, donc les deux bases ne doivent pas être sur le même pc ni dans la même salle ou région. Il ne s'agit ici que d'un test)
     
    Citation:
    Les commentaire (précédé de //) ne doivent pas être recopiés.
    Les paramètres entre <> doivent remplacé par vos paramètres personnels.
    Citation:
    La solution expliquée ici utilise les archivelogs. Ainsi les archivelogs de la base primaire sont envoyés sur la base standby et elle modifiée à partir de ces fichiers. Il existe d'autre solutions.
    ! La base primaire doit donc être en mode archivelog automatique.
    Il ne faut pas créer la base standby à l'avance, mais il serait bon d'avoir déjà créé les différents dossiers permettant de l'acceuillir.
     
    - Créer un fichier de contrôle standby pour la base standby (sur la base primaire):
     
    Code :
     
    ALTER DATABASE CREATE standby controlfile AS ‘<chemin complet pour le fichier de contrôle avec le nom de fichier>’ ; //pour ma part le chemin est le répertoire de base de la standby (ou se trouve habituellement le(s) controlfile(s))
     
    - Copie des fichiers .dbf de la base primaire vers le site standby
     
    - Modification de tnsnames.ora et listener.ora :
    (Ces deux fichiers se trouvent dans oracle_home>/network/admin/)
     
    Pour tnsnames.ora :
    Code :
     
    <NOM BASE STANDBY>.WORLD =
      (DESCRIPTION =
      	(ADDRESS_LIST =
      		(ADDRESS = (PROTOCOL = TCP)(HOST = <nom du serveur>)(PORT = <port oracle>))
        	)
        	(CONNECT_DATA =
          		(SERVER = DEDICATED)
          		(SERVICE_NAME = <nom base standby>)
        	)
      )
     
    pour listener.ora :
    Code :
     
    (SID_DESC =
    (GLOBAL_DBNAME = <???>)
    (ORACLE_HOME = <???>)
    (SID_NAME = <???>)
    )
     
    - Copier l’init<sid>.ora de la base primaire sur la standby.Renommer celui-ci. Cela permet de ne pas tous se retaper à 0 pour l'inti<sid> de la standby.
     
    - Modifier l'init<sid>.ora de la standby pour que les chemins des différents fichier soient ceux de la base standby. (par exemple changer le chemin du fichier de contrôle vers celui que vous avez créer précedement).
     
    - Ajouter les lignes suivantes à l'init<sid>.ora de la standby:
     
    Code :
     
    db_name=<nom de la base primaire>;      //ce paramètre existe déjà, vérifiez le. 		
    lock_name_space=<nom de la base standby>		//si les deux sont sur la même machine
    standby_archive_dest=<chemin du dossier archivelogs>
    fal_client=<nom de la base standby>
    fal_server=<nom de la base standby>
    db_file_name_convert=(‘<dossier des fichiers .dbf sur la base primaire>’,’<idem sur la standby>’)
    log_file_name_convert=(‘<dossier des redologs sur la base primaire>’,'<idem sur la standby>’)
     
    - Ajouter les lignes suivantes à l’init<sid>.ora de la base primaire :
     
    Code :
     
    log_archive_dest_2 = "service=<nom base standby> MANDATORY arch affirm" //mandatory signifie obligatoire
    log_archive_dest_state_2 = enable
     
    - Copier l'init<sid>.ora de chaque base dans le dossier qui contient les init<sid>.ora de toutes les bases. (dans <oracle_home>/database).
     
    - Créer un service et le mot de passe sys:
    à éxécuter dans une fenêtre de commande windows ou dans un .bat.
     
    Code :
     
    oradim.exe -new  -sid <sid base standby> -startmode a  -pfile <chemin complet de l'init<sid>.ora de la standby>
    orapwd.exe file=<oracle_home>database\<nom désiré pour le fichier du mot de passe>.ora password=<mot de passe désiré pour sys> //le mot de passe et le nom du fichier de mot passe peuvent être changé.
     
    Pour supprimmer le service il faut taper:
     
    Code :
     
    oradim.exe -DELETE -sid <sid de la base>
     
    Pour changer le mot de passe sys il faut supprimmer le fichier créé par la commande ci dessus (orapwd) et la relancer. 
     
     
     Utilisation de la base standby
     
    - Démarer la base primaire (startup)
     
    - Démarrer la base standby :
     
    Code :
     
    Startup nomount;
    ALTER DATABASE mount standby DATABASE;
     
    - Mise en marche de la récupération automatique :
     
    Code :
     
    ALTER DATABASE recover managed standby DATABASE;
     
    A partir de ce moment la base standby est modifiée par les changements effectués sur la base primaire.
    De plus vous n'avez plus la main. Pour ne pas geler la session, il faut plutôt taper:
     
    Code :
     
    ALTER DATABASE recover managed standby DATABASE disconnect FROM session;
     
    - Faire passer un archivelogs entre les deux bases (sur la base primaire)
     
    Code :
     
    ALTER system switch logfile ;
     
    Un archivelog apparait sur le site standby.
    Ainsi la route est tracée, les modifications effectuées sur la base primaire pourront être visible sur la base standby. Cependant il faudra que la transaction (de la base primaire) ai été validée (commit) et qu'un archivelog soit passé entre les deux bases (cela peut être forcé par la commande si dessus)..
     
    - Pour lire la base standby :
     
    Code :
     
    ALTER DATABASE recover managed standby DATABASE cancel;
    ALTER DATABASE open READ only;
     
    Vous pouvez ainsi effectuer des select sur la standby.
    A ce moment la base standby reçoit toujours les archivelogs mais n'est plus modifiée; elle le sera de nouveau aprés avoir retapé la commande:
     
    Code :
     
    ALTER DATABASE recover managed standby DATABASE;
    Et aucune replication ne semble se faire présence d'aucun fichier d'archivage dans l arbo de la standby

    Init.ora de la Primary (SID = GD)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    log_archive_dest_2 = "service=GD2 MANDATORY arch affirm"
    log_archive_dest_state_2 = enable
    Init.ora de la secondary (SID = GD2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    db_name=GD
    instance_name=GD2
    lock_name_space=GD2
    standby_archive_dest=D:\oracle\oradata\GD2\arch
    fal_client=GD2
    fal_server=GD2
    db_file_name_convert=(‘D:\oracle\oradata\GD’,’D:\oracle\oradata\GD2’)
    log_file_name_convert=(‘D:\oracle\oradata\GD’,’D:\oracle\oradata\GD2’) 
    control_files=("D:\oracle\oradata\GD2\STBDB.CTL")

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Par défaut
    Bonjour Guigsounet,
    Cela signifie que si la primary crash, la secondary passera primary "a vie" et que l on doit tout reconfigurer pour que le procces de standby soit a nouveau en place ?
    Ca dépend de la version utilisé. C'est vrai pour Oracle 9i, si tu la passes Primary, la Standby devra être reconstruite. De plus, pour une petite base, c'est bien souvent plus simple et plus rapide de la reconstruire. Le trafic réseau nécessaire à la resynchronisation doit aussi être pris en compte en fonction du type de liaison des sites distants.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log_archive_dest_2 = "service=GD2 MANDATORY arch affirm"
    Attention à ce paramètre, car avec mandatory, si l'archivelog ne peut être transférée sur le site de la Standby, alors la Primaire se bloque tant que cette derniere n'a pu être transférée.
    Et aucune replication ne semble se faire présence d'aucun fichier d'archivage dans l arbo de la standby
    Peux-tu donner plus de détail pour qu'on puisse t'aider à construire ta Standby, comme les éventuelles erreurs rencontrées ?


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 200
    Par défaut
    L'installation se passe apriori bien (aucun message d'erreur)

    Puis je me connecte sur ma Base 1, j'aoute une ligne dans une table
    Dans le répertoire configuré pour réceptionner les arch rien pas de fichiers

    je retourne sur la Standby
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> select * from HR.Departments ;
    select * from HR.Departments
                     *
    ERREUR Ó la ligne 1 :
    ORA-01219: BdD fermÚe : demandes seulement autorisÚes sur tables/vues fixes
    Ce qui est tout a fait normal

    Je passe donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE recover managed standby DATABASE cancel;
    qui me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-16136: Managed Standby Recovery inactif
    Je repasse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE recover managed standby DATABASE disconnect FROM session;
    refais un witch de log sur la Primary repasse le cancel meme message

    Je tente donc le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE recover managed standby DATABASE;
    Mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ERREUR Ó la ligne 1 :
    ORA-00283: session de recuperation annulee pour cause d'erreurs
    ORA-01110: fichier de donnees 1 : 'D:\ORACLE\ORADATA\NEMROD\SYSTEM01.DBF'
    ORA-01157: impossible d'identifier ou de verrouiller le fichier de donnees
    voir le fichier de trace DBWR
    ORA-01110: fichier de donnees 1 : 'D:\ORACLE\ORADATA\NEMROD\SYSTEM01.DBF'
    Nemrod etant le nom de ma primary

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Par défaut
    Guigsounet,

    Peux-tu joindre tes deux fichiers d'alerte ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 200
    Par défaut
    le zip contient les 2 alerts log
    Nemrod rimary
    et bastion : Standby
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Par défaut
    Guigsounet,

    Les fichiers d'alerte indiquent que tes deux instances pointent sur les mêmes fichiers de données :

    - nemrodALRT.LOG :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DATAFILE 'D:\oracle\oradata\Nemrod\system01.dbf' SIZE 325M REUSE AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED
    UNDO TABLESPACE "UNDOTBS" DATAFILE 'D:\oracle\oradata\Nemrod\undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT  5120K MAXSIZE UNLIMITED
    .
    .
    - bastionALRT.LOG
    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
    Errors in file D:\oracle\admin\Bastion\bdump\bastionDBW0.TRC:
    ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
    ORA-01110: data file 1: 'D:\ORACLE\ORADATA\NEMROD\SYSTEM01.DBF'
    ORA-27086: skgfglk: unable to lock file - already in use
    OSD-04002: ouverture impossible du fichier
    O/S-Error: (OS 5) Accès refusé.
     
    Sun May 16 14:01:37 2010
    Errors in file D:\oracle\admin\Bastion\bdump\bastionDBW0.TRC:
    ORA-01157: cannot identify/lock data file 2 - see DBWR trace file
    ORA-01110: data file 2: 'D:\ORACLE\ORADATA\NEMROD\UNDOTBS01.DBF'
    ORA-27086: skgfglk: unable to lock file - already in use
    OSD-04002: ouverture impossible du fichier
    O/S-Error: (OS 5) Accès refusé.
    .
    .
    Comme tu peux le voir, lors du démarrage, ta base Standby veut utiliser les fichiers de données (system, undo, ...) de la base Primaire.

    Détail les étapes suivies pour la création de la Standby.


Discussions similaires

  1. Configuration bdd standby grid
    Par ricoflashfire dans le forum Administration
    Réponses: 0
    Dernier message: 05/03/2010, 11h50
  2. Configuration BDD standby avec grid control
    Par ricoflashfire dans le forum Administration
    Réponses: 0
    Dernier message: 29/12/2009, 10h41
  3. Réponses: 1
    Dernier message: 30/10/2009, 14h07
  4. [9iR2] Configuration de listener pour une base standby
    Par heffer69 dans le forum Oracle
    Réponses: 1
    Dernier message: 30/01/2006, 16h58
  5. BDE : Configurer automatiquement le NETDIR
    Par Harry dans le forum Paradox
    Réponses: 10
    Dernier message: 29/07/2002, 11h33

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