MySQL 5.1.34主从同步配置与备份策略详解

1 下载量 35 浏览量 更新于2024-09-03 收藏 90KB PDF 举报
“分享Mysql主从同步备份策略,主要针对MySQL数据库版本5.1.34,涉及主从服务器配置、用户权限设定、数据同步及错误处理。” 在MySQL数据库环境中,主从同步是一种常见的高可用性和数据备份策略,特别是在分布式系统中。本策略主要适用于MySQL 5.1.34版本,确保在主服务器发生故障时,从服务器可以接管服务,保证数据的连续性和一致性。 首先,我们需要在主服务器上进行配置。在`/etc/my.cnf`配置文件中,添加以下关键设置: 1. `server-id=1`:设置服务器ID,每个参与复制的服务器都需要有不同的ID。 2. `log-bin=mysql-bin`:启用二进制日志,记录所有改变数据库状态的操作。 3. `binlog-do-db=mysql`:指定需要备份的数据库。如果需要备份多个数据库,可重复设置此选项。 4. `binlog-ignore-db=mysql`:排除不需要备份的数据库,同理,根据需求可多次设置。 5. `log-slave-updates`:确保从服务器的更新也会被记录到二进制日志中。 6. `slave-skip-errors`:遇到错误时,允许跳过并继续复制操作,但需谨慎使用,因为它可能导致数据不一致。 接下来,创建具有复制权限的用户。在MySQL命令行中运行: ```sql GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.0.2' IDENTIFIED BY '111111'; ``` 这将赋予名为`slave`的用户在从服务器(IP为192.168.0.2)上进行复制的权限。确保使用安全的密码,并在生产环境中替换示例IP和用户名。 在开始复制之前,需要锁定主服务器的数据库以获取当前的状态: ```sql FLUSH TABLES WITH READ LOCK; ``` 然后,通过`SHOW MASTER STATUS;`命令查看主服务器的File(二进制日志文件名)和Position(二进制日志的位置),这两个值将在从服务器的配置中用到。 同时,为了备份数据,可以将MySQL的数据目录打包,例如: ```sh cd /usr/local/mysql tar zcvf var.tar.gz var ``` 这将创建一个包含数据库文件的归档,可以在需要时用于恢复。 在完成主服务器的配置和备份后,需要在从服务器上配置复制。这里包括解压备份文件,导入数据,以及设置从服务器复制主服务器的指令。从服务器的配置文件`/etc/my.cnf`中同样需要设置`server-id`,但应设置为不同于主服务器的ID。 最后,启动从服务器的复制过程,使用以下SQL命令: ```sql CHANGE MASTER TO MASTER_HOST='192.168.0.1', MASTER_USER='slave', MASTER_PASSWORD='111111', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106; START SLAVE; ``` 确保替换正确的File和Position值,这些值来自主服务器的`SHOW MASTER STATUS;`结果。 主从同步备份策略能有效提升系统的可用性,确保数据的安全性,但同时也需要注意错误处理和监控,以防止潜在的数据不一致和复制延迟问题。在实际操作中,应根据业务需求和风险承受能力调整策略,如错误处理方式、备份频率等。
2013-08-23 上传
Mysql主从同步备份策略 五月 18th, 2009 at 17:30 - 3,803 views 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置文件/etc/my.cnf # 确保有如下行 server-id = 1 log-bin=mysql-bin binlog-do-db=mysql #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可 binlog-ignore-db=mysql #不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可 log-slave-updates #这个参数一定要加上,否则不会给更新的记录些到二进制文件里 slave-skip-errors #是跳过错误,继续执行复制操作 2.建立用户 mysql> grant replication slave on *.* to slave@192.168.0.2 identified by ‘111111′; # grant replication slave on *.* to ‘用户名’@'主机’ identified by ‘密码’; # 可在Slave上做连接测试: mysql -h 192.168.0.1 -u test -p 3.锁主库表 mysql> FLUSH TABLES WITH READ LOCK; 4.显示主库信息 记录File和Position,从库设置将会用到 ===================== mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_do_db | Binlog_ignore_db | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 106 | | | +------------------+----------+--------------+------------------+ 5.另开一个终端,打包主库 cd /usr/local/mysql #mysql库目录 tar zcvf var.tar.gz var ============================