MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

由於考慮採用 EnterpriseDB 或是直接用 PostgreSQL 的人,通常需要一些入手的資料。這邊紀錄便提供相關快速上手的簡單筆記 ~ 這篇筆記以 資料庫安裝完畢後的快速使用 為目標,基本紀錄登入使用的範例:

2020年1月7日 星期二

EnterpriseDB 備份工具 BART 的圖形化界面 PEM 整合介紹

EnterpriseDB 的 PostgreSQL 資料庫解決方案中,提供備份管理工具 EDB Backup and Recovery(BART),以及圖形化管理工具 EDB Postgres Entetprise Manager(PEM)。這兩項軟體,在近期的 BART 2.5.1 與 PEM 7.12 中,提供了圖形化備份整合功能。
有了圖形化整合,用戶可以方便的設定備份功能,以及設定備份排程,並且檢視備份紀錄。
以下紀錄操作的筆記。

首先,要先有一個安裝好的 PEM 7.12 版服務。以及一個被監控的 PGSQL 資料庫主機,這邊適用的資料庫版本,建議為 PGSQL 10 (或對等的企業版)以上,會有比較完整的功能支援。

這邊在 LXD 環境中準備完這兩個環境。其中 pem 環境啟動了 PEM Server 服務;而 edbtest 裡面則是運行 EDB 12.1 版與 PEM 監控服務,並安裝了備份軟體 BART。
此外,LXD 環境裡面要自行安裝 openssh-server 並調整。
lab@lxdlab:~$ lxc list pem
+------+---------+----------------------+-----------------------------------------------+------------+-----------+
| NAME |  STATE  |         IPV4         |                     IPV6                      |    TYPE    | SNAPSHOTS |
+------+---------+----------------------+-----------------------------------------------+------------+-----------+
| pem  | RUNNING | 10.236.247.32 (eth0) | fd42:b925:969f:cf73:216:3eff:fe40:4c8d (eth0) | PERSISTENT | 0         |
+------+---------+----------------------+-----------------------------------------------+------------+-----------+
lab@lxdlab:~$ lxc list edbtest
+---------+---------+-----------------------+-----------------------------------------------+------------+-----------+
|  NAME   |  STATE  |         IPV4          |                     IPV6                      |    TYPE    | SNAPSHOTS |
+---------+---------+-----------------------+-----------------------------------------------+------------+-----------+
| edbtest | RUNNING | 10.236.247.243 (eth0) | fd42:b925:969f:cf73:216:3eff:fe5e:c36c (eth0) | PERSISTENT | 0         |
+---------+---------+-----------------------+-----------------------------------------------+------------+-----------+
lab@lxdlab:~$ 
lab@lxdlab:~$ lxc exec edbtest -- rpm -qa | grep edb
edb-as12-server-docs-12.1.2-1.rhel7.x86_64
edb-bart-2.5.1-1.rhel7.x86_64
edb-as12-libicu-53.1-1.rhel7.x86_64
edb-as12-server-llvmjit-12.1.2-1.rhel7.x86_64
edb-as12-server-client-12.1.2-1.rhel7.x86_64
edb-as12-server-core-12.1.2-1.rhel7.x86_64
edb-as12-server-plperl-12.1.2-1.rhel7.x86_64
edb-as12-server-sslutils-1.2-1.rhel7.x86_64
edb-as12-server-plpython-12.1.2-1.rhel7.x86_64
edb-as12-pgagent-4.0.0-1.rhel7.x86_64
edb-as12-server-sqlprotect-12.1.2-1.rhel7.x86_64
edb-as12-server-devel-12.1.2-1.rhel7.x86_64
edb-as12-server-12.1.2-1.rhel7.x86_64
edb-pem-agent-7.12.0-2.rhel7.x86_64
libicu-edb-53.1-11.rhel7.x86_64
edb-as12-server-libs-12.1.2-1.rhel7.x86_64
edb-as12-server-contrib-12.1.2-1.rhel7.x86_64
edb-as12-server-parallel-clone-1.5-1.rhel7.x86_64
edb-as12-server-indexadvisor-12.1.2-1.rhel7.x86_64
edb-as12-server-sqlprofiler-4.0-1.rhel7.x86_64
edb-as12-server-pldebugger-1.1-1.rhel7.x86_64
edb-as12-server-cloneschema-1.10-1.rhel7.x86_64
edb-as12-server-pltcl-12.1.2-1.rhel7.x86_64
lab@lxdlab:~$ 
lab@lxdlab:~$ lxc exec edbtest -- yum install -y openssh-server
lab@lxdlab:~$ lxc exec edbtest -- sed -e "s/^UsePAM yes/UsePAM no/g" -i /etc/ssh/sshd_config
lab@lxdlab:~$ lxc exec edbtest -- chkconfig sshd on
lab@lxdlab:~$ lxc exec edbtest -- service sshd start
lab@lxdlab:~$ 

在設置圖形功能整合之前,需要先進入 edbtest 裡面作一點設定。
首先是建立 ssh 金鑰:只要針對資料庫運作帳號(預設為 postgres 或是 enterprisedb)即可。
這邊已經調整 /etc/hosts 內容,讓 ssh 可以將 hostname 認成自己的 IP
lab@lxdlab:~$ lxc shell edbtest
[root@edbtest ~]# passwd enterprisedb
[root@edbtest ~]# su - enterprisedb
bash-4.2$ ssh-keygen
bash-4.2$ ssh-copy-id edbtest
bash-4.2$ exit
[root@edbtest ~]# passwd -d enterprisedb

接著進入 PEM 的頁面,在左邊的 VBART Server 點右鍵,新增備份服務:



設定 BART 服務,第一頁基本上即 bart.cfg 的第一小節

        



設定完畢後,要記得再按右鍵進行 Validate。
設置 Server 連線,裡面有 bart.cfg 的另一個小節設定內容





這邊簡單起見,以 enterprisedb 作為 PEM Agent



bart.cfg 第二小節的設置,其中的 Misc 內容與 BART Server 的 Misc 一樣,為覆蓋預設值之用。
此外, archive_command 使用一般的 cp/scp,在指定 Wal Compression 之後,便會進行




查看監控頁面:選取 Dashboard



排程
選取 Tools → Schedule Backup





有設定信件功能,則可以寄送



最後按磁碟片儲存




此時監控頁面即會顯示排程


然後回到指令界面,設置後的 bart.cfg 位在 pem agent 目錄下
[root@edbtest ~]# find /usr/edb/ -name bart.cfg
/usr/edb/pem/agent/etc/bart.cfg
[root@edbtest ~]# 

雖然圖形界面設置完畢了,但還是需要進入指令界面進行手動初始化
-bash-4.2$ bart -c /usr/edb/pem/agent/etc/bart.cfg init -s all -o
INFO:  connection to the server failed: fe_sendauth: no password supplied

WARNING: could not set archive_mode/archive_command, server 'edb12' might be down
-bash-4.2$ 
-bash-4.2$ vi ~/.pgpass
-bash-4.2$ bart -c /usr/edb/pem/agent/etc/bart.cfg init -s all -o
INFO:  setting archive_mode/archive_command for server 'edb12'
WARNING: archive_mode/archive_command is set. Restart the PostgreSQL server using 'pg_ctl restart'
-bash-4.2$ 

然後重新啟動資料庫就設置完成了。



手動備份測試


備份完成後,紀錄會顯示在監控頁面上





還原演練:本處將資料倒到同一台環境的 /var/lib/edb/as12/restore/ 目錄裡面;此外,本處有設置一個 Tablespace,將會一同進行還原(要記得另外指定路徑!!)
在此之前,需要先預備好路徑
[root@edbtest ~]# mkdir -p /var/lib/edb/as12/restore
[root@edbtest ~]# chown -R enterprisedb. /var/lib/edb/as12/restore

然後在圖形界面,選定備份檔設定還原



完成後,便進入指令界面,觀察到還原作業結束,便可以啟動測試。
-bash-4.2$ ls ~/as12/restore/data/
PG_VERSION        log            pg_multixact  pg_stat_tmp  postgresql.auto.conf
backup_label      pg_commit_ts   pg_notify     pg_subtrans  postgresql.conf
base              pg_dynshmem    pg_replslot   pg_tblspc    tablespace_map
current_logfiles  pg_hba.conf    pg_serial     pg_twophase
dbms_pipe         pg_ident.conf  pg_snapshots  pg_wal
global            pg_logical     pg_stat       pg_xact
-bash-4.2$ ls ~/as12/restore/mytblspc/
PG_12_201909212
-bash-4.2$ 
-bash-4.2$ mv ~/as12/restore/data/postgresql.auto.conf ~/as12/restore/data/postgresql.auto.conf.old
-bash-4.2$ echo "port=5433" >> ~/as12/restore/data/postgresql.auto.conf
-bash-4.2$ pg_ctl -D ~/as12/restore/data/ start
waiting for server to start....2019-12-28 02:59:15 UTC LOG:  starting PostgreSQL 12.1 (EnterpriseDB Advanced Server 12.1.2) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit
2019-12-28 02:59:15 UTC LOG:  listening on IPv4 address "0.0.0.0", port 5433
2019-12-28 02:59:15 UTC LOG:  listening on IPv6 address "::", port 5433
2019-12-28 02:59:15 UTC LOG:  listening on Unix socket "/tmp/.s.PGSQL.5433"
2019-12-28 02:59:15 UTC LOG:  redirecting log output to logging collector process
2019-12-28 02:59:15 UTC HINT:  Future log output will appear in directory "log".
.... done
server started
-bash-4.2$ 

測試完畢後,就可以刪掉了
-bash-4.2$ pg_ctl -D ~/as12/restore/data/ stop 
waiting for server to shut down.... done
server stopped
-bash-4.2$ 
-bash-4.2$ rm ~/as12/restore/ -rf
rm: cannot remove '/var/lib/edb/as12/restore/data': Permission denied
rm: cannot remove '/var/lib/edb/as12/restore/mytblspc': Permission denied
-bash-4.2$ 
-bash-4.2$ ls -l ~/as12/  
total 80
drwx------  3 enterprisedb enterprisedb  4096 Dec 16 15:16 backups
-rw-r--r--  1 enterprisedb enterprisedb 49875 Dec 28 02:53 bart.log
drwx------ 21 enterprisedb enterprisedb  4096 Dec 28 00:00 data
-rw-------  1 enterprisedb enterprisedb  4832 Dec 16 09:50 initdb.log
drwx------  3 enterprisedb enterprisedb  4096 Dec 21 03:25 mytblspc
drwxr-xr-x  4 root         root          4096 Dec 27 10:20 restore
-bash-4.2$ 
-bash-4.2$ ls -l ~/as12/restore/
total 8
drwx------ 2 enterprisedb root 4096 Dec 28 03:00 data
drwx------ 2 enterprisedb root 4096 Dec 28 03:00 mytblspc
-bash-4.2$ 
[root@edbtest ~]# chown -R enterprisedb. /var/lib/edb/as12/        
[root@edbtest ~]# su - enterprisedb
-bash-4.2$ rm ~/as12/restore/ -rf


有了這個整合功能,日常使用上就更加便利了~~

參考資料
之前的相關 EDB BART 筆記
EnterpriseDB integrates Backup and Recovery tools with Postgres Enterprise Manager for superior database management | EnterpriseDB

沒有留言:

張貼留言