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后,再开启都可以继续同步

猜你喜欢

转载自mgxy123.iteye.com/blog/1629412