DBのバックアップ

postgreqlのデータベースで、データのバックアップやリストアを行う必要が出てきます。
exCampus自体にはこの機能はなく、ユーザで実行しなくてはなりません。年度更新などや講座終了時点でのバックアップは必要不可欠です。
テスト運用中には、ホストのURLを変更したため、これに伴ってすでに利用中の講座データを変更する必要も出ました。これもexCampusにはない機能です。手作業でデータベース内容を修正する手段としてもバックアップ機能が使えます。


su – postgresユーザ名
\dt
\copy tablename to outfile
\copy tablename from outfile
もちろんこの前後には、テーブルの内容を確認しておく必要があります。また\copyコマンドはテーブル内容をテキストに書き出すだけなので、リストアするときにはインデックスNOが重複しないように配慮する必要もあります。
select * from tablename;
delete from tablename;
\copyコマンドでは、データ構造まではバックアップされません。
完全なバックアップには、いくつか方法があるようです。crontabなどで自動化することも可能かもしれません。ハードディスククラッシュなどに備えるためには、外部パーティションへのバックアップ体制も必要になります。
データベースファイルの完全バックアップの例
cd /usr/local/pgsql
tar cfz data.tar.gz data
postgresqlによるexcampusデータベースのバックアップの例
$pg_dump excampus > db.out
リストア
createdb excampus
$psql -e < db.out postgresqlによる全データベースバックアップの例 $pg_dumpall -o > db.out
リストア
$psql -e  template1 < db.out