MySQL数据库Inception工具学习与测试案例(5)

#!/usr/bin/python #-*- coding:utf-8 -*- import MySQLdb sql='''/*--user=数据库账号;--password=相应密码;--host=XXX.XXX.XXX.9;--execute=1;--port=3306;*/\ inception_magic_start;\ use dbtest;\ CREATE TABLE table_test(id int comment 'test' primary key) engine=innodb DEFAULT CHARSET=utf8mb4 comment '测试';\ inception_magic_commit;''' try: conn=MySQLdb.connect(host='XXX.XXX.XXX.8',user='',passwd='',db='',port=6669) cur=conn.cursor() ret=cur.execute(sql) result=cur.fetchall() num_fields = len(cur.description) field_names = [i[0] for i in cur.description] print field_names for row in result: print row[0], "|",row[1],"|",row[2],"|",row[3],"|",row[4],"|",row[5],"|",row[6],"|",row[7],"|",row[8],"|",row[9],"|",row[10] cur.close() conn.close() except MySQLdb.Error as e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])

执行结果如下:

MySQL数据库Inception工具学习与测试案例

去备份库上查看,备份情况如下:

MySQL数据库Inception工具学习与测试案例

3.6 备份所需的条件

如果在测试的过程中,发现没有实现备份,可以从以下几个方面去检查

(1)线上服务器必须要打开Binlog,在启动时需要设置参数log_bin、log_bin_index等关于Binlog的参数。不然不会备份及生成回滚语句,因为Inception的生成回滚语句是通过解析Binlog来做的。

(2)参数必须binlog_format必须设置为mixed或者row模式。如果是statement模式,则不做备份及回滚语句的生成。可通过语句set global binlog_format=ROW来设置。

(3)将binlog_row_image设置为full ,该配置项默认为 full ,但是如果为了减少binlog的size改成minimal的话,则Inception无法生成回滚语句。

(4)参数server_id必须设置为非0非1,通过语句set global server_id=server_id;来设置,不然在备份时报错。因为在获取Binlog时,需要通过server_id在主库上注册Inception。

(5)被修改表需要有主键:执行时,被影响的表如果没有主键的话,就不会做备份了。这样更简单并且备份时间及数据都会少一点,不然回滚语句的where条件就会将所有列写进去,这样会影响性能且没有太大意义,所以在where条件中,只需要主键即可。

(6)备份相关的四个参数需要设置好,并且对应的用户在备份数据库实例中有足够的权限。

3.7 在进行验证时可能遇到的错误。

1执行 Python验证,报错信息。

ImportError: No module named MySQLdb

MySQL数据库Inception工具学习与测试案例

解决方案:

yum install MySQL-python

2.有时候执行Python脚本报错:invalid source infomation。

这时候需要去检查Inception连接数据库的参数配置。

 4.Inception常见关于审核规范的变量参数

MySQL数据库Inception工具学习与测试案例

5.Inception统计功能

其数据存储在备份实例上的inception数据库上statistic表中,此库自动生成。

MySQL数据库Inception工具学习与测试案例

主要字段的说明如下:

列名   字段描述  
deleting   包括普通的删除操作及多表删除操作。  
inserting   包括单行插入���多行插入及查询插入。  
updating   包括普通单表更新及多表的更新。  
renaming   指的是ALTER table语句中的rename操作。  
createindex   指的是ALTER table语句中的add index操作。  
dropindex   指的是ALTER table语句中的drop index操作。  
alteroption   指的是ALTER table语句中的修改表属性的操作,比如存储引擎、自增值及字符集中操作。  
alterconvert   指的是ALTER table语句中修改表字符集的操作。  

-----主要内容参考梳理于网络知识和《MySQL运维内参》,此短文仅为学习笔记,在此原创作者感谢!

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e5cc155cd89d999277833102ebd2a20d.html