archery的备份功能,文档写的太渣,因此写下这个博客记录下过程,先考虑以下问题:
1、备份需要用到备份库,可不可以放在远程数据库(就是你实际执行sql语句的库)相同的实例下面,答案是可以的,但是生产就不建议了,毕竟会产生binlog,也感觉不太安全
2、备份库需要自行建立表吗? 文档粗略看了下,好像没明确说。答案是需要的,比如你现在在192.168.11.200:52100/test 数据库执行sql,则需要自行在备份库建立库为:192.168.11.200_52100_test
3、数据库需要开启binlog,并且日志格式设置为ROW
archery备份功能要看goinception的文档,archery说的很不清楚,狗日的
需开通的权限文档:https://hanchuanchuan.github.io/goInception/zh/permission.html
功能说明文档: https://hanchuanchuan.github.io/goInception/zh/backup.html#%E5%A4%87%E4%BB%BD%E5%8A%9F%E8%83%BD%E8%AF%B4%E6%98%8E
下面摘抄说明下:
---------------官方说明Start----------------
备份原理:https://hanchuanchuan.github.io/goInception/zh/backup.html#%E5%A4%87%E4%BB%BD%E5%8A%9F%E8%83%BD%E8%AF%B4%E6%98%8E
- 配置备份数据库,并在执行SQl时开启备份功能
- 在执行SQL前记录binlog位置和线程号(逐条执行逐条记录)
- 执行SQL
- 在执行SQL后记录binlog位置和线程号
- 开始备份,解析远程服务器binlog
- 在备份服务器创建备份库
- 创建备份信息表,写入执行信息和binlog位置信息
- 创建备份表,
- 逐步解析binlog,并生成回滚语句,写入备份表
备份功能说明
goInception自带备份功能,首先服务启动时配置config.toml(放在 [inc]
段)
backup_host = "192.168.11.200"
backup_port = 52100
backup_user = "dev_user"
backup_password = "abc123456"
参数默认值可选范围说明backup_host""string备份数据库IP地址backup_port0int备份数据库端口backup_user""string备份数据库用户名backup_password""string备份数据库密码
并且在执行sql时,添加 --backup=true
或 --backup=1
选项
#
备份功能权限要求
- 对
远程数据库
要求具有:REPLICATION CLIENT
,REPLICATION SLAVE
, 以进行binlog解析 - 对
备份数据库
要求具有:CREATE
,INSERT
,建议给所有权限, 便于生成备份
---------------官方说明End----------------
---------------实操部分----------------
首先需要在远程数据库新建一个账号:
create user 'repl_user'@'%' indentified by 'abc123456';
授予REPLICATION CLIENT
,REPLICATION SLAVE 权限,这两个是必须要的
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,ALTER,INDEX,REFERENCES,REPLICATION CLIENT,REPLICATION SLAVE,TRIGGER ON *.* TO repl_user@'%';
flush privileges
同时在archery建立实例时必须用这个账号,
建备份库:(我这里要操作的是test2这个库)
create database 192_168_11_200_52100_test2;
create user 'dev_user'@'%' indentified by 'abc123456';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,ALTER,INDEX ON `192_168_11_200_52100_test2`.* TO 'dev_user'@'%';
flush privileges
配置备份库:
应该可以在以下任何一个地方配置即可:
1、goinception,启动时执行配置文件,./goinception -config=config.toml, 配置文件在goinception的gituhbu源码(GitHub - hanchuanchuan/goInception: 一个集审核、执行、备份及生成回滚语句于一身的MySQL运维工具)的config目录下,有个config.toml.default,拷过来用即可,修改配置如下
config.toml(放在 [inc]
段)
backup_host = "192.168.11.200"
backup_port = 52100
backup_user = "dev_user"
backup_password = "abc123456"
2、另外可以在archery的页面上配置:
系统管理=>配置项管理=>把下列填上
好了,提交sql,执行看下效果吧!