Tag Archives: replication

PostgreSQL 10 發表

PostgreSQL 10 發表,有不少重要的功能 (進步):「PostgreSQL 10 Released」。 首先提到的是 Logical Replication: Logical Replication - A publish/subscribe framework for distributing data 以往內建的 replication 是 block level change (同步哪個 block 改變的內容),對於版本不同的 PostgreSQL 就會痛。所以在 10 之前,想要處理 PostgreSQL 版本不同的問題都會使用第三方套件 (一種常見的情境就是資料庫的版本升級)。在 10 內建支援 Logical Replication 後就不需要掛其他套件了: Logical … Continue reading

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

MySQL 上 Replication 的方案

Percona 的人整理了一篇關於 Replication 的方案 (以及 NDB,不過這邊就先偷偷跳過去...),雖然標題寫的是 High Availability:「The MySQL High Availability Landscape in 2017 (The Elders)」。 先講他給的另外兩個方案,一個是 Shared Storage,另外一個是 NDB。 其中 Shared Storage 其實在儲存空間端還是有單點失效的問題,而 NDB 的特性跟 InnoDB 不同,有很多概念要重新學... 如果就這三個比較,常見的還是第一個提到的 Replication。 其實把 Replication 用熟的話已經可以解決不少問題了 (不論是早期的 MMM,或是 MHA)。而且因為技術已經發展很久了,大家幾乎都很熟特性 (以及 bug XD),網路上可以找到不少資料,甚至 Percona … Continue reading

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

Oracle 的人講 MySQL 5.7 最新出的 Group Replication

不愧是 Oracle 的 MySQL Community Manager,把對手的 Galera Cluster 講的一無是處 XDDD:「Group Replication is GA with MySQL 5.7.17 – comparison with Galera」。 然後下面 comment 的地方 Mark Callaghan (@Facebook) 出來提 Galera Cluster 架構中 arbitrator 的好處,另外 Sergei Petrunia (@MariaDB) 也出來糾正抹黑對手的 FUD (講 Galera Cluster … Continue reading

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

MongoDB 的 replica-set 設定

Percona 的人寫了一份文件,以 MySQL DBA 的角度說明兩者在 replication 上的差異,然後示範怎麼在單機上架起三個 MongoDB 並且設定 replica-set:「First MongoDB replica-set Configuration for MySQL DBAs」。 這邊文章拿的是 Percona Server for MongoDB,不過應該也還行,並竟是拿 MongoDB 3.2 改的,而不是完全重寫,所以裡面的步驟拿到原版的 MongoDB 上應該也行... 可以拿 Docker 或是在 AWS 開一台 t2.medium 測試玩看看...

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

MySQL GTID Replication 的惡搞修復

Percona 的「Database Daily Ops Series: GTID Replication」這篇在講當 MySQL 的 GTID Replication 爛掉時可能的修法,算是頗惡搞的方法,修好後還是要跑 pt-table-checksum 確認兩邊的資料是否一致,如果有狀況的話還是得拿出 pt-table-sync 同步。 第一招是用 pt-slave-restart,跳過會造成問題 SQL,讓他強制同步 (唔): This passes the master’s UUID and it skips all global transactions breaking replication on a specific slave server[.] 第二招是 mysqlslavetrx,也是類似的作法,只是拿的是 … Continue reading

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

MySQL 5.6 到 5.7 改變的預設值

Percona 整理了一份 MySQL 5.6 到 5.7 改變的預設值,對於評估與轉移的人都很有用:「MySQL Default Configuration Changes between 5.6 and 5.7」。 sync_binlog 居然從 0 改成 1 了,這對效能的影響應該不少。 performance_schema_* 有不少改成自動調整了,可以省下不少功夫。 innodb_buffer_pool_dump_at_shutdown 與 innodb_buffer_pool_load_at_startup 都打開了,這避免了正常重啟時的 warm up 問題,不過在存在有效的手段可以手動 warm up 的時,應該還是會關掉吧。(參考 2013 的文章「熱 MySQL InnoDB 的方式...」) 另外介紹了 InnoDB 預設格式的改變,這點到是因為使用 … Continue reading

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

Amazon Aurora 支援 Reader Endpoint

Amazon Aurora 支援 Reader Endpoint,讓讀的部份可以打散掉:「New Reader Endpoint for Amazon Aurora – Load Balancing & Higher Availability」。 讀的部份比較容易 scale (常見的方式是透過 replication 做到),而現在很多 database framework (包括各類的 ORM framework) 都支援讀寫分離,這個支援對於系統的 scale 來說幫忙頗大。 不過不知道會不會有 replication lag 的問題,我猜是會有...

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

Yelp 對 MySQL 更新的資料送到 Kafka 的作法

Apache Kafka 是個 pub-sub 系統: Apache Kafka is publish-subscribe messaging rethought as a distributed commit log. 而 Yelp 的人想要將 MySQL 的更新資訊送一份到 Kafka 就可以做很多應用。文章前面介紹了很多原理以及理論,像是講 MySQL 的 replication: 但讀這篇文章發現重點在於他介紹了 GitHub 上的「noplay/python-mysql-replication」這個專案: Our stream reader is an abstraction over the BinLogStreamReader from the … Continue reading

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

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

最近討論 Uber 的 MySQL 換 PostgreSQL 後又換回 MySQL 的文章...

先把兩份連結丟出來,一份是 PyPgDay 2013 時由 Uber 的 Evan Klitzke 給的「Migrating Uber from MySQL to PostgreSQL」,原 PDF 連結已經失效 (看起來已經被刪除),但這個網路年代什麼都可以找到備份... 可以在「Migrating Uber from MySQL to PostgreSQL」取得,但這個網站怪怪的,我另外丟了一份到 Google Docs 上。 另外一份則是同一個人 Evan Klitzke 在 2016 年發表於公司的官方網站上:「Why Uber Engineering Switched from Postgres to MySQL」。 2013 … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Political, PostgreSQL, Software | Tagged , , , , , , , , , , | 3 Comments