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

     

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

  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1046 Shortest Distance (20)
    1061 Dating (20)
    1041 Be Unique (20)
    1015 Reversible Primes (20)(20 分)
    pat 1027 Colors in Mars (20)
    PAT 1008 Elevator (20)
    操作系统 死锁
    Ajax的get方式传值 避免& 与= 号
    让IE浏览器支持CSS3表现
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/12956302.html
Copyright © 2011-2022 走看看