mysql整理_MySQL 日常整理
記錄工作的點點滴滴:
今天遇到case 1:
在測試機上,start slave 出現“假死”現象,數據庫能夠連接,
show processlist;顯示:隊列等待master
從錯誤日志里面看到:
120831 16:20:59 [ERROR] /usr/local/mysql3307/libexec/mysqld: Disk is full writing './mysqld-relay-bin.~rec~' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
120831 16:20:59 [ERROR] /usr/local/mysql3307/libexec/mysqld: Retry in 60 secs. Message reprinted in 600 secs
日志里面顯示沒有了磁盤空間,哎,這個著實不能讓人接受。
清理了磁盤,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 語句的查詢結構創建新的數據表,默認情況下,不會復制原來列的屬性。但是可以根據原表的某列進行表的創建
總結
以上是生活随笔為你收集整理的mysql整理_MySQL 日常整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言之大小写转换问题
- 下一篇: 用[bx+idata]的方式进行数组的处