Migrer d'une base de données X à une base de données Y - 7.3

Guide d'installation de Talend Data Management Platform pour Windows

EnrichVersion
7.3
EnrichProdName
Talend Data Management Platform
EnrichPlatform
Studio Talend
Talend Activity Monitoring Console
Talend Administration Center
Talend Artifact Repository
Talend CommandLine
Talend Data Preparation
Talend Data Stewardship
Talend DQ Portal
Talend Identity and Access Management
Talend Installer
Talend JobServer
Talend Log Server
Talend Repository Manager
Talend Runtime
Talend SAP RFC Server
task
Installation et mise à niveau

Si vous souhaitez migrer d'une base de données à une autre, par exemple de H2 à MySQL, vous devez utilisez la commande de l'application MetaServlet nommée migrateDatabase.

Comme la base de données source est mise à jour pendant le processus de migration, il est obligatoire de la sauvegarder avant de la migrer.

L'application MetaServlet se trouve dans le dossier <TomcatPath>\webapps\<TalendAdministrationCenter>\WEB-INF\classes.

Pour afficher l'aide de cette commande (avec les paramètres associés), vous devez saisir ce qui suit dans l'application MetaServlet :

MetaServletCaller.bat --tac-url=<yourApplicationURL> -h migrateDatabase

Pour plus d'informations concernant l'application MetaServlet, consultez le Guide d'utilisation de Talend Administration Center.

Avertissement : Lorsque vous migrez depuis Postgresql ou MSSQL/SQLServer, le nom de la base de données et du schéma doit correspondre à celui d'une base de données source.

Ci-dessous, un exemple de migration entre une base données H2 et une base de données MySQL.

Pour pouvoir utiliser cette commande, vous devez au préalable la mettre sur une seule ligne.

MetaServletCaller.bat --tac-url http://localhost:8080/org.talend.administrator --json-params='{"actionName":"migrateDatabase","dbConfigPassword":"admin","mode":"synchronous","sourcePasswd":"tisadmin","sourceUrl":"'jdbc:h2:C:\Talend\<version\/tac\apache-tomcat\webapps\org.talend.administrator\WEB-INF\database\talend_administrator'","sourceUser":"tisadmin","targetPasswd":"root","targetUrl":"'jdbc:mysql://localhost:3306/base'","targetUser":"root"}'
Avertissement : L'utilisation des guillemets simples dans la valeur des paramètres sourceURL et targetURL est requise sous Windows.

Cas d'utilisation : Migrer d'une base de données X à une base de données Y à l'aide de l'application MetaServlet

Les exemples utilisent les conventions suivantes :

URL de Talend Administration Center

http://tac.test.fr:8081/org.talend.administrator/
DB config password: admin 

MySQL

user: mysql8
password: mysqlpass
database: mysql
database server: mysql8.test.fr
jdbc:mysql://mysql8.test.fr:3306/mysql_source?useSSL=false&allowPublicKeyRetrieval=true

MSSQL2017

user: SA
password: MSSQLpass2017
database: MSSQL
database server: mssql2017.test.fr
jdbc:sqlserver://mssql2017.test.fr:1433;databaseName=MSSQL_DEST

Dossier Tomcat recommandé

Vous pouvez stocker tous les pilotes JDBC que vous utilisez dans un des dossiers suivants : tac\apache-tomcat\endorsed ou, selon la version de Tomcat, tac\apache-tomcat\lib.

Redémarrez Tomcat si vous ajoutez un pilote.

Remarque : Dans la chaîne de caractères JDBC (entre guillemets simples '), les caractères spéciaux doivent être échappés. C'est également le cas lors de l'utilisation d'un point-virgule (;) ou d'autres caractères spéciaux.

Par exemple, sous Linux :

'jdbc:mysql://mysql8.test.fr:3306/mysql?useSSL=false&allowPublicKeyRetrieval=true'

Cela doit être saisi comme ceci :

'jdbc:mysql://mysql8.test.fr:3306/mysql?useSSL=false\&allowPublicKeyRetrieval=true'

Migration de MySQL à MySQL

Exécutez la commande suivante :

mysql> drop database mysql_dest;
Query OK, 12 rows affected (0.10 sec)
                
mysql> create database mysql_dest;
Query OK, 1 row affected (0.00 sec)
                
mysql> grant ALL PRIVILEGES on *.* to 'mysql8'@'%';
Query OK, 0 rows affected (0.01 sec)
# Talend\tac\apache-tomcat\webapps\org.talend.administrator\WEB-INF\classes\MetaServletCaller.bat 
--tac-url http://tac.test.fr:8081/org.talend.administrator/ -v 
--json-params='{"actionName":"migrateDatabase","skipBackup":"true","dbConfigPassword":"admin","mode":"synchronous","sourcePasswd":"mysqlpass","sourceUrl":"'jdbc:mysql://mysql8.test.fr:3306/mysql?useSSL=false\&allowPublicKeyRetrieval=true'","sourceUser":"mysql8","targetPasswd":"mysqlpass","targetUrl":"'jdbc:mysql://mysql8.test.fr:3306/mysql_dest?useSSL=false\&allowPublicKeyRetrieval=true'","targetUser":"mysql8"}'
                
                
-> URL: http://tac.test.fr:8081/org.talend.administrator/
-> Json parameters:
                
{
"actionName": "migrateDatabase",
"dbConfigPassword": "admin",
"mode": "synchronous",
"skipBackup": "true",
"sourcePasswd": "mysqlpass",
"sourceUrl": "jdbc:mysql://mysql8.test.fr:3306/mysql?useSSL=false&allowPublicKeyRetrieval=true",
"sourceUser": "mysql8",
"targetPasswd": "mysqlpass",
"targetUrl": "jdbc:mysql://mysql8.test.fr:3306/mysql_dest?useSSL=false&allowPublicKeyRetrieval=true",
"targetUser": "mysql8"
}
-> Complete request: http://tac.test.fr:8081/org.talend.administrator//metaServlet?eyJhY3Rpb25OYW1lIjoibWlncmF0ZURhdGF...
{"executionTime":{"millis":20052,"seconds":20},"returnCode":0}
            

Migration de MySQL à MSSQL

Si vous migrez vers MSSQL/SQLServer, le nom de la base de données source et de la base de données cible doit être dbo. La base de données source dbo doit être la base de données active de Talend Administration Center.

Utilisez la commande suivante pour créer une base de données et un schéma de destination :

\mssql-tools\bin\sqlcmd -S localhost -U SA -P MSSQLpass2017
1> CREATE DATABASE dbo;
2> go 
# Talend\tac\apache-tomcat\webapps\org.talend.administrator\WEB-INF\classes\MetaServletCaller.bat 
--tac-url http://tac.test.fr:8081/org.talend.administrator/ -v  
--json-params='{"actionName":"migrateDatabase","skipBackup":"true","dbConfigPassword":"admin","mode":"synchronous","sourcePasswd":"mysqlpass","sourceUrl":"'jdbc:mysql://mysql8.test.fr:3306/dbo?useSSL=false\&allowPublicKeyRetrieval=true'","sourceUser":"mysql8","targetPasswd":"MSSQLpass2017","targetUrl":"'jdbc:jtds:sqlserver://mssql2017.test.fr:1433/dbo'","targetUser":"SA"}'
                

-> URL: http://tac.test.fr:8081/org.talend.administrator/
-> Json parameters:
{
"actionName": "migrateDatabase",
"dbConfigPassword": "admin",
"mode": "synchronous",
"skipBackup": "true",
"sourcePasswd": "mysqlpass",
"sourceUrl": "jdbc:mysql://mysql8.test.fr:3306/dbo?useSSL=false&allowPublicKeyRetrieval=true",
"sourceUser": "mysql8",
"targetPasswd": "MSSQLpass2017",
"targetUrl": "jdbc:jtds:sqlserver://mssql2017.test.fr:1433/dbo",
"targetUser": "SA"
}
-> Complete request: http://tac.test.fr:8081/org.talend.administrator//metaServlet?eyJhY3Rpb25OYW1lIjoibWlncmF0ZURhdGF...
{"executionTime":{"millis":20062,"seconds":20},"returnCode":0}

Migration de MySQL à MySQL

Exécutez la commande suivante :

# Talend\tac\apache-tomcat\webapps\org.talend.administrator\WEB-INF\classes\MetaServletCaller.bat 
--tac-url http://tac.test.fr:8081/org.talend.administrator/ -v 
--json-params='{"actionName":"migrateDatabase","skipBackup":"true","dbConfigPassword":"admin","mode":"synchronous","sourcePasswd":"MSSQLpass2017","sourceUrl":"'jdbc:jtds:sqlserver://mssql2017.test.fr:1433/mssql_test'","sourceUser":"SA","targetPasswd":"mysqlpass","targetUrl":"'jdbc:mysql://mysql8.test.fr:3306/mysql_dest?useSSL=false\&allowPublicKeyRetrieval=true'","targetUser":"mysql8"}'


-> URL: http://tac.test.fr:8081/org.talend.administrator/
-> Json parameters:
{
"actionName": "migrateDatabase",
"dbConfigPassword": "admin",
"mode": "synchronous",
"skipBackup": "true",
"sourcePasswd": "MSSQLpass2017",
"sourceUrl": "jdbc:jtds:sqlserver://mssql2017.test.fr:1433/mssql_test",
"sourceUser": "SA",
"targetPasswd": "mysqlpass",
"targetUrl": "jdbc:mysql://mysql8.test.fr:3306/mysql_dest?useSSL=false&allowPublicKeyRetrieval=true",
"targetUser": "mysql8"
}
-> Complete request: http://tac.test.fr:8081/org.talend.administrator//metaServlet?eyJhY3Rpb25OYW1lIjoibWlncmF0ZURhdGF...
{"executionTime":{"millis":28108,"seconds":28},"returnCode":0}