因前两天的MySQL从库运行出现问题见 MySQL从库损坏后重建,顺便将MySQL的从库配置维护温习了一下。
MySQL从库建立配置方法(针对MyISAM数据库)
1.主库上的设置
a.my.cnf中的mysqld节主要设置 server-id 和 log-bin 参数
log-binserver-id=1log-bin=my-binlog
b.数据库中创建 从库复制 用的账号。
- GRANT replication slave,reload,super ON *.* TO 'myslave'@'192.168.0.200' IDENTIFIED BY 'myslavepwd'
2.从库上的设置
my.cnf中的 mysqld 节主要设置 server-id ,从库的server-id 不能和主库或其他从库相同
master-host=192.168.10.100master-user=myslavemaster-password=myslavepwdmaster-port=3306server-id=2master-connect-retry=60
3. 给从库准备初始的主库数据
先在主库中执行
- FLUSH TABLES WITH READ LOCK;
- SHOW master STATUS;
记录下日志位置信息,
a. 冷备份
将数据库停掉,然后做数据库物理数据文件的拷贝。
b. 热备份
不停止数据库,直接在线做数据文件拷贝,拷贝完后在执行 unlock tables; 命令将数据表的锁释放
c. 热备份
使用 mysqldump 命令,导出数据库的数据。导出完成后使用 unlock tables;命令将数据表的锁释放
4. 将从库和主库连接前来
a. 停止从库运行
b. 给从库的my.cnf文件中添加 skip-slave-start 参数
b. 将从主库备份的文件拷贝到数据目录下
c. 开启从库服务器
d. 用账号登陆到从库数据库,使用 change master to 命令修改主库服务器的连接信息。其中日志位置信息为
e. 使用 slave start; 开启从库进程的运行,在 show slave status\G;查看从库状态
f. 修改 my.cnf 文件,将 skip-slave-start 参数注释掉,以便在下一次运行数据库服务时自动开启从库复制
也可以在从库上执行 LOAD DATA FROM MASTER; 来导入主库中的数据(一般不建议这种方法)
5.关于维护一些问题
1.主库的日志清理
日志文件要定期清理,要不然如果频繁做更新插入操作时会很占磁盘空间。使用 purge 命令处理,不过要小心,如果和从库接不上,从库就要重做了。
- purge master logs TO ‘binlog.000004’;
- purge master logs before '2008-10-12 22:10:00';
可以在主库的 mysqld 节设置 expire_logs_days 参数,自动将 一些天前的日志清除。
expire_logs_days=21
2.从库的relaytime监测
在从库上使用 show slave status\G; 查看从库的运行状态,及时做故障修复处理。
3.定期的全库备份
为了安全考虑,定期做数据库的全量复制备份。
可以使用 www.innodb.com 公司的 ibbackup 程序和 innobackup 脚本做自动话的备份处理.
————–
对MySQL的备份还可以参见: 常见MySQL数据库备份工具和备份方式比较
还可以参见
MySQL性能优化工作小结