前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql数据库运维方案

mysql数据库运维方案

作者头像
Wu_Candy
发布2022-07-04 15:56:22
10.9K0
发布2022-07-04 15:56:22
举报
文章被收录于专栏:无量测试之道

数据库不仅仅是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 > {TODAY}/{DATABASE_NAME}-

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以前的操作。

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

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无量测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档