Fehler ausführen:Kann nicht SQL-Abfrage auf Streaming-Replikation Setup-Master-Server Postgresql 9.5
postgres=# insert into company values(4,'tom',21,'pune' ,21);
^CCancel request sent
WARNING: canceling wait for synchronous replication due to user request
DETAIL: The transaction has already committed locally, but might not have been replicated to the standby.
INSERT 0 1
Auch nach dem Fehler er die Abfrage auf dem Master als auch die Replikation Transaktionen den Slave ausgeführt wird.
auf Master:
postgres=# SELECT pg_current_xlog_location();
pg_current_xlog_location
--------------------------
0/1900D0C0
(1 row)
Auf Slave:
postgres=# SELECT pg_last_xlog_receive_location();
pg_last_xlog_receive_location
-------------------------------
0/1900D0C0
(1 row)
synchronous_standby_name setzen auf Master aus Config-Datei (von mir gesetzt) unterscheidet sich von der application_name Ich sehe es in den Akten von pg_stats_replication Tabelle. Viele der Lösungen haben vorgeschlagen, den Anwendungsnamen zu ändern. Allerdings bin ich mir nicht sicher, von wo es Anwendungsname als Walreceiver auf dem Master nimmt.
auf Master:
postgres=# select application_name, sync_state from pg_stat_replication;
application_name | sync_state
------------------+------------
walreceiver | async
(1 row)
postgres=# show synchronous_standby_names;
synchronous_standby_names
---------------------------
slave1
(1 row)
postgres=# show synchronous_commit;
synchronous_commit
--------------------
on
(1 row)
Einer der Lösung, die ich gefunden ist Tabellenverzeichnis unter dem Pfad ‚/var/lib/pgsql/9.2/data/‘ zu schaffen, die zur Zeit habe ich nicht. Ich bin nicht sicher, ob diese Lösung für 9.5 PostgreSQL funktioniert.
Jede Hilfe zu diesem wird geschätzt. Vielen Dank.