Mysql 数据库双机热备的配置思路方法

1mysql数据库没有增量备份机制当数据量太大时候备份是个很大问题还好mysql数据库提供了种主从备份机制其实就是把主数据库所有数据同时写到备份数据库中实现mysql数据库热备份
2要想实现双机热备首先要了解主从数据库服务器版本需求要实现热备mysql版本都要高于3.2还有个基本原则就是作为从数据库数据库版本可以高于主服务器数据库版本但是不可以低于主服务器数据库版本
3设置主数据库服务器:
a.首先查看主服务器版本是否是支持热备版本然后查看my.cnf(类unix)或者my.ini(windows)中mysqld配置块配置有没有log-bin(记录数据库更改日志)mysql复制机制是基于日志复制机制所以主服务器定要支持更改日志才行然后设置要写入日志数据库或者不要写入日志数据库这样只有您感兴趣数据库更改才写入到数据库日志中
server-id=1 //数据库id这个应该默认是1就不用改动
log-bin=log_name //日志文件名称这里可以制定日志到别目录 如果没有设置则默认主机名个日志名称
binlog-do-db=db_name //记录日志数据库
binlog-ignore-db=db_name //不记录日志数据库
以上如果有多个数据库用","分割开
然后设置同步数据库用户帐号
mysql> GRANT REPLICATION SLAVE _disibledevent=>master-host=db-master.mycompany.com //主服务器IP地址或者域名
master-port=3306 //主数据库端口号
master-user=pertinax //同步数据库用户
master-password=freitag //同步数据库密码
master-connect-retry=60 //如果从服务器发现主服务器断掉重新连接时间差
report-host=db-slave.mycompany.com //报告服务器
b.把从主数据库服务器备份出来数据库导入到从服务器中
c.然后启动从数据库服务器如果启动时候没有加上"--skip-slave-start"这个参数则进入到mysql中
mysql> slave stop; //停止slave服务
d.设置主服务器各种参数
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服务器IP地址
-> MASTER_USER='replication_user_name', //同步数据库用户
-> MASTER_PASSWORD='replication_password', //同步数据库密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器 2进制日志文件名(前面要求记住参数)
-> MASTER_LOG_POS=recorded_log_position; //日志文件开始位置(前面要求记住参数)
e.启动同步数据库线程
mysql> slave start;
查看数据库同步情况吧如果能够成功同步那就恭喜了!
查看主从服务器状态
mysql> SHOW PROCESSLIST\G //可以查看mysql进程看看是否有监听进程
如果日志太大清除日志步骤如下
1.锁定主数据库
mysql> FLUSH TABLES WITH READ LOCK;
2.停掉从数据库slave mysql> slave stop;
3.查看主数据库日志文件名和日志文件position
show master status;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+---------------+----------+--------------+------------------+
| louis-bin.001 | 79 | | mysql |
+---------------+----------+--------------+------------------+
4.解开主数据库
mysql> unlock tables;
5.更新从数据库中主数据库信息 mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服务器IP地址
-> MASTER_USER='replication_user_name', //同步数据库用户
-> MASTER_PASSWORD='replication_password', //同步数据库密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器 2进制日志文件名(前面要求记住参数)
-> MASTER_LOG_POS=recorded_log_position; //日志文件开始位置(前面要求记住参数)
6.启动从数据库slave mysql> slave start;

Tags: 

延伸阅读

最新评论

发表评论