✓インスタンス起動時(shared_preload_libraries = pg_tde 設定時) $ pg_ctl -D data start waiting for server to start.... LOG: Initializing TDE principal key info LOG: initializing TDE key provider info LOG: registered custom resource manager "test_tdeheap_custom_rmgr" with ID 140 LOG: tde_shmem_request: requested 5017672 bytes LOG: initializing shared state for principal key LOG: creating DSA area of size 819200 LOG: initializing dsa area objects for principal key LOG: setting no limit to DSA area of size 819200 LOG: redirecting log output to logging collector process HINT: Future log output will appear in directory "log". done server started
✓テーブル・アクセスメソッドが追加される ✓tde_heap = Percona Server for PostgreSQL ✓tde_heap_basic = Community Version postgres=> SELECT * FROM pg_am WHERE amname LIKE '%tde%' ; oid | amname | amhandler | amtype -------+----------------+------------------------+-------- 16418 | tde_heap_basic | pg_tdeam_basic_handler | t 16420 | tde_heap | pg_tdeam_handler | t (2 rows)
✓実行計画の比較 ✓インデックス一致検索、範囲検索も実行可能 postgres=> EXPLAIN SELECT * FROM tde1 WHERE c1=1000 ; QUERY PLAN ---------------------------------------------------------------------- Index Scan using tde_pkey on tde1 (cost=0.43..8.45 rows=1 width=25) Index Cond: (c1 = 1000) (2 rows) postgres=> EXPLAIN SELECT * FROM tde1 WHERE c2 BETWEEN '1000' AND '2000' ; QUERY PLAN ---------------------------------------------------------------------------------- Index Scan using idx1_tde1 on tde1 (cost=0.43..143892.38 rows=1124749 width=25) Index Cond: (((c2)::text >= '1000'::text) AND ((c2)::text <= '2000'::text)) (2 rows)
✓pg_tde ディレクトリ障害 ✓インスタンス起動不可 PANIC: could not locate a valid checkpoint record at 14/43000028 LOG: startup process (PID 6351) was terminated by signal 6: Aborted LOG: aborting startup due to startup process failure LOG: database system is shut down