MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

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

2020年11月14日 星期六

解剖 PGSQL 的資料檔:pg_filedump 工具練習

通常來說,使用 PGSQL 會避免人工去觸碰表格的資料檔:那些位於 $PGDATA/base/ 或是各個外部 Tablespace 裡面的檔案(原則上~除了 Log 目錄跟設定檔之外的東西不要亂碰比較好~)

不過在開發資料庫原始碼或是進行罕見問題除錯,還是有一點可能去碰的。

這邊紀錄的一個叫做 pg_filedump 的工具,專門將資料檔的內容「倒出來」。

2020年9月15日 星期二

2020年9月13日 星期日

PGSQL 外掛 DIY 筆記—數值 array 排序練習

開源軟體的特點,就是讓你可以跳下去寫程式。PGSQL 也不例外~~然而,除了核心專案本身的開發之外,熱門軟體常常有提供外掛開發 API,讓使用者擴充功能(例如,貼近生活的瀏覽器 Chrome 外掛Firefox 外掛,文書編輯軟體 Libreoffice,或是工作上會使用的新興商業軟體,如 Tableau 等~)
在 Postgres 裡面,外掛的開發蠻貼近原始碼的,這邊就認識一下最簡易的開發,自製外掛~
雖然已經有幾篇不錯的參考教學了(見這篇筆記後的參考資料),但這邊還是紀錄一篇用自己的話來述說的筆記。

2020年6月14日 星期日

EnterpriseDB 的移轉輔助平台—EDB Migration Portal


EnterpriseDB 提供 Oracle 開發相容性的解決方案,讓使用者可以有一個機會,評估搬遷 Oracle 資料庫到 EDB Postgres 資料庫平台,適當的降低對 Oracle 資料庫的依賴。

搬遷資料庫有三個面向:
  • 資料庫內的物件搬遷/改寫:就是俗稱的 SQL DDL,如同程式碼的東西
  • 資料庫內的資料搬遷:當然~搬「資料」庫就是要搬資料ㄚ
  • 應用程式端的測試/改寫:這個情況比較複雜,有時有歷史包袱。要實際測試才能知道花費的力氣有多少

EDB 針對三點,各有解決方案
  • 資料庫內的物件:EDB 企業版具備 Oracle 開發相容性,以及移轉輔助平台 EDB Migration Portal
  • 資料庫內的資料搬遷:EDB 提供資料移轉工具 EDB Migration Toolkit,支援 JDBC Batch Mode 以及 OCI 高速資料搬遷功能
  • 應用程式端:單就程式碼而言,主流並具備抽象的 DB API 的程式語言 Java、ADO .Net 等改寫比較輕鬆;EDB 也針對 C 開發的程式(OCI、Pro*C)盡可能提供相容性。不過這段還會牽扯到跨系統介接,需要多作評估。

這個筆記要介紹的是資料庫內的物件移轉平台,EDB Migration Portal 的操作。

2020年5月28日 星期四

在 LXD 裡面設定 OpenLDAP Container (no SSL) 與 PGSQL 的 LDAP 認證介接

很多中大型的公司,會使用 LDAP 帳號管理服務,管理各種登入。不過多數時候不會有資料庫登入認證套用 LDAP 的時候:因為一般資料庫更多時候是設計好的程式跟資料庫互動訪問,比較少讓人類直接進入操作。
但還是有些時候,會有開放員工使用的資料庫,這時未惹不讓大家的腦袋被帳密塞爆,就會設定 LDAP 認證。
不過。。。LDAP 其實蠻難的。。這個筆記就準備一個 OpenLDAP 測試環境(主要內容),最後再用一個 PGSQL 的 LDAP 連線認證練習(附贈內容)~

2020年4月22日 星期三

「次」簡單裝 pgAdmin4 Server

撇開通用的資料庫連線 GUI 工具(例如這隻松鼠 SQiurreL 或是這隻海貍 DBeaver~或是要$$的蟾蜍),pgAdmin 是 PGSQL 長久以來的專屬 GUI 連線工具,比較入門都是先用這個(其實還有 phpPgAdminOmniDB,也是 OK 的選項~)。而 EnterpriseDB 的企業版管理平台 EDB Postgres Enterprise Manager 也是基於 pgAdmin 擴充而成的產品。

在 pgAdmin 從第三代改成第四代之後,pgAdmin4 變成一個網頁版 UI,可以安裝到獨立組機提供多人使用的服務。

這邊簡單的紀錄在 CentOS 7 Linux 底下的簡單版安裝步驟。

2020年4月1日 星期三

在 LXD Ubuntu Container 裡面不簡單裝 Minikube

測試用的 Kubernetes 要在 LXD 底下設置,有兩三種方法,主要是透過額外的服務輔助,像是 Installing to a local machine | Charmed Kubernetes documentation | UbuntuTutorial Part 1: Kubernetes up and running on LXC/LXD - Medium : kubernetes 這兩篇,用的是 Jujuconjure-up

不過這邊要使用比較 DIY 的方式演練,主要依照這篇進行設置 Medium: Setup Minikube inside LXC Container to create as many one-node Kubernetes clusters as you want.。不過這邊不打包 LXD Image,而是直接設置。另外相似的教學有 Run Minikube in LXD · GitHubKubernetes Lxd - Awesome Open Source 這兩篇,可以交互參照。

2020年3月28日 星期六

台灣時區的時戳資料超前 14 小時的神秘問題

PostgreSQL 跟 Linux 作業系統在時區設定上的狀況如下:

  • Linux 電腦的 OS 時區設定成 IANA 時區識別代號 Asia/Taipei;在 SystemD 的系統中,timedatectl 會顯示 Asia/Taipei,而 date 指令則以 Timezone Abbreviation 呈現出容易在各種面向混淆的 CST 縮寫顯示。
  • PostgreSQL 的時區在初始化 (initdb) 時決定(可以隨時調整)。沒有特別指定,維持預設。此時 Postgres initdb 會偵測 OS 的時區設定值,設定成相同時區。當 OS 設定成 Asia/Taipei 時,在 Postgres 會初始化成 ROC。
  • Postgres 的時間函數,都會以 UTC offset 的方式顯示時區;然而,Postgres log 的時戳格式,則會以 Timezone Abbreviation 顯示。

然而,這樣會出現一個問題。

2020年3月27日 星期五

在 LXD 裡簡單裝 RStudio-Server

R Sutdio 是 R 語言專用的圖形界面,而 R Studio Server 是多用戶的網頁版。
這篇是一個把 R Studio Server 裝在 LXD 底下的 CentOS8 Container 的紀錄。

2020年3月13日 星期五

PostgreSQL Dump:匯出&匯入步驟小抄

Postgres 要進行升版,可以用匯出/匯入的老方法,或是 pg_upgrade 新方法。目前傾向使用 pg_upgrade,比較少用 Dump 搬遷。
不過。。。因為近期簡單的整理了一下 Dump 的步驟,所以就記錄下來。
這篇特別一點點的地方,主要是用了 psql Script 的互動式問答功能作輔助~

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 中,提供了圖形化備份整合功能。
有了圖形化整合,用戶可以方便的設定備份功能,以及設定備份排程,並且檢視備份紀錄。
以下紀錄操作的筆記。

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 的狀態。