• ベストアンサー

内部サーバと外部サーバの同期

現在レンタルサーバを借りて、公開用サーバとして運用しています。 このレンタルサーバがもしトラブル等で使用できないことを考慮して別に自宅サーバを構築しようとしています。 双方ともに同じバージョンのデータベースMySQLをインストールしていますが、このデータベースの同期方法について教えて下さい。 レプリケーションという方法があると思いますが、MySQLのレプリケーションは不十分と聞いたことがあります。 MySQLのバージョンは4.1です。 両方のサーバ共にプログラム言語はPHPを使用しており、Apache2.0で運用する予定です。 できる限りリアルタイムでの同期を行いたいと思っているのですが、こういう場合の、みなさんの処理方法について参考にさせていただきたく投稿致しました。 ご教授の程、宜しくお願いします。

  • S202
  • お礼率84% (142/169)
  • MySQL
  • 回答数4
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>できる限りリアルタイムでの同期を行いたい 各データに更新日時の情報をもたせて cronで、過去○○分のデータを抽出し他のサーバーにおくりつける スクリプトを作ってやればよいのでは? リアルタイムでやるということは負荷がたかくなるということと 同意になりますが、そこまでやる必要はほんとにありますか?

S202
質問者

お礼

ありがとうございます。 過去○○分でのデータ抽出というのは思いつきませんでした。 参考にさせていただきます。 リアルタイム性=高負荷は承知しています。 ある程度のリアルタイム性はどうしても必要な為、調整しながらやってみます。

その他の回答 (3)

  • h_0
  • ベストアンサー率30% (7/23)
回答No.4

1万円が惜しいというのであれば、もうSOAPかXML-RPCで自作ですね。 PHPだとNuSOAPか、PHP5に含まれているものを使うのが妥当かと。(XML-RPCでももちろんかまわないと思います。) あとは、セキュリティを考慮して、cURLライブラリで、https通信+パスワードプロテクトもしたほうがいいと思います。 「PHP SOAP」で検索したらサンプルはいろいろ出てくると思います。 蛇足ですが、安全な環境内でこのようなツールを自作するのであれば、2~3時間で出来ると思いますが、外部に公開する場合は、セキュリティを考えると、シェアウェアのほうが安心できるのでは?

S202
質問者

お礼

回答ありがとうございます。 セキュリティ面も考慮しないといけないですよね、やっぱり。 SOAPでやってみようと思います。 ありがとうございました。

  • h_0
  • ベストアンサー率30% (7/23)
回答No.3

では、Navicatなどのソフトウェアを使ってはどうですか? 物理的に離れているデータベースの同期をスケジュールできます。またファイアウォールを越えることも出来ます。 デメリットは、頻繁に同期をすべてのテーブルに対して行った場合、当然ですがパフォーマンスが悪くなります。 理想としては、Enterprise Service Bus(http://en.wikipedia.org/wiki/Enterprise_service_bus)などを実装している製品を購入するとか。 「PHPでデータが更新されたときだけ同期を取りたい」のであれば、XML-RPCとかSOAPで、データベースを更新するときに他のデータベースも更新する、なら簡単に出来ると思います。

S202
質問者

お礼

お礼が遅くなってしまって申し訳ありません。 Navicatを見てみたのですが、有償ソフトになりますね。 できるだけ費用をかけたくないので、技術面でなんとかしたいとおもっているのですが。

  • h_0
  • ベストアンサー率30% (7/23)
回答No.2

質問内容から、バックアップが目的かつリアルタイムとの事ですので、MySQLのレプリケーションが最適だと思います。(自宅サーバというのが気になりますが) 下記のウェブサイトが参考になるかもしれません。 http://www.irori.org/doc/mysql-rep.html しかし、リアルタイムで自宅サーバだと十分なネットワーク品質を確保できるのですか? レンタルサーバのプランをアップグレイドして、冗長構成にするか、予算が十分あるのであれば、2台専用サーバを借りたほうが安心なのでは?

S202
質問者

お礼

アドバイスありがとうございます。 バックアップが目的ではなく、内・外部ともに更新処理が行われる予定です。内部は内部での処理、外部は外部用の処理を行い双方ともに同期をとるといった構成です。 なので、マルチマスタ構成ということになるのですがMySQLは対応していないと認識しています。 また、ネットワーク品質等はこの際考慮しないという前提で構成する予定です。

関連するQ&A

  • xoopsの使えるレンタルサーバ

    自サーバにて、いろんなサイトを抱き合わせでアクセスさせていますが、 今回、回線が込んできたので、レンタルサーバに引越しようと考えてますが、自サーバをMySQL 4.0で構築しているため、中々、MySQL4.0使用の レンタルサーバが見つかりません。 MySQL 4.1も考えましたが、xoops上では不具合が多いようです。 それに以降するのも大変な感じがするので、できれば、同じMySQL4.0.xが 動作するレンタルサーバを探しています。 もし、ご存知の方いましたら、教えて頂けないでしょうか? 自サーバのバージョン Apache 2.0.52 PHP 4.4.4 Perl 5.8.3 MySQL 4.0.27 以上、よろしくお願いします。

  • 同期レプリケーション環境の構築について

    [OSのVER]:Windows 2003 Enterprise Edition [OracleのVER]:Oracle 10g Trial(Enterprise Edition) 同期レプリケーション環境の構築方法がわからず、困っています。 OTNのアドバンスト・レプリケーションにより、「非同期レプリケーション」環境の構築は実現できたのですが、「非同期レプリケーション」にスケジュール・リンクを構成して、連続的、リアルタイムなレプリケーションをシミュレートすることにより、「同期」に近い環境を構築する方法は記載してあるのですが、完全な「同期レプリケーション」環境の構築方法は記載されていないように見受けられました。 質問内容 1.レプリケーション・アクティビティ開始時に何らかの設定をすることにより、非同期・同期の切替が可能となるのか? 2.非同期レプリケーション環境の構築とは全く違ったプロセス(OTNマニュアル記載)にて環境を作成する必要があるのか? です。 同期レプリケーション環境の構築については、関連書籍をあたってみましたが、理論の記述のみで具体的な実現方法を見つけることができませんでしたので、皆様からのご教授をお願いしたいと思い、書き込みました。 以上、よろしくお願いいたします。

  • 自宅サーバー構築方法(外部への貸出)

    この度質問したいことは、自宅サーバを構築した後 レンタルサーバの様に貸し出しをしたいと思っており その際の不明な点を質問させていただきたいと思います。 使用環境 OS:WindowsXP Professional SP2 WEBサーバー:Apache FTPサーバー:現在未使用 SQLサーバー:MySQL Mailサーバー:現在未使用 Apacheでの鯖構築などは問題がないのですが、 レンタルサーバーの様な、他の方へ自分のサーバーのスペースを 貸し与える具体的な方法が分かりません。 方法としては、 1・私の自宅サーバーのサイトに接続し会員登録 2・メールを登録者へ自動発行し、WEBスペースを貸出。 1の点で、会員登録する際はどのような方法ですればいいのか?(CGI等) 2の点で、登録者の情報管理等はMySQLで管理すればいいのか? 等が、不明な点です。 以前に「ほむぺ」と言うレンタルサーバ構築ソフトが出回っていたようですが、今はそれに似たソフトが見つからず考えておりました。 レンタルと言っても、無料で使っていないPCのスペースを貸す気持ち程度ですので、サンプルソースや、構築方法の参考になるサイトを教えていただけませんでしょうか。 よろしくお願いいたします。

  • PostgreSQLの同期・非同期について

    社内で稼働しているシステムの更新で 今までオラクルを使用していましたが、 PostgreSQLに移行すべく, 2台のサーバーでレプリケーションするつもりでいます。 ポスグレにはレプリケーションで、同期と非同期がありますが、 どちらも一長一短があり、迷っています。 製造工場のシステムに使用している為、 クライアント端末からサーバーへのアクセスは、 1日20時間程度。 障害時の復旧は、長くても2時間程度以内が希望です。 1日の追加行数は7千行程度。 2台のサーバーは物理的に分かれておりますが、 同じ部屋で稼働。 OS:WindowsServer 2012 R2 DB:PostgreSQL9.6 現行のオラクルは、同期モードがライセンス上できませんでしたので、 非同期で運用していますが、 ポスグレはどちらも選べますので、迷います。 同期・非同期 どちらにしたら良いと思われますか? 他に良い方法があるようでしたらご教授ください。

  • 別サーバへのmysql接続に関して

    諸事情によりPHPプログラムで別のサーバにあるmysqlへ接続しようと 試みていますが、うまくいきません。 それぞれのサーバに入っているPHP,apache,mysqlのバージョンは 下記の通りです。 【PHPを動かすサーバ(以降:サーバA)】  Redhat Linux ES 4.0  PHP Version 4.3.9  Apache 2.0.52  mysql(入っていません) 【mysqlが動いているサーバ(以降:サーバB)】  FreeBSD 4.7  PHP Version 4.3.10  Apache 1.3.37  mysql 4.1.11 プログラムは下記のものです。 if(!$conn = mysql_connect(サーバB:3306,ユーザー名,パスワード)){  die('MySQL接続失敗'); } if(!$sts = mysql_select_db(データベース名,$conn)){  die('テーブル選択失敗'); } サーバBで同一のプログラムを 起動した場合はもちろん問題なく繋がります。 サーバAでは「MySQL接続失敗」となってしまいます。 どのような設定を行えば、サーバAからサーバBのmysqlへ接続可能に なるのか、よろしくご教授の程、お願いいたします。

    • 締切済み
    • PHP
  • ローカル環境でのCGIの処理速度が遅いです。

    Xamppをインストールして Apacheとmysql、perlを使用した仮想サーバーをローカル環境に構築しました。 しかし、普通のページ(HTML等)はサクサク表示するのですが、CGIファイルの処理速度がかなり遅いです。 具体的にはMovabletypeを使用しているのですが書き込み、再構築・ブログの管理画面表示など全てに時間がかかる状態です。 現在はレンタルサーバーを借りてそこにもMTをインストールしているのですが、はっきりいってそのレンタルサーバーより2~3倍は遅いです。 私はてっきりローカル環境であればレンタルサーバーと同等、もしくはそれ以上の速度でCGIが実行されると考えていたのですがこういうものなのでしょうか? また、処理速度を早くする方法などはないでしょうか? おわかりの方がおられましたらご教授の程、よろしくお願いします。 ▼PC環境 Windows2000 Pentium4 1.8GHZ メモリ 512MB ▼サーバー環境 Apache HTTPD 2.2.6 MySQL 5.0.45 Perl 5.8.8-2.2.4 ▼使用ソフト Movable Type version 4.01

    • ベストアンサー
    • CGI
  • レンタルサーバについて

    現在、自分のローカルマシンでホームページの作成の勉強をしています。 (超初心者です) やろうとしていることは、質問のページを作成してphpのmb_send_mail関数で質問内容を自分のアドレスに送信しようと考えています。 自分のローカルマシンでは、大体完成しているのですが、どのように公開しようかと悩んでいます。自分でサーバをつくるには、運用コストがかかり、その他色々労力がかかるため出来れば無料レンタルサーバ(格安レンタルサーバ)を使用したいと考えています。 レンタルサーバの仕組みもよく解っていません。 phpが使用できるレンタルサーバとは、phpがインストールされてあり、php.iniは自分用にカスタマイズ出きるのでしょうか? レンタルサーバにメールサーバを組み込めるのでしょうか? 超初心者的な質問で申し訳ありません参考になるご意見を下さい。 【開発環境】 OS:ubuntu 9.04 Apache2:Version2 PHP:Version 5 Mysql+postfix

  • 2サーバ、2SQL-Serverで、片方のサーバのデータベースをもう一つのサーバと同期をとることができますか?

    サーバ移転を行うのですが、 データベースデータをメディアに保存して、移転先のサーバに持っていってアタッチ。。。 これをやると果てしなく時間がかかってしまいます。(データベースが数百個ある為) バージョンは、SQL-Server2000です。 データベース移行を円滑にやる為に、データベースの同期ができれば簡単になるのですが、できるのでしょうか? できるならやり方を教えてください~

  • MySQLのBLOB型

    MySQLを使ってデータベースを構築しています。 マニュアル等にBLOB型は大きいサイズ(正確にはわかりません)が格納できるはずですが、どうしても255バイトで切れてしまいます。 LONGBLOB型、TEXT型などにしても同様の結果です。 MySQLのバージョンは4.0.0-alpha、OSはWinサーバはApacheです。 解決方法がありましたら教えてください。

    • ベストアンサー
    • MySQL
  • dojaで開発したプログラミングをレンタルサーバーなりを導入して、試験的に運用したいです。

    dojaで開発したプログラミングをレンタルサーバーなりを導入して、試験的に運用したいのですが、調べても、dojaの開発段階までの情報しか得られません。 ローカルのエミュレーターでは動くところまではきています。 ちなみにserver/jsp, tomcat,データベースはmysqlを使用しています。 皆さん実際携帯で運用するには(携帯で、webページを見るのではなく、携帯でIアプリで見れるように)どのようにしているのでしょうか? 全くの初心者でよく解らないのですが、ご教授の程宜しくお願い致します。