忘记密码?

一键登录

草根吧源码论坛

Mysql 自动备份脚本(Discuz Mysql优化技巧)

查看: 214|回复: 0

[数据库] Mysql 自动备份脚本(Discuz Mysql优化技巧)

[复制链接]

1724

主题

2222

热度

684

贡献

民审

Rank: 8Rank: 8

发表于 2016-7-5 13:22:55 | 显示全部楼层 |阅读模式 | 百度  360  谷歌 
分享到:
    备份方案:
备份主机: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代码  

  • mysql>grant select,lock tables on xxxx.*to 'kanghui'@'192.168.10.11' identified by '123456';
  • mysql>grant select,lock tables on yyyy.*to 'kanghui'@'192.168.10.11' identified by '123456';

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

  • [root@localhost ~]#mysqldump -u root -p123456 -h 192.168.10.22 --databases xxxx > ceshi.sql
  • [root@localhost ~]#ls -lh ceshi.sql


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

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

设置权限并测试:
Java代码  

  • [root@localhost mysql_bak]#chmod +x mysql_bak.sh
  • [root@localhost mysql_bak]#./mysql_bak.sh
  • [root@localhost mysql_bak]#ls -lh /opt/mysql_bak/*.gz


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

  • [root@localhost ~]#crontab -e
  • 30 2 * * * /opt/mysql_bak/mysql_bak.sh



  
      

帖子地址: 

本文来源于草根吧源码论坛 www.caogen8.co,欢迎大家下载。
如果您没有贡献需要充值,可以直接在线充值,点击充值
如果你需要加入本站赞助VIP会员,可以直接在线开通,点击开通
如果找不到您要的资源,请搜索一下,点击搜索
回复

举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆 用百度帐号登录 一键登录:

本版积分规则

收藏帖子 返回列表 搜索
快速回复 返回顶部 返回列表