人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

物理的に別々のサーバのデータベース(同じ構造)をjoinして結果を取得したいと考えています。

Aサーバのtable_aと、Bサーバのtable_bが同じ構造のときに、この2つのテーブルをjoinしたいのですが、どうすればいいのでしょうか?

今考えているのは、table_bのクローンになるようなテーブルtable_a2をAサーバに作っておいて、定期的に同期させておいて、joinしたりするのかなと考えていますが、何かと面倒そうな気がしています。

もっとスマートでいい方法がないでしょうか?

●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:クローン サーバ スマート データベース 構造
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● samasuya
●27ポイント

DBによりますが、Oracleであれば、DBLinkを使えば

簡単だと思います。

select * from table_a

union

selsect* from table_b@hogehoge

Joinということであれば、

seldct a.hogehoe ,b.fugafuga from

a ,b@hogehoge

という感じです。

「hogehoge」は、tnsnaes.oraに記述されている値です。

sqlplus で接続するときと同じですね。

sqlplus user/pass@hogehoge

URLはダミーです。

http://www.hogehoge.com

◎質問者からの返答

MySQLなんですが、そんなことができれば素敵です。MySQLでは無理でしょうか?


2 ● russian-blue
●27ポイント

MYSQLで検索してみるとFederatedエンジン

が使えると(5.0.14以上とあります)

http://dev.mysql.com/doc/refman/5.0/en/federated-use.html

create table nantoka (

・・

) engine=federated

connection="mysql://..."

connectionの部分はThinkITの記事だと

以下の値を設定するみたいです。

(使った事はありません)

mysql://user_name[:password]@host_name[:port_num]/db_name/tbl_name

http://www.thinkit.co.jp/free/article/0608/1/5/

レプリケーション機能を設定すると同期出来るらしい?

http://www.irori.org/doc/mysql-rep.html

◎質問者からの返答

ありがとうございます。

確認してみたらメインの方がMysql4.0.24でした。

サブが5なのですが、これは使え無そうですね。


ありがとうございました。


3 ● kato-s
●26ポイント

詳細は未確認で申し訳ありませんがこちらの内容が参考になるかもです。

http://itpro.nikkeibp.co.jp/article/COLUMN/20050922/221608/

> FEDERATEDストレージ・エンジンは,MySQL 5.0からの新機能だ。他のMySQLサーバーに格納されているテーブルをローカルにあるテーブルと同様にアクセスできるようにする。

◎質問者からの返答

mysql4を使っているためこれは使えないようです。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ