无法递归的五点半

for_each(day.begin(),day.end(),bind2nd(Add(),me))

导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿(4)

随笔分类

随笔档案

文章分类

相册

收藏夹

C++

Unix/Linux

个人主页

其他

软件工程

网络管理

综合

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

应用中的MySQL服务器部署Replication

本文记录如何给一台应用中的MySQL服务器部署Replication。

安装环境

现有MySQL
现有MySQL服务器的特点:
  1. 没有专门为Replication环境配置
  2. MySQL为编译安装
  3. MySQL处于运行状态,不可长时间停机
目的

将现有服务器作为Master服务器,配置并运行一台新的MySQL服务器作为Slave服务器

准备
  1. 服务器硬件
  2. 现有主服务器的安装代码包(mysql-5.x.xxx.tar.gz)

主服务器的配置和数据准备

Master服务器的必须配置
要使用Replication必须将Master的binlog打开,并设置服务器ID。最简单的配置如下:
log-bin     =  mysql-bin
server-id = 1
当然关于MySQL Bin Log的配置还有很多设置,可以参考相关手册
数据备份
现在需要将Master的数据备份出来要注意的是要记住 备份点的binlog日志和postion 。Master数据备份的方式可以是停机冷备份,如果安装了LVM可以使用LVM的Snapshot。下面使用mysqldump 导出数据。在导出数据之前我们应该Flush表,并锁住表,比允许数据写入。
mysql> FLUASH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000157 | 18757860 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
使用mysqldump导出数据
mysql:~# mysqldump -uroot -p --all-databases > dump.sql
解锁
mysql> UNLOCK TABLES;
安装参数的提取
需要在Slave主机编译安装MySQL要了解Master安装时的编译参数,可以通过如下方式获得:
mysql:~# cat /usr/local/mysql/bin/mysqlbug | grep CONFIGURE
repl用户创建
在Master服务器中创建repl用户,用于在Slave 数据库中访问Master数据
mysql> GREANT REPLICATION SLAVE ON *.* to 'repl'@'IP.SLAVE.SERVER' identified by 'repl_passwd';

Slave服务器的安装

MySQL的安装
  • 按前面提取的configure参数对源代码进行编译(./configure; make; make install;)
  • 安装初始化数据库:
#mysql_install_db --datadir=/data --user=mysql
  • 参照@{mysql-src}/support-files/目录中my.cnf文件在/etc/下创建@my.cnf
  • 参照@{mysql-src}/support-files/mysql.server@文件在@/etc/init.d/下配置@mysqldb
  • 可尝试启动mysql。 /etc/init.d/mysqldb start
数据的导入
mysql# mysql -uroot -p < dump.sql

如果导入出现超出最大数据包错误可以尝试修改my.cnf中的max_allow_packet

在my.cnf中配置slave
在my.cnf中配置:
server-id       =  2
master-host = master_ip
master-user = repl
master-password = repl_passwd
在Slave服务器上启动Slave
mysql> STOP SLAVE;
mysql> CHANGE MASTER TO
MASTER_HOST='masterip',
 MASTER_USER='repl',
 MASTER_PASSWORD='repl_passwd',
 MASTER_LOG_FILE='mysql-bin.000157',
MASTER_LOG_POS=18757860 ;
mysql> START SLAVE;

posted on 2009-08-14 22:39 五点半 阅读(329) 评论(0)  编辑 收藏 引用 所属分类: 开发环境


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理