漫ろで行こう

自由気まま過ぎる、ギークになりたい男の子の話

Posts tagged ‘FEDERATED’

© 1995-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.


そりゃ、5.0.3 から FEDERATED エンジンが実装されたので見れませんでした。おわり。

4.x 系で稼働している MySQL(DB-A) のデータを、新しく構築する 5.1.x 系(DB-B)にあるサマリーテーブルに格納して有効活用するという案件が浮上してきたため。
DB-B にある DB を DB-A 側から MS SQL Server のリンクサーバーのように扱いたいという。
元々は MS SQL Server から、ODBC 経由で DB-B の DB をリンクサーバーを利用して操作するつもりでいたのですが、今回 MySQL 4.x 系のデータも同様のように処理する(かもしれない)ということに。

DB-A から DB-B をリンクサーバーのように参照するには?と考えたところ浮上してきたのが FEDERATED エンジン。
要は何が言いたいかと言うと、5.x 系での FEDERATED エンジンの記事はいっぱいあるけど、異なるバージョン間での FEDERATED エンジンを利用した記事が全然なかったので、実際に試してみました的なメモ。
FEDERATED エンジン使うの初めてなの……。

1.構成

◆リモートサーバー(DB-A)
MySQL 4.1.15
◆ローカルサーバー(DB-B)
MySQL 5.1.38

DB-A 側では FEDERATED エンジンが利用できないので、DB-B 側でローカルサーバーとします。
よくある記事ではローカルだとかリモートだとか、実際触ってみなくちゃ良くわからんかったです。触ってみた感覚としては、DB-A を DB-B 側からマウントするようなイメージが一番しっくりきました。

2.DB-A のテーブル確認
リモート側(参照される側)のテーブルは以下のような感じで作られているとします。

CREATE TABLE `tbl_ServerStatus` (
  `CDate` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `Status` enum(‘Up’,'Down’) default NULL,
  `Memo` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

3.DB-B での FEDERATED エンジン利用の設定
自分が利用した MySQL 5.1.38 では、デフォルトで FEDERATED エンジンが DISABLED になっているため、そのままでは利用できません。
my.conf に利用出来るようにするための設定を記述する必要があります。

[mysqld]
federated

4.DB-B から DB-A のテーブルへ接続する
既に DB-A に存在するテーブルへ接続します。
感覚的には枠を用意してあげてリンクさせる感じでしょうか。

CREATE TABLE `tbl_ServerStatus` (
  `CDate` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `Status` enum(‘Up’,'Down’) default NULL,
  `Memo` varchar(255) default NULL
) ENGINE=FEDERATED DEFAULT CHARSET=utf8
CONNECTION=’mysql://[UserName]:[Password]@[RemoteIP]:3306/[DBName]/[TableName]‘;

最後の「CONNECTION」の箇所が重要です。
[UserName][Password]は MySQL のユーザー名とパスワードになります。
[DBName][TableName]は、DB が「Test」だとした場合、今回は「/Test/tbl_ServerStatus」になります。

以上、設定おわり。
実際に SELECT してデータを参照することが出来ました。また、INSERT, UPDATE, DELETE も問題なく反映されました。

official.MySQL :: 世界でもっとも普及している、オープン ソース データベース

© 1995-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.


完全個人的なメモ書きです。
全然足りていないかと思うので、不足などあったら @suzuro2045 まで指摘していただけると助かります。
こうしてみると面白いエンジンがいっぱいです。
カラムナデータベースエンジンって無いのかしら?自分が知らないだけ?

基本的なの
MyISAM
InnoDB
MEARGE
MEMOY (HEAP)
EXAMPLE
FEDERATED
ARCHIVE
CSV
BLACKHOLE
Maria (旧:MyISAM++)
InnoDB の代替エンジン
official.Monty says
Sphinx
全文検索エンジン
official.Sphinx – Free open-source SQL full-text search engine
NDB
MySQL Cluster エンジン
via.hirohama.mysql
Q4M
メッセージキューエンジン
official.Q4M – a Message Queue for MySQL
Pacific
分散ストレージエンジン
via.Kazuho@Cybozu Labs: Pacific という名前の分散ストレージを作り始めた件
RethinkDB
SSD特化型ストレージエンジン
official.RethinkDB – The database for solid state drives.
Spider
Database Sharding エンジン
official.SpiderForMySQL.com
Vertical Partitioning
カラムパーティショニングエンジン(※not Column Database)
via.Wild Growth 日本語: [MySQL][VP]Vertical Partitioningストレージエンジン 0.1リリース
official.Vertical Partitioning for MySQL in Launchpad
BlitzDB
Drizzle 用ストレージエンジン
official.Efficient general purpose Storage Engine for the MySQL family in Launchpad

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
Proudly powered by WordPress. Theme developed with WordPress Theme Generator.
Copyright © 漫ろで行こう. All rights reserved.