天天看點

MySQL 日常整理

 記錄工作的點點滴滴:

    今天遇到case 1:

    在測試機上,start slave 出現“假死”現象,資料庫能夠連接配接,

    show processlist;顯示:隊列等待master

    從錯誤日志裡面看到:

    日志裡面顯示沒有了磁盤空間,哎,這個着實不能讓人接受。

    清理了磁盤,set  global SQL_SLAVE_SKIP_COUNTER=1;start slave;

    (SQL_SLAVE_SKIP_COUNTER 複制線程起來之後,該變量的值變為無)

   case 2:

   今天有人問了我一個問題,在主從複制模式下,master采用innodb,slave 采用myisam(這個是可以實作的,因為在binlog裡面 是不傳遞engine=?這個參數的),當程式裡面啟用事物的時候,如果出現復原,那麼采用myisam 引擎的slave會不會造成和master資料的不一緻。

    首先肯定的是,這個不會造成資料的不一緻。

    其次:由于myisam不支援事務,對不支援事務的表執行start/commit 操作沒有任何效果,在執行commit前已經送出,且不會報錯。

    最後,在binlog裡面如果發生rollback 語句的話,事務會執行反操作,清除庫裡面的資料,binlog裡面響應的dml語句會響應的被清除,也不會有rollback語句的記錄。所有master和slave上資料還是一緻的。

    case 3:

    從其他資料表或者查詢結果建立資料表

    create table ... like 語句将建立一個和原表一模一樣的表,并且列的屬性頁會保持。 但是這個語句不能隻利用其中原表的某列進行進行表的建立

     create table ... select 會根據select 語句的查詢結建構立新的資料表,預設情況下,不會複制原來列的屬性。但是可以根據原表的某列進行表的建立

本文轉自 位鵬飛 51CTO部落格,原文連結:http://blog.51cto.com/weipengfei/978741,如需轉載請自行聯系原作者

繼續閱讀