Avant d'utiliser une base de données MySQL auto-gérée comme source DTS, créez un compte de base de données et activez la journalisation binaire. Ces deux éléments sont requis pour réussir la pré-vérification d'une migration incrémentielle, d'une synchronisation ou d'un suivi des modifications.
Prérequis
MySQL 5,6 ou version ultérieure
Accès au fichier de configuration MySQL (
my.cnfsous Linux,my.inisous Windows)Privilèges root ou administrateur sur le serveur MySQL
Possibilité de redémarrer le service MySQL
Autorisations requises
DTS nécessite les autorisations suivantes pour la migration incrémentielle, la synchronisation et le suivi des modifications :
|
Autorisation |
Objectif |
|
SELECT |
Lire les données des objets à migrer, synchroniser ou suivre |
|
REPLICATION CLIENT |
Lire la position du journal binaire |
|
REPLICATION SLAVE |
Lire les événements du journal binaire |
|
SHOW VIEW |
Lire les définitions des vues |
|
CREATE sur |
Créer une base de données nommée |
Étape 1 : Créer le compte de base de données
Connectez-vous à la base de données MySQL auto-gérée.
-
Créez un compte dédié pour DTS.
CREATE USER 'username'@'host' IDENTIFIED BY 'password';Paramètre
Description
usernameNom du compte à créer
hostHôte autorisé pour la connexion. Utilisez
%pour n'importe quel hôte.passwordMot de passe du compte
-
Accordez les autorisations requises.
Accordez des autorisations sur les bases de données et les tables à migrer :
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;Accordez l'autorisation CREATE :
GRANT CREATE ON *.* TO 'username'@'host' WITH GRANT OPTION;Paramètre
Description
privilegesSELECT, INSERT, UPDATE ou ALL
databasenameNom de la base de données. Utilisez
*pour toutes les bases de données.tablenameNom de la table. Utilisez
*pour toutes les tables.usernameCompte auquel accorder les autorisations
hostHôte autorisé pour la connexion. Utilisez
%pour n'importe quel hôte.WITH GRANT OPTIONFacultatif. Permet au compte d'accorder des autorisations à d'autres utilisateurs.
Exemple : Créez un compte
dtsmigrationavec des autorisations complètes :CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456'; GRANT ALL ON *.* TO 'dtsmigration'@'%'; -
Vérifiez les autorisations du compte.
SHOW GRANTS FOR 'dtsmigration'@'%';La sortie doit inclure
GRANT ALL PRIVILEGES ON *.* TO 'dtsmigration'@'%'.
Étape 2 : Configurer la journalisation binaire
Les modifications de la journalisation binaire nécessitent un redémarrage de MySQL. Planifiez cette opération pendant les heures creuses.
Paramètres de journalisation binaire
|
Paramètre |
Valeur requise |
Description |
|
|
|
Active la journalisation binaire et définit le préfixe du fichier journal. |
|
|
|
Enregistre les modifications au niveau des lignes. Les formats STATEMENT et MIXED peuvent entraîner des incohérences de données. |
|
|
Entier supérieur à 1 (exemple : |
Identifiant unique du serveur dans une topologie de réplication. |
|
|
|
Journalise les images complètes avant et après de chaque ligne. Requis pour les versions de MySQL supérieures à 5,6. |
|
|
|
Rétention des journaux en jours. Uniquement pour les versions de MySQL antérieures à 8,0. Valeur par défaut : |
|
|
|
Rétention des journaux en secondes. Uniquement pour MySQL 8,0 et versions ultérieures. Valeur par défaut : |
|
|
|
Journalise les événements répliqués dans le journal binaire local. Requis uniquement pour les clusters à double primaire. |
Modifier le fichier de configuration
-
Ouvrez le fichier de configuration MySQL.
-
Linux : Modifiez my.cnf avec
vimou un autre éditeur.vim /path/to/my.cnfRemarqueL'emplacement de
my.cnfvarie selon la distribution. Chemins courants :/etc/my.cnf,/etc/mysql/my.cnf,/etc/mysql/mysql.conf.d/mysqld.cnf. Windows : Ouvrez my.ini dans un éditeur de texte.
-
-
Ajoutez ou modifiez ces paramètres dans la section
[mysqld]:log_bin=mysql_bin binlog_format=row server_id=2 binlog_row_image=full -
Définissez la période de rétention du journal binaire.
MySQL 5,7 et versions antérieures :
expire_logs_days=7Remarqueexpire_logs_daysest obsolète dans MySQL 8,0 et versions ultérieures.MySQL 8,0 et versions ultérieures :
binlog_expire_logs_seconds=604800 -
(Facultatif) Pour les déploiements de clusters à double primaire, ajoutez :
log_slave_updates=ON -
Redémarrez le service MySQL.
-
Linux :
/etc/init.d/mysqld restart -
Windows : Utilisez le Gestionnaire de services ou exécutez :
net stop mysql net start mysql
-
Vérifier la journalisation binaire
Après le redémarrage, connectez-vous à MySQL et vérifiez les paramètres :
SHOW VARIABLES LIKE 'log_bin';
-- Expected: log_bin | ON
SHOW VARIABLES LIKE 'binlog_format';
-- Expected: binlog_format | ROW
SHOW VARIABLES LIKE 'binlog_row_image';
-- Expected: binlog_row_image | FULL
SHOW VARIABLES LIKE 'server_id';
-- Expected: server_id | <integer greater than 1>