2011-01-16 13 views
0

私はcentos単位のmysqlデータベースの増分バックアップソリューションを扱っています。増分バックアップを取るためにperlスクリプトを書く必要があります。私はcrontabを使ってこのスクリプトを実行します。私はちょっと混乱しています。解決策はありますが、本当に助けにはなりません。私は多くの研究をしました。ファイルのフルバックアップと増分バックアップを取る方法はたくさんあります。私はそれらを簡単に理解することができますが、私はmysqlデータベースの増分バックアップを取る必要があります。どうやったらよいかわかりません。ソースコードやコードに助言を与えることができます。mysqldumpでmysql増分バックアップを取るためのperlスクリプトを書く

+0

具体的に何を試しましたか?何がうまくいかなかったのですか?どの特定のドキュメントが不明なのですか? – DVK

+1

MySQLのドキュメントはかなり良いサマリーを持っています:http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html – DVK

答えて

0

mysqldumpはチケットです。

例:

mysqldump -u [user_name] -p[password] --database [database_name] >/tmp/databasename.sql 

-u = mysqlのデータベース・ユーザー名

-p = mysqlのデータベースのパスワード

注:-pオプションの後にスペースがありません。あなたはperlでこれを実行する必要がある場合と、あなたはそのようにそれを呼び出すために、システムの機能を使用することができます。

system("mysqldump -u [user_name] -p[password] --database [database_name] >/tmp/databasename.sql") or die "system call failed: $?"; 

は、これを行うに関わるセキュリティリスクのしかし注意してください。これが実行されているときにシステム上で実行されている現在のプロセスのリストを誰かが実行した場合、データベースアクセスに使用されていた資格情報を見ることができます。

+0

こんにちはスティーブ、あなたの返事をありがとう。これは私が既に持っているデータベースの完全なバックアップを取る。データベースの増分バックアップを取得する方法を教えてください。私が読んだことは、データベースの最近の変更を知り、増分バックアップを取るために--bin-logパラメータを指定してmysqldを実行するように指示していることです。また、smoは私が最近の変更を知ることができるようにmysqldumpでいくつかのタイミングパラメータを使用する必要があるこの作業を達成するために私に言った。しかし、私はすべてのパラメータがバックアップファイルを生成する時間がかかる参照してください。私は何を意味するのですか?今すぐ手伝ってくれますか?もう一度感謝します。オズレム。 – user403295

+0

申し訳ありませんが、実際には増分バックアップを行っていません。ここでは、参考になる可能性のある別の議論があります:http://mobile.experts-exchange.com/Q_23185202.html。がんばろう。あなたが成功したかどうか聞いてみたいと思う。 –

+0

私はこの質問を残していました。クーデント完了です。このようなsthは、さらに調査するのに役立つかもしれません。 ** mysqlbinlog --start-date = "2009-07-07 15:00:00" --stop-date = "2009-07-07 18:00:00" /backups/mysqlbin.0005/backups/ mysqlbin。 0007 | mysql **あなたがそれを働かせたら、私はおもちゃがどのようにしたかを見たいと思っています。 – user403295

3

あなたはここでのMySQLで文書化されているを見てきた増分バックアップの方法:

http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

あなたは、本質的にやりたいしようとしている何があなたへの変更を書き込むために、あなたのMySQLインスタンスを設定されていますデータベースをこのバイナリログに追加します。これは、更新、削除、挿入などがバイナリログには入っていますが、select文ではないことを意味します(dbを変更しないので、バイナリログには入りません)。

バイナリログを有効にしてmysqlインスタンスを実行したら、フルバックアップを取ってマスタの位置を書き留めます。その後、増分バックアップを取るには、マスタの位置からmysqlbinlogを実行したいとします。フルバックアップを実行したので、データベースに加えられたすべての変更がマスタの位置から実行されます。この時点でマスターポジションをもう一度メモしておくと、次の増分バックアップを取るポイントがわかります。

複数の増分バックアップを何度も繰り返す場合は、すべての増分バックアップを保持する必要があります。私は非常に頻繁にフルバックアップを取ることをお勧めします。

実際、できる限り完全バックアップを行うことをお勧めします。インクリメンタルバックアップを取ることは、IMOの痛みを引き起こすことになりますが、実行する必要がある場合は、確かにその方法の1つです。

関連する問題