Google Cloud Launch 的 Percona 服務介紹

2017年8月20日 | 作者 Simon Su | 譯者 | 審稿者 GCPUG.TW | 1500字 | 閱讀大約需要3分鐘
歸檔於 luancher | 标签 #google cloud luanch

Database一直是每一項服務需要特別花心思的地方,通常將資料庫服務委託給Google CloudSQL是最簡單不過的,不過,如果希望能夠保有對資料庫的完整操控權,則自建Database是最快的選擇… 而Google Cloud Launcher服務即有DB Cluster的建置,在此以Percona Cluster為例,透過Cloud Launcher簡單的建置Percona MySQL Cluster…

Percona是分支自MySQL的資料庫,相較於原生MySQL,Percona原生提供了更多的資料庫工具,讓使用者可以更快速的建置自己的MySQL應用…

首先,我們先到Cloud Lancher ( https://console.cloud.google.com/launcher ) 搜尋”Percona”關鍵字,然後進入Percona的說明頁面之後點選LAUNCH ON COMPUTE ENGINE…

依照GCP上的建議,Percona Cluster 預設啟動的機器不能小於三台,我們可以指定資料庫的zone位置,也可以依照需求指定更多的主機數量… 選好機器的zone和數量後,只要點選Deploy,就可以開始進入開通cluster的動作…

建立完成後可以在”Deployment Manager”裡,看到您剛剛建立的Percona,裡面會有每一台機器的說明、DB的password、相關說明文件等資料

由於Cloud Launcher是以Appliance的方式提供服務,也就是會使用Compute Engine來建置,因此我們會看到剛剛所開立起來的三台機器…

在Percona的Cluster機制下,所有的主機都是可以讀寫的狀態… 因此,接下來我們可以使用SSH進入機器內檢視,登入後,執行mysql指令連線所建立的資料庫,若執行成功就能開始使用…

為了求證cluster的運作,以下進行幾個簡單測試..

  1. 每一台DB資料是否會同步?

    答案是會~ 在第一台建立一個Database,其他二台會自動sync,如附圖

  2. 關掉一台,其他台能不能正常運作?

    Step1. Shutdown最後一台機器,在percono1新增一個table並insert資料

    還活著的另一台會自動sync資料

    Step2. 將shutdown的機器重新啟動,檢查是否有同步資料。

    結論:

    關掉一台,其他台可以正常運作;關掉的那台,重新啟動後資料會同步到最新的狀態。

  3. 測試binlog可不可以正常回復資料?

    Step1 先在每一台的my.cnf加入幾行binlog設定後,重新啟動MySQL

    log-bin=mysql-bin
    
    #不同台的server-id要設不一樣的  
    server-id=1  
    #備份天數
    
    expire-logs-days=7  
    #這個功能可以把其他 Master 讀到的 Binlog 也寫進自己的 Binlog,這樣自己也能變成 Master 讓其他 Slave 節點同步  
    log-slave-updates = 1
    

    檢查是否已開啟,ON就是有開啟了

    mysql > show  variables  like  'log\_bin';
    

    檔案會存在/var/lib/mysql下

    Step2 刪除下方紅色框框的資料

    Step3 用binlog回復這筆資料,檢查是否有正確回復

    mysqlbinlog –start-datetime=“2017-08-17 17:53:00” \

    --stop-datetime=“2017-08-17 17:54:00” \

    /var/lib/mysql/mysql-bin.* | mysql -u root

    結論:

    資料會正確回復,並同步到別台機器。

    參考資料:https://goo.gl/vRckLh

  4. 使用GCP LB串連Percona Cluster

    Step1 建立一個TCP Load balancing ,將percona的機器加入Backends

    Frontend開放3306port

    Step2  用load banlancer的IP與percona的帳號密碼測試連線,結果是成功的。

    總上所述,Cloud Launcher可以快速的協助我們建立Percona Cluster服務,該Cluster提供了我們方便的集群操作與使用(每台主機都可以負責讀、寫)…  至於效能,則讓我們之後測試再分享咯!