DB2® : activation du support de la réplication de données haute disponibilité

Facultatif : To prevent data loss on DB2®, modify the JCR schema to support high availability data replication (HADR).

Avant de commencer

Avant d'activer HADR, utilisez l'option Transfert de base de données de l'Assistant de configuration pour transférer vos données depuis Apache Derby vers DB2®.

Pourquoi et quand exécuter cette tâche

Conseil : Lisez les conseils suivants avant d'activer le support de la réplication de données haute disponibilité :
  • N'attribuez PAS la valeur true à la propriété personnalisée enableClientAffinitiesList. Ce réglage n'est pas nécessaire avec les nouvelles versions de DB2®. Attribuer la valeur true à cette propriété dans DB2® 10.1 aurait pour conséquence que SEULS les serveurs figurant dans la liste des serveurs de remplacement (autres serveurs) seraient utilisés pour la connexion à la base de données.
  • db2inst1 et lcuser doivent avoir chacun le même mot de passe sur les deux serveurs DB2®.

Procédure

  1. Arrêtez le serveur de portail. Selon votre environnement, vous aurez peut-être plusieurs serveurs de portail à arrêter.
  2. Sauvegardez la base de données JCR. La tâche reconfigure-jcr-for-hadr modifie le schéma JCR de manière définitive.
  3. Ouvrez une invite de commande et accédez au répertoire wp_profile_root\ConfigEngine.
  4. Exécutez la tâche reconfigure-jcr-for-hadr afin de convertir les colonnes NOT LOGGED BLOB (Binary Large Object) de la table ICMUTMWIDE0 en colonnes du type LOGGED BLOB.
    Remarque : Pour les environnements de cluster, exécutez cette tâche à partir d'un nœud uniquement.
    • AIX® HP-UX Linux Solaris: ./ConfigEngine.sh reconfigure-jcr-for-hadr -DTransferDomainList=jcr -DWasPassword=password
    • Windows : ConfigEngine.bat reconfigure-jcr-for-hadr -DTransferDomainList=jcr -DWasPassword=password
  5. Démarrez le serveur du portail.
  6. Effectuez les étapes suivantes sur les bases de données primaires :
    1. Ajoutez les ports pour chaque base de données de portail et pour les deux serveurs de base de données dans le fichier /etc/services :
      
      DB2_db2inst1      60000/tcp
      DB2_db2inst1_1    60001/tcp
      DB2_db2inst1_2    60002/tcp
      DB2_db2inst1_END  60003/tcp
      db2c_db2inst1     50000/tcp
      DB2_HADR_COM_1    50003/tcp
      DB2_HADR_COM_2    50004/tcp
      DB2_HADR_JCR_1    50005/tcp
      DB2_HADR_JCR_2    50006/tcp
      DB2_HADR_LIK_1    50007/tcp
      DB2_HADR_LIK_2    50008/tcp
      DB2_HADR_FEE_1    50009/tcp
      DB2_HADR_FEE_2    50010/tcp
      DB2_HADR_REL_1    50011/tcp
      DB2_HADR_REL_2    50012/tcp
      DB2_HADR_CUS_1    50013/tcp
      DB2_HADR_CUS_2    50002/tcp

      DB2_HADR_DB_1 représente une base de données sur le serveur principal. DB2_HADR_DB_2 représente une base de données sur le serveur de secours.

    2. Pour chaque base de données de portail, exécutez la commande suivante afin d'activer l'archivage des journaux dans la base de données :
      db2 update db cfg for DBNAME using LOGARCHMETH1 LOGRETAIN

      Les journaux archivés sont stockés dans le répertoire des journaux (log). Les bases de données sont placées dans l'état "sauvegarde en attente", ce qui est requis pour le serveur de secours.

    3. Exécutez la commande suivante pour chaque base de données du portail afin d'en créer une sauvegarde hors ligne :
      db2 "backup database DBNAME"
    4. Entrez les commandes suivantes pour configurer les paramètres HADR :
      db2 update db cfg for DBNAME using HADR_LOCAL_HOST IP_ADDRESS_OF_PRIMARY
      db2 update db cfg for DBNAME using HADR_LOCAL_SVC PORT_NUMBER_OF_PRIMARY
      db2 update db cfg for DBNAME using HADR_REMOTE_HOST IP_ADDRESS_OF_STNDBY
      db2 update db cfg for DBNAME using HADR_REMOTE_SVC PORT_NUMBER_OF_STNDBY
      db2 update db cfg for DBNAME using HADR_REMOTE_INST INSTNAME_OF_STNDBY
      db2 update db cfg for DBNAME using HADR_TIMEOUT 120
      db2 update db cfg for DBNAME using HADR_SYNCMODE NEARSYNC
      db2 update db cfg for DBNAME using HADR_SPOOL_LIMIT 0
      db2 update db cfg for DBNAME using HADR_REPLAY_DELAY 0
      db2 update db cfg for DBNAME using HADR_PEER_WINDOW 0
      db2 update db cfg for DBNAME using LOGINDEXBUILD ON
      Par exemple:
      db2 update db cfg for COM85DB using HADR_LOCAL_HOST psvtclc08.rtp.raleigh.ibm.com
      db2 update db cfg for COM85DB using HADR_LOCAL_SVC 50003
      db2 update db cfg for COM85DB using HADR_REMOTE_HOST 9.37.17.237
      db2 update db cfg for COM85DB using HADR_REMOTE_SVC 50004
      db2 update db cfg for COM85DB using HADR_REMOTE_INST db2inst1
      db2 update db cfg for COM85DB using HADR_TIMEOUT 120
      db2 update db cfg for COM85DB using HADR_SYNCMODE NEARSYNC
      db2 update db cfg for COM85DB using HADR_SPOOL_LIMIT 0
      db2 update db cfg for COM85DB using HADR_REPLAY_DELAY 0
      db2 update db cfg for COM85DB using HADR_PEER_WINDOW 0
      db2 update db cfg for COM85DB using LOGINDEXBUILD ON
    5. Entrez la commande suivante pour mettre à jour le catalogue de base de données avec les informations de serveur de remplacement (alternate server) :
      UPDATE ALTERNATE SERVER FOR DATABASE database USING HOSTNAME hostname PORT instance_portnumber
      Par exemple:
      db2 UPDATE ALTERNATE SERVER FOR DATABASE COM85DB USING HOSTNAME 9.37.17.237 PORT 50000
    6. Exécutez la commande suivante pour chaque base de données du portail afin d'en créer une sauvegarde hors ligne :
      db2 "backup database DBNAME"
  7. Effectuez les étapes suivantes sur les bases de données de secours :
    1. Assurez-vous que le serveur principal et le serveur de secours sont au même niveau DB2® afin d'éviter tout désaccord. Exécutez la commande db2level sur les deux serveurs pour vérifier qu'ils sont au même niveau DB2® (version et groupe de correctif).
    2. Add ports for each portal database and for both database servers in the /etc/services file:
      
      DB2_db2inst1      60000/tcp
      DB2_db2inst1_1    60001/tcp
      DB2_db2inst1_2    60002/tcp
      DB2_db2inst1_END  60003/tcp
      db2c_db2inst1     50000/tcp
      DB2_HADR_COM_1    50003/tcp
      DB2_HADR_COM_2    50004/tcp
      DB2_HADR_JCR_1    50005/tcp
      DB2_HADR_JCR_2    50006/tcp
      DB2_HADR_LIK_1    50007/tcp
      DB2_HADR_LIK_2    50008/tcp
      DB2_HADR_FEE_1    50009/tcp
      DB2_HADR_FEE_2    50010/tcp
      DB2_HADR_REL_1    50011/tcp
      DB2_HADR_REL_2    50012/tcp
      DB2_HADR_CUS_1    50013/tcp
      DB2_HADR_CUS_2    50002/tcp

      DB2_HADR_DB_1 représente une base de données sur le serveur principal. DB2_HADR_DB_2 represents a database on the standby server.

    3. Copiez les images de sauvegarde du serveur principal vers le serveur de secours.
    4. Exécutez la commande suivante pour restaurer la base de données :
      db2 "restore database DBNAME"
    5. Entrez les commandes suivantes pour configurer les paramètres HADR :
      db2 update db cfg for DBNAME using HADR_LOCAL_HOST IP_ADDRESS_OF_STNDBY
      db2 update db cfg for DBNAME using HADR_LOCAL_SVC PORT_NUMBER_OF_STNDBY
      db2 update db cfg for DBNAME using HADR_REMOTE_HOST IP_ADDRESS_OF_PRIMARY
      db2 update db cfg for DBNAME using HADR_REMOTE_SVC PORT_NUMBER_OF_PRIMARY
      db2 update db cfg for DBNAME using HADR_REMOTE_INST INSTNAME_OF_PRIMARY
      db2 update db cfg for DBNAME using HADR_TIMEOUT 120
      db2 update db cfg for DBNAME using HADR_SYNCMODE NEARSYNC
      db2 update db cfg for DBNAME using HADR_SPOOL_LIMIT 0
      db2 update db cfg for DBNAME using HADR_REPLAY_DELAY 0
      db2 update db cfg for DBNAME using HADR_PEER_WINDOW 0
      db2 update db cfg for DBNAME using LOGINDEXBUILD ON
      Par exemple:
      db2 update db cfg for COM85DB using HADR_LOCAL_HOST 9.37.17.237
      db2 update db cfg for COM85DB using HADR_LOCAL_SVC 50004
      db2 update db cfg for COM85DB using HADR_REMOTE_HOST psvtclc08.rtp.raleigh.ibm.com
      db2 update db cfg for COM85DB using HADR_REMOTE_SVC 50003
      db2 update db cfg for COM85DB using HADR_REMOTE_INST db2inst1
      db2 update db cfg for COM85DB using HADR_TIMEOUT 120
      db2 update db cfg for COM85DB using HADR_SYNCMODE NEARSYNC
      db2 update db cfg for COM85DB using HADR_SPOOL_LIMIT 0
      db2 update db cfg for COM85DB using HADR_REPLAY_DELAY 0
      db2 update db cfg for COM85DB using HADR_PEER_WINDOW 0
      db2 update db cfg for COM85DB using LOGINDEXBUILD ON
    6. Entrez la commande suivante pour mettre à jour le catalogue de base de données avec les informations de serveur de remplacement (alternate server) :
      UPDATE ALTERNATE SERVER FOR DATABASE database USING HOSTNAME hostname PORT instance_portnumber
      Par exemple:
      db2 UPDATE ALTERNATE SERVER FOR DATABASE COM85DB USING HOSTNAME psvtclc08.rtp.raleigh.ibm.com PORT 50000
    7. Exécutez la commande suivante pour démarrer HADR sur le serveur de secours pour chaque base de données du portail :
      db2 start hadr on database DBNAME as standby
  8. Effectuez les étapes suivantes sur le serveur principal :
    1. Exécutez la commande suivante pour activer la base de données :
      db2 activate database DBNAME
    2. Exécutez la commande suivante pour chaque base de données du portail afin de démarrer la fonctionnalité HADR :
      db2 start hadr on database DBNAME as primary
  9. Exécutez la commande suivante pour vérifier que la fonctionnalité HADR est lancée :
    db2pd -db DBNAME -hadr
  10. Effectuez les étapes suivantes pour configurer les connexions JDBC IBM® WebSphere® Application Server :

    Accédez à la Foire aux questions : Comment configurer le pilote JDBC pour le réacheminement automatique du client, option 2, pour plus des informations sur les dernières mises à jour.

    1. Log in to the WebSphere® Integrated Solutions Console.
    2. Accédez à Ressources > JDBC > Fournisseurs JDBC > wpdbJDBC_db2 > Sources de données > JCR85DBLADS > Propriétés de la source de données WebSphere Application Server.
    3. Allez à la section Fonctions DB2 avancées.
    4. Vérifiez que la configuration suivante est en vigueur :
      • Intervalle entre les tentatives de redirection du client : entrez un minimum de 5 secondes.
      • Nombre maximal de tentatives de redirection du client : entrez un minimum de 3.
      • Autres noms de serveur : entrez un serveur de remplacement.
      • Autres numéros de port : entrez, par exemple, 50000.
    5. Sauvegardez vos modifications.
    6. Redémarrez les serveurs d'application WebSphere® Application Server.
    7. Validez la connexion en la testant avec chaque source de données.