概要
Spotfire Serverのアップグレードを行う場合、サーバーアプリケーションだけでなく、サーバー情報を管理するリポジトリDBのアップグレードも必要になります。
リポジトリDBにはSpotfire Serverのバージョン依存性があるため、アップグレードを行ったリポジトリDBは以前のSpotfire Serverでは利用できなくなります。アップグレード実施前に、リポジトリDBのバックアップを行うことを推奨します。
この記事ではSpotfire Serverのアップグレードに向けたリポジトリDBの複製方法について説明します。対象とするのはPostgreSQLで、バージョンは12系です。
作業OSがWindowsの場合
1. コマンドプロンプトを 管理者権限 で起動し、以下のコマンドを実⾏し、バックアップ保存先のフォルダを作成します。フォルダの名前は任意です。
mkdir [バックアップ保存先のフォルダ名]
コマンド実⾏例:
mkdir C:\db_backup
2. psql.exe が存在するフォルダに移動します。psql.exe はPostgreSQLをインストールしたフォルダ配下の bin フォルダに存在します。
cd "[psql.exe が存在するフォルダ]"
コマンド実⾏例:
cd "C:\Program Files\PostgreSQL\12\bin"
3. リポジトリDBのバックアップを作成します。
pg_dump -h [PostgreSQLがインストールされているホスト名] -U postgres -f [バックアップ保存先のフォルダ名]\[リポジトリDB名].backup -Fc [リポジトリDB名]
コマンド実⾏例:
pg_dump -h TSS -U postgres -f C:\db_backup\spotfire_server1010.backup -Fc spotfire_server1010
4. PostgreSQLへ接続します。
psql -h [PostgreSQLがインストールされているホスト名] -U postgres -d postgres
コマンド実⾏後に、パスワードの⼊⼒を求められるので、postgres のパスワードを⼊⼒し
ます。
コマンド実⾏例:
psql -h TSS -U postgres -d postgres
5. 新しいデータベースを作成します。DB名は任意です。
CREATE DATABASE [リストアするリポジトリDB名];
コマンド実⾏例:
CREATE DATABASE spotfire_server114;
以下のように出⼒されれば成功です
CREATE DATABASE
6. 新しいユーザーを作成します。ユーザー名は任意です。
CREATE USER [新しく作成するユーザー名] WITH PASSWORD '[新しく作成するユーザー名のパスワード]' NOCREATEDB;
コマンド実⾏例:
CREATE USER spotfire_dbuser114 WITH PASSWORD 'spotfire_dbuser114' NOCREATEDB;
7. データベースの所有者を新たに作成したユーザーに変更します。
alter database [新しく作成したDB名] owner to [新しく作成したユーザー名];
コマンド実⾏例:
ALTER DATABASE spotfire_server114 owner to spotfire_dbuser114;
以下のように出⼒されれば成功です。
ALTER DATABASE
8. ログアウトします。
exit
9. ダンプファイルから復元
※ 以下コマンドの「-U」で指定するユーザー名は新しく作成したユーザー名(Spotfire Serverアップグレード時にリポジトリDB情報として入力する予定のユーザー名)である必要があります。
"[psql.exe が存在するフォルダ]\pg_restore" --no-owner -h [リポジトリDBが存在するホスト名] -U [新しく作成したユーザー名] -d [新しく作成したDB名] [バックアップ保存先のフォルダ名]\[新しく作成したDB名].backup
コマンド実⾏例:
"C:\Program Files\PostgreSQL\12\bin\pg_restore" --no-owner -h TSS -U spotfire_dbuser114 -d spotfire_server114 C:\db_backup\spotfire_server1010.backup
作業OSがLinuxの場合
以降のコマンドは、CentOS7.9環境において実際に実⾏したものとなります。
コマンドの記載⽅法は以下の通りとします。
[コマンド実⾏ユーザ]
command
作業対象ホストにroot以外のユーザでSSH接続し、その後rootでコマンドを実⾏する必要がある場合は、
sudo [コマンド]
もしくは、
sudo su -
でrootに切替えてからコマンドを実⾏する の2通りの⽅法があります。
作業対象ホストの運⽤ポリシー等を確認した上で上記いずれかの⽅法を選択してください。
1. バックアップ保存先のフォルダを作成します。フォルダの名前は任意です。
[root]
mkdir [バックアップ保存先のフォルダ名]
コマンド実⾏例:
[root]
mkdir db_backup
2. リポジトリDBのバックアップを作成します。
[root]
pg_dump -h [リポジトリDBが存在するホスト名] -U postgres -f [バックアップ保存先のフォルダ名]/[リポジトリDB名].backup -Fc [リポジトリDB名]
コマンド実⾏後に、パスワードの⼊⼒を求められるので、postgres のパスワードを⼊⼒し
ます。
コマンド実⾏例:
[root]
pg_dump -h TSS -U postgres -f db_backup/spotfire_server1010.backup -Fc spotfire_server1010
3. PostgreSQLへ接続します。
[root]
psql -h [リポジトリDBが存在するホスト名] -U postgres -d postgres
コマンド実⾏後に、パスワードの⼊⼒を求められるので、postgres のパスワードを⼊⼒し
ます。
コマンド実⾏例:
[root]
psql -h TSS -U postgres -d postgres
4. 新しいデータベースを作成します。DB名は任意です。
[postgres]
CREATE DATABASE [リストアするリポジトリDB名];
コマンド実⾏例:
[postgres]
CREATE DATABASE spotfire_server114;
以下のように出⼒されれば成功です
CREATE DATABASE
5. 新しいユーザーを作成します。ユーザー名は任意です。
[postgres]
### 新しいユーザーを作成
CREATE USER [新しく作成するユーザー名] WITH PASSWORD '[新しく作成するユーザー名のパスワード]' NOCREATEDB;
コマンド実⾏例:
[postgres]
### 新しいユーザーを作成
CREATE USER spotfire_dbuser114 WITH PASSWORD 'spotfire_dbuser114' NOCREATEDB;
6. データベースの所有者を新たに作成したユーザーに変更します。
[postgres]
### データベースの所有者を変更
alter database [新しく作成したDB名] owner to [新しく作成したユーザー名];
コマンド実⾏例:
[postgres]
### データベースの所有者を変更
ALTER DATABASE spotfire_server114 owner to spotfire_dbuser114;
以下のように出⼒されれば成功です。
ALTER DATABASE
7. ログアウトします。
[postgres]
exit
8. ダンプファイルから復元
※ 以下コマンドの「-U」で指定するユーザー名は新しく作成したユーザー名(Spotfire Serverアップグレード時にリポジトリDB情報として入力する予定のユーザー名)である必要があります。
[root]
pg_restore --no-owner -h [リポジトリDBが存在するホスト名] -U [新しく作成したユーザー名] -d [新しく作成したDB名] [バックアップ保存先のフォルダ名]/[新しく作成したDB名].backup
コマンド実⾏例:
[root]
pg_restore --no-owner -h TSS -U spotfire_dbuser114 -d spotfire_server114 db_backup/spotfire_server1010.backup