mysql主从不同步排错.doc_第1页
mysql主从不同步排错.doc_第2页
mysql主从不同步排错.doc_第3页
mysql主从不同步排错.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

解决Mysql主从不同步问题今天Mysql的主从数据库没有同步导致网页读不到数据,当网页不能读到数据时,猜想上数据库的原因。首先在Master上用show processlist; 查看下进程是否Sleep太多。发现很正常。show master status; 也正常。再跑到Slave上查看show slave status;错误提示:Error Duplicate entry 1 for key 1 on query. Default database: movivi1. Query: INSERT INTO v1vid0_user_samename VALUES(null,1,123,11,4545,123)Slave_SQL_Running 为 NOSeconds_Behind_Master 为 (null)可见是Slave不同步解决:stop slave;set global sql_slave_skip_counter =1 ;start slave;之后Slave会和Master去同步 主要看Seconds_Behind_Master是否为0,直到为0时就已经同步了。目前情况:1.系统版本都是rhel5 mysql版本相同2.主服务器正在运行,不能停止。3.主服务器IP为:00从服务器IP为:014.从服务器MSYQL slave 为停止状态配置步骤:1、主库创建/etc/f,修改mysqld里边的键值增加server-id=1log-bin=binlog_name2、主库增加用户,用于从库读取主库日志。grant replication slave,reload,super on *.* toslave01identified by 123456;flush privileges;3、从库连接主库进行测试。mysql -u slave -p -h 00 /master的IP4、停从库,修改从库/etc/f,增加选项:mysqldserver-id=2master-host=00master-user=slavemaster-password=1234565.锁表mysql FLUSH TABLES WITH READ LOCK;注意:为了保证FLUSH TABLES语句让读锁定保持有效。(如果退出客户程序,锁被释放)。建立新的SSH连接,然后对主服务器上的数据进行快照。6.建立快照tar -cvf data.tar /var/lib/mysql将压缩包拷贝过去后解压缩也可以用scp拷贝过去:scp -r /var/lib/mysql/* 01:/var/lib/mysql/注意拷贝过去后权限的设置chown -R mysql.mysql /var/lib/mysql数据量大可以用mysqldump导出.7.解锁mysql UNLOCK TABLES;8.记下file pos值当FLUSH TABLES WITH READ LOCK所置读锁定有效时,读取主服务器上当前的二进制日志名(file)和偏移量值(pos):mysql SHOW MASTER STATUS;+-+-+-+-+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+-+-+-+-+| mysql-bin.003 | 73 | test | manual,mysql |+-+-+-+-+File列显示日志名,而Position显示偏移量。在该例子中,二进制日志值为mysql-bin.003,偏移量为73。记录该值。以后设置从服务器时需要使用这些值。它们表示复制坐标,从服务器应从该点(也可以是任何点)开始从主服务器上进行新的更新。9.从服务器执行同步# mysqlstart slave;# mysqlload data from master;10.验证配置登录从服务器输入如下命令:mysql show slave statusG;会得到类似下面的列表:Slave_IO_Running: YesSlave_SQL_Running: Yes都为yes,则配置正确.11.进行测试:主库创建表,mysqlcreate database sampdb;mysqluse sampdb;mysqlcreate table new (name char(20),phone char(20);mysqlinsert into new (abc,0532555555);主从服务器重启;打开从库,查看:#mysql -u root -pmysqlshow databases; /应该能看到master创建的库sampdbmysqlsampdbtestmysqluse sampdb;mysqlshow tables;new说明主从数据库创建成功。附:一些错误信息的处理,主从服务器上的命令,及状态信息。在从服务器上使用show slave statusGSlave_IO_Running,为No,则说明IO_THREAD没有启动,请执行start slave io_threadSlave_SQL_Running为No则复制出错,查看Last_error字段排除错误后执行start slave sql_thread查看Slave_IO_State字段空 /复制没有启动Connecting to master/没有连接上masterWaiting for master to send event/已经连上主服务器上的相关命令:show master statusshow slave hostsshow logsshow binlog eventspurge logs to log_namepurge logs before datereset master(老版本flush master)set sql_log_bin=从服务器上的相关命令:slave startslave stopSLAVE STOP IO_THREAD /此线程把master段的日志写到本地SLAVE start IO_THREADSLAVE STOP SQL_THREAD /此线程把写到本地的日志应用于数据库SLAVE start SQL_THREADreset slaveSET GLOBAL SQL_SLAVE_SKIP_COUNTERload data from mastershow slave status(SUPER,REPLICATION CLIENT)CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= /动态改变master信息PURGE MASTER before date 删除master端已同步过的日志几个跟热备有关的mysql命令:(需要在mysql命令行界面或query ) * stop slave #停止同步 * start slave #开始同步,从日志终止的位置开始更新。 * SET SQL_LOG_BIN=0|1 #主机端运行,需要super权限,用来开停日志,随意开停,会造成主机从机数据不一致,造成错误 * SET GLOBAL SQL_SLAVE_SKIP_COUNTER=n # 客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。 * RESET MASTER #主机端运行,清除所有的日志,这条命令就是原来的FLUSH MASTER * RESET SLAVE #从机运行,清除日志同步位置标志,并重新生成 虽然重新生成了,但是并不起用,最好,将从机的mysql进程重启一下, * LOAD TABLE tblname FROM MASTER #从机运行,从主机端重读指定的表的数据,每次只能读取一个,受timeout时间限制,需要调整timeout时间。执行这个命令需要同步账号有 reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和 net_write_timeout的值 * LOAD DATA FROM MASTER #从机执行,从主机端重新读入所有的数据。执行这个命令需要同步账号有reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和 net_write_timeout的值 * CHANGE MASTER TO master_def_list #在线改变一些主机设置,多个用逗号间隔,比如 CHANGE MASTER TO MASTER_HOST=, MASTER_USER=replication, MASTER_PASSWORD=bigs3cret * MASTER_POS_WAIT() #从机运行 * SHOW MASTER STATUS #主机运行,看日志导出信息 * SHOW SLAV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论