zoukankan      html  css  js  c++  java
  • 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自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

     

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

  • 相关阅读:
    Java Object-Oriented:day11 【 Inner Classes 】
    Java Object-Oriented:day11 【 final 】
    Java Object-Oriented:day10 【 Inheritance】
    Java Object-Oriented:day10 【 Interfaces】
    深入剖析Kubernetes学习笔记:StatefulSet-MySQL集群(20)
    Java Object-Oriented:day09 【 Inheritance、Abstract Classes】
    Java Object-Oriented:day09 【 Inheritance、super、this】
    kubernetes云平台管理实战:常用命令大全(十二)
    Java API:day08 【static、Arrays、Math】
    Java API:day08 【String】
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/12956302.html
Copyright © 2011-2022 走看看