メイン コンテンツをスキップする 補完的コンテンツへスキップ

データベースXからデータベースYに移行

あるデータベースから別のデータベース(H2からMySQLなど)に移行を行う場合、migrateDatabaseというMetaServletコマンドを使用する必要があります。

移行プロセス中にソースデータベースがアップデートされるため、移行前にバックアップすることが必要です。

MetaServlet アプリケーションは、<TomcatPath>/webapps/<TalendAdministrationCenter>/WEB-INF/classesフォルダーにあります。

このコマンド(と関連パラメーター)のヘルプを表示するには、次をMetaServletアプリケーションに入力する必要があります。

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

MetaServletアプリケーションの詳細は、Talend Administration Centerユーザーガイドをご覧ください。

情報メモ警告: PostgreSQLやMSSQL/SQLServerへ移行する場合は、データベースとスキーマ名がソースデータベース名と一致する必要があります。

下記に、データベースH2とMySQLデータベース間の移行例を示します。

このコマンドを使用できるようにするには、先頭行に記述する必要があります。

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"}'
情報メモ警告: sourceURLおよびtargetURLパラメーター値の単一引用符はWindowsでは必須です。

ユースケース: MetaServletを使ってデータベースXからデータベースYに移行

ここでの例では次の規則が適用されます。

Talend Administration Center URL

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

Tomcat endorsedフォルダー

使用しているJDBCドライバーはすべて、tac\apache-tomcat\endorsedフォルダー(Tomcatによっては <TomcatPath>\webapps\org.talend.administrator\WEB-INF\libフォルダー)に保存できます。

ドライバーを追加したらTomcatを再起動してください。

情報メモ注: 一重引用符( ' )で囲まれているJDBC文字列では、特殊文字をすべてエスケープ処理する必要があります。この動作はセミコロン( ; )やその他の特殊文字を使う時も同様です。

たとえばLinuxで:

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

とあれば、以下のように書き直す必要があります。

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

MySQLからMySQLへの移行

以下のコマンドを使用します。

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}
            

MySQLからMSSQLへの移行

MSSQL/SQLServerに移行する場合、ソースデータベースとデスティネーションデータベースの名前をdboにする必要があります。dboソースデータベースはアクティブなTalend Administration Centerデータベースであることが必要です。

以下のコマンドを使ってデスティネーションデータベースとスキーマを作成します。

\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}

MSSQLからMySQLへの移行

以下のコマンドを使用します。

# 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}

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。