MySQL的有备无患
首先我对MYSQL数据库的备份计划分为二个步骤,第一步为时时备份,就是MYSQL的 MASTER,SLAVE模式,此模式的优势就在可以从MASTER数据库即时的备份到SLAVE上,对于硬盘损坏导致的数据库问题可以有效的进行预防, 同时在配置文件中可声明生成二进制日志文件,又可以在任意时间进行数据恢复。第二部完全备份,有了时时备份,仍不可掉以轻信,大家都知道计算机这东西没准 什么时间就会给你冒个异常,作为一名合格的系统管理员,我们要尽量做到万无一失误,那么我的计划是在本地的CRONTAB中添加每日的MYSQLDUMP 命令,用来导出数据库,并传送到一台备份服务器。
下面来具体的为大家说明如何来实施我的计划:
1.主从模式:
MASTER:
配置my.cnf,在[mysqld]中添加
server-id=1
log-bin#(启动二进制备份)
binlog-do-db=database1 #(选择需要备份的本地数据库)
log#(记录本地LOG日志)
log-update#(更新本地LOG日志)
在MYSQL中执行:
GRANT SELECT,REPLICATION SLAVE ON database1.* TO backup@123.123.123.123 IDENTIFIED BY 'backuppwd';
解释:
log-bin#(启动二进制备份)
binlog-do-db=database1,database2#(选择需要备份的本地数据库)
将本地的数据存储转换为二进制模式,方便传送至SLAVE,本地查看数据库日志不方便。
log#(记录本地LOG日志)
log-update#(更新本地LOG日志)
直接将二进制日志记录在本地,本地会在数据库目录生成以主机名命名的log文件,方便本地查看。
GRANT SELECT,REPLICATION SLAVE ON database1.* TO backup@123.123.123.123 IDENTIFIED BY 'backuppwd';
为SLAVER添加一个可以访问的用户
SLAVER:
server-id=2
master-host=123.123.123.123#(MASTER的IP)
master-user=backup
master-password=backuppwd
master-port=3306
master-connect-retry=60
set-variable=replicate-do-db=database1
log-bin
log-slave-updates
解释:
server-id=2
master-host=123.123.123.123#(MASTER的IP)
master-user=backup
master-password=backuppwd
master-port=3306
master-connect-retry=60
配置MASTER的相关信息
log-bin
log-slave-updates
本地记录二进制日志并更新
2.完全模式
在CRONTAB中写入
0 0 * * * mysqldump database > /sqlbak/database_`date +%Y%m%d`.sql
完整数据库文件被导出后可以用SCP拷贝到备份服务器(可参考SSH无密码认证方法),这里就不说了。
解释:
在每天0点的时候对DATABASE数据库进行备份并以当天日期作为文件名,例如今天会生成database_20090218.sql
有了这双层保险,相信大家在数据库管理方便可以轻松很多吧。本文只是介绍了MYSQL备份策略的冰山一角,更多的应用还需要大家自己琢磨,若有解释不当的地方还请大家海涵,愿和各位系统爱好者一同进步。
附:通过二进制文件恢复数据:
mysqlbinlog --stop-date="2009-02-18 00:00:00" /var/lib/mysql/commail-bin.000001 > /sqlbak/090218.sql
恢复2009年2月18日0点前的完整数据库信息到/sqlbak/090218.sql
关键字:MySQL、数据库、备份、服务器
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解