Polyspace Access データベースのバックアップ
Polyspace®Access™ データベースのバックアップを作成するには、PostgreSQL® ユーティリティ pg_dumpall
を使用します。このユーティリティは、データベースのダンプを作成します。後で、ダンプが作成されたときのデータベースの状態を復元することができます。pg_dumpall
ユーティリティは、Polyspace Access の polyspace-access-db-0-main
コンテナーにあります。
データベースのサイズと使用頻度に基づいて、バックアップの作成頻度に関するポリシーを設定してください。データベースのバックアップまたは復元を行っている間、ユーザーは Polyspace Access を操作できません。バックアップまたは復元の操作を開始する前に、ユーザーに通知してください。
データベースのバックアップの作成
データベースのバックアップを作成するときには、pg_dumpall
ユーティリティにより、データベースを再構成するために使用する SQL コマンドのリストが生成されます。バックアップ操作にはスーパーユーザー権限が必要です。これらの権限は PostgreSQL で設定されるものであり、システム上のユーザー権限とは異なります。たとえば、データベースのダンプを生成し、backup_db.sql
という名前で保存するには、[Polyspace Access Database] サービスをホストしているマシン上でターミナルを開き、以下の手順に従います。このワークフローでは、すべての Polyspace Access サービスが実行中であることを前提としています。
バックアップに不完全なデータや破損したデータが確実に含まれないようにするために、[Polyspace Access ETL] サービスと [Polyspace Access Web Server] サービスを停止してから、バックアップ操作を開始します。ターミナルに、次のコマンドを入力します。
docker stop polyspace-access-etl-0-main polyspace-access-web-server-0-main
メモ
Polyspace Access バージョン R2021b 以前を実行している場合は、Docker コンテナー名が異なる可能性があります。現在実行中のコンテナーの名前を表示するには、
docker ps --format '{{.Names}}'
コマンドを使用してください。データベースのバックアップを生成して
backup_db.sql
に保存します。このdocker exec polyspace-access-db-0-main pg_dumpall -U postgres > backup_db.sql
docker exec
コマンドは、polyspace-access-db-0-main
コンテナー内部にあるpg_dumpall
ユーティリティを実行します。-U
には、スーパーユーザーpostgres
を指定します。実行すると、pg_dumpall
の出力がbackup_db.sql
として保存されます。生成されたバックアップ ファイルを圧縮することもできます。たとえば、バックアップを作成して、そのファイルを
gzip
で圧縮するには、次のコマンドを入力します。docker exec polyspace-access-db-0-main pg_dumpall -U postgres | gzip > backup_db.gz
メモ
大規模なデータベースに対して
pg_dumpall
を使用すると、一部のオペレーティング システムの最大ファイル サイズ制限を超えるファイルが生成される可能性があり、また長時間かかる可能性もあります。バックアップを完了したら、次のコマンドを使用して [Polyspace Access ETL] サービスと [Polyspace Access Web Server] サービスを再起動します。
docker start polyspace-access-etl-0-main polyspace-access-web-server-0-main
スクリプトを使用してデータベースのバックアップを作成する場合は、そのスクリプトで
pg_dumpall
エラーが正しく処理されることを確認します。スクリプトでエラーが正しく処理されない場合、コンテナーを再起動するコマンドが実行されない可能性があります。
バックアップからのデータベースの復元
データベースのバックアップからデータを復元するには、psql
ユーティリティを使用します。このユーティリティは、polyspace-access-db-main
コンテナーにあります。この操作により、Polyspace Access プロジェクトのデータとユーザー権限が復元されます。たとえば、backup_db.sql
ファイルに保存されているバックアップからデータベースを復元できます。一部の手順は、[Cluster Admin] インターフェイスで行います。他の手順には、[Polyspace Access Database] サービスをホストしているサーバー上のターミナルが必要です。Linux® では、この操作を実行するためにスーパーユーザー権限が必要になる場合があります。
[Polyspace Access ETL] サービスと [Polyspace Access Web Server] サービスを停止します。ターミナルに、次のコマンドを入力します。
docker stop polyspace-access-etl-0-main polyspace-access-web-server-0-main
Polyspace Access データベースが格納されているフォルダーを削除してから、[Polyspace Access Database] サービスを再起動します。
sudo rm -rf databaseFolderPath docker restart polyspace-access-db-0-main
databaseFolderPath
は、Cluster Admin の [Cluster Settings] で、[Polyspace Access Database] サービスの [Data volume] フィールドに指定したフォルダー パスです。次に例を示します。/local/Polyspace/R2020b/appdata/polyspace-access/db
[Data volume] フィールドにフォルダー パスではなくボリューム名 (例:
polyspace-data
) を指定した場合は、以下のコマンドを使用して、データベース サービスの停止、ボリュームの削除、新規ボリュームの作成、データベース サービスの再起動を行います。docker stop polyspace-access-db-0-main docker volume rm polyspace-data docker volume create polyspace-data docker restart polyspace-access-db-0-main
backup_db.sql
からデータベースを復元します。ターミナルに、次のコマンドを入力します。バックアップを圧縮ファイル形式で保存した場合は、そのファイルを圧縮解除してから、パイプを使用してファイルの内容をdocker exec -i polyspace-access-db-0-main psql -U postgres postgres <backup_db.sql
docker exec
コマンドに渡します。たとえばgzip
を使用する場合は、次のコマンドを使用してbackup_db.gz
ファイルからデータベースを復元します。gzip -cd backup_db.gz | docker exec -i polyspace-access-db-0-main psql -U postgres postgres
メモ
大規模なデータベースに対して非圧縮バックアップ ファイルを使用すると、オペレーティング システムの最大ファイル サイズ制限を超える場合があります。
[Cluster Admin] インターフェイスで [Restart Apps] をクリックして、すべてのサービスを起動します。
サービスが起動したら、Web ブラウザーで Polyspace Access インターフェイスを開き、バックアップを作成したときにデータベース内に保存されていたプロジェクトを確認します。
また、ログ先行書き込み (WAL) ファイルを使用して、データベースのインクリメンタル バックアップおよびインクリメンタル リカバリを行うこともできます。WAL により、データベースに加えられたすべての変更が記録されます。システムはいくつかの WAL ファイルのみを保管し、古くなったファイルをリサイクルします。
ベース バックアップを作成し、それ以降のすべての WAL ファイルを保存するという方法により、ベース バックアップを作成した時点から現在までの間の任意の時点まで WAL シーケンスを再生して、データベースを復元できます。インクリメンタル バックアップを構成する方法の例は、Continuous Archiving and Point-in-Time Recovery (PITR) を参照してください。
参考
トピック
- ストレージとポートの構成
- Web レビューのための Polyspace Access のインストール (Polyspace Bug Finder)