MySQL数据库主从复制实现双机热备教程
"Mysql 数据库双机热备配置教程" 在MySQL数据库中,双机热备是一种常见的高可用性解决方案,确保数据的安全性和服务的连续性。由于MySQL本身不直接支持增量备份,当数据库数据量庞大时,全量备份会成为一项挑战。因此,MySQL提供了主从复制(Master-Slave Replication)机制,允许数据同时写入主数据库和备份数据库,实现近乎实时的数据同步,从而达到热备份的目的。 配置MySQL双机热备主要涉及以下步骤: 1. **设置主数据库** - 修改主数据库的配置文件(如`my.cnf` on Unix或`my.ini` on Windows),开启二进制日志功能。在配置文件中添加`log-bin`选项,指定日志文件的位置,例如`log-bin=log_name`。 - 定义唯一服务器ID,用于区分不同服务器。在配置文件中设置`Server-id=1`。 - 可选地,可以使用`log-do-db`和`log-ignore-db`来指定需要或忽略的日志记录数据库。 2. **创建备份用户权限** - 在主数据库上创建一个用于复制的用户,并赋予必要的权限。运行如下SQL语句: ``` GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass'; ``` - 对于MySQL 4.0.2之前的版本,还需要额外的`FILE`权限来读取二进制日志: ``` GRANT FILE ON *.* TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass'; ``` 3. **获取主数据库状态** - 在主数据库上执行`SHOW MASTER STATUS\G`命令,记录返回的`File`和`Position`值,这是后续设置从库的关键信息。 4. **备份主数据库** - 使用`mysqldump`工具创建一个包含主数据库当前状态的备份,确保添加`--master-data`选项,这会在备份文件中写入`File`和`Position`信息。 - 备份过程可能需要锁定表以避免数据变化,但通常在生产环境中不推荐,因为会阻塞其他操作。 5. **配置从数据库** - 在从数据库上恢复刚才的备份。 - 修改从数据库的配置文件,设置与主数据库不同的`Server-id`,例如`Server-id=2`。 - 设置从数据库从主数据库复制,使用`CHANGE MASTER TO`命令,输入之前记录的`File`和`Position`,以及主库的用户名和密码: ``` CHANGE MASTER TO MASTER_HOST='master.mydomain.com', MASTER_USER='repl', MASTER_PASSWORD='slavepass', MASTER_LOG_FILE='mysql-bin.003', MASTER_LOG_POS=73; ``` 6. **启动复制** - 在从数据库上启动复制进程: ``` START SLAVE; ``` - 验证复制是否成功运行,可以使用`SHOW SLAVE STATUS\G`命令查看。 通过以上步骤,你可以建立一个基本的MySQL双机热备环境。为了提高系统的稳定性,还可以考虑设置监控和故障切换机制,确保在主库出现问题时,能够自动将流量切换到备份库。同时,定期检查复制延迟和数据一致性,以确保数据安全。
http://www.51cto.com 2005-10-19 11:32 blog.easyea.com/louis
1。mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现mysql数据库的热备份。
2。要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。
3。设置主数据库服务器:
a.首先查看主服务器的版本是否是支持热备的版本。然后查看my.cnf(类unix)或者my.ini(windows)中mysqld配置块的配置有没有log-bin(记录数据库更改日志),因为mysql的复制机制是基于日志的复制机制,所以主服务器一定要支持更改日志才行。然后设置要写入日志的数据库或者不要写入日志的数据库。这样只有您感兴趣的数据库的更改才写入到数据库的日志中。
erver-id=1 //数据库的id这个应该默认是1就不用改动
log-bin=log_name //日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称
inlog-do-db=db_name //记录日志的数据库
inlog-ignore-db=db_name //不记录日志的数据库
以上的如果有多个数据库用","分割开
然后设置同步数据库的用户帐号
mysql> GRANT REPLICATION SLAVE ON *.*
-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
4.0.2以前的版本, 因为不支持REPLICATION 要使用下面的语句来实现这个功能
-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
设置好主服务器的配置文件后重新启动数据库
.锁定现有的数据库并备份现在的数据
锁定数据库
mysql> FLUSH TABLES WITH READ LOCK;
备份数据库有两种办法一种是直接进入到mysql的data目录然后打包你需要备份数据库的文件夹,第二种是使用mysqldump的方式来备份数据库但是要加上"--master-data " 这个参数,建议使用第一种方法来备份数据库
c.查看主服务器的状态
mysql> show master status\G;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73 | test | manual,mysql |
+---------------+----------+--------------+------------------+
记录File 和 Position 项目的值,以后要用的。
剩余5页未读,继续阅读
- 粉丝: 3
- 资源: 28
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦