qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          兩種方法解決MySQL主從不同步

          今天發(fā)現(xiàn)Mysql的主從數(shù)據(jù)庫沒有同步

            先上Master庫:

            mysql>show processlist;   查看下進(jìn)程是否Sleep太多。發(fā)現(xiàn)很正常。

            show master status; 也正常。

            mysql> show master status;

            +-------------------+----------+--------------+-------------------------------+
            | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB              |
            +-------------------+----------+--------------+-------------------------------+
            | mysqld-bin.000001 |     3260 |              | mysql,test,information_schema |
            +-------------------+----------+--------------+-------------------------------+

            1 row in set (0.00 sec)

            再到Slave上查看

            mysql> show slave status\G

            Slave_IO_Running: Yes

            Slave_SQL_Running: No

            可見是Slave不同步

            下面介紹兩種解決方法:

            方法一:忽略錯誤后,繼續(xù)同步

            該方法適用于主從庫數(shù)據(jù)相差不大,或者要求數(shù)據(jù)可以不完全統(tǒng)一的情況,數(shù)據(jù)要求不嚴(yán)格的情況

            解決:

            stop slave;

            #表示跳過一步錯誤,后面的數(shù)字可變

            set global sql_slave_skip_counter =1;

            start slave;

            之后再用mysql> show slave status\G  查看:

            Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

            ok,現(xiàn)在主從同步狀態(tài)正常了。。。

            方式二:重新做主從,完全同步

            該方法適用于主從庫數(shù)據(jù)相差較大,或者要求數(shù)據(jù)完全統(tǒng)一的情況

            解決步驟如下:

            1、先進(jìn)入主庫,進(jìn)行鎖表,防止數(shù)據(jù)寫入

            使用命令:

            mysql> flush tables with read lock;

            注意:該處是鎖定為只讀狀態(tài),語句不區(qū)分大小寫

           2、進(jìn)行數(shù)據(jù)備份

            #把數(shù)據(jù)備份到mysql.bak.sql文件

            [root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql

            這里注意一點(diǎn):數(shù)據(jù)庫備份一定要定期進(jìn)行,可以用shell腳本或者python腳本,都比較方便,確保數(shù)據(jù)萬無一失

            3、查看master 狀態(tài)

            mysql> show master status;

            +-------------------+----------+--------------+-------------------------------+
            | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB              |
            +-------------------+----------+--------------+-------------------------------+
            | mysqld-bin.000001 |     3260 |              | mysql,test,information_schema |
            +-------------------+----------+--------------+-------------------------------+

            1 row in set (0.00 sec)

            4、把mysql備份文件傳到從庫機(jī)器,進(jìn)行數(shù)據(jù)恢復(fù)

            #使用scp命令

            [root@server01 mysql]# scp mysql.bak.sql root@192.168.128.101:/tmp/

            5、停止從庫的狀態(tài)

            mysql> stop slave;

            6、然后到從庫執(zhí)行mysql命令,導(dǎo)入數(shù)據(jù)備份

            mysql> source /tmp/mysql.bak.sql

            7、設(shè)置從庫同步,注意該處的同步點(diǎn),就是主庫show master status信息里的| File| Position兩項(xiàng)

            change master to master_host = '192.168.128.100', master_user = 'rsync', master_port=3306, master_password='', master_log_file = 'mysqld-bin.000001', master_log_pos=3260;

            8、重新開啟從同步

            mysql> start slave;

            9、查看同步狀態(tài)

            mysql> show slave status\G  查看:

            Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

            好了,同步完成啦。

          posted on 2013-01-14 11:46 順其自然EVO 閱讀(381) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          <2013年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 岱山县| 黎城县| 武宣县| 攀枝花市| 家居| 于都县| 五常市| 宁陕县| 肇东市| 石首市| 莎车县| 恭城| 姜堰市| 义马市| 玉环县| 宿州市| 永城市| 六安市| 高青县| 兴国县| 西乌珠穆沁旗| 稷山县| 兖州市| 墨脱县| 高唐县| 霸州市| 景谷| 博爱县| 凤山市| 枣庄市| 海晏县| 泰兴市| 宁陕县| 连云港市| 玉门市| 安义县| 卢氏县| 眉山市| 綦江县| 嘉黎县| 望谟县|