Tag Archives: alter

GitHub 發展出來的 ALTER TABLE 方式

GitHub 解釋了他們在 MySQL 上 ALTER TABLE 的方式:「gh-ost: GitHub's online schema migration tool for MySQL」。 GitHub 的舊方式是使用 pt-online-schema-change,會遇到的問題有幾個,其中看起來只有 Non pausability 這個是真正的痛點: Non pausability: when load on the master turns high, you wish to throttle or suspend your pending migration. However a … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , | 2 Comments

關於 RDBMS 的 Schema Migration...

在「NoSQL 大腸花」這份投影片裡面的 Page 12 有提到關於 RDBMS 的 Schema Migration: 以目前 open source 的兩個專案,MySQL 與 PostgreSQL 來看,裡面提到的 lock 應該都不是問題... 首先是 MySQL 的部份,真的量大的網站都應該是往 InnoDB 投靠,而 pt-online-schema-change 在這個領域則是處理的很好。 Facebook 的 Mark Callaghan 曾經在 2010 年寫過一篇關於 InnoDB 的 online schema change 的原理:「Online Schema Change … Continue reading

Posted in Computer, Database, Murmuring, MySQL, PostgreSQL, Software | Tagged , , , , , , , , , | 2 Comments

利用 pt-online-schema-change 同步 master 與 slave 的資料

在「Syncing MySQL slave table with pt-online-schema-change」這篇看到 master 與 slave 的資料不同步時,強制性同步的方法: pt-online-schema-change --alter 'ENGINE=INNODB' D=dbname,t=tblname 由於 pt-online-schema-change 的作法是建一個新的表格,然後把舊表格的資料寫過去,而這些行為會被 replicate 到新機器上,於是就同步了... 這招有趣 XDDD

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , | Leave a comment

MySQL 5.7...

Oracle 的「MySQL :: MySQL 5.7 Reference Manual :: 1.4 What Is New in MySQL 5.7」列出 MySQL 5.7 預定會有的功能。由於還在發展階段,這頁還會繼續變動。 針對 ALTER TABLE 有不少改善,以下的條件下 ALTER TABLE 將不會產生 temporily table (不會卡住): table 改名。 column 改名。 column 改 default value。 enum 或 set 在不修改原來值的情況下增加值。 … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , , | Leave a comment