MySQL Replication

    版本為 21:41, 20 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    文/A.Lang 於 2009/2/28 (alang<dot>hsu<at>gmail<dot>com) *轉載請註明原作者*

    MySQL Replication - MySQL 資料庫抄寫。

    為何要作Replication(抄寫)
    • 報表(Reporting) - 對於需產出大量報表的資料庫而言,為不影響 Master DB 的效能,建議另外建置另一個專屬的報表資料庫。
    • 資料安全 - 資料庫抄寫至 Slave DB,必要時可隨時關閉抄寫程序。對 Slave DB 作資料庫備份也可避免對 Master DB 的線上運作影響。
    • 異地備份 - 對於分公司資料庫的複製或異地備份需求。
    不同版本間抄寫的相容性

    官方手冊 - http://dev.mysql.com/doc/refman/5.0/...atibility.html

    基本上不同版本之間的資料庫抄寫,建議是從舊版本抄寫至下一個新版本,例如你可以從 MySQL 4.1.x 抄寫至 MySQL 5.0.x,或從 MySQL 5.0.x 抄寫至 MySQL 5.1.x,不過為求系統穩定性,還是建議盡量以同個版本來建置兩個資料庫的抄寫。

    系統環境

    Master DB)
    Purpose:     Production
    IP address: 10.10.10.112
    DB version: mysql-server-5.0.22-2.2.el5_1.1

    Slave DB)
    Purpose:     Backup or Reporting
    IP address: 10.10.10.134
    DB version:

    如何建置兩個資料庫的抄寫
    新增一個資料庫用戶用以執行抄寫

    這個用戶是在 Master DB,用來讓 Slave DB 連接用,其權限僅需要開啟 REPLICATION SLAVE,例如新增一個用戶為 repl,密碼為 replpass。

    在 Master DB 執行下列 SQL statements:

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)

    你可以對每一個 Slave DB 設定不同連接帳號,也可以用同一個帳號。

    Tip:
    上述的新增帳戶方式是以 Slave DB 的 IP 來限制連接的來源,如果實際的操作環境有使用 domain 也可以改成 domain name 方式來作,詳細方法請參考官方的線上手冊
    要驗證帳號是否可以運作,可以在 Slave DB 嘗試使用該帳號連接,請在 Slave DB 執行下述指令
    shell> mysql -u repl --password='replpass' -h 10.10.10.112

    設定 Master DB

    要作抄寫的 Master DB 必須開啟 binary logging,並且在每一個 DB 主機上,需設定不同的 server-id 值,這個值是用來辨識群組內的不同主機識別用,其值是介於 1 - 232

    關閉 MySQL 並修改 /etc/my.cnf 內容如下:

    shell> service mysqld stop
    shell> vi /etc/my.cnf

    [mysqld]
    # Replication on Master DB
    log-bin=mysql-bin
    server-id=1
    

    shell> service mysqld start

    設定 Slave DB

    關閉 MySQL 並修改 /etc/my.cnf 內容如下:

    shell> service mysqld stop
    shell> vi /etc/my.cnf

    [mysqld]
    # Replication on Slave DB
    server-id=2
    

     

    參考連結

    MySQL 5.0 Reference Manual :: 16 Replication
    http://dev.mysql.com/doc/refman/5.0/...plication.html

     

     

    Powered by MindTouch Core