mysql互为主从复制配置笔记(5)
来源:未知 责任编辑:责任编辑 发表时间:2014-02-18 03:27 点击:次
1 row in set (0.00 sec)
如果主数据库有数据的话
数据库锁表操作,不让数据再进行写入动作。mysql> FLUSH TABLES WITH READ LOCK ;
用命令mysqldump
备份数据库。
在master服务器执行
shell> mysqldump -uroot -p123456 --master-data --opt test1 > backup-file.sql
看主数据库的状态mysql> show master status;
记录File 和Position 项的值
注:由于没有锁定主服务器,这里记录的主服务器二进制日志position值可能会大于做mysqldump时的值,这将导致从服务器丢失在此期间的更新。如果可以保证在此期间主服务器不会出现创建新表的更新,那么丢失的影响不大;否则,将导致从服务器复制线程失败,这时必须在做mysqldump时锁定主服务器。
-----------------------------------------------
从服务器中my.cnf文件中加入选项
skip-slave-start
skip-slave-start 表示从mysql服务器启动时不启动同步线程,这就要在启动从服务器之后,手工启动同步线程,在mysql> 提示符下面运行“start slave”就可以
保存my.cnf后
执行
shell> mysqladmin -uroot -p123456 create test1
shell> mysql -uroot -p123456 test1 < backup-file.sql
启动从服务器线程
mysql>start slave;
取消主数据库锁定mysql>UNLOCK TABLES;
4、其他命令
1、查看复制进度
需要在主库上运行
mysql>show processlist \G;
2、主服务器上的相关命令:
show processlist;
show master status
show slave hosts
show {master|binary} logs
show binlog events
purge {master|binary} logs to 'log_name'
purge {master|binary} logs before 'date'
reset master(老版本flush master)
set sql_log_bin={0|1}
3、从服务器上的相关命令:
slave start
slave stop
slave stop IO_THREAD //此线程把master段的日志写到本地
slave start IO_THREAD
slave stop SQL_THREAD //此线程把写到本地的日志应用于数据库
slave start SQL_THREAD
reset slave
set global sql_slave_skip_counter
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //动态改变master信息
PURGE MASTER [before 'date'] 删除master端已同步过的日志
=========================================================================
skip-slave-start
server-id = 1
log-bin=C:/Program Files/MySQL/MySQL Server 5.0/00/repbinlog
log-error=C:/Program Files/MySQL/MySQL Server 5.0/rep/rep.err
relay-log=C:/Program Files/MySQL/MySQL Server 5.0/rep/beltal_relay_log
sync_binlog=1
log-slave-updates
innodb_flush_log_at_trx_commit=1
binlog-do-db=sync
#slave
master-host = 192.168.1.144
master-user = replicate
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>