DBをコピーするには?


まさ  2010-09-15 02:52:51  No: 39152

C++Builder2007ですが
データベースのバックアップ(MySQL)を
別サーバーに定期的に取りたくて
サーバーA(元)はSQLConnection1とSQLTable1で接続し、
サーバーB(先)はSQLConnection2とSQLTable2で接続したのですが・・・
そこからどうやって各テーブル内容をAからBに作成したらいいのでしょうか?
ちなみにBにはデータベースはありますが、テーブルは無いので
テーブルを作成して全レコードをコピーしたいのですが・・・
簡単にテーブルを丸ごとコピーする方法があったら教えてください。
また、SQLTableを使ってはいますがこれに拘っているわけではありませんので
他のコントロールで簡単にできるものがあれはそちらでも構いません。
よろしくお願いします。


igy  2010-09-15 07:22:41  No: 39153

>データベースのバックアップ(MySQL)を
>別サーバーに定期的に取りたくて

C++Builder2007 を使わない方法であれば、
Googleなどで、"MySQL バックアップ"で検索すれば、ありそうな気がしますが、
それでは、だめですか?


まさ  2010-09-15 19:41:02  No: 39154

igyさん、お答えありがとうございます。
それは、mysqldumpでsqlファイルを出力してmysqlでリストアする方法ですよね?
それは現在行っている方法なのですが・・・
今回はCBuilderを使って行いたいと思っております。
SQLTableを使うとフィールド情報(型、キー)が入っているみたいなので
この情報を利用してそのまま他サーバーのDBにテーブルを作成できればいいかなと思いまして・・・


はな  2010-09-15 22:41:09  No: 39155

私はやった事はありませんが、phpMyAdminでは SQL文でインポート/エクスポートが出来ますから
プログラムでも、SQL文のみでDBのバックアップが出来るかと思います。
(ただし、phpMyAdminを解析しないといけませんが)

ただ、mysqldumpでバックアップをしますと少々大きくてもあっさりと終わるのに対し、
上記のインポート/エクスポートで行いますとバックアップにかなり時間が掛かります。

それらを踏まえますと、オーソドックスに mysqldumpの方をお奨めします。


まさ  2010-09-16 20:42:10  No: 39156

はなさんお答えありがとうございます。
SQL文でバックアップできるなら簡単でいいのですが・・
もうちょっとSQL文探してみますありがとうございました。


久美子  2010-10-06 06:28:52  No: 39157

テーブル毎のバックアップであれば、
Select * From Table1 into OutFile 'c:/テキストファイル名'
  Fields Terminated By ','
  Lines  Terminated By '/r/n'
とかで、可能では?


HOta  2010-10-06 23:08:47  No: 39158

データーベースのバックアップは、それぞれのRDBMSのバックアップツールを使うのがベストだと思います。テーブルだけでなく関数やプロシジャーなどがありますから。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加