MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

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

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!!!

2019年7月28日 星期日

Postgres 10+ 的正體中文筆劃排序

多數資料庫在語系設定上,有一種叫做 Collation 的功能,這個東西負責決定排序規則。
通常只有數字/英文字母的資料,排序上很單純,就依照英文字母歌的順序一樣~
但是遇到其他語言的文字。。。就需要好好設定 Collation 了。
目前作業系統都會內建多國語言排序模組,例如,在 Linux 就有標準的 libc 函式庫可以用。多數需要用到排序的主流軟體(文書編輯器、資料庫)都會呼叫這個模組以支援多國語言資料排序功能。但這在不同 OS 之間會有不同差異,換了 OS 就有可能就會有些不同。
PGSQL 在 v10 之後,額外提供了 ICU 這個標準模組的整合,用來強化排序的跨平台一致性。

這邊會在 EDB PGSQL 11 企業版上以生活中常用的中文筆劃排序的設定練習,簡單紀錄一次~這些步驟在原生的 PGSQL 11 也適用~

2019年6月9日 星期日

不小心在 EDB 企業版鎖住 Superuser 帳號時。。。

在 EDB 提供的 Postgres 企業版所內建的 Oracle 相容功能中,有提供 Oracle 帳號的 Account Lock 功能
若。。。不小心把這個功能指定到資料庫的 Superuser(enterprisedb),把 enterprisedb 鎖住了,然後又已經登出了。。
edb=# alter user enterprisedb account lock;
ALTER ROLE
edb=# \q
-bash-4.2$ 
-bash-4.2$ psql -U enterprisedb
psql.bin: FATAL:  role "enterprisedb" is locked
-bash-4.2$ 

又偏偏沒有其他 Superuser 帳號的話,該怎辦。。。