首页
JAVA笔记
数据库笔记
混乱记忆
小站记
您现在的位置
mysql 数据库实时备份
简介: 使用mysql 提供的主从机制实现数据库实时热备份,经过测试完美通过。

我的博客已经上线有一段时间了,为了数据的安全(避免数据丢失)今天配置一个热备份。配置方法如下:

 

第一步 在mast 机器上操作

 

修改my.cnf 配置文件关键项修改如下

server-id       = 1

#开启日志

log-bin=mysql-bin

#配置要同步的数据库
binlog-do-db=dataBaseName

 

在主服务器中创建备份时需要的用户
grant replication slave on *.* to 'testbackup'@'%' identified by 'backup';

 

使用户生效
flush privileges;


锁住表,不允许写操作
FLUSH TABLES WITH READ LOCK;
 
查看主数据库的日志记录状态
 show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 60065456 | dev          |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注:标红的数据在 slave 机器上执行 CHANGE 命令时将要用到。

 

启动另一个 ssh 终端登录,使用mysqldump 备份数据.

使用方法参考:http://www.xiaoyunduo.org/article/32/


第二步 在slave 机器上操作

 

连接上从数据库后先将上面备份的数据通过mysqldump 工具恢复

 

修改my.cnf

两个库的id不能一样

server-id = 10

推荐禁用日志

#log-bin=mysql-bin

 

#停止slave

stop slave;

 

#配置连接

CHANGE MASTER TO

MASTER_HOST='133.222.97.199',MASTER_PORT=3306,MASTER_USER='testbackup',MASTER_PASSWORD='backup',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=60065456;

 

#启动slave

start slave;

 

#查看slave状态

show slave status \G
当 Slave_IO_Running 和 Slave_SQL_Running 的值都为 Yes 的时候则说明配置成功

 

第三步 在mast 机器上操作

之前我们锁主了数据库写操作,这里必须解除表锁定
UNLOCK TABLES;

 

第四步 自行测试

至此所有配置都已经结束

最近更新