> For the complete documentation index, see [llms.txt](https://manuals.i-reporter.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://manuals.i-reporter.jp/server-construction-maintenance/maintenance/servermigration-and-postgresql-upgrade.md).

# サーバー移行及びPostgreSQLアップグレード手順書

{% hint style="danger" %}

* サーバー移行の際には、一度弊社へご連絡ください。
* 作業前に必ずバックアップを実施してください。
  {% endhint %}

**移行のみの場合の例**

<div align="left"><figure><img src="https://content.gitbook.com/content/9GB3gcd9HVYUxfpndv5d/blobs/GBx0C0JLrww7xcNOS1GW/image.png" alt="" width="563"><figcaption></figcaption></figure></div>

**PostgreSQLアップグレードを含む場合の例**

<div align="left"><figure><img src="https://content.gitbook.com/content/9GB3gcd9HVYUxfpndv5d/blobs/Ksh6EUaN5f2vtFjYnnkC/image.png" alt="" width="563"><figcaption></figcaption></figure></div>

## **必要なもの**

* 本手順書
* PostgreSQLアップグレードモジュール

{% hint style="success" %}
【PostgreSQLアップグレードモジュール について】

下記「モジュールダウンロード（PostgreSQL\*\*用）」より、移行先のPostgreSQLのバージョンのモジュールをダウンロードします。
{% endhint %}

{% hint style="info" %}

* [モジュールダウンロード（PostgreSQL14用）](https://i-reporter-support.com/i-Reporter/ir_manuals/jp/manager/Tools14.zip)
* [モジュールダウンロード（PostgreSQL16用）](https://i-reporter-support.com/i-Reporter/ir_manuals/jp/manager/Tools16.zip)
* [モジュールダウンロード（PostgreSQL18用）](https://i-reporter-support.com/i-Reporter/ir_manuals/jp/manager/Tools18.zip)
  {% endhint %}

## **条件**

* バックアップダンプを出力できる領域があること。

  <div data-gb-custom-block data-tag="hint" data-style="success" class="hint hint-success"><p>出力先は外付けHDDでも可能です。</p></div>

## **手順概要**

**【移行元サーバー作業】**

1．移行元サーバーに接続できるPostgreSQLコマンドツール環境を構築

2．IISを停止

{% hint style="success" %}
**移行元のPostgreSQL（アップグレード先バージョン）サービス停止**

移行元のPostgreSQLサービスの停止は**本書の手順としては基本的には不要です**。\
手順1でコマンドツールのみでなく何らかの理由でアップグレードバージョンのPostgreSQLのサービスもインストール済みの場合は実施してください。
{% endhint %}

3．PostgreSQLのpg\_dumpを使用してバックアップダンプを出力

4．アプリケーションモジュールをバックアップ（コピー）し、ZIP圧縮

**【移行先サーバー作業】**

5．インストールセットを作成

6．インストールを実施

{% hint style="warning" %}
【注意事項】\
PostgreSQLに対応しているConMas Server(ConMas Manager) のバージョンは以下の通りです。

* PostgreSQL14 : ConMas Server 8.1.23040 以上
* PostgreSQL16 : ConMas Server 8.1.24070 以上
* PostgreSQL18：ConMas Server 8.2.26020 以上
  {% endhint %}

{% hint style="warning" %}
ConMas Server のアップデートを併せて実施する場合は、上記移行手順の途中で行わないでください。\
ConMas Server のアップデートは、予め行うか、上記移行手順をすべて実施した後に行ってください。
{% endhint %}

## **手順**

{% hint style="success" %}
PostgreSQLのアップグレードをしない場合は、手順 1．は不要です。\
手順 2．から進めてください。
{% endhint %}

### **【移行元サーバー作業】**

**1．移行元サーバーに接続できるPostgreSQLコマンドツール環境を構築します。**\
このとき、導入するPostgreSQLコマンドツールはアップグレード先のバージョンを導入します。\
必ず以下のどちらかの環境を構築します。\
\
【例】\
PostgreSQL11からPostgreSQL14へアップグレードする場合\
\
同一サーバー内に構築

<div align="left"><figure><img src="https://content.gitbook.com/content/9GB3gcd9HVYUxfpndv5d/blobs/hFRrHkpNfYRS2EaGxXDz/image.png" alt="" width="375"><figcaption></figcaption></figure></div>

\
別サーバーで構築

<div align="left"><figure><img src="https://content.gitbook.com/content/9GB3gcd9HVYUxfpndv5d/blobs/zH9tbjjyg03rxOvLACee/image.png" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
外部サーバーから接続する場合、移行元サーバーのPostgreSQLに対し外部接続を許可する設定を事前に実施します。\
実施手順は、下記マニュアルをご参照ください。\
▼ConMas Serverインストール手順書 ＞ [APサーバー（別ホスト）からの接続設定](/server-construction-maintenance/server-installation/server-installation.md#apsbhosutokarano)
{% endhint %}

{% hint style="success" %}
併せてWindowsファイアーウォールの設定も実施します。
{% endhint %}

\
PostgreSQLのコマンドツールをインストールします。\
PostgreSQLアップグレードモジュールのdbフォルダに内包しているexeファイルを実行します。\
PostgreSQL14のコマンドツールの場合、**postgresql-14.7-2-windows-x64.exe** です。

<figure><img src="https://content.gitbook.com/content/9GB3gcd9HVYUxfpndv5d/blobs/jrLEBO0MvJ3z3ACdV4ql/image.png" alt=""><figcaption></figcaption></figure>

Command Line Toolsのみインストールします。

<div align="left"><figure><img src="https://content.gitbook.com/content/9GB3gcd9HVYUxfpndv5d/blobs/91RG2Sj6medBjzRQn0p3/image.png" alt="" width="375"><figcaption></figcaption></figure></div>

\
**2．IISを停止します。**\
※下記画像は WindowsServer2012R2 の例です。

<div align="left"><figure><img src="https://content.gitbook.com/content/9GB3gcd9HVYUxfpndv5d/blobs/Bo5ewLG6dG51o5pRkdiZ/image.png" alt=""><figcaption></figcaption></figure></div>

\
**3．PostgreSQLのpg\_dumpを使用してバックアップダンプを出力します。**\
以下のバッチを作成します。

***

chcp 65001\
SET PGPASSWORD=\[PostgreSQLパスワード]\
SET PGPATH=\[pg\_dump.exeまでのフルパス]\
SET DUMPDB=\[ダンプ出力するデーターベース名※既定ではirepodb]\
SET DUMPPATH=\[ダンプ出力ファイル名のフルパス]\
SET LOGPATH=\[ダンプ出力ログファイルのフルパス]\
SET PORT=\[PostgreSQLのポート番号※既定では5432]\
SET HOST=\[ダンプ出力するデーターベースのホストIPアドレス※同一サーバー上であれば localhost]

"%PGPATH%" -Fc -Z5 -c -h %HOST% -p %PORT% -U postgres -d %DUMPDB% -f %DUMPPATH% > %LOGPATH%\
echo errorlevel=%ERRORLEVEL% >> %LOGPATH%

***

\
【PostgreSQLをアップグレードする場合の記述例】\
※PostgreSQL12→PostgreSQL14へアップグレードする場合

<table><thead><tr><th width="165">環境変数</th><th>設定値</th></tr></thead><tbody><tr><td>PGPASSWORD</td><td>PostgreSQL11のパスワード</td></tr><tr><td>PGPATH</td><td>"<strong>PostgreSQL14</strong>"pg_dump.exeのフルパス。</td></tr><tr><td>DUMPPATH</td><td>ダンプファイルを出力するフルパス</td></tr><tr><td>LOGPATH</td><td>実行ログを出力する場所をフルパスで入力</td></tr><tr><td>PORT</td><td>PostgreSQL11のポート番号（既定では5432）</td></tr><tr><td>HOST</td><td>PostgreSQL11のホスト（IPアドレス）<br> ※同一サーバー上であれば、localhost</td></tr></tbody></table>

\
作成したバッチファイルを実行します。

{% hint style="success" %}
別サーバーにPostgreSQLコマンドツールをインストールした場合は、そのサーバー上で実行します。
{% endhint %}

\
実行後、LOGPATHで設定したファイルが生成されるので、メモ帳で成否を確認します。\
ログ内容がErrorLevel=0であれば成功です。<br>

\
**4．アプリケーションモジュールをバックアップ（コピー）し、ZIP圧縮します。**\
以下のフォルダーをコピーします。

<div align="left"><figure><img src="https://content.gitbook.com/content/9GB3gcd9HVYUxfpndv5d/blobs/uZwAnDtFgDnwb3K8tukX/image.png" alt="" width="251"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
上記以外はコピーしないでください。
{% endhint %}

### 【**移行先サーバー作業】**

**5．インストールセットを作成します。**

{% hint style="success" %}
作業はサーバー上で実施する必要はありません。
{% endhint %}

手順 4．で取得したZIPを解凍し、フォルダー構成に以下の5つのフォルダーを作成します。

<div align="left"><figure><img src="https://content.gitbook.com/content/9GB3gcd9HVYUxfpndv5d/blobs/meiN4akMyg6ngWc814bL/image.png" alt=""><figcaption></figcaption></figure></div>

※１　ap,dbフォルダーは、PostgreSQLアップグレードモジュールのap,dbフォルダーを配置します。\
※２　手順 3．で出力したdumpファイルをdbフォルダー配下に配置します。

**６．インストールを行います。**

手順 5．で作成したインストールセットを用いて、「[ConMas Server インストール手順書](/server-construction-maintenance/server-installation/server-installation.md)」の手順を実施します。

{% hint style="warning" %}
「ConMas Server インストール手順書」内の「初期データーの作成」を、以下の手順に差し替えて実施してください。
{% endhint %}

**初期データーの復元**

以下の内容でバッチファイルを作成し、環境変数を環境に合わせて変更します。

```
chcp 65001
SET PGPASSWORD=[PostgreSQLパスワード]
SET PGPATH=[pg_restore.exeまでのフルパス]
SET RESTOREDB=[リストア先のデータベース※既定はirepodb]
SET DUMPPATH=[リストアするダンプファイルのフルパス]
SET LOGPATH=[リストアログファイルのフルパス]
SET PORT=[PostgreSQLのポート番号※既定では5432]

"%PGPATH%" -h localhost -U postgres -p %port% -d %RESTOREDB% %DUMPPATH% > %LOGPATH% 2>&1
echo Restore ErrorLevel=%ERRORLEVEL% >> %LOGPATH% 
```

{% hint style="warning" %}
【注意点】

リストア先のデーターベースが空であることを確認して実行してください。

もしミスなどで再度リストアする場合は、DB削除（抹消）とDB生成を行った後に実施します。
{% endhint %}

バッチを実行します。\
実行するとLOGPATHで設定したファイルが生成されるので、メモ帳で成否を確認します。\
ログ内容がErrorLevel=0であれば成功です。
