Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Migrez Db2 for LUW vers Amazon EC2 avec une reprise après sinistre à haute disponibilité
Créé par Feng Cai (AWS), Aruna Gangireddy () et Venkatesan Govindan (AWS) AWS
Environnement : Production | Source : IBM DB2 pour LUW les locaux | Cible : Db2 sur Amazon EC2 |
Type R : Rehost | Charge de travail : IBM | Technologies : migration ; bases de données ; systèmes d'exploitation |
AWSservices : AWS Direct Connect ; Amazon EC2 ; Amazon S3 ; AWS Site-to-Site VPN |
Récapitulatif
Lorsque les clients migrent leur charge de travail IBM DB2 LUW (Linux et Windows) vers Amazon Web Services (AWS), l'utilisation d'Amazon Elastic Compute Cloud (AmazonEC2) avec le modèle Bring Your Own License (BYOL) est le moyen le plus rapide. UNIX Cependant, la migration de grandes quantités de données depuis Db2 sur site AWS peut s'avérer difficile, en particulier lorsque la période de panne est courte. De nombreux clients essaient de fixer la fenêtre d'interruption à moins de 30 minutes, ce qui laisse peu de temps à la base de données elle-même.
Ce modèle explique comment effectuer une migration DB2 avec une courte fenêtre de panne en utilisant la reprise après sinistre à haute disponibilité de DB2 ()HADR. Cette approche s'applique aux bases de données DB2 qui se trouvent sur la plate-forme Linux Little-endian et n'utilisent pas la fonctionnalité de partitionnement des données (). DPF
Conditions préalables et limitations
Prérequis
Un AWS compte actif
Une instance Db2 exécutée sur une EC2 instance Amazon qui correspond aux configurations du système de fichiers sur site
Un compartiment Amazon Simple Storage Service (Amazon S3) accessible à l'instance EC2
Une politique et un rôle d'AWSIdentity and Access Management (IAM) pour effectuer des appels programmatiques vers Amazon S3
Fuseau horaire et horloges système synchronisés sur Amazon EC2 et sur le serveur local
Le réseau sur site connecté AWS via AWS Site-to-SiteVPNou AWSDirect Connect
Communication entre le serveur sur site et Amazon EC2 sur les ports HADR
Limites
L'instance locale Db2 et Amazon EC2 doivent appartenir à la même famille de plateformes.
HADRn'est pas pris en charge dans un environnement de base de données partitionné.
HADRne prend pas en charge l'utilisation d'E/S brutes (accès direct au disque) pour les fichiers journaux de base de données.
HADRne prend pas en charge la journalisation infinie.
LOGINDEXBUILD
doit être défini surYES
, ce qui augmentera l'utilisation du journal pour la reconstruction de l'index.
La charge de travail locale DB2 doit être enregistrée. Définissez blocknonlogged=yes
dans la configuration de la base de données pour bloquer toutes les transactions non enregistrées.
Versions du produit
Architecture
Pile technologique source
Pile technologique cible
Architecture cible
Dans le schéma suivant, Db2 on premises est exécuté en db2-server1
tant que serveur principal. Il dispose de deux cibles HADR en attente. Une cible de réserve se trouve sur site et est facultative. L'autre cible de réserve db2-ec2
se trouve sur AmazonEC2. Une fois la base de données découpée enAWS, db2-ec2
elle devient la base de données principale.
Les journaux sont transmis de la base de données locale principale vers la base de données locale de secours.
À l'aide de Db2HADR, les journaux sont transmis de la base de données principale sur site Site-to-Site VPN à Db2 sur Amazon. EC2
Les journaux de sauvegarde et d'archivage DB2 sont envoyés depuis la base de données locale principale vers le compartiment S3 le. AWS
AWSservices
AWSL'interface de ligne de commande (AWSCLI) est un outil open source qui vous permet d'interagir avec les AWS services par le biais de commandes dans votre interface de ligne de commande.
AWSDirect Connect relie votre réseau interne à un emplacement Direct Connect via un câble Ethernet à fibre optique standard. Grâce à cette connexion, vous pouvez créer des interfaces virtuelles directement vers les AWS services publics tout en contournant les fournisseurs de services Internet sur votre chemin réseau.
Amazon Elastic Compute Cloud (AmazonEC2) fournit une capacité de calcul évolutive dans le AWS cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
AWSIdentity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
AWS Site-to-SiteVPNvous permet de transférer le trafic entre les instances sur lesquelles vous lancez AWS et votre propre réseau distant.
Autres outils
Bonnes pratiques
Épopées
Tâche | Description | Compétences requises |
---|
Définissez les variables d'environnement. | Ce modèle utilise les noms et ports suivants : Nom d'hôte local DB2 : db2-server1 HADRnom d'hôte de secours : db2-server2 (s'il HADR est actuellement exécuté sur site) EC2Nom d'hôte Amazon : db2-ec2 Nom de l’instance : db2inst1 Nom de la base de données : SAMPLE HADRports : db2-server1: 50010
db2-server2: 50011
db2-ec2: 50012
Vous pouvez les adapter à votre environnement. | DBA |
Tâche | Description | Compétences requises |
---|
Configurez AWSCLI. | Pour télécharger et installer la dernière version de AWSCLI, exécutez les commandes suivantes : $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
| Administrateur Linux |
Configurez une destination locale pour les journaux d'archive DB2. | Des conditions telles que les tâches de mise à jour par lots importantes et les ralentissements du réseau peuvent entraîner un décalage du serveur de HADR secours. Pour rattraper son retard, le serveur de secours a besoin des journaux de transactions du serveur principal. La séquence des emplacements pour demander les journaux est la suivante : Le répertoire des journaux actifs sur le serveur principal L'LOGARCHMETH2 emplacement LOGARCHMETH1 ou sur le serveur de secours L'LOGARCHMETH2 emplacement LOGARCHMETH1 ou sur le serveur principal
Dans cette configuration, /db2logs est définie par LOGARCHMETH2 la source en tant que zone intermédiaire. Les journaux archivés de ce répertoire seront synchronisés dans Amazon S3 et Db2 sur Amazon y accédera. EC2 Le modèle LOGARCHMETH2 est utilisé parce qu'il a LOGARCHMETH1 peut-être été configuré pour utiliser un outil fournisseur tiers auquel la AWS CLI commande ne peut pas accéder : db2 connect to sample
db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs
| DBA |
Exécutez une sauvegarde de base de données en ligne. | Exécutez une sauvegarde de base de données en ligne et enregistrez-la dans le système de fichiers de sauvegarde local : db2 backup db sample online to /backup
| DBA |
Tâche | Description | Compétences requises |
---|
Créez un compartiment S3. | Créez un compartiment S3 pour que le serveur local envoie les images DB2 de sauvegarde et les fichiers journaux à on. AWS Le bucket sera accessible par Amazon EC2 : aws s3api create-bucket --bucket hadrmig-db2 --region us-east-1
| AWSadministrateur |
Créez une IAM politique. | Le db2bucket.json fichier contient la IAM politique d'accès au compartiment S3 : {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt",
"s3:PutObject",
"s3:GetObject",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:DeleteObject",
"s3:GetObjectVersion",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::hadrmig-db2/*",
"arn:aws:s3:::hadrmig-db2"
]
}
]
}
Pour créer la politique, utilisez la AWS CLI commande suivante : aws iam create-policy \
--policy-name db2s3hapolicy \
--policy-document file://db2bucket.json
Le JSON résultat indique le nom de ressource Amazon (ARN) pour la politique, où aws_account_id représente votre identifiant de compte : "Arn": "arn:aws:iam::aws_account_id:policy/db2s3hapolicy"
| AWSadministrateur, administrateur AWS système |
Associez la IAM politique au IAM rôle. | Généralement, l'EC2instance sur laquelle Db2 est en cours d'exécution a un IAM rôle attribué par l'administrateur système. Si aucun IAM rôle n'est attribué, vous pouvez choisir Modifier le IAM rôle sur la EC2 console Amazon. Attachez la IAM politique au IAM rôle associé à l'EC2instance. Une fois la politique attachée, l'EC2instance peut accéder au compartiment S3 : aws iam attach-role-policy --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3hapolicy" --role-name db2s3harole
| |
Tâche | Description | Compétences requises |
---|
Configurez AWS CLI sur le serveur DB2 local. | Configurez AWS CLI avec le Access Key ID et Secret Access Key que vous avez généré précédemment : $ aws configure
AWS Access Key ID [None]: *************
AWS Secret Access Key [None]: ***************************
Default region name [None]: us-east-1
Default output format [None]: json
| AWSadministrateur, administrateur AWS système |
Envoyez l'image de sauvegarde à Amazon S3. | Auparavant, une sauvegarde de base de données en ligne était enregistrée dans le répertoire /backup local. Pour envoyer cette image de sauvegarde vers le compartiment S3, exécutez la commande suivante : aws s3 sync /backup s3://hadrmig-db2/SAMPLE_backup
| AWSadministrateur, administrateur AWS système |
Envoyez les journaux d'archive DB2 à Amazon S3. | Synchronisez les journaux d'archive Db2 sur site avec le compartiment Amazon S3 auquel l'instance Db2 cible peut accéder sur Amazon : EC2 aws s3 sync /db2logs s3://hadrmig-db2/SAMPLE_LOGS
Exécutez cette commande régulièrement à l'aide de cron ou d'autres outils de planification. La fréquence dépend de la fréquence à laquelle la base de données source archive les journaux de transactions. | |
Tâche | Description | Compétences requises |
---|
Créez un PKCS12 keystore. | Db2 utilise une banque de clés de chiffrement selon les normes de chiffrement à clé publique (PKCS) pour sécuriser la AWS clé d'accès. Créez un keystore et configurez le Db2 source pour l'utiliser : gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash
db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"
| DBA |
Créez l'alias d'accès au stockage DB2. | Db2 utilise un alias d'accès au stockage pour accéder directement à Amazon S3 avec les RESTORE DATABASE commandes INGEST LOAD ,BACKUP DATABASE , ou. Parce que vous avez attribué un IAM rôle à l'EC2instance USER et que vous n'PASSWORD êtes pas obligé de : db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"
Par exemple, votre script peut ressembler à ce qui suit : db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'hadrmig-db2'"
| DBA |
Définissez la zone de transit. | Nous vous recommandons d'utiliser DB2_ENABLE_COS_SDK=ON DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore , et le lien vers la awssdk bibliothèque pour contourner la zone intermédiaire Amazon S3 pour la sauvegarde et la restauration de bases de données : #By root:
cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/
#By db2 instance owner:
db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage
db2set DB2_ENABLE_COS_SDK=ON
db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage
db2stop
db2start
| DBA |
Restaurez la base de données à partir de l'image de sauvegarde. | Restaurez la base de données cible sur Amazon EC2 à partir de l'image de sauvegarde dans le compartiment S3 : db2 create db sample on /data1
db2 restore db sample from DB2REMOTE://DB2AWSS3/hadrmig-db2/SAMPLE_backup replace existing
| DBA |
Tâche | Description | Compétences requises |
---|
Configurez le serveur DB2 local en tant que serveur principal. | Mettez à jour les paramètres de configuration de la base de données pour HADR on db2-server1 (la source locale) en tant que base principale. Réglez HADR_SYNCMODE sur SUPERASYNC le mode, qui présente le temps de réponse le plus court pour les transactions : db2 update db cfg for sample using HADR_LOCAL_HOST db2-server1 HADR_LOCAL_SVC 50010 HADR_REMOTE_HOST db2-ec2 HADR_REMOTE_SVC 50012 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully
Certains retards de réseau entre le centre de données local et le centre de données AWS sont attendus. (Vous pouvez définir une HADR_SYNCMODE valeur différente en fonction de la fiabilité du réseau. Pour plus d'informations, consultez la section Ressources connexes). | DBA |
Modifiez la destination d'archivage des journaux de la base de données cible. | Modifiez la destination d'archivage des journaux de la base de données cible pour qu'elle corresponde à EC2 l'environnement Amazon : db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/' LOGARCHMETH2 OFF
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully
| DBA |
Configurez HADR pour Db2 sur le EC2 serveur Amazon. | Mettre à jour la configuration de la base de données pour HADR db2-ec2 la mise en veille : db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully
| DBA |
Vérifiez la HADR configuration. | Vérifiez les HADR paramètres sur les serveurs Db2 source et cible. Pour vérifier l'installationdb2-server1 , exécutez la commande suivante : db2 get db cfg for sample|grep HADR
HADR database role = PRIMARY
HADR local host name (HADR_LOCAL_HOST) = db2-server1
HADR local service name (HADR_LOCAL_SVC) = 50010
HADR remote host name (HADR_REMOTE_HOST) = db2-ec2
HADR remote service name (HADR_REMOTE_SVC) = 50012
HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1
HADR timeout value (HADR_TIMEOUT) = 120
HADR target list (HADR_TARGET_LIST) =
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)
HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0
HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0
HADR SSL certificate label (HADR_SSL_LABEL) =
HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF
Pour vérifier l'installationdb2-ec2 , exécutez la commande suivante : db2 get db cfg for sample|grep HADR
HADR database role = STANDBY
HADR local host name (HADR_LOCAL_HOST) = db2-ec2
HADR local service name (HADR_LOCAL_SVC) = 50012
HADR remote host name (HADR_REMOTE_HOST) = db2-server1
HADR remote service name (HADR_REMOTE_SVC) = 50010
HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1
HADR timeout value (HADR_TIMEOUT) = 120
HADR target list (HADR_TARGET_LIST) =
HADR log write synchronization mode (HADR_SYNCMODE) = SUPERASYNC
HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)
HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0
HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0
HADR SSL certificate label (HADR_SSL_LABEL) =
HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF
Les HADR_REMOTE_SVC paramètres HADR_LOCAL_HOST HADR_LOCAL_SVC ,HADR_REMOTE_HOST , et indiquent la configuration principale et la HADR configuration de secours. | DBA |
Démarrez l'HADRinstance Db2. | Démarrez d'abord l'HADRinstance Db2 sur le serveur db2-ec2 de secours : db2 start hadr on db sample as standby
DB20000I The START HADR ON DATABASE command completed successfully.
Démarrez Db2 HADR sur le serveur db2-server1 principal (source) : db2 start hadr on db sample as primary
DB20000I The START HADR ON DATABASE command completed successfully.
La HADR connexion entre DB2 sur site et sur Amazon EC2 est désormais établie avec succès. Le serveur principal Db2 db2-server1 commence à diffuser les enregistrements du journal des transactions db2-ec2 en temps réel. | DBA |
Tâche | Description | Compétences requises |
---|
Ajoutez Db2 sur Amazon EC2 en tant que support auxiliaire. | S'il HADR est exécuté sur l'instance Db2 locale, vous pouvez ajouter Db2 sur Amazon en EC2 tant que serveur de secours auxiliaire en HADR_TARGET_LIST exécutant les commandes suivantes sur : db2-ec2 db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010|db2-server2:50011"
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
| DBA |
Ajoutez les informations de veille auxiliaire aux serveurs locaux. | Mise à jour HADR_TARGET_LIST sur les deux serveurs locaux (principal et de secours). db2-server1 Activé, exécutez le code suivant :
db2 update db cfg for sample using HADR_TARGET_LIST "db2-server2:50011|db2-ec2:50012"
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.
db2-server2 Activé, exécutez le code suivant :
db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010|db2-ec2:50012"
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.
| DBA |
Vérifiez la HADR configuration. | Vérifiez les HADR paramètres sur les serveurs Db2 source et cible. db2-server1 Activé, exécutez le code suivant :
db2 get db cfg for sample|grep HADR
HADR database role = PRIMARY
HADR local host name (HADR_LOCAL_HOST) = db2-server1
HADR local service name (HADR_LOCAL_SVC) = 50010
HADR remote host name (HADR_REMOTE_HOST) = db2-server2
HADR remote service name (HADR_REMOTE_SVC) = 50011
HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1
HADR timeout value (HADR_TIMEOUT) = 120
HADR target list (HADR_TARGET_LIST) = db2-server2:50011|db2-ec2:50012
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)
HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0
HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0
HADR SSL certificate label (HADR_SSL_LABEL) =
HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF
db2-server2 Activé, exécutez le code suivant :
db2 get db cfg for sample|grep HADR
HADR database role = STANDBY
HADR local host name (HADR_LOCAL_HOST) = db2-server2
HADR local service name (HADR_LOCAL_SVC) = 50011
HADR remote host name (HADR_REMOTE_HOST) = db2-server1
HADR remote service name (HADR_REMOTE_SVC) = 50010
HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1
HADR timeout value (HADR_TIMEOUT) = 120
HADR target list (HADR_TARGET_LIST) = db2-server1:50010|db2-ec2:50012
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)
HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0
HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0
HADR SSL certificate label (HADR_SSL_LABEL) =
HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF
db2-ec2 Activé, exécutez le code suivant :
db2 get db cfg for sample|grep HADR
HADR database role = STANDBY
HADR local host name (HADR_LOCAL_HOST) = db2-ec2
HADR local service name (HADR_LOCAL_SVC) = 50012
HADR remote host name (HADR_REMOTE_HOST) = db2-server1
HADR remote service name (HADR_REMOTE_SVC) = 50010
HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1
HADR timeout value (HADR_TIMEOUT) = 120
HADR target list (HADR_TARGET_LIST) = db2-server1:50010|db2-server2:50011
HADR log write synchronization mode (HADR_SYNCMODE) = SUPERASYNC
HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)
HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0
HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0
HADR SSL certificate label (HADR_SSL_LABEL) =
HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF
Les HADR_TARGET_LIST paramètres HADR_LOCAL_HOST HADR_LOCAL_SVC ,HADR_REMOTE_HOST ,HADR_REMOTE_SVC , et indiquent la HADR configuration principale et les deux configurations de secours. | |
Arrêtez et démarrez DB2. HADR | HADR_TARGET_LIST est désormais configuré sur les trois serveurs. Chaque serveur DB2 connaît les deux autres. Arrêtez et redémarrez HADR (brève interruption) pour tirer parti de la nouvelle configuration.
db2-server1 Activé, exécutez les commandes suivantes :
db2 stop hadr on db sample
db2 deactivate db sample
db2 activate db sample
db2-server2 Activé, exécutez les commandes suivantes :
db2 deactivate db sample
db2 start hadr on db sample as standby
SQL1766W The command completed successfully
db2-ec2 Activé, exécutez les commandes suivantes :
db2 start hadr on db sample as standby
SQL1766W The command completed successfully
db2-server1 Activé, exécutez les commandes suivantes :
db2 start hadr on db sample as primary
SQL1766W The command completed successfully
La HADR connexion entre Db2 sur site et sur Amazon EC2 est désormais établie avec succès. Le serveur principal DB2 db2-server1 commence à diffuser les enregistrements du journal des transactions à la fois db2-server2 et db2-ec2 en temps réel. | DBA |
Tâche | Description | Compétences requises |
---|
Assurez-vous qu'il n'y a aucun HADR décalage sur le serveur de secours. | Vérifiez HADR l'état depuis le serveur principaldb2-server1 . Ne vous inquiétez pas lorsque le REMOTE_CATCHUP statut HADR_STATE est activé, ce qui est normal lorsqu'il HADR_SYNCMODE est réglé sur. SUPERASYNC Le PRIMARY_LOG_TIME et STANDBY_REPLAY_LOG_TIME montrent qu'ils sont synchronisés : db2pd -hadr -db sample
HADR_ROLE = PRIMARY
REPLAY_TYPE = PHYSICAL
HADR_SYNCMODE = SUPERASYNC
STANDBY_ID = 2
LOG_STREAM_ID = 0
HADR_STATE = REMOTE_CATCHUP
.....
PRIMARY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)
STANDBY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)
STANDBY_REPLAY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)
| DBA |
Exécutez HADR Takeover. | Pour terminer la migration, créez db2-ec2 la base de données principale en exécutant la commande HADR takeover. Utilisez la commande db2pd pour vérifier la HADR_ROLE valeur : db2 TAKEOVER HADR ON DATABASE sample
DB20000I The TAKEOVER HADR ON DATABASE command completed successfully.
db2pd -hadr -db sample
Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 00:03:25 -- Date 2022-10-26-02.46.45.048988
HADR_ROLE = PRIMARY
REPLAY_TYPE = PHYSICAL
Pour terminer la migration versAWS, dirigez les connexions de l'application vers Db2 sur AmazonEC2. | |
Résolution des problèmes
Problème | Solution |
---|
Si vous l'utilisez NAT pour des raisons de pare-feu et de sécurité, l'hôte peut avoir deux adresses IP (une interne et une externe), ce qui peut entraîner un échec de la vérification des adresses HADR IP. La START HADR ON DATABASE commande renverra le message suivant : HADR_LOCAL_HOST:HADR_LOCAL_SVC (-xx-xx-xx-xx.:50011 (xx.xx.xx.xx:50011)) on remote database is different from HADR_REMOTE_HOST:HADR_REMOTE_SVC (xx-xx-xx-xx.:50011 (x.x.x.x:50011)) on local database.
| Pour la prise HADR en charge dans un NAT environnement, vous pouvez configurer le HADR_LOCAL_HOST avec l'adresse interne et externe. Par exemple, si le serveur DB2 possède le nom interne host1 et le nom externehost1E , cela HADR_LOCAL_HOST peut être HADR_LOCAL_HOST: "host1 | host1E" le cas. |
Ressources connexes