mysql数据库运维方案

 

欢迎关注【无量测试之道】公众号,回复【领取资源】,
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、

 

资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。

 

数据库不仅仅是dba的工作,每一个测试人员也应该懂得基本的数据运维操作,因为数据库是数据承载的地方并且是系统中非常重要的一部分,所以我们也需要熟练的对数据库进行基本维护。

 

01、常用备份恢复命令


 

第1组命令:

1.1:导出所有库

mysqldump --socket=/home/q/mysql/multi/3306/socket/mysql.sock -hlocalhost -utester -p123456 --all-databases > alldb.sql

 

1.2:导入所有库

mysql -hlocalhost -utester -p123456 < alldb.sql

或者

mysql>source alldb.sql;

 

第2组命令:

2.1:导出某些库

mysqldump --socket=/home/q/mysql/multi/3306/socket/mysql.sock -hlocalhost -utester -p123456  --databases testdb1 testdb2 > testdb.sql

 

2.2:导入某些库

mysql-hlocalhost -utester -p123456 < testdb.sql

或者

mysql>source testdb.sql;

 

第3组命令:

3.1:导出单个库

mysqldump --socket=/home/q/mysql/multi/3306/socket/mysql.sock -hlocalhost -utester -p123456  --databases testdb1 > testdb1.sql

 

3.2:导入单个库

mysql-hlocalhost -utester -p123456 < testdb1.sql

或者

mysql>source testdb1.sql;

 

第4组命令: 

4.1:导出某些数据表

mysqldump --socket=/home/q/mysql/multi/3306/socket/mysql.sock -hlocalhost -utester -p123456  --databases testdb1 table1 table2 > tables.sql

 

4.2:导入某些数据表

mysql -uusername -ppassword testdb1 < tables.sql

或者

mysql>source tables.sql;

 

02、shell脚本实现数据库备份


 

#!/bin/bash  #是指此脚本使用/bin/bash来解释执行,#!是特殊的表示符

export PATH=/bin:/usr/bin:/usr/local/bin #进行环境变更的设置

TODAY=`date +"%d%b%Y"` #获取日期,进行变更赋值

 

DB_BACKUP_PATH='/backup/dbbackup'  #先创建备份目录

MYSQL_HOST='localhost' #mysql服务器

MYSQL_PORT='3306' #mysql服务端口

MYSQL_USER='root' #mysql账号

MYSQL_PASSWORD='123456' #mysql 密码

DATABASE_NAME=‘db1' #指定备份的数据名称

 

mkdir -p ${DB_BACKUP_PATH}/${TODAY}  #创建备份的目录

echo "Backup started for database - ${DATABASE_NAME}" #输出开始备份提示语

mysqldump -h ${MYSQL_HOST} \

          -P ${MYSQL_PORT} \

          -u ${MYSQL_USER} \

          -p ${MYSQL_PASSWORD} \

          ${DATABASE_NAME} | gzip > ${DB_BACKUP_PATH}/${TODAY}/${DATABASE_NAME}-${TODAY}.sql.gz  #执行备份并压缩

 

if [ $? -eq 0 ]; then #判断mysqldump是否成功

  echo "Database backup successfully completed" #输出成功的提示语

else

  echo "Error found during backup" #输出失败的提示语

fi

 

03、使用mysqlbinlog恢复数据


 

binlog配置:

在MySQL配置文件my.cnf文件中的mysqld节中添加下面的配置文件:

[mysqld]

#设置日志格式

binlog_format = mixed

#设置日志路径,注意路径需要mysql用户有写权限

log-bin = /data/mysql/logs/mysql-bin.log

#设置binlog清理时间

expire_logs_days = 7

#binlog每个日志文件大小

max_binlog_size = 100m

#binlog缓存大小

binlog_cache_size = 4m

#最大binlog缓存大小

max_binlog_cache_size = 512m

重启服务。

 

执行mysqlbinlog命令恢复数据:

$> mysqlbinlog --stop-date="2019-05-31 23:59:59" /home/q/mysql/log/binlog/binlog.000009 | mysql -utester -p123456 #根据日志文件binlog.000008将数据恢复到2019-05-31 23:59:59以前的操作。

 

总结:数据库的运维对于测试人员来说仍然是非常重要的,比如:非常重要也不太容易构建的测试数据需要做备份操作时,数据库的运维就显得很有技术含量,掌握数据的基本运维可以使测试工作做得更出色,同时也会让开发刮目相看,朋友们一起加油~

 

备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

 

 

 

 

 添加关注,一起共同成长吧。

 

posted on 2020-05-25 12:58  Wu_Candy  阅读(1947)  评论(0编辑  收藏  举报