這裡簡單紀錄一下 Docker CE 裡面對 EDB Container Registry v2.3 的功能體驗筆記。
MathJax
MathJax-2
MathJax-3
Google Code Prettify
置頂入手筆記
EnterproseDB Quickstart — 快速入門筆記
由於考慮採用 EnterpriseDB 或是直接用 PostgreSQL 的人,通常需要一些入手的資料。這邊紀錄便提供相關快速上手的簡單筆記 ~ 這篇筆記以 資料庫安裝完畢後的快速使用 為目標,基本紀錄登入使用的範例:
2018年10月16日 星期二
EDB 的 Postgres 企業版的 Docker 容器 v2.3 簡易試用筆記
近日 PostgreSQL 的企業版服務公司 EnterpriseDB 提供了其企業版產品的 Docker 容器服務。只要是 Docker Container 引擎為基礎的容器平台(Docker CE,Docker EE 或其他像 Red Hat OpenShift 平台等)都可以在認證後登入 EDB 提供的 Docker Registry(訂閱期間的用戶都可以~)去拉資料庫的 Image。
這裡簡單紀錄一下 Docker CE 裡面對 EDB Container Registry v2.3 的功能體驗筆記。
這裡簡單紀錄一下 Docker CE 裡面對 EDB Container Registry v2.3 的功能體驗筆記。
2018年10月2日 星期二
在 Postgres 10 擴增 Big5 中文難字 — 從原始碼開始(用 Big5-2003 字碼集)
PostgreSQL 不支援「直接」儲存 Big5 編碼(聽說很古老的版本有支援,但我不清楚...),因此目前的 PGSQL 資料庫支援 Big5 的方式,是把裡面存放的 UTF8 編碼資料,利用內建編碼表,轉換成 Big5 編碼,再把資料送往 Client 端。如果前端送來的是 Big5 編碼,指名 client_encoding 之後,PGSQL 就會進行編碼轉換,以 UTF8 存放到資料庫裡面。
由於 Postgres 會嚴謹檢查資料的規格,不符的會拒絕吃進來,因此遇到沒有內建的 Big5 ↔ UTF8 編碼,會拒絕該筆資料,回傳錯誤。
PGSQL 10 支援的是標準字區,以及 CP950 (可以到 Unicode 官方網站找到 CP950 原始對照表)的 0xf9d6-0xf9d 部份(這件事寫在原始碼的 UCS_to_BIG5.pl 這份 Perl Script 裡面)。在這個範圍之外的 Big5 字碼,對 PGSQL 都是從缺,沒有對應。
但是,上述被拒絕的狀況,在台灣偏偏是常常發生...原因是,過往很多系統都會有自造 Big5 字碼,通常會依照各自單位的內部規則,這些自造字用的字碼區,偏偏又在 PGSQL 不認得的區段,所以會發生錯誤..
因此,這裡要紀錄的是,如何從原始碼擴增字碼,讓 PGSQL 認得自造 Big5 字碼。
由於 Postgres 會嚴謹檢查資料的規格,不符的會拒絕吃進來,因此遇到沒有內建的 Big5 ↔ UTF8 編碼,會拒絕該筆資料,回傳錯誤。
PGSQL 10 支援的是標準字區,以及 CP950 (可以到 Unicode 官方網站找到 CP950 原始對照表)的 0xf9d6-0xf9d 部份(這件事寫在原始碼的 UCS_to_BIG5.pl 這份 Perl Script 裡面)。在這個範圍之外的 Big5 字碼,對 PGSQL 都是從缺,沒有對應。
但是,上述被拒絕的狀況,在台灣偏偏是常常發生...原因是,過往很多系統都會有自造 Big5 字碼,通常會依照各自單位的內部規則,這些自造字用的字碼區,偏偏又在 PGSQL 不認得的區段,所以會發生錯誤..
因此,這裡要紀錄的是,如何從原始碼擴增字碼,讓 PGSQL 認得自造 Big5 字碼。
2018年9月6日 星期四
PostgreSQL 和 EDB Postgres 企業版的 Stored Procedure 的 debugger 操作筆記
PostgreSQL 有提供 PL/pgSQL 的除錯外掛,啟用後,會整合 pgAdmin4 進行 Stored Procedure 的除錯。
若使用的是企業版,則可以額外進行 Oracle 相容的 Stored Procedure 的除錯。
這裡紀錄 EDB 10 企業版搭配 pgAdmin4 v2 設定的筆記。
若使用的是企業版,則可以額外進行 Oracle 相容的 Stored Procedure 的除錯。
這裡紀錄 EDB 10 企業版搭配 pgAdmin4 v2 設定的筆記。
2018年8月23日 星期四
在 docker container 裡面執行 systemd 服務(測試環境用~)
RHEL 7 之後引進了 SystemD 這個萬惡的 INIT 系統,以其 Process 的控制上很龜毛嚴謹著稱。
Docker 容器與 Virtual Machine 不同,它本質上是一個運作環境被隔離起來的系統子程序,在 Host 上共用了底層的資源,例如 Linux 核心。
當上述兩者相遇,就有不直覺的事情產生了:當我們打包一些程式,裡面包含了 SystemD Service File,若我們希望可以在 Docker Container 裡面透過 systemd 的指令 systemctl 啟動程序的話,需要一些先決條件跟額外處置才行。
Docker 容器與 Virtual Machine 不同,它本質上是一個運作環境被隔離起來的系統子程序,在 Host 上共用了底層的資源,例如 Linux 核心。
當上述兩者相遇,就有不直覺的事情產生了:當我們打包一些程式,裡面包含了 SystemD Service File,若我們希望可以在 Docker Container 裡面透過 systemd 的指令 systemctl 啟動程序的話,需要一些先決條件跟額外處置才行。
2018年8月17日 星期五
偷跑篇:EDB11新的小功能 — PRAGMA AUTONOMOUS TRANSACTION
關聯式資料庫有交易的概念,確保多用戶進行資料的查詢/異動有一個規範。有一些 Oracle 用戶會使用到更進階的交易,叫做 Autonomous Transaction,能夠從當前交易中「再」分支的一個交易。
通常聽到這功能的用途,是有一些作業,需要避免會被當前作業的成敗所影響,最常見的就是額外的 Log 紀錄。
這種功能在 PostgreSQL 裡面其實一直都從缺(可能是因為 PGSQL 社群上開發的人都偏好扁平式的系統設計&規劃?),但是在一些習慣 Oracle 的用戶來說,已經有一些既定的規範,非得使用這種功能才行。
之前已經有一次筆記,演練這個功能的 Workaround 手法,不過現在(2018 年 8 月),下一版的 EDB Postgres 企業版 v11 總算補上了這個「Oracle 相容」功能~
通常聽到這功能的用途,是有一些作業,需要避免會被當前作業的成敗所影響,最常見的就是額外的 Log 紀錄。
這種功能在 PostgreSQL 裡面其實一直都從缺(可能是因為 PGSQL 社群上開發的人都偏好扁平式的系統設計&規劃?),但是在一些習慣 Oracle 的用戶來說,已經有一些既定的規範,非得使用這種功能才行。
之前已經有一次筆記,演練這個功能的 Workaround 手法,不過現在(2018 年 8 月),下一版的 EDB Postgres 企業版 v11 總算補上了這個「Oracle 相容」功能~
2018年8月6日 星期一
PGSQL內建加密模組—pgcrypto 練習
Postgres 裡面有很豐富的資料加密函數可以使用,叫做 pgcrypto 模組,可以用來實作資料加密的規劃。
pgcrypto 模組支援資料單向的 hash 處理,摻鹽巴算 hash,加密碼算 hash,GnuPG 的金鑰整合等等功能。
這裡作一個相關的使用練習。
pgcrypto 模組支援資料單向的 hash 處理,摻鹽巴算 hash,加密碼算 hash,GnuPG 的金鑰整合等等功能。
這裡作一個相關的使用練習。
2018年7月10日 星期二
沒有 Primary Key 或 Unique Key 的 PGSQL 表格,怎麼去除重複的資料
有時候可能某些表格沒有建立 Primary Key 或 Unique Key(真糟糕~),這時候可能有完全重複的資料,這時候要怎麼抓出來?或是只保留一筆?
訂閱:
文章 (Atom)