zoukankan      html  css  js  c++  java
  • Mysql 自动备份脚本

    转自

    Mysql 自动备份脚本2 - - ITeye技术网站
    http://kangh.iteye.com/blog/2309091

    备份方案:

    备份主机:192.168.10.11

    数据库服务器:192.168.10.22

    备份内容:对mysql服务器中的xxxx和yyyy库进行远程备份,每天凌晨2:30执行,每个库备份为独立的.sql文件,然后压缩成.tar.gz的格式,文件名中嵌入执行备份的日期和时刻。

    工作准备:

    1、确保备份主机与数据库服务器之间的网络保持连接通畅,不能有网络链路故障,防火墙等阻碍。

    2、mysql服务必须允许备份主机远程访问,且授权用户能够查询xxxx和yyyy库。

    这儿可以创建一个专用的数据库备份账户"kanghui" 允许备份主机192.168.10.11连接到mysql数据库,并授权对xxxx和yyyy库的读取权限,使用逻辑备份工具mysqldump的时候,需要对库设置select和lock和tables权限。

    Java代码  收藏代码
    1. mysql>grant select,lock tables on xxxx.*to 'kanghui'@'192.168.10.11' identified by '123456';  
    2.   
    3. mysql>grant select,lock tables on yyyy.*to 'kanghui'@'192.168.10.11' identified by '123456';  

     设置访问权限后就在备份服务器上测试数据库访问,查询授权等是否有效。

    Java代码  收藏代码
    1. [root@localhost ~]#mysqldump -u root -p123456 -h 192.168.10.22 --databases xxxx > ceshi.sql  
    2.   
    3. [root@localhost ~]#ls -lh ceshi.sql  

    下面是一个mysql的备份脚本,根据自己的需求修改即可。

    Java代码  收藏代码
    1. [root@localhost ~]#mkdir -p /opt/mysql_bak/  
    2. [root@localhost ~]#cd /opt/mysql_bak/  
    3. [root@localhost mysql_bak]# vim mysql_bak.sh  
    4. #!/bin/bash  
    5. #auto backup mysqldb  
    6. #by authors kanghui 2016-06-12  
    7. #这是一个简单化到MYSQL数据库逻辑备份脚本  
    8. #1.定义数据库链接,目标库信息  
    9. MY_user="root"  
    10. MY_pass="123456"  
    11. MY_host="192.168.10.22"  
    12. MY_conn="-u $MY_user -p$MY_pass -h $MY_host"  
    13. MY_db1="xxxx"  
    14. MY_db2="yyyy"  
    15. #2.定义备份目录,工具,时间,文件名  
    16. BF_dir="/opt/mysql_bak"  
    17. BF_cmd="/usr/bin/mysqldump"  
    18. BF_time="date +%Y%m%d-%H%M"  
    19. name_1="$MY_db1-$BF_time"  
    20. name_2="$MY_db2-$Bf_time"  
    21. #3先导出为.sql脚本,然后再进行压缩(打包后删除源文件)  
    22. cd $BF_dir  
    23. $BF_cmd $MY_conn --databases $MY_db1 > $name_1.sql  
    24. $BF_cmd $MY_conn --databases $MY_db2 > $name_2.sql  
    25. /bin/tar zcf $name_1.tar.gz $name_1.sql --remove &> /dev/null  
    26. /bin/tar zcf $name_2.tar.gz $name_2.sql --remove &> /dev/null  

    设置权限并测试:

    Java代码  收藏代码
    1. [root@localhost mysql_bak]#chmod +x mysql_bak.sh  
    2.   
    3. [root@localhost mysql_bak]#./mysql_bak.sh  
    4.   
    5. [root@localhost mysql_bak]#ls -lh /opt/mysql_bak/*.gz  

     最后把脚本加入带计划任务即可。

    Java代码  收藏代码
    1. [root@localhost ~]#crontab -e  
    2. 30 2 * * * /opt/mysql_bak/mysql_bak.sh 
  • 相关阅读:
    Vue 封装axios(四种请求)及相关介绍
    简单的按钮样式,两个连在一起的按钮
    http接口访问正常,https访问报错,基础连接已经关闭: 发送时发生错误.
    单点登录思路,多台服务器共用一个数据库,登录信息解决方案
    Wait()在过滤器中卡住 ,在异步代码上阻塞时的常见死锁问题
    接口对接,接口通过原有代码无法访问,解决办法,用postman解决
    svg基础标签说明
    server 2016部署网络负载平衡(NLB)
    写 JS 逻辑判断,不要只知道用 if-else 和 switch
    .NetCore部署IIS出错原因未安装ASP.N.NetCore部署IIS出错原因未安装ASP.NET Core Module v2ET Core Module v2
  • 原文地址:https://www.cnblogs.com/paul8339/p/5645825.html
Copyright © 2011-2022 走看看