使用mysql数据库的mysqldump实现自动备份

使用mysql数据库的mysqldump工具,可以实现数据库的备份功能,如果在linux系统中配置好crontabs,就可以实现自动备份

#!/bin/bash
##配置原数据库连接信息,即正在使用需要备份数据库机器。
SOURCE_USER=-uroot
##如果就是在本机ip,即SOURCE_HOST=-h127.0.0.1
SOURCE_HOST=-h10.10.10.12
SOURCE_PASS=-padministrator

##配置备份数据库的连接信息,即用于备份的数据库机器
BAK_USER=-uroot
##用于备份的数据库机器ip
BAK_HOST=-h10.10.10.22
BAK_PASS=-padministrator

##从原数据库中导出数据库表的内容,并生成sql的文件,STATION为数据库名,username和files为表名
/var/mysql/bin/mysqldump --add-drop-table --opt $SOURCE_USER $SOURCE_HOST $SOURCE_PASS STATION username >/tmp/username.sql
/var/mysql/bin/mysqldump --add-drop-table --opt $SOURCE_USER $SOURCE_HOST $SOURCE_PASS STATION files >/tmp/files.sql

##导入到备份的数据库中
/var/mysql/bin/mysql $BAK_USER $BAK_HOST $BAK_PASS STATION </tmp/username.sql
/var/mysql/bin/mysql $BAK_USER $BAK_HOST $BAK_PASS STATION </tmp/files.sql

  • --flush-logs和--lock-tables组合将对你的数据库检查点有帮助。--lock-tables锁定你正在倾倒的所有表,而--flush-logs关闭并重新打开更新日志文件,新的更新日志将只包括从备份点起的修改数据库的查询。这将设置你的更新日志检查点位备份时间。(然而如果你有需要执行个更新的客户,锁定所有表对备份期间的客户访问不是件好事。)

    如果你使用--flush-logs设置检查点到备份时,有可能最好是倾倒整个数据库。如果你倾倒单独的文件,较难将更新日志检查点与备份文件同步。在恢复期间,你通常按数据库为基础提取更新日志内容,对单个表没有提取更新的选择,所以你必须自己提取它们。
  • 缺省地,mysqldump在写入前将一个表的整个内容读进内存。这通常确实不必要,并且实际上如果你有一个大表,几乎是失败的。你可用--quick选项告诉mysqldump只要它检索出一行就写出每一行。为了进一步优化倾倒过程,使用--opt而不是--quick。--opt选项打开其它选项,加速数据的倾倒和把它们读回。

    用--opt实施备份可能是最常用的方法,因为备份速度上的优势。然而,要警告你,--opt选项确实有代价,--opt优化的是你的备份过程,不是其他客户对数据库的访问。--opt选项通过一次锁定所有表阻止任何人更新你正在倾倒的任何表。你可在一般数据库访问上很容易看到其效果。当你的数据库一般非常频繁地使用,只是一天一次地调节备份。
  • 一个具有--opt的相反效果的选项是--dedayed。该选项使得mysqldump写出INSERT DELAYED语句而不是INSERT语句。如果你将数据文件装入另一个数据库并且你想是这个操作对可能出现在该数据库中的查询的影响最小,--delayed对此很有帮助。
  • --compress选项在你拷贝数据库到另一台机器上时很有帮助,因为它减少网络传输字节的数量。下面有一个例子,注意到--compress对与远端主机上的服务器通信的程序才给出,而不是对与本地主机连接的程序: 
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值