MySQL 8.0.12 体验go-mydumper 备份工具

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/vkingnew/article/details/82710546
概述:
go-mydumper是多线程的备份工具,支持mysql,兼容mydumper工具。简化了mydumper的使用。
1.安装golang:
 yum -y install golang golang-src golang-bin
或者使用tar.bz包安装也可以。
  1.1.自行下载golang包
  wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
  1.2.golang安装和测试:
tar -xzvf go1.10.3.linux-amd64.tar.gz -C /usr/local/
设置环境变量:
# source /etc/profile.d/go.sh
# cat /etc/profile.d/go.sh 
export PATH=$PATH:/usr/local/go/bin
# go version
go version go1.10.3 linux/amd64
2.获取源代码并编译:
#cd /usr/local
#git clone https://github.com/xelabs/go-mydumper.git
#cd go-mydumper
#make 
# make
--> go get...
go get github.com/xelabs/go-mysqlstack/driver
go get github.com/stretchr/testify/assert
go get github.com/pierrre/gotestcover
make[1]: Entering directory `/usr/local/go-mydumper'
--> go get...
go get github.com/xelabs/go-mysqlstack/driver
go get github.com/stretchr/testify/assert
go get github.com/pierrre/gotestcover
make[1]: Leaving directory `/usr/local/go-mydumper'
--> Building...
go build -v -o bin/mydumper src/mydumper/main.go
github.com/xelabs/go-mysqlstack/sqlparser/depends/bytes2
github.com/xelabs/go-mysqlstack/sqlparser
common
command-line-arguments
go build -v -o bin/myloader src/myloader/main.go
github.com/xelabs/go-mysqlstack/sqlparser/depends/bytes2
github.com/xelabs/go-mysqlstack/sqlparser
common
command-line-arguments
go build -v -o bin/mystreamer src/mystreamer/main.go
github.com/xelabs/go-mysqlstack/sqlparser/depends/bytes2
github.com/xelabs/go-mysqlstack/sqlparser
common
command-line-arguments
--> Testing...
make[1]: Entering directory `/usr/local/go-mydumper'
go test -race -v common
=== RUN   TestWriteReadFile
--- PASS: TestWriteReadFile (0.00s)
=== RUN   TestEscapeBytes
--- PASS: TestEscapeBytes (0.00s)
=== RUN   TestDumper
 2018/09/15 04:40:46.613925 dumper.go:35:     [INFO] dumping.database[test].schema...

...
编译之后有几个二进制文件。/usr/local/go-dumper/bin

# tree /usr/local/go-mydumper/bin/
/usr/local/go-mydumper/bin/
├── gotestcover
├── mydumper
├── myloader
└── mystreamer

3.帮助信息解释:
./mydumper --help
Usage: ./mydumper -h [HOST] -P [PORT] -u [USER] -p [PASSWORD] -db [DATABASE] -o [OUTDIR]
  -F int
    Split tables into chunks of this output file size. This value is in MB (default 128)
  数据备份输出文件块大小,默认是每块128MB.
  -P int
    TCP/IP port to connect to (default 3306)
  MySQL端口号,默认是3306.
  -db string
    Database to dump
  待备份的数据库。
  -h string
    The host to connect to
   连接的主机IP或者域名
  -o string
    Directory to output files to
  数据文件的目录
  -p string
    User password
  用户的密码
  -s int
    Attempted size of INSERT statement in bytes (default 1000000)
 INSERT语句中包含的大小,默认是100万。
  -t int
    Number of threads to use (default 16)
  备份的并发线程数,默认是16.
  -table string
    Table to dump
  备份的表。
  -u string
    Username with privileges to run the dump
  必要权限的用户名。
恢复数据的参数:
./myloader --help
Usage: ./myloader -h [HOST] -P [PORT] -u [USER] -p [PASSWORD] -d [DIR] [-o]
  -P int
    TCP/IP port to connect to (default 3306)
  端口号,默认是3306.
  -d string
    Directory of the dump to import
  恢复数据的目录。
  -h string
    The host to connect to
  要恢复数据的主机或IP.
  -o Drop tables if they already exist
  overwrite 复写存在的表。
  -p string
    User password
  密码。
  -t int
    Number of threads to use (default 16)
  数据恢复的并发数,默认16个。
  -u string
    Username with privileges to run the loader
  数据恢复的用户名.
--流备份的工具:
# ./mystreamer --help
Usage: ./mystreamer -h [HOST] -P [PORT] -u [USER] -p [PASSWORD] -db [DATABASE] -2h [DOWNSTREAM-HOST] -2P [DOWNSTREAM-PORT] -2u [DOWNSTREAM-USER] -2p [DOWNSTREAM-PASSWORD] [-2db DOWNSTREAM-DATABASE] [-o]
  -2P int
    Downstream TCP/IP port to connect to (default 3306)
  -2db string
    Downstream database, default is same as upstream db
  -2engine string
    Downstream table engine
  -2h string
    The downstream host to connect to
  -2p string
    Downstream user password
  -2u string
    Downstream username with privileges to run the streamer
  -P int
    Upstream TCP/IP port to connect to (default 3306)
  -db string
    Database to stream
  -h string
    The upstream host to connect to
  -oDrop tables if they already exist
  -p string
    Upstream user password
  -s int
    Attempted size of INSERT statement in bytes (default 1000000)
  -t int
    Number of threads to use (default 16)
  -table string
    Table to stream
  -u string
    Upstream username with privileges to run the streamer
 说明:-2开头的是目标库的信息,包含用户名、主机名、密码、端口号、数据库名、存储引擎。
  源库需要的基本的用户名、主机名、密码、端口号、数据库、数据库名、表名。
此外还需要关注的参数-o(overwrite) -s还有线程数-t.



4.示例:
1.备份数据库:
./mydumper -h 10.19.85.149 -u backup -p backup -P 3306 -db tpcds -t 32 -o /data/backup/
2.数据恢复:
./myloader -h 10.19.189.221 -u backup -p backup -o -P 3308 -t 32  -d /data/backup/
3.流式数据备份:
./mystreamer -h 10.19.85.149 -u backup -p backup -P 3306 -db tpcds  -2h 10.19.189.221 -2u backup -2p backup  -2P 3308 -2db tpcds 


5.应用:
https://github.com/radondb
https://github.com/pingcap/tidb

参考:
https://github.com/xelabs/go-mydumper
https://github.com/maxbube/mydumper

猜你喜欢

转载自blog.csdn.net/vkingnew/article/details/82710546