RedHat 5.5 配置 MySQL AB复制

浏览一下5.5官档上关于replication的章节:http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html

总结了一下关于AB复制的步骤:

(1)设置主服务器的my.cnf 开启二进制日志记录设置serverid

[mysqld]

log-bin=mysql-bin

server-id=1

innodb_flush_log_at_trx_commit=1

sync_binlog=1

 

(2)设置从服务器的serverid

[mysqld]

server-id=2

 

(3)设置复制帐户,并授权

create user 'gabriel'@'%.linuxic.com' identified by 'gabriel0814';

grant replication slave on *.* to 'gabriel'@'%.linuxic.com ';

 

(4)锁定数据库状态,读取主服务器二进制日志的状态

flush tables with read lock;

show master status;

 

(5)使用mysqldump创建数据库快照,释放锁

mysqldump --all-database --lock-all-tables > dbdump.db

unlock tables;

 

(6)在从服务器上准备复制:

stop slave;

mysql < fulldb.dump

change master to

master_host='applinux002.linuxic.com',

master_user='gabriel',

master_password='gabriel0814',

master_log_file='',

master_log_pos= ;

 

start slave;

以上步骤在自己的虚拟机上测试是通过的,在复制搭建完毕后,由于权限的问题,去掉通配符%改为实际的主机名,AB复制成功。

在生产线上具体实施步骤如下:

(1)    更改master数据库my.cnf参数:

[root@applinux002 data]# cat /etc/mysql/my.cnf | grep -v ^# | grep -v ^$

[client]

port          = 3306

socket        = /etc/mysql/mysqld.sock

[mysqld]

datadir = /md3200i/data1/mysql/data

port          = 8808

socket        = /etc/mysql/mysqld.sock

skip-external-locking

key_buffer_size = 384M

max_allowed_packet = 1M

table_open_cache = 512

sort_buffer_size = 2M

read_buffer_size = 2M

read_rnd_buffer_size = 8M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size = 32M

thread_concurrency = 24

log-bin=mysql-bin

server-id      = 1

innodb_data_home_dir = /md3200i/data1/mysql/data

innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend

innodb_log_group_home_dir = /md3200i/data1/mysql/data

innodb_buffer_pool_size = 2048M

innodb_additional_mem_pool_size = 20M

innodb_log_file_size = 512M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 256M

sort_buffer_size = 256M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

(2)    更改slave数据库my.cnf参数:

 

[root@applinux003 mysql]# cat /etc/mysql/my.cnf | grep -v ^# | grep -v ^$

[client]

port          = 3306

socket        = /etc/mysql/mysqld.sock

[mysqld]

port          = 8808

socket        = /etc/mysql/mysqld.sock

skip-external-locking

key_buffer_size = 384M

max_allowed_packet = 1M

table_open_cache = 512

sort_buffer_size = 2M

read_buffer_size = 2M

read_rnd_buffer_size = 8M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size = 32M

thread_concurrency = 8

server-id      = 2

innodb_data_home_dir = /md3200i/data1/mysql/data

innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend

innodb_log_group_home_dir = /md3200i/data1/mysql/data

innodb_buffer_pool_size = 2048M

innodb_additional_mem_pool_size = 20M

innodb_log_file_size = 512M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 256M

sort_buffer_size = 256M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

相关推荐