Tungsten Replicator 5.0 を MySQL/MySQL のレプリケーション


[グレンジ Advent Calendar 2017](https://qiita.com/advent-calendar/2017/grenge) 2日目の記事を担当しました、s1na9ak1 と申します。
グレンジでサーバサイドエンジニアをしております。

今回は、Tungsten Replicator 5.0 を使って MySQL / MySQL のレプリケーションをした内容の記事になります。

### __概要__
---

Tungsten Replicator 5.0 で Master/Slave レプリケーションを行う。
Master 1台、スレーブ1台でレプリケーションを行う。
また、DatabaseはMySQLを使用します。

![99f88091-f36c-29a1-1f1f-4d10dd1a52ee.png](https://qiita-image-store.s3.amazonaws.com/0/217081/f9df8dfe-bced-a7a4-bc37-81e4c2354ebf.png)

### __準備__
---

#### __インスタンス__

gce でインスタンスを用意しました。

* Staging
    * インスタンスID: tungsten-staging-02
    * 内部IP: 10.64.0.10
* Host
    * インスタンスID: tungsten-host-02
    * 内部IP: 10.64.0.8
* 共通
    * OS: CentOS 6
    * ゾーン：asia-east1-b
    * ネットワーク： tmp

#### __インストール__

__共通__

* Ruby

```
[tungsten-staging-02 ~]$ sudo yum install ruby
Installing:
 ruby                         x86_64             1.8.7.374-5.el6             base             538 k
Installing for dependencies:
 compat-readline5             x86_64             5.2-17.1.el6                base             130 k
 ruby-libs                    x86_64             1.8.7.374-5.el6             base             1.7 M
```

* Mysql-server

```
[test@tungsten-staging-02 ~]$ sudo yum install mysql-server
Installing:
 mysql-server               x86_64             5.1.73-8.el6_8                base             8.6 M
Installing for dependencies:
 mysql                      x86_64             5.1.73-8.el6_8                base             895 k
 perl-DBD-MySQL             x86_64             4.013-3.el6                   base             134 k
 perl-DBI                   x86_64             1.609-4.el6                   base             705 k
```

* Java

```
[test@tungsten-staging-02 ~]$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm" -O jdk-7u79-linux-x64.rpm
[test@tungsten-staging-02 ~]$ sudo rpm -ivh jdk-7u79-linux-x64.rpm
[test@tungsten-staging-02 ~]$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
```

### __構成__
---

#### __Staging 構成__

![8d28c170-5dfd-a89b-a76e-22b10f29d750.png](https://qiita-image-store.s3.amazonaws.com/0/217081/d620dda3-ab4e-0056-b77d-2f224cc4e14b.png)

__１．実行ユーザ作成__

```
[test@tungsten-staging-02 ~]$ sudo adduser tungsten
```

__２．mysql グループに追加__

```
[test@tungsten-staging-02 ~]$ sudo usermod -G mysql tungsten
```

__３．tungsten ユーザ編集__

```
[test@tungsten-staging-02 ~]$ sudo passwd -u -f tungsten
```

__４．ログイン__

```
[test@tungsten-staging-02 ~]$ su - tungsten
```

__５．ssh キー作成__

```
[tungsten@tungsten-staging-02 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tungsten/.ssh/id_rsa):
Created directory '/home/tungsten/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tungsten/.ssh/id_rsa.
Your public key has been saved in /home/tungsten/.ssh/id_rsa.pub.
The key fingerprint is:
2c:f4:b8:ef:79:32:6d:2c:cf:b9:16:9c:7d:10:4c:9c tungsten@tungsten-staging-02
The key's randomart image is:
+--[ RSA 2048]----+
|           +..   |
|            E    |
|      .      .   |
|     . +    .    |
|      o S. o .   |
|       o  + . .  |
|      .  o . .   |
|       .+o*.     |
|       .+O=.     |
+-----------------+
```

__６．tungsten インストールディレクトリ作成__

```
[test@tungsten-staging-02 ~]$ sudo mkdir -p /opt/continuent/software/conf
[test@tungsten-staging-02 ~]$ sudo chown tungsten.tungsten /opt/
[test@tungsten-staging-02 ~]$ sudo mkdir -p /opt/continuent/software/replicator.conf
[test@tungsten-staging-02 ~]$ export CONTINUENT_PROFILES=/opt/continuent/software/conf
[test@tungsten-staging-02 ~]$ export REPLICATOR_PROFILES=/opt/continuent/software/replicator.conf
```

#### __Host 構成__

__１．ユーザ作成__

```
[test@tungsten-host-02 ~]$ sudo adduser tungsten
[test@tungsten-host-02 ~]$ sudo usermod -G mysql tungsten
[test@tungsten-host-02 ~]$ sudo passwd -u -f tungsten
```

__２．sudo実行権限__

```
[test@tungsten-host-02 ~]$ sudo visudo
tungsten ALL=(ALL)      ALL
```

__３．/etc/security/limits.conf 編集__

```
[tungsten@tungsten-host-02 ~]$ sudo vi /etc/security/limits.conf
tungsten         -       nofile          65535
mysql            -       nofile          65535
tungsten         -       nproc           8096
mysql            -       nproc           8096
```

__４．/tmp パーミッション変更__

```
[tungsten@tungsten-host-02 ~]$ sudo chmod 777 /tmp/
```

__５．tungsten 認証キーを設置__

```
[tungsten@tungsten-host-02 ~]$ mkdir .ssh
[tungsten@tungsten-host-02 ~]$ chmod 700 ~/.ssh
[tungsten@tungsten-host-02 ~]$ vi .ssh/authorized_keys
[tungsten@tungsten-host-02 ~]$ chmod 600 ~/.ssh/*
[tungsten@tungsten-host-02 ~]$ chmod 600 ~/.ssh/*
```

__６．sshでログイン__

```
[tungsten@tungsten-staging-02 ~]$ ssh tungsten@tungsten-host-02
The authenticity of host 'tungsten-host-02 (10.64.0.11)' can't be established.
RSA key fingerprint is 53:f1:8e:46:db:c4:cf:c0:96:c9:82:15:69:82:b2:a8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'tungsten-host-02,10.64.0.11' (RSA) to the list of known hosts.
[tungsten@tungsten-host-02 ~]$
```

__７．tungsten作業ディレクトリ作成__

```
[tungsten@tungsten-host-02 ~]$ sudo mkdir /opt/continuent
[tungsten@tungsten-host-02 ~]$ sudo chown tungsten /opt/continuent
[tungsten@tungsten-host-02 ~]$ sudo chmod 700 /opt/continuent
```

### __MySQL設定__
---

#### __my.conf__

* Staging

```
[test@tungsten-staging-02 ~]$ cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id = 1
open_files_limit = 65535
log-bin = mysql-bin
sync_binlog = 1
max_allowed_packet = 52m
default-storage-engine = InnoDB
innodb_flush_log_at_trx_commit = 2
innodb_flush_method=O_DIRECT
binlog-format = row

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
```

* Host

```
[test@tungsten-staging-02 ~]$ cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id = 2
open_files_limit = 65535
log-bin = mysql-bin
sync_binlog = 1
max_allowed_packet = 52m
default-storage-engine = InnoDB
innodb_flush_log_at_trx_commit = 2
innodb_flush_method=O_DIRECT
binlog-format = row

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
```

※ my.conf 更新後は、mysqlを再起動しておく

#### __MySQLユーザ作成__

* __Staging/Host 共通__

__１．起動__

```
[test@tungsten-staging-02 ~]$ sudo /etc/init.d/mysqld start
```

__２．ユーザ作成__

```
[test@tungsten-staging-02 ~]$ mysql -uroot
mysql> CREATE USER tungsten@'%' IDENTIFIED BY 'tungsten';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL ON *.* TO tungsten@'%'  WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
```

#### __tungsten 設置__

__１．ダウンロード__

```
[tungsten@tungsten-staging-02 ~]$ wget https://sourceforge.net/projects/tungsten-replicator.mirror/files/v5.0.1/tungsten-replicator-5.0.1-138.tar.gz/download
[tungsten@tungsten-staging-02 ~]$ mv download tungsten-replicator-5.0.1-138.tar.gz
```

__２．コピー、解凍__

```
[tungsten@tungsten-staging-02 ~]$ cp ./tungsten-replicator-5.0.1-138.tar.gz /opt/continuent/software/.
[tungsten@tungsten-staging-02 software]$ tar zxf tungsten-replicator-5.0.1-138.tar.gz
```

### __tungsten__
---

__tpm・trepctl・thl コマンド__

* レプリケーション開始 `tpm start` + `SERVICE NAME`
* レプリケーション停止 `tpm stop` + `SERVICE NAME`
* ステータス確認 `trepctl services`
* レプリケーションされたbinlogを確認する `thl list`

#### __tungsten 実行__

__１．tungsten 実行__

```
[tungsten@tungsten-staging-02 tungsten-replicator-5.0.1-138]$ ./tools/tpm install alpha\
>   --topology=master-slave \
>   --master=10.64.0.10 \
>   --replication-user=tungsten \
>   --replication-password=tungsten \
>   --install-directory=/opt/continuent \
>   --members=10.64.0.10,10.64.0.11 \
>   --skip-validation-check=MySQLMyISAMCheck \
>   --skip-validation-check=SwappinessCheck \
>   --skip-validation-check=MySQLSettingsCheck \
>   --rmi-port=10002 \
>   --master-thl-port=2112 \
>   --master-thl-host=10.64.0.10 \
>   --thl-port=2112 \
>   --start
NOTE  >> Data service(s) alpha updated in /opt/continuent/software/tungsten-replicator-5.0.1-138/deploy.cfg
.......
WARN  >> 10_64_0_10 >> The open file limit is set to 1024, we suggest a value of 65535. Add '*       -    nofile  65535' to your /etc/security/limits.conf and restart your session (OpenFilesLimitCheck)
.......

#####################################################################
# Next Steps
#####################################################################
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.

  /opt/continuent/tungsten/tungsten-replicator/bin/trepctl services

Configuration is now complete.  For further information, please consult
Tungsten documentation, which is available at docs.continuent.com.

NOTE  >> Command successfully completed
```

* `--install-directory=/opt/continuent`：Hostのインストールディレクトリ。
* `--master-thl-port` と `--thl-port` のポート番号は合わせる。
* `--skip-validation-check=MySQLMyISAMCheck`：MyISAMのチェックをしない。
* `--skip-validation-check=SwappinessCheck`：スワッピングのチェックをしない。
* `--skip-validation-check=MySQLSettingsCheck`：default スキーマのチェック等をしない。（2回目実行時にdefaultのテーブルが存在し、エラーとなるため）
* Staging, Host ともにホスト名の指定も可能だが、ホスト名に `-` を含む場合、エラー。

__２．tungsten 起動確認__

* Staging

```
[tungsten@tungsten-staging-02 tungsten-replicator-5.0.1-138]$ /opt/continuent/tungsten/tungsten-replicator/bin/trepctl services
Processing services command...
NAME              VALUE
----              -----
appliedLastSeqno: 0
appliedLatency  : 1.738
role            : master
serviceName     : alpha
serviceType     : local
started         : true
state           : ONLINE
Finished services command...
```

`staue: ONLINE` で成功。上記以外はエラー。

* Host

```
[tungsten@tungsten-host-02 ~]$ /opt/continuent/tungsten/tungsten-replicator/bin/trepctl services
Processing services command...
NAME              VALUE
----              -----
appliedLastSeqno: 0
appliedLatency  : 2.69
role            : slave
serviceName     : alpha
serviceType     : local
started         : true
state           : ONLINE
Finished services command...

```

__３．検証__

__１．Staging で database 作成__

```
[tungsten@tungsten-staging-02 tungsten-replicator-5.0.1-138]$ mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 70
Server version: 5.1.73-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database hoge;
Query OK, 1 row affected (0.01 sec)


```

__２．Host でdatabaseができていることを確認__

```
[tungsten@tungsten-host-02 ~]$ mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 40
Server version: 5.1.73-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hoge               |
| mysql              |
| test               |
| tungsten_alpha     |
+--------------------+
5 rows in set (0.00 sec)

```

__３．レプリケーションされた binlog リスト確認__

```
[tungsten@tungsten-staging-02 tungsten-replicator-5.0.1-138]$ /opt/continuent/tungsten/tungsten-replicator/bin/thl list
SEQ# = 0 / FRAG# = 0 (last frag)
- TIME = 2017-04-24 11:03:38.0
- EPOCH# = 0
- EVENTID = mysql-bin.000004:0000000000000375;-1
- SOURCEID = 10.64.0.10
- METADATA = [mysql_server_id=1;dbms_type=mysql;tz_aware=true;is_metadata=true;service=alpha;shard=#UNKNOWN;heartbeat=MASTER_ONLINE]
- TYPE = com.continuent.tungsten.replicator.event.ReplDBMSEvent
- OPTIONS = [foreign_key_checks = 1, unique_checks = 1, time_zone = '+00:00', ##charset = ISO-8859-1]
- SQL(0) =
 - ACTION = UPDATE
 - SCHEMA = tungsten_alpha
 - TABLE = heartbeat
 - ROW# = 0
  - COL(1: ) = 1
  - COL(2: ) = NULL
  - COL(3: ) = NULL
  - COL(4: ) = 2017-04-24 11:03:38.0
  - COL(5: ) = NULL
  - COL(6: ) = NULL
  - COL(7: ) = 1
  - COL(8: ) = [B@2e2e06bd
  - KEY(1: ) = 1
SEQ# = 1 / FRAG# = 0 (last frag)
- TIME = 2017-04-24 11:08:11.0
- EPOCH# = 0
- EVENTID = mysql-bin.000004:0000000000000458;70
- SOURCEID = 10.64.0.10
- METADATA = [mysql_server_id=1;unsafe_for_block_commit;dbms_type=mysql;tz_aware=true;service=alpha;shard=hoge]
- TYPE = com.continuent.tungsten.replicator.event.ReplDBMSEvent
- OPTIONS = [##charset = ISO8859_1, createOrDropDB = , autocommit = 1, sql_auto_is_null = 1, foreign_key_checks = 1, unique_checks = 1, sql_mode = '', character_set_client = 8, collation_connection = 8, collation_server = 8]
- SQL(0) = create database hoge

```

#### __トラブル シューティング__

* Staging `state: ONLINE` で、Hostでエラー

Staging の `state: ONLINE` で、Host側でエラーとなった場合。
エラー解消後、インストールディレクトリを新規で作成し、実行。
このときのインストールディレクトリ（/opt/continuent）の権限に注意。
下記を確認。
Staging、Hostともに `trepctl status` でステータスを確認し、実行されていないことを確認。実行されている場合は、`tpm stop` する。
Stagingで設定ファイルを削除。
Hostのtungstenが実行されていると、`tpm start` 、`tpm update` ともにHostの更新がされないので、注意。

* Host エラー例

```
[tungsten@tungsten-host-01 tmp]$ /opt/continuent1/tungsten/tungsten-replicator/bin/trepctl status
Processing status command...
NAME                     VALUE
----                     -----
appliedLastEventId     : NONE
appliedLastSeqno       : -1
appliedLatency         : -1.0
autoRecoveryEnabled    : false
autoRecoveryTotal      : 0
channels               : -1
clusterName            : alpha
currentEventId         : NONE
currentTimeMillis      : 1492755019458
dataServerHost         : 10.64.0.8
extensions             :
host                   : 10.64.0.8
latestEpochNumber      : -1
masterConnectUri       : thl://10.64.0.9:2112/
masterListenUri        : thl://10.64.0.8:2113/
maximumStoredSeqNo     : -1
minimumStoredSeqNo     : -1
offlineRequests        : NONE
pendingError           : Stage task failed: stage=q-to-dbms seqno=0 fragno=0
pendingErrorCode       : NONE
pendingErrorEventId    : mysql-bin.000006:0000000000000375;-1
pendingErrorSeqno      : 0
pendingExceptionMessage: Filter failed processing primary key information
pipelineSource         : UNKNOWN
relativeLatency        : -1.0
resourcePrecedence     : 99
rmiPort                : 10002
role                   : slave
seqnoType              : java.lang.Long
serviceName            : alpha
serviceType            : unknown
simpleServiceName      : alpha
siteName               : default
sourceId               : 10.64.0.8
state                  : OFFLINE:ERROR
timeInStateSeconds     : 1243.935
timezone               : GMT
transitioningTo        :
uptimeSeconds          : 5014.482
useSSLConnection       : false
version                : Tungsten Replicator 5.0.1 build 138
Finished status command...
```


* Staging 実行時エラー例

```
[tungsten@tungsten-staging-01 tungsten-replicator-5.0.1-138]$ ./tools/tpm install alpha\
> --topology=master-slave \
> --master=tungsten-staging-01 \
> --replication-user=tungsten \
> --replication-password=tungsten \
> --install-directory=/opt/continuent \
> --members=tungsten-staging-01,tungsten-host-01 \
> --start
NOTE  >> Data service(s) alpha__topology=master_slave updated in /opt/continuent/software/tungsten-replicator-5.0.1-138/deploy.cfg
......
ERROR >> Value must consist only of letters, digits, and underscore (_)
ERROR >> Value must consist only of letters, digits, and underscore (_)
ERROR >> Value must consist only of letters, digits, and underscore (_)
ERROR >> tungsten_host_01 >> Value must consist only of letters, digits, and underscore (_)
ERROR >> tungsten_host_01 >> Value must consist only of letters, digits, and underscore (_)
ERROR >> tungsten_host_01 >> Value must consist only of letters, digits, and underscore (_)
ERROR >> tungsten_host_01 >> Value must consist only of letters, digits, and underscore (_)
ERROR >> tungsten_host_01 >> Value must consist only of letters, digits, and underscore (_)
ERROR >> tungsten_host_01 >> Value must be a valid filename
ERROR >> Value must consist only of letters, digits, and underscore (_)
ERROR >> tungsten_host_01 >> Value must be a valid filename
ERROR >> Value must consist only of letters, digits, and underscore (_)
ERROR >> tungsten_host_01 >> Value must be a valid filename
ERROR >> tungsten_host_01 >> Value must be a valid filename
ERROR >> tungsten_host_01 >> Value must be a valid filename
ERROR >> tungsten_host_01 >> Value must be a valid filename
ERROR >> Value must be a valid filename
ERROR >> Value must be a valid filename
ERROR >> Value must be a valid filename
ERROR >> Value must be a valid filename
ERROR >> Value must be a valid filename
ERROR >> Value must be a valid filename
.
#####################################################################
# There are errors with the values provided in the configuration file
#####################################################################
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Dataservice alpha__topology=master_slave: Name of this dataservice
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Prompt Class: DataServiceName
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Dataservice alpha__topology=master_slave: Name of this dataservice
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Prompt Class: ClusterName
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Dataservice alpha__topology=master_slave: The db schema to hold dataservice details
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Argument: --dataservice-schema
ERROR >> > Prompt Class: DataserviceSchema
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-staging-01 - alpha__topology=master_slave: What is the replication service name?
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Prompt Class: ReplicationServiceName
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-staging-01 - alpha__topology=master_slave: What is the local service name?
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Prompt Class: LocalReplicationServiceName
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-staging-01 - alpha__topology=master_slave: Path to replication service static properties file
ERROR >> > Message: Value must be a valid filename
ERROR >> > Argument: --svc-config-file
ERROR >> > Prompt Class: ReplicationServiceConfigFile
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-staging-01 - alpha__topology=master_slave: Path to replication service dynamic properties file
ERROR >> > Message: Value must be a valid filename
ERROR >> > Argument: --svc-dynamic-config
ERROR >> > Prompt Class: ReplicationServiceDynamicConfigFile
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-staging-01 - alpha__topology=master_slave: Replicator log directory
ERROR >> > Message: Value must be a valid filename
ERROR >> > Prompt Class: ReplicationServiceTHLStorageDirectory
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-staging-01 - alpha__topology=master_slave: Directory for logs transferred from the master
ERROR >> > Message: Value must be a valid filename
ERROR >> > Prompt Class: ReplicationServiceRelayLogStorageDirectory
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-staging-01 - alpha__topology=master_slave: Path to my.cnf file customized for this service
ERROR >> > Message: Value must be a valid filename
ERROR >> > Prompt Class: MySQLServiceConfigFile
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-staging-01 - alpha__topology=master_slave: Path to my.cnf file customized for this service
ERROR >> > Message: Value must be a valid filename
ERROR >> > Prompt Class: DirectMySQLServiceConfigFile
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Dataservice alpha__topology=master_slave: Name of this dataservice
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Prompt Class: DataServiceName
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Dataservice alpha__topology=master_slave: Name of this dataservice
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Prompt Class: ClusterName
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Dataservice alpha__topology=master_slave: The db schema to hold dataservice details
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Argument: --dataservice-schema
ERROR >> > Prompt Class: DataserviceSchema
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-host-01 - alpha__topology=master_slave: What is the replication service name?
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Prompt Class: ReplicationServiceName
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-host-01 - alpha__topology=master_slave: What is the local service name?
ERROR >> > Message: Value must consist only of letters, digits, and underscore (_)
ERROR >> > Prompt Class: LocalReplicationServiceName
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-host-01 - alpha__topology=master_slave: Path to replication service static properties file
ERROR >> > Message: Value must be a valid filename
ERROR >> > Argument: --svc-config-file
ERROR >> > Prompt Class: ReplicationServiceConfigFile
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-host-01 - alpha__topology=master_slave: Path to replication service dynamic properties file
ERROR >> > Message: Value must be a valid filename
ERROR >> > Argument: --svc-dynamic-config
ERROR >> > Prompt Class: ReplicationServiceDynamicConfigFile
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-host-01 - alpha__topology=master_slave: Replicator log directory
ERROR >> > Message: Value must be a valid filename
ERROR >> > Prompt Class: ReplicationServiceTHLStorageDirectory
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-host-01 - alpha__topology=master_slave: Directory for logs transferred from the master
ERROR >> > Message: Value must be a valid filename
ERROR >> > Prompt Class: ReplicationServiceRelayLogStorageDirectory
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-host-01 - alpha__topology=master_slave: Path to my.cnf file customized for this service
ERROR >> > Message: Value must be a valid filename
ERROR >> > Prompt Class: MySQLServiceConfigFile
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERROR >> Replication service tungsten-host-01 - alpha__topology=master_slave: Path to my.cnf file customized for this service
ERROR >> > Message: Value must be a valid filename
ERROR >> > Prompt Class: DirectMySQLServiceConfigFile

```

* Value must consist only of letters, digits, and underscore (_)
    → ホスト名にアンスコやめる= ipで指定
* The alpha_topology=master_slave has a conflicting THL port with alpha (ConflictingReplicationServiceTHLPortsCheck)
    → port指定
* Unable to determine if MyISAM tables exist.
    → MyISAMチェックをスキップ

以上です。ありがとうございました。

### __注意点__
---

- [MySQL 5.7の新しいデータ型（JSON、仮想列）はまだサポートされていない](https://docs.continuent.com/tungsten-replicator-5.0/deployment-requirements.html)


### __参考URL__
---
[Tungsten Replicator 5.0 Manual](https://docs.continuent.com/tungsten-replicator-5.0/index.html)

### __Download__
---

__Tungsten Replicator__
- [5.x](https://sourceforge.net/projects/tungsten-replicator.mirror/files/v5.0.1/)