前面我们介绍了Archery的各个功能,这篇文章我们介绍最重要的功能,也就是sql上线的功能。下面我们来演示一下。
一、创建一个普通的用户
这里需要使用管理员账户,登录上archery平台
点击右上角的用户名,选择管理后台,进入到django页面
在左侧点击用户管理
这里的话,一般我们会创建一些普通用户,在实际中相当于给某个团队每个人都创建一个账号
这里假设我们创建的账户是张三,组的话我们这里选择DBA,主要是因为演示方便,实际中一般我们使用default即可,用户权限既然是DBA,就全部勾选
关于用户权限这里,不同的人设置不同的权限即可。
二、配置goInception
1、这里的话审计和上线主要使用的是goInception工具,因此需要先安装goInception工具,这里的话我们可以参考这篇文章《Centos安装go的mysql审计工具goInception安装教程》。
备注:
1)这里我们由于archery是使用docker部署的,因此我们把这个goInception部署及启动在archery的docker实例里面去。
2、准备一个单独的mysql,用作goInception进行数据备份。
在使用goInception的时候,他执行上线的话需要一个备份的数据库,因此这里我们需要再提供一个单独的mysql实例。这里我们使用docker的方式安装了一个新的mysql5.7(安装教程可以参考《centos如何使用docker安装mysql?》)。
3、登录archery平台
4、点击左侧的菜单,选择系统管理->配置项管理,然后把goInception配置上
三、添加实例
1、登录archery平台,进入到实例管理->实例列表,点击添加实例,这里我们添加一个需要上线的数据库。
备注:
1)在实例标签里面,一定要选择上支持上线和支持查询,如果不选择的话,则不能使用对应的功能。
添加完成后,点击保存,然后在外面点击下测试
备注:
1、这里上线的实例一定要开启binlog,如果这个mysql实例没有开启binlog的话,使用archery上线就会失败,无法生成回滚的sql等信息,所以binlog是必须要配置的。配置binlog可以参考这篇文章《mysql开启binlog需要配置哪些参数》。
四、配置资源组
配置资源组的话,其实就是为了把需要操作的实例服务器与能够操作这些实例服务器的成员关联起来,这样子在操作的时候就能选择到对应的实例了。
1、登录archery平台
2、选择左侧的菜单:系统管理->资源组管理,然后添加一个组即可,这里我们添加一个3307数据库团队
这里的是否删除,切记一定不能选择是,而是选择默认的否,创建完毕之后,列表就会出现刚才创建的组了。
3、点击资源组对应的管理按钮,新增关联对象
这里有两种,切记人和实例都需要关联,不然的话后面无法操作。
五、设置审批流程
这里需要设置下审批流程,如果没有审批流程的话,后面上线工单无法做。还有一个这里的审批流程比较简单,也就是只能选择一个角色,当前只要是这个角色的用户登录,都可以看到这个单子,并且进行审批。下面我们演示一下:
1、登录archery平台
2、选择左侧的菜单:系统管理->配置项管理
3、选择左侧的配置项,选择工单审批流配置
然后我们选择sql上线申请
在选择资源组,相当于每一个组配置一个审批流程
然后右侧默认是空的,我们选择dba,再点击变更,当前的审批流程就配置好了。
此时相当于这个3307数据库团队的资源组中,只要是DBA角色登录,就可以对工单进行审批。
六、登录张三账号,提交上线工单
1、此时我们换一个浏览器,使用张三的账号登录下archery平台
2、选择左侧的菜单,点击SQL审核->SQL上线,提交sql
在这里我们填写对应的sql,然后右边选择对应的实例即可,填写完之后,一定要进行sql检测,检测没问题,才能提交
点击提交之后,回到列表页面就可以看到一条工单了。
3、进行审核
这里我们在刚才给张三赋予了DBA权限,因此张三点击进去这个工单就可以进行审核
点击审核通过
就可以看到当前的任务可以被执行了,默认是在大家选择的时间内进行执行,我们也可以立即执行,点击立即执行
就可以看到执行成功了,同时在左下角自动生成了回滚的sql,也就是上线出现意外的话,我们可以执行回滚的sql语句,让数据进行回滚。
到此为止,这里上线就完成了。
还没有评论,来说两句吧...