それを行う適切な方法は何ですか? .sq3ファイルをコピーするだけですか?
サイトにユーザーがいて、コピー中にファイルが書き込まれた場合はどうなりますか?
Sqlite3コマンドラインツールは、 .backup
ドットコマンド を備えています。
次の方法でデータベースに接続できます。
sqlite3 my_database.sq3
そして、次のコマンドでbackup dotコマンドを実行します。
.backup backup_file.sq3
データベースへのインタラクティブな接続の代わりに、バックアップを行い、その後で接続を閉じることもできます
sqlite3 my_database.sq3 ".backup 'backup_file.sq3'"
いずれにしても、結果はデータベースのbackup_file.sq3
という名前のコピーmy_database.sq3
です。
現在データベースで作業しているすべてのユーザーの面倒を見るので、定期的なファイルコピーとは異なります。データベースには適切なロックが設定されているため、バックアップは排他的に行われます。
.backupが最善の方法です。
sqlite3 my_database .backup my_database.back
.dumpコマンドを試すこともできます。これにより、データベース全体またはテーブル全体をテキストファイルにダンプできます。 TABLEが指定されている場合、LIKEパターンTABLEと一致するテーブルのみをダンプします。
sqlite3 my_database .dump > my_database.back
ダンプとストアを使用してアーカイブコピーを作成する良い方法は、後でデータベースを再構築します。
sqlite3 my_database .dump | gzip -c > my_database.dump.gz
zcat my_database.dump.gz | sqlite3 my_database
この質問も確認してください SQLite3の.backupおよび.dumpコマンドはデータベースをロックしますか?