投稿者:ビッグデータ編集者

みなさんはIBM Data Management Platform for EDB Postgresをご存知でしょうか?
IBM Data Management Platform for EDB Postgresは信頼性と堅牢性に豊富な機能を備えたPostgreSQLにエンタープライズ向け各種ツール、DB機能拡張、Oracle DB互換機能を包含した製品です。
オンプレミスからクラウドまであらゆる場所に配置可能であり、低コストサブスクリプションライセンスによる高いコストパフォーマンスを誇ります。

今回は、仮想環境にIBM Data Management Platform for EDB Postgres Enterpriseを導入し、基本となるデータベース、および各種ツールの動作、さらにOracleからのデータ移行を検証してみました。

■環境
仮想化SW : VMware Workstation 15.5.5 Player
OS    : CentOS Linux release 7.8.2003
EDB    : IBM Data Management Platform for EDB Postgres V2.0.0

■特徴
・PostgreSQLをベースとしたRDBです。
(PostgreSQLのバージョンとEDB Postgresのバージョンは同じです)
・オンプレ、クラウド、OS等環境に拘らず導入・動作可能です。
・Oracleとの互換性が高いです。

■エディションの種類
【Standard】
◆モジュール
・CJ73VML_IBM Data Management Platform for EDB Postgres Standard V2.0.0 Multilingual Multiplatform eAssembly
・CJ73WML_IBM Data Management Platform for EDB Postgres Standard Non Production V2.0.0 Multilingual Multipltform eAssembly
【Enterprise】
◆モジュール
・CJ73RML_IBM Data Management Platform for EDB Postgres Enterprise v2.0.0 Multilingual Multiplatform eAssembly
・CJ73SML_IBM Data Management Platform for EDB Postgres Enterprise Non Production v2.0.0 Multilingual Multiplatform eAssembly <-- 検証で使用したモジュールはこちら。

■機能一覧
◆EDB Postgres Advanced Server 12(EPAS)
  RDBの標準的な機能
  テーブルパーティション機能
  複合トリガー機能
  集計関数
  データ・ディクショナリー・ビュー
  Oracle互換
  ROWID実装変更
◆EDB Backup and Recovery Tool 2.5.4(BART)
  パラレルでのフルバックアップ
  ブロックレベルの増分バックアップ
  ファイルの圧縮と検証
  保存ポリシーに基づく、バックアップファイルの管理
  バックアップ管理とレポート作成
  リストア
◆EDB Postgres Enterprise Manager 7.15(PEM)
  モニタリング、アラート
  開発、チューニング
  データベースの構築、設定
◆EDB Postgres Failover Manager 3.10(EFM)
  DBのヘルスチェック、カスタム・モニタリング
  ストリーミング・レプリケーションのモニタリング
  エージェント間のヘルスチェック
  フェールオーバーとクラスタ再構成
  スイッチ・オーバー&スイッチ・バック
  クラスター構成変更時のメール通知
◆EDB Postgres Replication Server 6.x
  シングルマスターレプリケーション
  マルチマスターレプリケーション


■検証内容
◆導入検証
1) EDB Postgres Advanced Server 12(EPAS)
EPAS は、PostgreSQLをベースとしたEDBのデータベースです。


(1).モジュールの解凍
使用OSに対するEDBの導入モジュールを解凍します。
[root@edb02 myrepository]# tar -xvf epee_centos-7.6-x86_64-20200114.tar.gz
epee_rhel-7.6-x86_64-20200114/
epee_rhel-7.6-x86_64-20200114/CGAL-4.7-1.rhel7.x86_64.rpm
epee_rhel-7.6-x86_64-20200114/edb-as12-12.1-1.rhel7.x86_64.rpm
epee_rhel-7.6-x86_64-20200114/edb-as12-edbplus-38.0.0-1.rhel7.x86_64.rpm
・・・
epee_rhel-7.6-x86_64-20200114/SFCGAL-1.2.2-1.rhel7.x86_64.rpm
epee_rhel-7.6-x86_64-20200114/SFCGAL-libs-1.2.2-1.rhel7.x86_64.rpm
epee_rhel-7.6-x86_64-20200114/snmp++-3.3.8-1.rhel7.x86_64.rpm
[root@edb02 myrepository]#

(2).リポジトリ・ファイルの作成
最初にリポジトリ・ファイルを作成します。
[root@edb02 ~]# cd /etc/yum.repos.d
[root@edb02 yum.repos.d]# cat /etc/yum.repos.d/edbcustom.repo
cat: /etc/yum.repos.d/edbcustom.repo: そのようなファイルやディレクトリはありません
[root@edb02 yum.repos.d]# vi /etc/yum.repos.d/edbcustom.repo
	【記述例】
	=====
	[edbrepo]
	name = EPEEのカスタムリポジトリ
	baseurl = file:///myrepository/epee_rhel-7.6-x86_64-20200114/
	enabled = 1
	gpgcheck = 1
	gpgkey = file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY
	=====
[root@edb02 yum.repos.d]# ls -l /etc/yum.repos.d/edbcustom.repo
-rw-r--r--. 1 root root 194 11月 11 17:19 /etc/yum.repos.d/edbcustom.repo
[root@edb02 yum.repos.d]# cat /etc/yum.repos.d/edbcustom.repo
[edbrepo]
name = EPEEのカスタムリポジトリ
baseurl = file:///myrepository/epee_rhel-7.6-x86_64-20200114/
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY

[root@edb02 yum.repos.d]#

(3).リポジトリ・キーのダウンロード
作業ディレクトリに移り、curl コマンドでリポジトリー・キーをダウンロードします。
[root@edb02 yum.repos.d]#  cd /myrepository
[root@edb02 myrepository]# ls -l /etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY
ls: /etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY にアクセスできません: そのようなファイルやディレクトリはありません
[root@edb02 myrepository]# curl -o /etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY https://yum.enterprisedb.com/ENTERPRISEDB-GPG-KEY
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1780  100  1780    0     0   1676      0  0:00:01  0:00:01 --:--:--  1680
[root@edb02 myrepository]# ls -l /etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY
-rw-r--r--. 1 root root 1780 11月 11 17:43 /etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY
[root@edb02 myrepository]#

(4).リポジトリ・キーのインストール
ダウンロードしたリポジトリ・キーをインストールします。
[root@edb02 myrepository]# rpm --import /etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY
[root@edb02 myrepository]#

(5).必須ソフトウェアのインストール
EPASを導入する前に、必須のソフトウェアをインストールします。
[root@edb02 myrepository]# yum -y install epel-release
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
依存性の解決をしています
--> トランザクションの確認を実行しています。
・・・
インストール:
  epel-release.noarch 0:7-11                                                                                                                                               

完了しました!
[root@edb02 myrepository]# 
[root@edb02 myrepository]# yum makecache
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                                                                | 7.3 kB  00:00:00     
 * base: ftp.riken.jp
 * epel: nrt.edge.kernel.org
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
base                                                                                                                                                | 3.6 kB  00:00:00     
edbrepo                                                                                                                                             | 2.9 kB  00:00:00 
・・・
(12/13): epel/x86_64/other_db                                                                                                                       | 3.3 MB  00:00:01     
(13/13): updates/7/x86_64/filelists_db                                                                                                              | 2.4 MB  00:00:01     
メタデータのキャッシュを作成しました
[root@edb02 myrepository]# 

(6).EPASのインストール
EPASをインストールします。
[root@edb02 myrepository]# yum -y install edb-as12-server
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: nrt.edge.kernel.org
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ edb-as12-server.x86_64 0:12.1.2-1.rhel7 を インストール
・・・
依存性関連をインストールしました:
  boost-atomic.x86_64 0:1.53.0-28.el7                        boost-chrono.x86_64 0:1.53.0-28.el7                     boost-filesystem.x86_64 0:1.53.0-28.el7               
  boost-regex.x86_64 0:1.53.0-28.el7                         edb-as12-libicu.x86_64 0:53.1-1.rhel7                   edb-as12-pgagent.x86_64 0:4.0.0-1.rhel7               
  edb-as12-server-client.x86_64 0:12.1.2-1.rhel7             edb-as12-server-cloneschema.x86_64 0:1.10-1.rhel7       edb-as12-server-contrib.x86_64 0:12.1.2-1.rhel7       
  edb-as12-server-core.x86_64 0:12.1.2-1.rhel7               edb-as12-server-devel.x86_64 0:12.1.2-1.rhel7           edb-as12-server-docs.x86_64 0:12.1.2-1.rhel7          
  edb-as12-server-indexadvisor.x86_64 0:12.1.2-1.rhel7       edb-as12-server-libs.x86_64 0:12.1.2-1.rhel7            edb-as12-server-llvmjit.x86_64 0:12.1.2-1.rhel7       
  edb-as12-server-parallel-clone.x86_64 0:1.5-1.rhel7        edb-as12-server-pldebugger.x86_64 0:1.1-1.rhel7         edb-as12-server-plperl.x86_64 0:12.1.2-1.rhel7        
  edb-as12-server-plpython.x86_64 0:12.1.2-1.rhel7           edb-as12-server-pltcl.x86_64 0:12.1.2-1.rhel7           edb-as12-server-sqlprofiler.x86_64 0:4.0-1.rhel7      
  edb-as12-server-sqlprotect.x86_64 0:12.1.2-1.rhel7         edb-as12-server-sslutils.x86_64 0:1.2-1.rhel7           llvm5.0.x86_64 0:5.0.1-7.el7                          
  llvm5.0-libs.x86_64 0:5.0.1-7.el7                          tcl.x86_64 1:8.5.13-8.el7                               uuid.x86_64 0:1.6.2-26.el7                            

完了しました!
[root@edb02 myrepository]# 

(7).初期化
EPASのインストール完了後、初期化を実施します。
[root@edb02 myrepository]# /usr/edb/as12/bin/edb-as-12-setup initdb
Initializing database ... OK

[root@edb02 myrepository]# 


2) EDB Backup and Recovery Tool 2.5.4(BART)
BARTは、バックアップとリストアを行うツールです。今回は、手順確認のためDBサーバーに導入していますが、一般的には別サーバーに導入します。
※操作するためには、導入後に「pg_hba.conf」、「postgresql.conf」等の設定を行う必要があります。(設定については今後掲載予定です。)


(1).BARTのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-bart
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-bart.x86_64 0:2.5.2-1.rhel7                                                                                                                                          

依存性関連をインストールしました:
  boost-serialization.x86_64 0:1.53.0-28.el7                                               boost-timer.x86_64 0:1.53.0-28.el7                                              

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

3) EDB Postgres Enterprise Manager 7.15(PEM)
PEMは、Webブラウザにてデーターベース・オブジェクトの定義、管理、起動、停止、パフォーマンスチューニング、レポートやアラート通知などが行えるGUIツールです。


(1).PEMのインストール準備
PEMをインストールする前に、以下を事前にインストールしておく必要があります。
・centos-release-scl
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum install centos-release-scl
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
総ダウンロード容量: 24 k
インストール容量: 39 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): centos-release-scl-2-3.el7.centos.noarch.rpm                                                                                                 |  12 kB  00:00:00     
(2/2): centos-release-scl-rh-2-3.el7.centos.noarch.rpm                                                                                              |  12 kB  00:00:00     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                        52 kB/s |  24 kB  00:00:00     
Running transaction check
・・・
インストール:
  centos-release-scl.noarch 0:2-3.el7.centos                                                                                                                               

依存性関連をインストールしました:
  centos-release-scl-rh.noarch 0:2-3.el7.centos                                                                                                                            

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]#

・rh-python36
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install rh-python36
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  rh-python36.x86_64 0:2.0-1.el7                                                                                                                                           

依存性関連をインストールしました:
  dwz.x86_64 0:0.11-3.el7                                    perl-srpm-macros.noarch 0:1-8.el7                  python-srpm-macros.noarch 0:3-32.el7                      
  redhat-rpm-config.noarch 0:9.1.0-88.el7.centos             rh-python36-python.x86_64 0:3.6.9-2.el7            rh-python36-python-devel.x86_64 0:3.6.9-2.el7             
  rh-python36-python-libs.x86_64 0:3.6.9-2.el7               rh-python36-python-pip.noarch 0:9.0.1-2.el7        rh-python36-python-setuptools.noarch 0:36.5.0-1.el7       
  rh-python36-python-virtualenv.noarch 0:15.1.0-2.el7        rh-python36-runtime.x86_64 0:2.0-1.el7             scl-utils-build.x86_64 0:20130529-19.el7                  

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

(2).PEMのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-pem
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-pem.x86_64 0:7.12.0-2.rhel7                                                                                                                                          

依存性関連をインストールしました:
  apr.x86_64 0:1.4.8-5.el7               apr-util.x86_64 0:1.5.2-6.el7            boost-program-options.x86_64 0:1.53.0-28.el7   edb-pem-agent.x86_64 0:7.12.0-2.rhel7     
  edb-pem-docs.x86_64 0:7.12.0-2.rhel7   edb-pem-server.x86_64 0:7.12.0-2.rhel7   httpd.x86_64 0:2.4.6-93.el7.centos             httpd-tools.x86_64 0:2.4.6-93.el7.centos  
  libcurl-pem.x86_64 0:7.61.1-2.rhel7    mailcap.noarch 0:2.1.41-2.el7            mod_ssl.x86_64 1:2.4.6-93.el7.centos           mod_wsgi.x86_64 0:3.4-18.el7              
  snmp++.x86_64 0:3.3.8-1.rhel7          tix.x86_64 1:8.4.3-12.el7                tk.x86_64 1:8.5.13-6.el7                      

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 


4) EDB Postgres Failover Manager 3.10(EFM)
EFMは、冗長化構成を構築し、障害時のサーバー切替、切り戻しを行うツールです。


(1).EFMのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-efm38
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-efm38.x86_64 0:3.8-1.rhel7                                                                                                                                           

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

以下、参考として各種ツールのインストール手順を掲載します。
5) EDB モジュール
(1).EDB モジュールのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-as12-server-edb-modules
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-as12-server-edb-modules.x86_64 0:1.0-1.rhel7                                                                                                                         

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

6) EDB Postgresコネクタ-JDBC
(1).EDB Postgresコネクタ-JDBCのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-jdbc
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-jdbc.x86_64 0:42.2.8.1-1.rhel7                                                                                                                                       

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

7) EDB Postgresコネクタ-OCI
(1).EDB Postgresコネクタ-OCIのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-oci
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-oci.x86_64 0:12.1.2.1-1.rhel7                                                                                                                                        

依存性関連をインストールしました:
  libiconv-edb.x86_64 0:1.14-1.rhel7                                                                                                                                       

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]

8) EDB Postgresコネクタ-ODBC
(1).EDB Postgresコネクタ-ODBCのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-odbc
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-odbc.x86_64 0:12.00.0000.01-1.rhel7                                                                                                                                  

依存性関連をインストールしました:
  unixODBC.x86_64 0:2.3.1-14.el7                                                                                                                                           

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

9) EDB Postgres Replication Server 6.x
(1).EDB Postgres Replication Server 6.xのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install ppas-xdb
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  ppas-xdb.x86_64 0:6.2.8-1.rhel7                                                                                                                                          

依存性関連をインストールしました:
  ppas-xdb-console.x86_64 0:6.2.8-1.rhel7   ppas-xdb-libs.x86_64 0:6.2.8-1.rhel7   ppas-xdb-publisher.x86_64 0:6.2.8-1.rhel7   ppas-xdb-subscriber.x86_64 0:6.2.8-1.rhel7  

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

10) EDB * Plus
(1).EDB * Plusのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-as12-edbplus
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-as12-edbplus.x86_64 0:38.0.0-1.rhel7                                                                                                                                 

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

11) PostGIS
(1).PostGISのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-as12-postgis
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-as12-postgis.x86_64 0:2.5.3-1.rhel7                                                                                                                                  

依存性関連をインストールしました:
  CGAL.x86_64 0:4.7-1.rhel7                              CharLS.x86_64 0:1.0-5.el7                                SFCGAL.x86_64 0:1.2.2-1.rhel7                          
  SFCGAL-libs.x86_64 0:1.2.2-1.rhel7                     SuperLU.x86_64 0:5.2.0-5.el7                             armadillo.x86_64 0:8.600.1-2.el7                       
  arpack.x86_64 0:3.1.3-2.el7                            atlas.x86_64 0:3.10.1-12.el7                             blas.x86_64 0:3.4.2-8.el7                              
  cfitsio.x86_64 0:3.370-10.el7                          edb-as12-postgis-core.x86_64 0:2.5.3-1.rhel7             edb-as12-postgis-docs.x86_64 0:2.5.3-1.rhel7           
  edb-as12-postgis-jdbc.x86_64 0:2.2.1-6                 edb-as12-postgis-utils.x86_64 0:2.5.3-1.rhel7            freexl.x86_64 0:1.0.6-1.el7                            
  gdal.x86_64 0:1.11.4-3.el7                             gdal-libs.x86_64 0:1.11.4-3.el7                          geos36-edb.x86_64 0:3.6.2-6.rhel7                      
  gpsbabel.x86_64 0:1.5.0-2.el7                          hdf5.x86_64 0:1.8.12-11.el7                              lapack.x86_64 0:3.4.2-8.el7                            
  libaec.x86_64 0:1.0.4-1.el7                            libdap.x86_64 0:3.13.1-2.el7                             libgeotiff.x86_64 0:1.2.5-14.el7                       
  libgfortran.x86_64 0:4.8.5-39.el7                      libgta.x86_64 0:1.0.4-1.el7                              libquadmath.x86_64 0:4.8.5-39.el7                      
  libusb.x86_64 1:0.1.4-3.el7                            mesa-libGLU.x86_64 0:9.0.0-4.el7                         netcdf.x86_64 0:4.3.3.1-5.el7                          
  ogdi.x86_64 0:3.2.0-0.19.beta2.el7                     openblas-openmp.x86_64 0:0.3.3-2.el7                     perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7           
  perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7            perl-DBD-Pg.x86_64 0:2.19.3-4.el7                        perl-DBI.x86_64 0:1.627-4.el7                          
  perl-Data-Dumper.x86_64 0:2.145-3.el7                  perl-IO-Compress.noarch 0:2.061-2.el7                    perl-Net-Daemon.noarch 0:0.48-5.el7                    
  perl-PlRPC.noarch 0:0.2020-14.el7                      perl-version.x86_64 3:0.99.07-6.el7                      proj.x86_64 0:4.8.0-4.el7                              
  proj49-edb.x86_64 0:4.9.3-5.rhel7                      qt.x86_64 1:4.8.7-8.el7                                  qt-settings.noarch 0:19-23.10.el7.centos               
  shapelib.x86_64 0:1.3.0-2.el7                          xerces-c.x86_64 0:3.1.1-10.el7_7                        

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

12) Slonyレプリケーション
(1).Slonyレプリケーションのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-as12-pgagent
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-as12-slony-replication.x86_64 0:2.2.8-1.rhel7                                                                                                                        

依存性関連をインストールしました:
  edb-as12-slony-replication-core.x86_64 0:2.2.8-1.rhel7  edb-as12-slony-replication-docs.x86_64 0:2.2.8-1.rhel7  edb-as12-slony-replication-tools.x86_64 0:2.2.8-1.rhel7 
  perl-Switch.noarch 0:2.16-7.el7                        

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

13) EDB Postgres pgAdmin
(1).EDB Postgres pgAdminのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-pgadmin4
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-pgadmin4.x86_64 0:4.17-1.rhel7                                                                                                                                       

依存性関連をインストールしました:
  edb-pgadmin4-docs.x86_64 0:4.17-1.rhel7         edb-pgadmin4-web.x86_64 0:4.17-1.rhel7         libmng.x86_64 0:1.0.10-14.el7         qt-x11.x86_64 1:4.8.7-8.el7        

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

14) pgBouncer
(1).pgBouncerのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-pgbouncer112
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-pgbouncer112.x86_64 0:1.12.0.1-1.rhel7                                                                                                                               

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 

15) pgPool
(1).pgPoolのインストール
[root@edb02 epee_rhel-7.6-x86_64-20200114]# yum -y install edb-pgpool40
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
・・・
インストール:
  edb-pgpool40.x86_64 0:4.0.6-1.rhel7                                                                                                                                      

完了しました!
[root@edb02 epee_rhel-7.6-x86_64-20200114]# 


◆機能検証
1) EDB Postgres Advanced Server 12(EPAS)
1)-1. 起動
サーバーにログインし、データベースの起動状況を確認します。


(1).「systemctl start edb-as-12」コマンドでデータベースを起動します。
[root@edb01 ~]# systemctl status edb-as-12
● edb-as-12.service - EDB Postgres Advanced Server 12
   Loaded: loaded (/usr/lib/systemd/system/edb-as-12.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@edb01 ~]# systemctl start edb-as-12
[root@edb01 ~]# 
[root@edb01 ~]# systemctl status edb-as-12
● edb-as-12.service - EDB Postgres Advanced Server 12
   Loaded: loaded (/usr/lib/systemd/system/edb-as-12.service; disabled; vendor preset: disabled)
   Active: active (running) since 木 2020-11-12 18:21:22 JST; 2min 29s ago
  Process: 16688 ExecStartPre=/usr/edb/as12/bin/edb-as-12-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 16694 (edb-postmaster)
    Tasks: 10
   CGroup: /system.slice/edb-as-12.service
           ├─16694 /usr/edb/as12/bin/edb-postmaster -D /var/lib/edb/as12/data
           ├─16696 postgres: logger   
           ├─16698 postgres: checkpointer   
           ├─16699 postgres: background writer   
           ├─16700 postgres: walwriter   
           ├─16701 postgres: autovacuum launcher   
           ├─16702 postgres: archiver   
           ├─16703 postgres: stats collector   
           ├─16704 postgres: dbms_aq launcher   
           └─16705 postgres: logical replication launcher   

11月 12 18:21:22 edb01 systemd[1]: Starting EDB Postgres Advanced Server 12...
11月 12 18:21:22 edb01 edb-postmaster[16694]: 2020-11-12 18:21:22 JST LOG:  PostgreSQL 12.1 (EnterpriseDB Advanced Server 12.1.2) on x86_64-pc-linux-gnu, com...動しています
11月 12 18:21:22 edb01 edb-postmaster[16694]: 2020-11-12 18:21:22 JST LOG:  IPv4アドレス"0.0.0.0"、ポート5444で待ち受けています
11月 12 18:21:22 edb01 edb-postmaster[16694]: 2020-11-12 18:21:22 JST LOG:  IPv6アドレス"::"、ポート5444で待ち受けています
11月 12 18:21:22 edb01 edb-postmaster[16694]: 2020-11-12 18:21:22 JST LOG:  Unixソケット"/tmp/.s.PGSQL.5444"で待ち受けています
11月 12 18:21:22 edb01 edb-postmaster[16694]: 2020-11-12 18:21:22 JST LOG:  ログ出力をログ収集プロセスにリダイレクトしています
11月 12 18:21:22 edb01 edb-postmaster[16694]: 2020-11-12 18:21:22 JST ヒント:  ここからのログ出力はディレクトリ"log"に現れます。
11月 12 18:21:22 edb01 systemd[1]: Started EDB Postgres Advanced Server 12.
Hint: Some lines were ellipsized, use -l to show in full.
[root@edb01 ~]# 


1)-2. DB操作
データベースに対する基本的な操作を確認します。


(1).「enterprisedb」ユーザーにスイッチして、デフォルトで作成されている「edb」データベースに接続します。
[root@edb02 myrepository]# su - enterprisedb
[enterprisedb@edb02 ~]$ edb-psql edb
edb-psql (12.1.2)
helpでヘルプを表示します。

edb=#

(2).「enterprisedb」ロール(EDBのユーザー)に パスワードを設定します。
edb=# alter user enterprisedb password 'PPPPPPPP';
ALTER ROLE
edb=#

(3).データベースの一覧を表示します。
edb=# \l
                                                  データベース一覧
   名前    |    所有者    | エンコーディング |  照合順序   | Ctype(変換演算子) | ICU |         アクセス権限          
-----------+--------------+------------------+-------------+-------------------+-----+-------------------------------
 edb       | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 postgres  | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 template0 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
 template1 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
(4 行)

edb=#

(4).「mydb」という名前のデータベースを作成します。
edb=# create database mydb;
CREATE DATABASE
edb=# \l
                                                  データベース一覧
   名前    |    所有者    | エンコーディング |  照合順序   | Ctype(変換演算子) | ICU |         アクセス権限          
-----------+--------------+------------------+-------------+-------------------+-----+-------------------------------
 edb       | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 mydb      | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 postgres  | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 template0 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
 template1 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
(5 行)


(5).作成したデータベースに接続します。
edb=# \c mydb
データベース"mydb"にユーザ"enterprisedb"として接続しました。
mydb=#

(6).オブジェクトを作成します。
以下は、sqlファイルを実行してテーブルやトリガーなどのオブジェクトを作成しています。
mydb=# \i /usr/edb/as12/share/pg-sample.sql
SET
BEGIN
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE VIEW
・・・
CREATE TRIGGER
CREATE FUNCTION
CREATE TRIGGER
COMMIT
mydb=#
mydb=# SELECT * FROM USER_TABLES;
 schema_name |             table_name              | tablespace_name | status | temporary 
-------------+-------------------------------------+-----------------+--------+-----------
 PUBLIC      | EMP                                 |                 | VALID  | N
 PUBLIC      | DEPT                                |                 | VALID  | N
 PUBLIC      | JOBHIST                             |                 | VALID  | N
 SYS         | PRODUCT_COMPONENT_VERSION           |                 | VALID  | N
 SYS         | DUAL                                |                 | VALID  | N
 SYS         | EDB_DBMS_REDACT_FULL_DEFAULT_VALUES |                 | VALID  | N
 SYS         | CALLBACK_QUEUE_TABLE                |                 | VALID  | N
 SYS         | PLSQL_PROFILER_RAWDATA              |                 | VALID  | N
 SYS         | PLSQL_PROFILER_RUNS                 |                 | VALID  | N
 SYS         | PLSQL_PROFILER_UNITS                |                 | VALID  | N
 SYS         | EDB$SNAP                            |                 | VALID  | N
 SYS         | EDB$SYSTEM_WAITS                    |                 | VALID  | N
 SYS         | EDB$SESSION_WAITS                   |                 | VALID  | N
 SYS         | EDB$SESSION_WAIT_HISTORY            |                 | VALID  | N
 SYS         | EDB$STAT_ALL_INDEXES                |                 | VALID  | N
 SYS         | EDB$STAT_ALL_TABLES                 |                 | VALID  | N
 SYS         | EDB$STAT_DATABASE                   |                 | VALID  | N
 SYS         | EDB$STATIO_ALL_INDEXES              |                 | VALID  | N
 SYS         | EDB$STATIO_ALL_TABLES               |                 | VALID  | N
(19 行)

mydb=#
mydb=# \q
[enterprisedb@edb01 ~]$ 

1)-3. バックアップ(pg_dump)
(1).pg_dump コマンドを使用してバックアップを取得します。
[enterprisedb@edb01 ~]$ pwd
/home/enterprisedb
[enterprisedb@edb01 ~]$ ls -l
合計 0
drwxrwxr-x. 2 enterprisedb enterprisedb 97 11月  4 18:26 load
[enterprisedb@edb01 ~]$ pg_dump mydb > mydb.sql
[enterprisedb@edb01 ~]$ ls -l
合計 28
drwxrwxr-x. 2 enterprisedb enterprisedb    97 11月  4 18:26 load
-rw-rw-r--. 1 enterprisedb enterprisedb 27467 11月 12 18:38 mydb.sql
[enterprisedb@edb01 ~]$ 

1)-4. リストア
(1).リストア前にデータベースを削除します。
[enterprisedb@edb01 ~]$ dropdb mydb
[enterprisedb@edb01 ~]$ 
[enterprisedb@edb01 ~]$ edb-psql edb
edb-psql (12.1.2)
helpでヘルプを表示します。

edb=# \l
                                                  データベース一覧
   名前    |    所有者    | エンコーディング |  照合順序   | Ctype(変換演算子) | ICU |         アクセス権限          
-----------+--------------+------------------+-------------+-------------------+-----+-------------------------------
 edb       | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 postgres  | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 template0 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
 template1 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
(4 行)

edb=# 

(2).psql コマンドによりリストアを実施します。
リストア後、データベースの一覧を表示し、削除した「mydb」データベースが表示されている事、「mydb」に接続して表が格納されていることを確認しています。
[enterprisedb@edb01 ~]$ pwd
/home/enterprisedb
[enterprisedb@edb01 ~]$ ls -l
合計 28
drwxrwxr-x. 2 enterprisedb enterprisedb    97 11月  4 18:26 load
-rw-rw-r--. 1 enterprisedb enterprisedb 27467 11月 12 18:38 mydb.sql
[enterprisedb@edb01 ~]$ 
[enterprisedb@edb01 ~]$ psql mydb < /home/enterprisedb/mydb.sql
SET
SET
SET
SET
SET
・・・
GRANT
GRANT
GRANT
[enterprisedb@edb01 ~]$ 
[enterprisedb@edb01 ~]$ edb-psql edb
edb-psql (12.1.2)
helpでヘルプを表示します。

edb=# \l
                                                  データベース一覧
   名前    |    所有者    | エンコーディング |  照合順序   | Ctype(変換演算子) | ICU |         アクセス権限          
-----------+--------------+------------------+-------------+-------------------+-----+-------------------------------
 edb       | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 mydb      | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 postgres  | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 template0 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
 template1 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
(5 行)

edb=# \c mydb
データベース"mydb"にユーザ"enterprisedb"として接続しました。
mydb=# SELECT * FROM USER_TABLES;
 schema_name |             table_name              | tablespace_name | status | temporary 
-------------+-------------------------------------+-----------------+--------+-----------
 PUBLIC      | EMPLOYEES_NOMAX                     |                 | VALID  | N
 PUBLIC      | DEPT                                |                 | VALID  | N
 PUBLIC      | EMP                                 |                 | VALID  | N
 PUBLIC      | JOBHIST                             |                 | VALID  | N
 SYS         | PRODUCT_COMPONENT_VERSION           |                 | VALID  | N
 SYS         | DUAL                                |                 | VALID  | N
 SYS         | EDB_DBMS_REDACT_FULL_DEFAULT_VALUES |                 | VALID  | N
 SYS         | CALLBACK_QUEUE_TABLE                |                 | VALID  | N
 SYS         | PLSQL_PROFILER_RAWDATA              |                 | VALID  | N
 SYS         | PLSQL_PROFILER_RUNS                 |                 | VALID  | N
 SYS         | PLSQL_PROFILER_UNITS                |                 | VALID  | N
 SYS         | EDB$SNAP                            |                 | VALID  | N
 SYS         | EDB$SYSTEM_WAITS                    |                 | VALID  | N
 SYS         | EDB$SESSION_WAITS                   |                 | VALID  | N
 SYS         | EDB$SESSION_WAIT_HISTORY            |                 | VALID  | N
 SYS         | EDB$STAT_ALL_INDEXES                |                 | VALID  | N
 SYS         | EDB$STAT_ALL_TABLES                 |                 | VALID  | N
 SYS         | EDB$STAT_DATABASE                   |                 | VALID  | N
 SYS         | EDB$STATIO_ALL_INDEXES              |                 | VALID  | N
 SYS         | EDB$STATIO_ALL_TABLES               |                 | VALID  | N
(20 行)

mydb=# \q
[enterprisedb@edb01 ~]$ 


1)-5. LOAD
EDBLOADERによるロードができる事を確認します。


(1).制御ファイルを作成します。
EDBLOADERによるロードを行うには、以下の様に制御ファイル「例:emp.1.ctl」を作成して、LOADの内容を定義します。
[root@edb01 ~]# su - enterprisedb
最終ログイン: 2020/11/02 (月) 16:21:40 JST日時 pts/1
[enterprisedb@edb01 ~]$
[enterprisedb@edb01 ~]$ mkdir load
[enterprisedb@edb01 ~]$ cd load
[enterprisedb@edb01 load]$ pwd
/home/enterprisedb/load
[enterprisedb@edb01 load]$
[enterprisedb@edb01 load]$ vi emp.1.ctl
[enterprisedb@edb01 load]$ cat emp.1.ctl
LOAD DATA
 INFILE 'emp.1.dat'
 BADFILE 'emp.1.bad'
 APPEND
 INTO TABLE emp
 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
 TRAILING NULLCOLS
 (
 empno,
 ename,
 job,
 mgr,
 hiredate,
 sal,
 deptno,
 comm
 )
[enterprisedb@edb01 load]$ 

(2).ロードするデータを準備します。
[enterprisedb@edb01 load]$ vi emp.1.dat
[enterprisedb@edb01 load]$ cat emp.1.dat
9105,ROGERS,CLERK,7902,17-DEC-10,1980.00,20
9106,PETERSON,SALESMAN,7698,20-DEC-10,2600.00,30,2300.00
9107,WARREN,SALESMAN,7698,22-DEC-10,5250.00,30,2500.00
9108,"JONES, JR.",MANAGER,7839,02-APR-09,7975.00,20

[enterprisedb@edb01 load]$ 

(3).作成した制御ファイル、データファイルを指定して、edbldr コマンドによるロードを実施します。
[enterprisedb@edb01 load]$ /usr/edb/as12/bin/edbldr -d mydb USERID=enterprisedb/PPPPPPPP CONTROL=emp.1.ctl
EDB*Loader: Copyright (c) 2007-2019, EnterpriseDB Corporation.

INFO:  Inserting employee 9105
INFO:  ..New salary: 1980.00
INFO:  Inserting employee 9106
INFO:  ..New salary: 2600.00
INFO:  Inserting employee 9107
INFO:  ..New salary: 5250.00
INFO:  Inserting employee 9108
INFO:  ..New salary: 7975.00
INFO:   User enterprisedb added employee(s) on 13-NOV-20
Successfully processed (4) records
[enterprisedb@edb01 load]$ 


2) EDB Backup and Recovery Tool 2.5.4(BART)
2)-1. バックアップ(bart backup)
bart backup コマンドを使用してバックアップが取得できることを確認します。


(1).bart backup コマンドを使用してバックアップを取得します。
以下は、バックアップ後にバックアップファイルを確認しています。
[enterprisedb@edb01 ~]$ bart BACKUP -s epas12 -z
INFO:  DebugTarget - getVar(checkDiskSpace.bytesAvailable)
INFO:  new backup identifier generated 1605235183406
INFO:  creating 5 harvester threads
NOTICE:  必要なすべての WAL セグメントがアーカイブされました
INFO:  backup completed successfully
INFO:  
BART VERSION: 2.5.2
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1605235183406
BACKUP NAME: none
BACKUP PARENT: none
BACKUP LOCATION: /opt/backup/epas12/1605235183406
BACKUP SIZE: 10.11 MB
BACKUP FORMAT: tar.gz
BACKUP TIMEZONE: Asia/Tokyo
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 0
TABLESPACE(s): 0
START WAL LOCATION: 000000020000000000000009
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2020-11-13 11:39:43 JST
STOP TIME: 2020-11-13 11:39:54 JST
TOTAL DURATION: 11 sec(s)

[enterprisedb@edb01 ~]$ 
[enterprisedb@edb01 ~]$ ls -l /opt/backup/epas12
合計 4
drwxrwxr-x. 3 enterprisedb enterprisedb  180 11月  2 14:32 1604295143129
drwxrwxr-x. 3 enterprisedb enterprisedb  180 11月 13 11:39 1605235183406
drwxrwxr-x. 2 enterprisedb enterprisedb 4096 11月 13 11:39 archived_wals
[enterprisedb@edb01 ~]$ ls -l /opt/backup/epas12/1605235183406
合計 10416
-rw-rw-r--. 1 enterprisedb enterprisedb     204 11月 13 11:39 backup_label
-rw-rw-r--. 1 enterprisedb enterprisedb     553 11月 13 11:39 backupinfo
drwxrwxr-x. 4 enterprisedb enterprisedb      37 11月 13 11:39 base
-rw-rw-r--. 1 enterprisedb enterprisedb 3867536 11月 13 11:39 base-1.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb 1014691 11月 13 11:39 base-2.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb 3130429 11月 13 11:39 base-3.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb  979580 11月 13 11:39 base-4.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb 1613899 11月 13 11:39 base-5.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb   33362 11月 13 11:39 base.tar.gz
[enterprisedb@edb01 ~]$ 


2)-2. リストア(bart restore)
bart restore コマンドを使用してリストアできる事を確認します。


(1).EDBを停止します。
[root@edb01 ~]# systemctl stop edb-as-12
[root@edb01 ~]# systemctl status edb-as-12
● edb-as-12.service - EDB Postgres Advanced Server 12
   Loaded: loaded (/usr/lib/systemd/system/edb-as-12.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

11月 12 18:28:03 edb01 systemd[1]: Starting EDB Postgres Advanced Server 12...
11月 12 18:28:03 edb01 edb-postmaster[16894]: 2020-11-12 18:28:03 JST LOG:  PostgreSQL 12.1 (EnterpriseDB Advanced Server 12.1.2) on x86_64-pc-linux-gnu, com...動しています
11月 12 18:28:03 edb01 edb-postmaster[16894]: 2020-11-12 18:28:03 JST LOG:  IPv4アドレス"0.0.0.0"、ポート5444で待ち受けています
11月 12 18:28:03 edb01 edb-postmaster[16894]: 2020-11-12 18:28:03 JST LOG:  IPv6アドレス"::"、ポート5444で待ち受けています
11月 12 18:28:03 edb01 edb-postmaster[16894]: 2020-11-12 18:28:03 JST LOG:  Unixソケット"/tmp/.s.PGSQL.5444"で待ち受けています
11月 12 18:28:04 edb01 edb-postmaster[16894]: 2020-11-12 18:28:04 JST LOG:  ログ出力をログ収集プロセスにリダイレクトしています
11月 12 18:28:04 edb01 edb-postmaster[16894]: 2020-11-12 18:28:04 JST ヒント:  ここからのログ出力はディレクトリ"log"に現れます。
11月 12 18:28:04 edb01 systemd[1]: Started EDB Postgres Advanced Server 12.
11月 13 11:50:38 edb01 systemd[1]: Stopping EDB Postgres Advanced Server 12...
11月 13 11:50:38 edb01 systemd[1]: Stopped EDB Postgres Advanced Server 12.
Hint: Some lines were ellipsized, use -l to show in full.
[root@edb01 ~]# 

(2).リストア先の「/var/lib/edb/as12/data」配下を削除して空にします。
[root@edb01 ~]# ls -l /var/lib/edb/as12/data
合計 112
-rw-------. 1 enterprisedb enterprisedb     3 11月  2 14:32 PG_VERSION
-rw-------. 1 enterprisedb enterprisedb   204 11月  2 14:32 backup_label.old
・・・
-rw-------. 1 enterprisedb enterprisedb 30577 11月  2 14:32 postgresql.conf.20201029
-rw-------. 1 enterprisedb enterprisedb    61 11月 12 18:28 postmaster.opts
[root@edb01 ~]# 
[root@edb01 ~]# rm -fR /var/lib/edb/as12/data/*
[root@edb01 ~]# rm -f /var/lib/edb/as12/data/*
[root@edb01 ~]# ls -l /var/lib/edb/as12/data
合計 0
[root@edb01 ~]# 

(3).「bart show-backups」コマンドにより、取得済のバックアップを確認します。
[root@edb01 ~]# su - enterprisedb
最終ログイン: 2020/11/13 (金) 13:35:24 JST日時 pts/0
[enterprisedb@edb01 ~]$ bart SHOW-BACKUPS -s epas12
 SERVER NAME   BACKUP ID       BACKUP NAME   BACKUP PARENT   BACKUP TIME               BACKUP SIZE   WAL(s) SIZE   WAL FILES   STATUS  
                                                                                                                                       
 epas12        1605235183406   none          none            2020-11-13 11:39:54 JST   10.15 MB      48.00 MB      3           active  
 epas12        1604295143129   none          none            2020-11-02 14:32:32 JST   10.15 MB      208.00 MB     13          active  
                                                                                                                                       
[enterprisedb@edb01 ~]$ bart SHOW-BACKUPS -s epas12 -i 1605235183406 -t
SERVER NAME    : epas12
BACKUP ID      : 1605235183406
BACKUP NAME    : none
BACKUP PARENT  : none
BACKUP STATUS  : active
BACKUP TIME    : 2020-11-13 11:39:54 JST
BACKUP SIZE    : 10.15 MB
WAL(S) SIZE    : 48.00 MB
NO. OF WALS    : 3
FIRST WAL FILE : 000000020000000000000009
CREATION TIME  : 2020-11-13 11:39:44 JST
LAST WAL FILE  : 00000002000000000000000B
CREATION TIME  : 2020-11-13 11:50:38 JST

[enterprisedb@edb01 ~]$ grep backup_path /usr/edb/bart/etc/bart.cfg
#backup_path = PATH             # Required. The path where all of the backups will be stored.
#pg_basebackup_path = PATH      # Required. The path to pg_basebackup binary.
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as12/bin/pg_basebackup
[enterprisedb@edb01 ~]$ find /opt/backup -name 1605235183406
/opt/backup/epas12/1605235183406
[enterprisedb@edb01 ~]$ ls -l /opt/backup/epas12/1605235183406
合計 10416
-rw-rw-r--. 1 enterprisedb enterprisedb     204 11月 13 11:39 backup_label
-rw-rw-r--. 1 enterprisedb enterprisedb     553 11月 13 11:39 backupinfo
drwxrwxr-x. 4 enterprisedb enterprisedb      37 11月 13 11:39 base
-rw-rw-r--. 1 enterprisedb enterprisedb 3867536 11月 13 11:39 base-1.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb 1014691 11月 13 11:39 base-2.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb 3130429 11月 13 11:39 base-3.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb  979580 11月 13 11:39 base-4.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb 1613899 11月 13 11:39 base-5.tar.gz
-rw-rw-r--. 1 enterprisedb enterprisedb   33362 11月 13 11:39 base.tar.gz
[enterprisedb@edb01 ~]$ 

(4).bart restore コマンドによりリストアを実施します。
[enterprisedb@edb01 ~]$ bart RESTORE -s epas12 -i 1605235183406 -p /var/lib/edb/as12/data
INFO:  restoring backup '1605235183406' of server 'epas12'
INFO:  base backup restored
INFO:  writing recovery settings to postgresql.auto.conf
INFO:  WAL file(s) will be streamed from the BART host
INFO:  archiving is disabled
INFO:  permissions set on $PGDATA
INFO:  restore completed successfully
[enterprisedb@edb01 ~]$ 

(5).EDBを起動します。
[root@edb01 ~]# systemctl start edb-as-12
[root@edb01 ~]# systemctl status edb-as-12
● edb-as-12.service - EDB Postgres Advanced Server 12
   Loaded: loaded (/usr/lib/systemd/system/edb-as-12.service; disabled; vendor preset: disabled)
   Active: active (running) since 金 2020-11-13 13:54:19 JST; 5s ago
  Process: 23608 ExecStartPre=/usr/edb/as12/bin/edb-as-12-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 23614 (edb-postmaster)
    Tasks: 10
   CGroup: /system.slice/edb-as-12.service
           ├─23614 /usr/edb/as12/bin/edb-postmaster -D /var/lib/edb/as12/data
           ├─23616 postgres: logger   
           ├─23622 postgres: checkpointer   
           ├─23623 postgres: background writer   
           ├─23625 postgres: stats collector   
           ├─23627 postgres: walwriter   
           ├─23628 postgres: autovacuum launcher   
           ├─23629 postgres: archiver   last was 00000002000000000000000A.partial
           ├─23630 postgres: dbms_aq launcher   
           └─23631 postgres: logical replication launcher   

11月 13 13:54:18 edb01 systemd[1]: Starting EDB Postgres Advanced Server 12...
11月 13 13:54:19 edb01 edb-postmaster[23614]: 2020-11-13 13:54:19 JST LOG:  PostgreSQL 12.1 (EnterpriseDB Advanced Server 12.1.2) on x86_64-pc-linux-gnu, com...動しています
11月 13 13:54:19 edb01 edb-postmaster[23614]: 2020-11-13 13:54:19 JST LOG:  IPv4アドレス"0.0.0.0"、ポート5444で待ち受けています
11月 13 13:54:19 edb01 edb-postmaster[23614]: 2020-11-13 13:54:19 JST LOG:  IPv6アドレス"::"、ポート5444で待ち受けています
11月 13 13:54:19 edb01 edb-postmaster[23614]: 2020-11-13 13:54:19 JST LOG:  Unixソケット"/tmp/.s.PGSQL.5444"で待ち受けています
11月 13 13:54:19 edb01 edb-postmaster[23614]: 2020-11-13 13:54:19 JST LOG:  ログ出力をログ収集プロセスにリダイレクトしています
11月 13 13:54:19 edb01 edb-postmaster[23614]: 2020-11-13 13:54:19 JST ヒント:  ここからのログ出力はディレクトリ"log"に現れます。
11月 13 13:54:19 edb01 systemd[1]: Started EDB Postgres Advanced Server 12.
Hint: Some lines were ellipsized, use -l to show in full.
[root@edb01 ~]# 

(6).リストアしたデータベースに接続しオブジェクトを確認します。
[root@edb01 ~]# su - enterprisedb
最終ログイン: 2020/11/13 (金) 13:46:31 JST日時 pts/0
[enterprisedb@edb01 ~]$ edb-psql edb
edb-psql (12.1.2)
helpでヘルプを表示します。

edb=# \l
                                                  データベース一覧
   名前    |    所有者    | エンコーディング |  照合順序   | Ctype(変換演算子) | ICU |         アクセス権限          
-----------+--------------+------------------+-------------+-------------------+-----+-------------------------------
 edb       | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 mydb      | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 postgres  | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | 
 template0 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
 template1 | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |     | =c/enterprisedb              +
           |              |                  |             |                   |     | enterprisedb=CTc/enterprisedb
(5 行)

edb=# \c mydb
データベース"mydb"にユーザ"enterprisedb"として接続しました。
mydb=# \db+
                               テーブル空間一覧
    名前    |    所有者    | 場所 | アクセス権限 | オプション | サイズ | 説明 
------------+--------------+------+--------------+------------+--------+------
 pg_default | enterprisedb |      |              |            | 64 MB  | 
 pg_global  | enterprisedb |      |              |            | 768 kB | 
(2 行)

mydb=# SELECT * FROM USER_TABLES;
 schema_name |             table_name              | tablespace_name | status | temporary 
-------------+-------------------------------------+-----------------+--------+-----------
 PUBLIC      | EMPLOYEES_NOMAX                     |                 | VALID  | N
 PUBLIC      | DEPT                                |                 | VALID  | N
 PUBLIC      | EMP                                 |                 | VALID  | N
 PUBLIC      | JOBHIST                             |                 | VALID  | N
 SYS         | PRODUCT_COMPONENT_VERSION           |                 | VALID  | N
 SYS         | DUAL                                |                 | VALID  | N
 SYS         | EDB_DBMS_REDACT_FULL_DEFAULT_VALUES |                 | VALID  | N
 SYS         | CALLBACK_QUEUE_TABLE                |                 | VALID  | N
 SYS         | PLSQL_PROFILER_RAWDATA              |                 | VALID  | N
 SYS         | PLSQL_PROFILER_RUNS                 |                 | VALID  | N
 SYS         | PLSQL_PROFILER_UNITS                |                 | VALID  | N
 SYS         | EDB$SNAP                            |                 | VALID  | N
 SYS         | EDB$SYSTEM_WAITS                    |                 | VALID  | N
 SYS         | EDB$SESSION_WAITS                   |                 | VALID  | N
 SYS         | EDB$SESSION_WAIT_HISTORY            |                 | VALID  | N
 SYS         | EDB$STAT_ALL_INDEXES                |                 | VALID  | N
 SYS         | EDB$STAT_ALL_TABLES                 |                 | VALID  | N
 SYS         | EDB$STAT_DATABASE                   |                 | VALID  | N
 SYS         | EDB$STATIO_ALL_INDEXES              |                 | VALID  | N
 SYS         | EDB$STATIO_ALL_TABLES               |                 | VALID  | N
(20 行)

mydb=# select count(*) from emp;
 count 
-------
14
(1 行)

mydb=# 
mydb=# \q
[enterprisedb@edb01 ~]$ 


3) EDB Postgres Enterprise Manager 7.15(PEM)
PEMは、Webブラウザにてデーターベース・オブジェクトの定義、管理、起動、停止、パフォーマンスチューニング、レポートやアラート通知などが行えるGUIツールです。
このツールで一般的な操作が行える事を確認します。
Top.png

3)-1. DB作成
データベースが作成できる事を確認します。

(1).画面左側のツリー構造でDatabasesを右クリックし、Create->Databaseを選択します。
DB作成_01.png

(2).Generalタブでデータベース名、コメントを入力し(その他の項目はデフォルト)、Saveをクリックします。
DB作成_02.png

(3).画面左側のツリー構造のDatabases配下に新しくデータベースが作成されました。
DB作成_03.png

3)-2. テーブル作成
テーブルが作成できる事を確認します。
作成したデータベースにテーブルを作成します。

(1).画面左側のツリー構造でテーブルを作成したいデータベース -> Schemas -> スキーマを展開します。
Tablesを右クリックし、Create -> Tableを選択します。
テーブル作成_01.png

(2).Generalタブでテーブル名、コメントを入力します。(その他の項目はデフォルト)
テーブル作成_02.png

(3).Columnsタブでカラムを追加します。
Columns欄の右側の「+」をクリックすると画面に入力フィールドが追加されるので、カラム名や属性を入力します。
テーブル作成_03.png

(4).今回はカラムの追加時にプライマリーキーを指定したので、Constraintsタブで制約名を入力します。
テーブル作成_04.png

(5).SQLタブにテーブル作成用のDDLが表示されるので確認し、Saveをクリックします。
テーブル作成_05.png

(6).画面左側のツリー構造のTables配下に新しくテーブルが作成されました。
テーブル作成_06.png

3)-3. IMPORT
データがImportできる事を確認します。
作成したテーブルに以下のCSVファイルをImportします。
Import_CSV.png

(1).画面左側のツリー構造でデータをImportしたいテーブルを右クリックし、Import/Exportを選択します。
Import_01.png

(2).OptionsタブのImport/ExportでImportを選択し、Filenameの右側にある3点アイコン(Import_02_1.png)をクリックします。
Import_02.png

(3).画面右上にあるUpload Fileアイコン(Import_03_1.png)をクリックし、開いた画面にImport対象のファイルをドロップします。
Import_03.png

(4).ファイルのアップロードが完了したら、画面右上の×印アイコンをクリックして画面を閉じます。
Import_04.png

(5).Import対象のファイルをクリックし、画面右下のSelectをクリックします。
Import_05.png

(6).画面右下のOKをクリックします。
Import_06.png

(7).Importが完了すると以下のようなポップアップが表示されます。
More detailsをクリックすると実行されたコマンドを確認することができます。
Import_07.png
Import_08.png

(8).テーブルの内容を確認します。
画面左側のツリー構造で対象のテーブルを右クリックし、View/Edit Data -> All Rowsを選択します。
Import_09.png

(9).画面右側の上段にSelectステートメント、下段にテーブルの内容が表示されます。
CSVのデータがImportされました。
Import_10.png

3)-4. バックアップ
バックアップが取得できる事を確認します。
※PEMにBARTが組み込まれていることが前提になります。

(1).画面左側のツリー構造でBART Serversを展開してBARTサーバーを右クリックし、Backupを選択します。
バックアップ_01.png

(2).Generalタブでデータベースサーバー名、バックアップ名、Gzipへの圧縮、スレッド数、チェックサムの確認を入力し(その他の項目はデフォルト)、Backupをクリックします。
バックアップ_02.png
バックアップ_03.png

(3).バックアップが完了すると画面右側のDashboardタブに情報が表示されます。
  Backup and Restore Activities欄:成功/失敗した回数
  Number of backup taken欄:データベースサーバーの情報
  Initiated Server Backups欄:バックアップの履歴
バックアップ_04.png


4) Oracleからのデータ移行
4)-1. Migration Toolkitを使用したOracleからのデータ移行
Migration Toolkitという移行ツールを使用してOracleからデータが移行できる事を確認します。
移行対象のデータ量が比較的少ない場合はこの移行ツールを使用した移行がおススメです。


(1).OracleのJDBCドライバ(ojdbc8.jar)を保存します。
-bash-4.2$ ls -l /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64/jre/lib/ext/
合計 11764
-rw-r--r--. 1 root root 4003855  5月 23  2019 cldrdata.jar
-rw-r--r--. 1 root root    9445  5月 23  2019 dnsns.jar
-rw-r--r--. 1 root root   48733  5月 23  2019 jaccess.jar
-rw-r--r--. 1 root root 1204599  5月 23  2019 localedata.jar
-rw-r--r--. 1 root root     617  5月 23  2019 meta-index
-rw-r--r--. 1 root root 2033515  5月 23  2019 nashorn.jar
-rw-r--r--  1 root root 4036257  4月  3  2018 ojdbc8.jar
-rw-r--r--. 1 root root   30639  5月 23  2019 sunec.jar
-rw-r--r--. 1 root root  299710  5月 23  2019 sunjce_provider.jar
-rw-r--r--. 1 root root  273121  5月 23  2019 sunpkcs11.jar
-rw-r--r--. 1 root root   78007  5月 23  2019 zipfs.jar
-bash-4.2$

(2).移行ツールのプロパティに移行元(Oracle)と移行先(EDB)の接続情報を設定します。
-bash-4.2$ cd /usr/edb/migrationtoolkit/etc/
-bash-4.2$
-bash-4.2$
-bash-4.2$ vi toolkit.properties
-bash-4.2$ cat toolkit.properties
SRC_DB_URL=jdbc:oracle:thin:@//192.168.XXX.XX:1521/EDB
SRC_DB_USER=edb_adm
SRC_DB_PASSWORD=PPPPPPPP

TARGET_DB_URL=jdbc:edb://localhost:5444/edb_oracle
TARGET_DB_USER=enterprisedb
TARGET_DB_PASSWORD=PPPPPPPP
-bash-4.2$

(3).移行先(EDB)のデータベースを作成します。
-bash-4.2$ edb-psql edb
ユーザ enterprisedb のパスワード:
edb-psql (12.1.2)
"help"でヘルプを表示します。

edb=#
edb=#
edb=# create database edb_oracle;
CREATE DATABASE
edb=#
edb=#
edb=# \l
                                                   データベース一覧
    名前    |    所有者    | エンコーディング |  照合順序   | Ctype(変換演算子)
| ICU |         アクセス権限
------------+--------------+------------------+-------------+-------------------
+-----+-------------------------------
 edb        | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8
|     |
 edb_oracle | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8
|     |
 pem        | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8
|     | enterprisedb=CTc/enterprisedb+
            |              |                  |             |
|     | pem_user=Tc/enterprisedb     +
            |              |                  |             |
|     | pem_agent=Tc/enterprisedb
 postgres   | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8
|     |
 template0  | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8
|     | =c/enterprisedb              +
            |              |                  |             |
|     | enterprisedb=CTc/enterprisedb
 template1  | enterprisedb | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8
|     | =c/enterprisedb              +
            |              |                  |             |
|     | enterprisedb=CTc/enterprisedb
(6 行)

edb=#
edb=#
edb=# \q
-bash-4.2$

(4).移行元(Oracle)のテーブルのレコード数を確認します。(実際にはデータ内容も確認しています)
[oracle@oraclelinux ~]$ sqlplus edb_adm/PPPPPPPP@edb

SQL*Plus: Release 12.2.0.1.0 Production on 月 12月 21 17:01:54 2020

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

最終正常ログイン時間: 月 12月 21 2020 13:52:33 +09:00


Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
に接続されました。
SQL>
SQL>
SQL> select count(*) from edbuser.testtable;

  COUNT(*)
----------
      9542

SQL>
SQL>
SQL> exit
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Productionとの接続が切断されました。
[oracle@oraclelinux ~]$

(5).移行ツールを実行します。
-bash-4.2$ cd /usr/edb/migrationtoolkit/bin
-bash-4.2$
-bash-4.2$
-bash-4.2$ ./runMTK.sh EDBUSER
Running EnterpriseDB Migration Toolkit (Build 53.0.0) ...
ソースデータベース接続情報...
接続 =jdbc:oracle:thin:@//192.168.XXX.XX:1521/EDB
ユーザ =edb_adm
パスワード=******
ターゲットデータベース接続情報...
接続 =jdbc:edb://localhost:5444/edb_oracle
ユーザ =enterprisedb
パスワード=******
ソースOracleデータベースサーバに接続しています...
Connected to Oracle, version 'Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production'
ターゲットEDB Postgresデータベースサーバに接続しています...
Connected to EnterpriseDB, version '12.1.2'
redwoodスキーマのインポート...
スキーマ作成...edbuser
テーブル作成...
テーブル作成: TESTTABLE
1個のテーブルを作成しました。
8 MB のバッチのテーブルデータロード...
ラージオブジェクトをテーブルにロード:TESTTABLE ...
[TESTTABLE] 1個の行を移行しました。
[TESTTABLE] 2個の行を移行しました。
[TESTTABLE] 3個の行を移行しました。
・・・
[TESTTABLE] 9,540個の行を移行しました。
[TESTTABLE] 9,541個の行を移行しました。
[TESTTABLE] 9,542個の行を移行しました。
[TESTTABLE] テーブルデータロード概要: 全時間(s):7.387  全行数:9542 全サイズ(MB): 0.26953125
データロード概要: 全時間(秒):7.49  全行数:9542  全サイズ(MB):0.276
制約作成: TESTTABLE_PK

スキーマEDBUSERがインポートされました。

ユーザを作成しています: EDBUSER

移行処理が無事に完了しました。

移行ログが/var/lib/edb/.enterprisedb/migration-toolkit/logsに保存されました

******************** 移行概要情報 ********************
Tables: 1 移行元 1
Constraints: 1 移行元 1
Users: 1 移行元 1

オブジェクトの合計数: 3
成功件数: 3
失敗件数: 0
Invalid count: 0

*************************************************************
-bash-4.2$

(6).移行ログの内容を確認します。
-bash-4.2$ cat /var/lib/edb/.enterprisedb/migration-toolkit/logs/mtk_EDBUSER_20201221050909.log
2020-12-21 17:09:09 Running EnterpriseDB Migration Toolkit (Build 53.0.0) ...
2020-12-21 17:09:09 ソースデータベース接続情報...
2020-12-21 17:09:09 接続 =jdbc:oracle:thin:@//192.168.XXX.XX:1521/EDB
2020-12-21 17:09:09 ユーザ =edb_adm
2020-12-21 17:09:09 パスワード=******
2020-12-21 17:09:09 ターゲットデータベース接続情報...
2020-12-21 17:09:09 接続 =jdbc:edb://localhost:5444/edb_oracle
2020-12-21 17:09:09 ユーザ =enterprisedb
2020-12-21 17:09:09 パスワード=******
2020-12-21 17:09:09 ソースOracleデータベースサーバに接続しています...
2020-12-21 17:09:10 Connected to Oracle, version 'Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production'
2020-12-21 17:09:10 ターゲットEDB Postgresデータベースサーバに接続しています...
2020-12-21 17:09:10 Connected to EnterpriseDB, version '12.1.2'
2020-12-21 17:09:10 redwoodスキーマのインポート...
2020-12-21 17:09:10 スキーマ作成...edbuser
2020-12-21 17:09:10 Getting Object Type Definitions...
2020-12-21 17:09:14 Getting Sequence Definitions
2020-12-21 17:09:14 Getting Advanced Queues...
2020-12-21 17:09:14 Getting Table Definitions
2020-12-21 17:09:17 テーブル作成...
2020-12-21 17:09:17 テーブル作成: TESTTABLE
2020-12-21 17:09:17 1個のテーブルを作成しました。
2020-12-21 17:09:18 8 MB のバッチのテーブルデータロード...
2020-12-21 17:09:18 ラージオブジェクトをテーブルにロード:TESTTABLE ...
2020-12-21 17:09:18 [TESTTABLE] 1個の行を移行しました。
2020-12-21 17:09:18 [TESTTABLE] 2個の行を移行しました。
2020-12-21 17:09:18 [TESTTABLE] 3個の行を移行しました。
・・・
2020-12-21 17:09:25 [TESTTABLE] 9,540個の行を移行しました。
2020-12-21 17:09:25 [TESTTABLE] 9,541個の行を移行しました。
2020-12-21 17:09:25 [TESTTABLE] 9,542個の行を移行しました。
2020-12-21 17:09:25 [TESTTABLE] テーブルデータロード概要: 全時間(s):7.387  全 行数:9542 全サイズ(MB): 0.26953125
2020-12-21 17:09:25 データロード概要: 全時間(秒):7.49  全行数:9542  全サイズ(MB):0.276
2020-12-21 17:09:25 Getting Constraint Definitions
2020-12-21 17:09:27 制約作成: TESTTABLE_PK
2020-12-21 17:09:27 Getting Index Definitions
2020-12-21 17:09:36 Getting Trigger Definitions
2020-12-21 17:09:39 Getting View Definitions...
2020-12-21 17:09:39 Getting Materialized View Definitions...
2020-12-21 17:09:39 Getting Procedure Definitions
2020-12-21 17:09:40 Getting Function Definitions
2020-12-21 17:09:40 Getting Package Definitions
2020-12-21 17:09:40 Getting Public Synonym Definitions
2020-12-21 17:09:41 Getting all Invalid Objects
2020-12-21 17:09:42
2020-12-21 17:09:42 スキーマEDBUSERがインポートされました。
2020-12-21 17:09:42
2020-12-21 17:09:42 Getting Profile Resource Definitions...
2020-12-21 17:09:42 Getting Roles Definitions...
2020-12-21 17:09:42 Getting Users Definitions...
2020-12-21 17:09:42 ユーザを作成しています: EDBUSER
2020-12-21 17:09:42 Getting Grants Definitions...
2020-12-21 17:09:44
2020-12-21 17:09:44 移行処理が無事に完了しました。
2020-12-21 17:09:44
移行ログが/var/lib/edb/.enterprisedb/migration-toolkit/logsに保存されました
2020-12-21 17:09:44
******************** 移行概要情報 ********************
Tables: 1 移行元 1
Constraints: 1 移行元 1
Users: 1 移行元 1

オブジェクトの合計数: 3
成功件数: 3
失敗件数: 0
Invalid count: 0

*************************************************************
-bash-4.2$

(7).移行先(EDB)のテーブルのレコード数を確認します。(実際にはデータの内容も確認しています)
Oracleから正常にデータが移行されました。
-bash-4.2$ edb-psql edb_oracle
ユーザ enterprisedb のパスワード:
edb-psql (12.1.2)
"help"でヘルプを表示します。

edb_oracle=#
edb_oracle=#
edb_oracle=# select count(*) from edbuser.testtable;
 count
-------
  9542
(1 行)

edb_oracle=#

4)-2. dblink_oraを使用したOracleからのデータ移行
dblink_oraを使用してOracleからデータが移行できる事を確認します。
※dblink_oraはOCIベースのデータベースリンクを提供します。
移行対象のデータ量が多く、Migration Toolkitによる移行が重い場合はこちらの方法がおススメです。
今回の検証では移行元のテーブルはMigration Toolkitによる移行検証で使用したテーブルと同一です。


(1).OracleInstantClientをインストールします。
[root@edbas12 EDB_work]# yum install oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm を調べています: oracle-instantclient-basic-21.1.0.0.0-1.x86_64
oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm をインストール済みとして設定 しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ oracle-instantclient-basic.x86_64 0:21.1.0.0.0-1 を インストール
--> 依存性解決を終了しました。
centos-sclo-rh/x86_64                                    | 3.0 kB     00:00
centos-sclo-rh/x86_64/primary_db                         | 2.9 MB     00:00
centos-sclo-sclo/x86_64                                  | 3.0 kB     00:00
edbrepo                                                  | 2.9 kB     00:00
epel/x86_64/metalink                                     | 9.1 kB     00:00
epel/x86_64                                              | 4.7 kB     00:00
epel/x86_64/updateinfo                                   | 1.0 MB     00:00
epel/x86_64/primary_db                                   | 6.9 MB     00:01
rhel                                                     | 2.8 kB     00:00

依存性を解決しました

================================================================================
 Package
      アーキテクチャー
             バージョン   リポジトリー                                     容量
================================================================================
インストール中:
 oracle-instantclient-basic
      x86_64 21.1.0.0.0-1 /oracle-instantclient-basic-21.1.0.0.0-1.x86_64 237 M

トランザクションの要約
================================================================================
インストール  1 パッケージ

合計容量: 237 M
インストール容量: 237 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : oracle-instantclient-basic-21.1.0.0.0-1.x86_6   1/1
  検証中                  : oracle-instantclient-basic-21.1.0.0.0-1.x86_6   1/1

インストール:
  oracle-instantclient-basic.x86_64 0:21.1.0.0.0-1

完了しました!
[root@edbas12 EDB_work]#

(2).libclntsh.soが含まれていることを確認します。
[root@edbas12 EDB_work]# ls -l /usr/lib/oracle/21/client64/lib/
合計 242944
lrwxrwxrwx 1 root root        17 12月 25 11:02 libclntsh.so -> libclntsh.so.21.1
lrwxrwxrwx 1 root root        17 12月 25 11:02 libclntsh.so.10.1 -> libclntsh.so.21.1
lrwxrwxrwx 1 root root        17 12月 25 11:02 libclntsh.so.11.1 -> libclntsh.so.21.1
lrwxrwxrwx 1 root root        17 12月 25 11:02 libclntsh.so.12.1 -> libclntsh.so.21.1
lrwxrwxrwx 1 root root        17 12月 25 11:02 libclntsh.so.18.1 -> libclntsh.so.21.1
lrwxrwxrwx 1 root root        17 12月 25 11:02 libclntsh.so.19.1 -> libclntsh.so.21.1
lrwxrwxrwx 1 root root        17 12月 25 11:02 libclntsh.so.20.1 -> libclntsh.so.21.1
-rwxr-xr-x 1 root root  83357368 10月 31 18:34 libclntsh.so.21.1
lrwxrwxrwx 1 root root        21 12月 25 11:02 libclntshcore.so -> libclntshcore.so.21.1
-rwxr-xr-x 1 root root   8094056 10月 31 18:34 libclntshcore.so.21.1
-rwxr-xr-x 1 root root   7097376 10月 31 18:34 libnnz21.so
lrwxrwxrwx 1 root root        15 12月 25 11:02 libocci.so -> libocci.so.21.1
lrwxrwxrwx 1 root root        15 12月 25 11:02 libocci.so.10.1 -> libocci.so.21.1
lrwxrwxrwx 1 root root        15 12月 25 11:02 libocci.so.11.1 -> libocci.so.21.1
lrwxrwxrwx 1 root root        15 12月 25 11:02 libocci.so.12.1 -> libocci.so.21.1
lrwxrwxrwx 1 root root        15 12月 25 11:02 libocci.so.18.1 -> libocci.so.21.1
lrwxrwxrwx 1 root root        15 12月 25 11:02 libocci.so.19.1 -> libocci.so.21.1
lrwxrwxrwx 1 root root        15 12月 25 11:02 libocci.so.20.1 -> libocci.so.21.1
-rwxr-xr-x 1 root root   2374192 10月 31 18:34 libocci.so.21.1
-rwxr-xr-x 1 root root 142553648 10月 31 18:34 libociei.so
-rwxr-xr-x 1 root root    153480 10月 31 18:34 libocijdbc21.so
-rwxr-xr-x 1 root root    116104 10月 31 18:34 liboramysql.so
drwxr-xr-x 3 root root        19 12月 25 11:02 network
-rw-r--r-- 1 root root   4972232 10月 31 18:35 ojdbc8.jar
-rw-r--r-- 1 root root     37676 10月 31 18:34 xstreams.jar
[root@edbas12 EDB_work]#

(3).「.bash_profile」でパスに/usr/lib/oracle/21/client64/binを追加します。
[root@edbas12 EDB_work]# su - enterprisedb
最終ログイン: 2020/12/25 (金) 11:00:03 JST
-bash-4.2$
-bash-4.2$
-bash-4.2$ vi .bash_profile
-bash-4.2$ cat .bash_profile
[ -f /etc/profile ] && source /etc/profile
PGDATA=/var/lib/edb/as12/data
export PGDATA
# If you want to customize your settings,
# Use the file below. This is not overridden
# by the RPMS.
[ -f /var/lib/edb/.enterprisedb_profile ] && source /var/lib/edb/.enterprisedb_profile
export PATH=/usr/lib/oracle/21/client64/bin:$PATH
-bash-4.2$
-bash-4.2$
-bash-4.2$ exit
ログアウト
[root@edbas12 EDB_work]#
[root@edbas12 EDB_work]#
[root@edbas12 EDB_work]# su - enterprisedb
最終ログイン: 2020/12/25 (金) 11:45:22 JST日時 pts/0
-bash-4.2$
-bash-4.2$
-bash-4.2$ echo $PATH
/usr/lib/oracle/21/client64/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin
-bash-4.2$

(4).EDBからOracleに接続できることを確認します。
-bash-4.2$ edb-psql edb_oracle
ユーザ enterprisedb のパスワード:
edb-psql (12.1.2)
"help"でヘルプを表示します。

edb_oracle=#
edb_oracle=#
edb_oracle=# select dblink_ora_connect('ora1','192.168.XXX.XX','EDB','edb_adm','PPPPPPPP',1521);
 dblink_ora_connect
--------------------
 OK
(1 行)

edb_oracle=#
edb_oracle=#
edb_oracle=# select dblink_ora_status('ora1');
 dblink_ora_status
-------------------
 OK
(1 行)

edb_oracle=#
edb_oracle=#
edb_oracle=# select dblink_ora_disconnect('ora1');
 dblink_ora_disconnect
-----------------------
 OK
(1 行)

edb_oracle=#
edb_oracle=# \q
-bash-4.2$

(5).移行先(EDB)で予め空のテーブルを作成しておきます。
今回は上記の移行ツールによる移行検証で作成されたテーブルのレコードを削除して流用します。
-bash-4.2$ edb-psql edb_oracle
ユーザ enterprisedb のパスワード:
edb-psql (12.1.2)
"help"でヘルプを表示します。

edb_oracle=#
edb_oracle=#
edb_oracle=# select count(*) from edbuser.testtable;
 count
-------
  9542
(1 行)

edb_oracle=#
edb_oracle=#
edb_oracle=# delete from edbuser.testtable;
DELETE 9542
edb_oracle=#
edb_oracle=#
edb_oracle=# select count(*) from edbuser.testtable;
 count
-------
     0
(1 行)

edb_oracle=#

(6).Oracleに接続します。
edb_oracle=# select dblink_ora_connect('ora1','192.168.XXX.XX','EDB','edb_adm','PPPPPPPP',1521);
 dblink_ora_connect
--------------------
 OK
(1 行)

edb_oracle=#

(7).データを移行します。
edb_oracle=# select dblink_ora_copy('ora1','select * from edbuser.testtable','edbuser','testtable',true,1000);
INFO:  Row: 0
INFO:  Row: 1000
INFO:  Row: 2000
INFO:  Row: 3000
INFO:  Row: 4000
INFO:  Row: 5000
INFO:  Row: 6000
INFO:  Row: 7000
INFO:  Row: 8000
INFO:  Row: 9000
 dblink_ora_copy
-----------------
            9542
(1 行)

edb_oracle=#

(8).Oracleから切断します。
edb_oracle=# select dblink_ora_disconnect('ora1');
 dblink_ora_disconnect
-----------------------
 OK
(1 行)

edb_oracle=#

(9).移行先(EDB)のテーブルのレコード数を確認します。(実際にはデータの内容も確認しています)
Oracleから正常にデータが移行されました。
edb_oracle=# select count(*) from edbuser.testtable;
 count
-------
  9542
(1 行)

edb_oracle=#
edb_oracle=#
edb_oracle=# \q
-bash-4.2$


■所管
◆良い点
設定手順、コマンド、操作方法に慣れてしまえば、低コストでシステムが構築できます。
移行ツールが充実しており、Oracleとの親和性が高いためOracleからの移行が容易です。

◆改善点
マニュアルに関して以下の点で苦労したためもう少し整備されると良いと思います。
・ツール毎にマニュアルが存在しますが、必要な手順を各マニュアルから探し自分で一連化する必要がありました。
・ツールの設定時にマニュアルに必須項目が明記されていないため試行錯誤しました。
・メッセージに対する対応方法が記載されたマニュアルが見つからずエラー発生時の対応に苦労しました。

◆総評
コストが安くOracleからのデータ移行が比較的簡単なため、Oracleのアップデートや他DBへのマイグレーションを検討しているお客様にはEDBへのマイグレーションを候補としておススメします。
検証できていない機能がまだまだ多数あるため引き続き検証を実施していきます。
また、今後はEDBと他のDBとの比較も検証していきたいと思います。