MySQL federated 引擎本地資料庫 連接遠端資料庫,MySQL也可以擁有 DBLink 的功能

2015-12-24 MySQL

以前在使用 MS SQL Server 的時候因為可能必須跟別個資料庫進行串接,有可能會利用到 DBLink 來操作 SQL命令 來遠端資料庫,在 MySQL 本身並不具有 DBLink,但幸好也有對應的方法可以使用,也就是 federated 引擎

 

在 MySQL 中針對不同的功能提供了各式儲存引擎,其中 federated 就是一個針對遠程資料庫操作的實現,透過 federated 所創建的資料表只會在 local 建立含有 schema 的空資料表,而 data 來源則是遠端

 

 

MySQL 啟動 federated 引擎

一般預設 MySQL 都會搭載 federated 引擎但不見得有開啟,本篇會從安裝 federated 開始

 

檢查 federated 是否有開啟,如果 federated 的 Support = YES 代表你可以略過以下解決方案建立 federated 資料表!

一般在建立 federated 引擎可能會遇到兩種狀況

 

狀況1. federated Support = NO,從 5.1.26 開始 MySQL 預設不開啟 federated 引擎,所以必須從 my.cnf 加入 federated 啟動

 

狀況2. 沒有 federated,連 support = no 都沒有,這代表在安裝 MySQL 的時候沒有編譯進來,可以選擇動態編譯,但你必須確認擁有 ha_federated.so 的 lib,通常在 /usr/lib64/mysql/plugin 或是 /usr/local/mysql/lib/mysql/plugin

 

以上都沒有問題之後就可以接下來建立 federated table

建立 federated table 必須注意的點是 ENGINE 必須使用 federated,然後使用 CONNECTION 參數來告訴 federated 遠端資料庫的連線資訊

 

使用 federated 因為是使用網路連線來抓取 data,所以使用 federated 的時候網路狀況可能是一項瓶頸,但這是一個比較不耗費本機資源的方式,實作上其實還是可以利用 replication 將資料複寫回來,避免網路中斷的狀況

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

彙整

分類

open all | close all

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱