8. コンテンツにスキップ

8. バックアップ

Senju Service Managerで使用する各種データやファイルのバックアップを作成する方法を説明します。

次の3つの方法について説明します。

  • pg_dumpコマンドを使用
  • その他バックアップツールを使用
  • pg_basebackupコマンドを使用

Info

本手順中にデータ更新が行われた場合、PostgreSQL Database の仕様としてテーブル間のデータ及びオブジェクト間の整合性が取れなくなる可能性があります。
データの不整合が存在する状態では Senju Service Manager は正常動作しない恐れがあります。

この為、本手順を実施する場合は、以降の手順に従いサービスの停止を行ってください。
また作業中は以下の操作を行わないでください。
 ・SSM WEB サーバーコンフィグレータの操作
 ・SSM DB サーバーコンフィグレータの操作
 ・Senju Service Manager が提供するすべてのコマンドの実行

Info

本文中特に指定のない場合、それぞれ環境に依存しない共通の手順になります。
マニュアルに従い作業を進めてください。

Info

Amazon RDS for PostgreSQL DBを利用する場合、必ずスナップショットを取得してください。本章の手順は不要です。

要注意

同じデータベースのバックアップとリストアのみに使ってください。

8.1 pg_dump コマンドを用いたバックアップ

ここでは、pg_dumpコマンドを用いたバックアップの方法を説明します。

Info

pg_dumpコマンドを用いてバックアップを行う場合、DMPファイルを格納する必要があるためDMPファイルの出力先ドライブに十分な空き領域が必要です。
ドライブに十分な空き領域がない場合、作業領域の変更等が必要になります。

8.1.1 SSM WEBサーバーでサービスの停止

Info

Senju Service Manager稼働中にバックアップを行う場合は、本手順は実施不要です。「8.1.3 pg_dumpコマンドの実行」の手順に進んでください。

構成される全てのSSM WEBサーバーでIISのサービスを停止します。

Administratorsグループに所属するユーザーでサービスを停止するノードにログオンします。

コマンドプロンプトから以下のコマンドを実行し、IISを停止させます。

  • コマンド
IISRESET /STOP

コマンドが完了したら、ノードからログオフします。

8.1.2 SSM DBサーバーでサービスの停止

Info

Senju Service Manager稼働中にバックアップを行う場合は、本手順は実施不要です。「8.1.3 pg_dumpコマンドの実行」の手順に進んでください。

Administratorsグループに所属するユーザーでSSM DBサーバーをインストールしたノードにログオンします。

CCFSP Process Managerのサービスを停止します。

コマンドプロンプトから、以下のコマンドを実行します。

  • コマンド
net stop "CCFSP Process Manager"

8.1.3 pg_dumpコマンドの実行

Administratorsグループに所属するユーザーでPostgreSQLをインストールしたノードへログオンします。

コマンドプロンプトを起動して、以下のコマンドを実行します。

  • コマンド
set pgpassword=<DBパスワード>
pg_dump -h <IPアドレス> -p <DBポート番号> -U <postgresアカウント> -d <データベース名> -v -C -c -E <エンコーディング> -f "<出力データファイル名>"
  • コマンド例
set pgpassword=123456
pg_dump -h localhost -p 5432 -U postgres -d ssmdb -v -C -c -E UTF8 -f "c:\temp\ssm.dmp"

※ <postgresアカウント>はpostgresを指定してください。

※ <エンコーディング>はUTF8を指定してください。

Info

出力データファイル名は任意のファイル名(フルパス)を指定します。

実行中、メッセージが表示されています。

メッセージの出力が終われば、コマンドの実行は完了です。

ダンプファイルが正しく出力されていることを確認してください。

8.1.4 ファイルのバックアップ

以下のフォルダを任意の場所にコピーします。

フォルダパス
<SSM DBフォルダ>\dat
<SSM WEBフォルダ>\dat

8.1.5 サービスの再開

停止したサービスを全て再開します。

SSM DBサーバーにて、コマンドプロンプトから、以下のコマンドを実行してください。

  • コマンド
net start "CCFSP Process Manager"

サービスを停止した全てのSSM WEBサーバーで、コマンドプロンプトから以下のコマンドを実行し、IISを開始します。

  • コマンド
IISRESET /START

以上で「8.1 pg_dump コマンドを用いたバックアップ」は終了です。

8.2 バックアップツールを用いたバックアップ

本章ではバックアップツールを使用する場合に、Senju Service Managerで最低限必要となるバックアップ対象のファイルの紹介と、コールドバックアップを行う場合に必要なSenju Service Managerの停止と起動の手順について説明します。

バックアップツールを用いたバックアップ手順の詳細については、各ツールのマニュアル等を参照してください。

8.2.1 バックアップ対象データ及びファイル

Senju Service Managerのバックアップの際には、以下のものをバックアップ対象として取得してください。

バックアップ対象
データベースのスキーマ情報
<SSM DBフォルダ>\dat 配下のファイル
<SSM WEBフォルダ>\dat 配下のファイル

8.2.2 Senju Service Managerの停止手順

8.2.2.1 SSM WEBサーバーでサービスの停止

構成される全てのSSM WEBサーバーでIISのサービスを停止します。

Administratorsグループに所属するユーザーでサービスを停止するノードにログオンします。

コマンドプロンプトから以下のコマンドを実行し、IISを停止させます。

  • コマンド
IISRESET /STOP

コマンドが完了したら、ノードからログオフします。

8.2.2.2 SSM DBサーバーでサービスの停止

Administratorsグループに所属するユーザーでSSM DBサーバーにログオンします。

CCFSP Process Manager、PostgreSQLサービスの各サービスを全て停止します。

SSM DBサーバーにて、コマンドプロンプトから、以下のコマンドを実行します。

  • コマンド
net stop "CCFSP Process Manager"

PostgreSQLをインストールしたノードにて、コマンドプロンプトから、以下のコマンドを実行します。

■PostgreSQLの環境で実行する場合

  • コマンド
net stop "postgresql-x64-17"

コマンドが完了したら、各バックアップツールを用いてバックアップを実施してください。

8.2.3 Senju Service Managerの起動手順

バックアップを取得後、「8.2.2 Senju Service Managerの停止手順」で停止した各サービスを順番に起動します。

8.2.3.1 SSM DBサーバーでサービスの起動

Administratorsグループに所属するユーザーでSSM DBサーバーにログオンします。

CCFSP Process Manager、PostgreSQLサービスの各サービスを全て起動します。

SSM DBサーバーにて、コマンドプロンプトから、以下のコマンドを実行します。

  • コマンド
net start "CCFSP Process Manager"

PostgreSQLをインストールしたノードにて、コマンドプロンプトから、以下のコマンドを実行します。

■PostgreSQLの環境で実行する場合

  • コマンド
net start "postgresql-x64-17"

8.2.3.2 SSM WEBサーバーでサービスの起動

サービスを停止した全てのSSM WEBサーバーでIISを起動します。

Administratorsグループに所属するユーザーでサービスを起動するノードへログオンし、コマンドプロンプトから以下のコマンドを実行し、IISを開始します。

  • コマンド
IISRESET /START

8.3 pg_basebackupを用いたバックアップ

ここでは、pg_basebackupコマンドを用いたバックアップの方法を説明します。

Info

pg_basebackupコマンドを用いてバックアップを行う場合、バックアップファイルを格納する必要があるためバックアップファイルの出力先ドライブに十分な空き領域が必要です。
ドライブに十分な空き領域がない場合、作業領域の変更等が必要になります。

8.3.1 バックアップの実行

  1. DBユーザーに対しスーパーユーザー権限を付与します。

    PostgresSQLがインストールされているサーバーにおいて、コマンドプロンプトから以下のコマンドを実行し、スーパーユーザー権限でpsql へログインします。

    • コマンド
    set pgpassword=<スーパーユーザーパスワード>
    psql -h <データベースサーバーのIP アドレス> -U <スーパーユーザー名> -p <DB ポート番号> -d <ローカル・ネット・サービス名>
    

    psql へログイン後、以下のコマンドを実行します。

    • コマンド
    update pg_authid set rolsuper = true where rolname = '<DBユーザー名>';
    
  2. 下記バックアップコマンドを実行します。

    • コマンド
    pg_basebackup -h localhost -p <DB ポート番号> -U <DBユーザー名> -Ft -Z5 -v -D <バックアップファイル出力先ディレクトリ> --checkpoint=fast
    

    下記のような結果が出力されますので、ベースバックアップが完了したことを確認してください。

    pg_basebackup: ベースバックアップを開始しています - チェックポイントの完了を待機中
    pg_basebackup: チェックポイントが完了しました
    pg_basebackup: 先行書き込みログの開始ポイント: タイムライン 1 上の 0/1D000060
    pg_basebackup: バックグランドWAL受信処理を起動します
    pg_basebackup: 一時レプリケーションスロット"pg_basebackup_5680"を作成しました
    pg_basebackup: 先行書き込みログの終了ポイント: 0/1D032F40
    pg_basebackup: バックグランドプロセスがストリーミング処理が終わるまで待機します ...
    pg_basebackup: データをディスクに同期しています...
    pg_basebackup: ベースバックアップが完了しました
    

  3. DBユーザーに対しスーパーユーザー権限をはく奪します。

    PostgresSQLがインストールされているサーバーにおいて、コマンドプロンプトから以下のコマンドを実行し、スーパーユーザー権限でpsql へログインします。

    • コマンド
    set pgpassword=<スーパーユーザーパスワード>
    psql -h <データベースサーバーのIP アドレス> -U <スーパーユーザー名> -p <DB ポート番号> -d <ローカル・ネット・サービス名>
    

    psql へログイン後、以下のコマンドを実行します。

    • コマンド
    update pg_authid set rolsuper = false where rolname = '<DBユーザー名>';
    

8.3.2 バックアップファイルの取得

C:\pgbkフォルダに下記ファイルが出力されていることを確認してください。

  • 16394.tar.gz
  • 16395.tar.gz
  • 16396.tar.gz
  • 16397.tar.gz
  • 16398.tar.gz
  • base.tar.gz
  • pg_wal.tar.gz

※16394.tar.gzなど5ファイルはテーブルスペース毎に作成されたバックアップで数字は\ 任意の値となります。

これらのファイルをまとめて退避して保管してください。

8.3.3 ファイルのバックアップ

以下のフォルダを任意の場所にコピーします。

フォルダパス
<SSM DBフォルダ>\dat
<SSM WEBフォルダ>\dat