一般指示
資料庫複製是建立資料庫副本並將其儲存在各種內部部署或雲端目的地的過程。Prisma Pulse 使用邏輯複製來監控您的資料庫變更。
啟用邏輯複製
必要設定
您可以透過在資料庫中將 wal_level
設定為 logical
來啟用邏輯複製。
ALTER SYSTEM SET wal_level = logical;
變更此設定後,您需要重新啟動資料庫。
注意:某些供應商可能不允許直接存取此設定。如果您無法透過上述 SQL 命令變更此設定,請參閱特定供應商指南以取得進一步協助。
選用設定
wal_keep_size
設定 wal_keep_size
會增加 PostgreSQL 資料庫上預寫式日誌的記憶體使用量。
我們建議根據資料庫的儲存容量設定 wal_keep_size
的值。這可確保您的資料庫和 Prisma Pulse 順利運作。
ALTER SYSTEM SET wal_keep_size = 2048;
max_replication_slots
Prisma Pulse 只需要一個可用的複製槽。如果您有其他複寫正在使用中,您可以設定 max_replication_slots
。
ALTER SYSTEM SET max_replication_slots = 20;
REPLICA IDENTITY
對於更新和刪除事件,您可以選擇在事件中包含操作之前記錄的值
- 對於
update
:在名為before
的欄位中,包含執行更新之前更新記錄的值 - 對於
delete
:包含已刪除記錄的值。
如果您啟用此功能,您還可以依這些欄位進行篩選。
若要包含此資料,您必須將您要取得欄位值的表格上的 REPLICA IDENTITY
設定為 FULL
。
例如,執行以下 SQL 命令會將名為 User
的表格上的 REPLICA IDENTITY
設定為 FULL
ALTER TABLE public."User" REPLICA IDENTITY FULL;
管理 Pulse 監控的表格
預設情況下,Pulse 會監控資料庫中所有表格的變更。如果您想要為特定模型啟用複寫,或者如果您使用的資料庫供應商限制 Prisma Pulse 的超級使用者存取權限,您可以設定自己的發布槽。發布槽是主要資料庫中的保留空間,用於將資料發布到複本。它允許資料庫透過發布來自特定表格或操作的資料來追蹤變更。如果您想要設定自己的發布槽並啟用 Pulse,您需要選擇我們的付費方案之一。
建立發布槽
您可以根據 PostgreSQL 資料庫的版本,透過以下方式建立發布。
所有模型的發布。
CREATE PUBLICATION all_models FOR ALL TABLES;
特定欄位的發布。
例如,建立一個發布,發布表格 users
的所有變更,但僅複製欄位 user_id
和 firstname
CREATE PUBLICATION users_filtered FOR TABLE users (user_id, firstname);
特定模型的發布。
例如,建立一個發布,發布兩個表格中的所有變更
CREATE PUBLICATION user_and_department_publication FOR TABLE users, departments;
具有 WHERE
子句的模型欄位發布。
例如,建立一個發布,發布來自活動 departments
的所有變更
CREATE PUBLICATION active_departments FOR TABLE departments WHERE (active IS TRUE);
基於 DML 操作的發布。
例如,建立一個發布,僅發布一個表格中的 INSERT
操作
CREATE PUBLICATION insert_only FOR TABLE departments
WITH (publish = 'insert');
publish
(string
)此參數決定新發布將發布到訂閱者的 DML 操作。該值是以逗號分隔的操作列表。允許的操作為
insert
、update
、delete
和truncate
。預設值為發布所有動作,因此此選項的預設值為'insert, update, delete, truncate'
。
您可以在此處了解有關 PostgreSQL 的 CREATE PUBLICATION
、支援版本並查看更多範例。
提交您的發布槽
您可以在中提交發布名稱,在啟用 Prisma Pulse 之前
-
若要查看您的發布,請執行
SELECT * FROM pg_publication_tables;
-
導航至Prisma Data Platform以啟用 Pulse。
-
在資料庫連線區段中,提交資料庫連線字串和區域。
-
在 Pulse 的專案環境設定中,於發布名稱欄位中輸入發布名稱。若要存取此設定,請在資料庫複製區段中切換自動設定按鈕(付費方案提供)。
-
切換自動設定後,按鈕將轉換為進階設定,並顯示標示為發布名稱的文字方塊。
-
從步驟 2 複製並貼上發布名稱。
-
點擊啟用 Pulse。
移除發布
如果您獨立管理複寫並選擇停用特定環境的 Prisma Pulse,您可以參考以下 SQL 查詢來移除發布。
-
若要刪除發布
DROP PUBLICATION IF EXISTS "my_publication";
-
查看您的發布
SELECT * FROM pg_publication_tables;
特定供應商指示
如果您想查看資料庫的特定指示,請選擇您的資料庫供應商