`

mysql 自动在线备份

阅读更多
mysql 自动在线备份

本文作者:解道成

拟在实验室测试进行MySQL的在线备份测试
1、建立一个 主 MySQL 服务器
2、建立一个从 MySQL 服务器
3、建立从主服务器到从服务器的在线数据复制

目的:
1、MySQL的安装、管理
2、主从服务器的建立,以保证以后数据库系统的高可用性
3、测试一下相关的性能。

操作如下:
第一步:开始时如果slave上的数据和master上的不同
,需要同步数据库
1. 备份数据库
mysqldump -uroot -padmin  midp > "C:\Program Files\MySQL\MySQL Server 5.0\logs\back.sql"
2. 恢复数据
mysql -uroot -p123456 midp < "C:\Program Files\MySQL\MySQL Server 5.0\logs\back.sql"
或使用Mysql Query Browser更简单

第二步:在master上创建一个slave的帐户
mysql> GRANT REPLICATION SLAVE ON *.*
       -> TO 'repl'@'10.1.2.131' IDENTIFIED BY 'slave';

第三步:配master 与 slave 的my.ini (Linux上是my.cnf)文件
在里面的[mysqld]行下面增加
(master):
server-id=1
log-bin=C:\Program Files\MySQL\MySQL Server 5.0\logs\mysql_binary_log #打开二进制日志
binlog-do-db=midp #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
binlog-ignore-db=mysql #不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可

(slave):
server-id=2
master-host=10.1.2.130
master-user=repl
master-password=slave
master-port=3306
master-connect-retry=10
replicate-do-db=midp #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
-----------------------------------------------------------------------------------
重启
第四步:检查
(1) MySQL> show Master status; 是否开启二进制日志
(2) MySQL> show slave status; 检查Slave_IO_Running和Slave_SQL_Running是否都是Yes;
               查看Slave_IO_State字段:1.空 //复制没有启动
                                      2.Connecting to master//没有连接上master
                                      3.Waiting for master to send event//已经连上
(3) MySQL> show processlist;
     找到I/O和SQL线程的Status,如果I/O状态是Connecting to master为false
     ture statue is: 1.Waiting for master to send event
                     2.has read all relay log;waiting for the slave I/o thread to update it
-----------------------------------------------------------------------------------

有的资料上说要再操作第五步和第六步 但我经测试 到这一步就已经能够ok了


如果要从master的当前日志点同步,或者改变slave端的master主机,可以参考第五步和第六步命令

第五步:查看验证master的日志开启
mysql > SHOW MASTER STATUS;
    +---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql_binary_log.003 | 73| test | manual,mysql |
+---------------+----------+--------------+------------------+

第六步:在 slave 执行下面 sql 操作
   mysql>stop slave
   mysql> CHANGE MASTER TO
  -> MASTER_HOST=' 10.1.2.130',
  -> MASTER_USER='root',
  -> MASTER_PASSWORD='admin',
  -> MASTER_LOG_FILE='mysql_binary_log.003',
  -> MASTER_LOG_POS=73;
  mysql> start slave

 
已测试:在Win2000--Win2000 任意停掉master和slave的mysql后,再开启都可以继续同步
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics