MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

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

2020年1月6日 星期一

觀察 GPDB 6.x 開源版的 Primary/Mirror 同步

從 Greenplum 6.0 開始,Greenplum 官方社群提供社群版 RPM 安裝檔(DEB 安裝檔倒是很久以前就一直有提供了~)。
另外,Greenplum 6.0 之後,正式根基於 PostgreSQL 9.4 系列,與之前版本都只有 PostgreSQL 8.x 相比,差異很多了~因此值得去了解一下。
近期釋出的是 6.2.1 版,由 Pivotal 公司發行的企業版 Pivotal Greenplum 與開源的 Greenplum 功能差異可以參考 Release Note:主要是一些進階功能(如,GPCC、GPTEXT)不提供。
這邊用 LXC 啟動一個 GPDB 的 1 Master + 2 Segment 叢集。用來簡單安裝,並觀察一下下 Streaming Replication 的狀態。

2019年12月1日 星期日

再探 Streaming Replication — PGSQL 12 上面的設定筆記

在 PGSQL 12 開始,recovery.conf 檔案正式與 postgresql.conf / postgresql.auto.conf 合併,由同一份檔案設定所有資料庫參數了。
因此這邊紀錄新的 Streaming Replication 設置方式。

2019年10月7日 星期一

LXD 裡面的 CentOS 7 Container 必要功能補完

LXC/LXD Container 用途與 Docker 不同,主要用來提供完整的 Linux 操作環境。不過由於取得的 Image 是精簡版本的 OS,啟動一個 Container 之後,有一些常常用的小功能要補上。

這邊紀錄目前使用 LXD CentOS 7 Image 遇到的功能補完。

2019年10月2日 星期三

PGSQL 的表格最後交易時間 (9.5+ 適用)

在某些情況下,會想要查看表格最後異動時間。不幸的是,PostgreSQL 沒有這種功能。

表格最後異動時間,在 Greenplum 某些結構表單裡面有紀錄(Append-Only Table 儲存結構)。但是截至 Postgres 12 為止,沒有這種儲存結構(還只有 Heap Table 的結構)。通常有這樣的需要時,就得增加一個時戳欄位,搭配 AP 上面要有相應的設計或是加一點 Trigger 才行。

然而,Postgres 在 v9.5 之後有提供 track_commit_timestamp 功能,可以用來接近這樣的需求~

2019年9月6日 星期五

在 LXD 3 裡面設置 Docker 19.03.2 的 Swarm 叢集~

日前在嘗試用 LXC/LXD 模擬 Docker Swarm 節點,遇到設置上無法生效的狀況。。。因此之前的筆記只有基本的 Docker 功能
不過,現在捲土重來了~原來是之前遺漏了幾篇參考教學才會做不出來~~
主要的解法,在於 LXD 支援的 linux.kernel_modules 參數。現在就補上這個紀錄,以後確定也可以在 LXD 裡面練習 Docker Swarm 了~~

2019年9月1日 星期日

在 Postgres 用 PGroonga 作正體中文全文檢索簡單測試筆記

PGSQL 內建有不錯的全文檢索功能,而且支援多種語言。但是,內建的全文檢索功能沒有直接支援東亞的 CJK 語言。
中文的部份的全文檢索,目前看到的資訊,只有中國的社群開發的簡體中文相關外掛,但這不夠適合台灣的正體中文使用;這主要是兩國文化不同,適用中國的字典檔在切詞上不完全適用於台灣的關係。
不過,還有其他的方案,主要是由日本社群所採用的外掛,分別有 pg_bigm 以及 PGroonga 也支援 CJK 的全文檢索。
最近剛好看到,PGroonga 針對 PGDG YUM Repo 的版本有提供 RHEL 現成的套件(不好意思,我很懶惰,只想用現成的。。。),在台灣 PGroonga 這個套件有點少人提到,因此這邊就嘗試看看,看看可不可以用來作為正體中文的全文檢索工具。

2019年8月1日 星期四

找出 PGSQL 裡面被綁太久的 Table Lock

在 Postgres 裡面,Lock 是一套狀態標記系統,資料庫裡面每個動作,一定有一個 Lock 等級標誌著;這個標記表現行為的優先順序,有點像是階級一樣。。。。因此,在 PGSQL 裡面看到 Lock 的話,千萬不要馬上套用其他資料庫的經驗,馬上把 Session 砍掉。
然而,實際使用上,資料庫常常會因為 Lock 遇到一些狀況。這邊用一個模擬狀況,示範日常需要的 Lock 監控要怎麼在 PGSQL 進行。
本處所示範的情況
 - 是習慣其他關聯式資料庫的人所熟知的日常監控與剔除的目標
 - 但是在 PGSQL 裡面,不叫做 Dead Lock!!!