我試圖設置從MySQL到Postgres的簡單複製。完全相同的模式。在按照Demo Tutorial中的步驟稍作修改(使用MySQL和Postgres驅動程序)後,我仍無法使複製工作。基於運行bin/sym
SymmetricDS Postgres目標爲所有sym_ *表提供「無法讀取表」
SET GLOBAL show_compatibility_56 = ON
需要在MySQL數據庫- Postgres的我需要使用
protocolVersion=3
而不是2這是在例如設置要設置後需要投訴一些變化。
奇怪的是,SymmetricDS能夠創建sym_*
表,但抱怨無法讀取它們。我已經驗證了bin/sym
運行之前表不存在,但確實存在。這裏是從日誌摘錄
// Successful creation of table
[store-001] - PostgreSqlSymmetricDialect - DDL applied: CREATE TABLE "sym_notification"(
"notification_id" VARCHAR(128) NOT NULL,
...
PRIMARY KEY ("notification_id")
)
...
// Unable to read from created table
[store-001] - PostgreSqlDdlReader - Failed to read table: sym_notification
[store-001] - PostgreSqlDdlReader - Failed to read table: sym_notification
[store-001] - AbstractDatabaseWriter - Did not find the sym_notification table in the target database
[store-001] - PostgreSqlDdlReader - Failed to read table: sym_monitor
[store-001] - PostgreSqlDdlReader - Failed to read table: sym_monitor
[store-001] - AbstractDatabaseWriter - Did not find the sym_monitor table in the target database
同樣的錯誤適用於所有sym_*
表。
數據庫在Docker中運行,但由於SymmetricDS並不是抱怨無法連接,並且能夠創建表,我認爲它與Docker無關。
Postgres DB中的數據庫由engines/store-001.properties
中指定的用戶創建。這仍然可以與角色和訪問權限有關嗎?
任何錯誤消息在Postgres的服務器日誌? –
是的,在它記錄的每個STATEMENT之前,有一個錯誤消息:'錯誤:列am.amcanorder不存在於字符427' @NickBarnes – hanshenrik
看起來像SymmetricDS不支持您的Postgres版本。 'pg_am.amcanorder'列[在9.5](https://www.postgresql.org/docs/9.5/static/catalog-pg-am.html),但是[在9.6中刪除](https:/ /www.postgresql.org/docs/9.6/static/catalog-pg-am.html)。 –