dbdeployer工具

dbdeployer能够快速部署数据库测试环境,一键实现Oracle MySQL、Percona MySQL、MariaDB、TiDB、MySQL NDB Cluster、PXC等测试环境的构建。

项目地址:dbdeployer

安装dbdeployer

1
2
3
4
5
6
[root@t-luhx02-v-szzb mysql]# tar -xvf dbdeployer-1.47.0.linux.tar.gz 
dbdeployer-1.47.0.linux
[root@t-luhx02-v-szzb mysql]# mv dbdeployer-1.47.0.linux /usr/local/bin/dbdeployer
[root@t-luhx02-v-szzb mysql]# chmod +x /usr/local/bin/dbdeployer 
[root@t-luhx02-v-szzb mysql]# dbdeployer --version
dbdeployer version 1.47.0

配置dbdeployer

默认配置文件为当前用户的$HOME/.dbdeployer/config.json作为配置文件,可以通过dbdeplyoer defaults export导出并修改配置或者直接通过dbdeployer defaults update来更新默认文件,配置文件包含MySQL初始信息。

1
2
[root@t-luhx02-v-szzb mysql]# dbdeployer defaults update sandbox-binary /media/mysql
[root@t-luhx02-v-szzb mysql]# dbdeployer defaults update sandbox-home /usr/local/bin/

MySQL版本管理

dbdeployer在联网环境下,支持在线下载多种版本的MySQL介质

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[root@t-luhx02-v-szzb mysql]# dbdeployer downloads list
Available tarballs  ()
                          name                             OS     version     flavor        size   minimal 
-------------------------------------------------------- ------- --------- ------------- -------- ---------
 tidb-master-linux-amd64.tar.gz                           Linux     3.0.0   tidb           26 MB           
 mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz               Linux    8.0.16   mysql         461 MB           
 mysql-8.0.16-linux-x86_64-minimal.tar.xz                 Linux    8.0.16   mysql          44 MB   Y       
 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz               Linux    5.7.27   mysql         645 MB           
 mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz               Linux    8.0.17   mysql         480 MB           
 mysql-8.0.17-linux-x86_64-minimal.tar.xz                 Linux    8.0.17   mysql          45 MB   Y       
 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz               Linux    5.7.26   mysql         645 MB           
 mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz               Linux    5.6.44   mysql         329 MB           
 mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz               Linux    5.5.62   mysql         199 MB           
 mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz               Linux    8.0.15   mysql         376 MB           
 mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz               Linux    8.0.13   mysql         394 MB           
 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz               Linux    5.7.25   mysql         645 MB           
 mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz               Linux    5.6.43   mysql         329 MB           
 mysql-5.5.61-linux-glibc2.12-x86_64.tar.gz               Linux    5.5.61   mysql         199 MB           
 mysql-5.1.73-linux-x86_64-glibc23.tar.gz                 Linux    5.1.73   mysql         134 MB           
 mysql-5.0.96.tar.xz                                      Linux    5.0.96   mysql         5.5 MB   Y       
 mysql-5.1.72.tar.xz                                      Linux    5.1.72   mysql          10 MB   Y       
 mysql-5.5.61.tar.xz                                      Linux    5.5.61   mysql         6.6 MB   Y       
 mysql-5.5.62.tar.xz                                      Linux    5.5.62   mysql         6.6 MB   Y       
 mysql-5.6.43.tar.xz                                      Linux    5.6.43   mysql         9.0 MB   Y       
 mysql-5.6.44.tar.xz                                      Linux    5.6.44   mysql         9.1 MB   Y       
 mysql-5.7.25.tar.xz                                      Linux    5.7.25   mysql          23 MB   Y       
 mysql-5.7.26.tar.xz                                      Linux    5.7.26   mysql          23 MB   Y       
 mysql-5.0.96-linux-x86_64-glibc23.tar.gz                 Linux    5.0.96   mysql         127 MB           
 mysql-4.1.22.tar.xz                                      Linux    4.1.22   mysql         4.6 MB   Y       
 mysql-cluster-gpl-7.6.10-linux-glibc2.12-x86_64.tar.gz   Linux    7.6.10   ndb           916 MB           
 mysql-cluster-8.0.16-dmr-linux-glibc2.12-x86_64.tar.gz   Linux    8.0.16   ndb           1.1 GB           
 mysql-cluster-gpl-7.6.11-linux-glibc2.12-x86_64.tar.gz   Linux    7.6.11   ndb           916 MB           
 mysql-cluster-8.0.17-rc-linux-glibc2.12-x86_64.tar.gz    Linux    8.0.17   ndb           1.1 GB           
 mysql-shell-8.0.17-linux-glibc2.12-x86-64bit.tar.gz      Linux    8.0.17   mysql-shell    30 MB           
 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz               Linux    5.7.28   mysql         725 MB           
 mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz               Linux    8.0.18   mysql         504 MB           
 mysql-8.0.18-linux-x86_64-minimal.tar.xz                 Linux    8.0.18   mysql          48 MB   Y       
 mysql-8.0.19-linux-x86_64-minimal.tar.xz                 Linux    8.0.19   mysql          45 MB           
 mysql-cluster-8.0.19-linux-glibc2.12-x86_64.tar.gz       Linux    8.0.19   ndb           1.2 GB           
 mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz               Linux    5.7.29   mysql         665 MB  

在内网环境中,也可以选择自行下载MySQL介质,并上传到sandbox-binary参数指定的目录下进行解压,默认为$HOME/opt/mysql。

1
2
[root@t-luhx02-v-szzb mysql]# cd /media/mysql
[root@t-luhx02-v-szzb mysql]# dbdeployer unpack mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz

测试实例

1
2
3
4
[root@t-luhx02-v-szzb mysql]# dbdeployer deploy single 5.6.46 --gtid --my-cnf-options="character_set_server=utf8mb4" --db-user=msandbox --db-password=Abcd123#
Database installed in /usr/local/bin/msb_5_6_46
run 'dbdeployer usage single' for basic instructions'
. sandbox server started

连接实例

1
[root@t-luhx02-v-szzb mysql]# mysql -uroot -p -h 127.0.0.1 -P5646

也可以进入实例数据目录通过use连接

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[root@t-luhx02-v-szzb msb_5_6_46]# ./use -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.46-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, 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 [localhost:5646] {msandbox} ((none)) > 

查看已安装的环境

1
2
3
4
5
[root@t-luhx02-v-szzb mysql]# dbdeployer sandboxes --full-info
.------------.--------.---------.-----------.---------.--------.-------.--------.
|    name    |  type  | version |   host    |  port   | flavor | nodes | locked |
+------------+--------+---------+-----------+---------+--------+-------+--------+
| msb_5_6_46 | single | 5.6.46  | 127.0.0.1 | [5646 ] | mysql  |     0 |        

查看运行状态

1
2
3
[root@t-luhx02-v-szzb mysql]# dbdeployer global status
# Running "status" on msb_5_6_46
msb_5_6_46 on

重启实例

1
2
3
4
5
6
[root@t-luhx02-v-szzb ~]# dbdeployer global stop msb_5_6_46
# Running "stop" on msb_5_6_46
stop /usr/local/bin/msb_5_6_46

[root@t-luhx02-v-szzb ~]# dbdeployer global start msb_5_6_46
# Running "start" on msb_5_6_46

删除实例

1
2
3
4
5
6
[root@t-luhx02-v-szzb ~]# dbdeployer delete msb_5_6_46
List of deployed sandboxes:
/usr/local/bin/msb_5_6_46 
Running /usr/local/bin/msb_5_6_46/stop
Running rm -rf /usr/local/bin/msb_5_6_46
Directory /usr/local/bin/msb_5_6_46 deleted

对实例加锁,防止误删

1
dbdeployer admin lock msb_5_6_46

dbdeployer还有其它许多功能,更多内容请通过项目地址对其进行了解。

comments powered by Disqus