2016-12-23 9 views
1

Ich habe eine Postgres-Instanz mit einem postgres Benutzer.Wie Autocommit dauerhaft abstellen postgres

[email protected]:/# su - postgres 
No directory, logging in with HOME=/ 
$ bash 
[email protected]:$ psql 
psql (9.6.1) 
Type "help" for help. 

postgres=# \echo :AUTOCOMMIT 
on 

In / das ist Postgres Home-Verzeichnis I .psqlrc haben, die wie Idealer Autocommit aus

[email protected]:/$ cat ~/.psqlrc 
\set AUTOCOMMIT off 

sieht gesetzt haben sollte, aber es es schaltet nicht ab. Ich bin neu in Postgres. Irgendwelche Hinweise hier würden helfen. Ich weiß, dass dies keine dauerhafte Lösung ist. Ich habe auch gelesen, dass selbst wenn Auto-Commit aktiviert ist, wenn Sie Transaktionen haben, dann würde es nur committed, wenn Sie Commit aufrufen, egal was die Auto-Commit-Einstellung ist. Ist das wahr?

+0

* Warum * möchten Sie Autocommit ausschalten? Dies ist das Standardverhalten in allen Datenbanken, sogar in denen, die standardmäßig vor 20 oder mehr Jahren deaktiviert waren. Lange Transaktionen sind schlecht für die Skalierbarkeit, geschweige denn den gelegentlichen Verlust von Daten, weil Sie vergessen haben, eine implizit gestartete Transaktion zu begehen. –

+0

'cat ~/.psqlrc' ist nicht' cat/.psqlrc' - zeigt die Ausgabe der letzten? .. –

+0

Autocommit Off hat vor mehr als 20 Jahren Sinn gemacht, weil die Leute tatsächlich DML-Befehle eingegeben haben. Anwendungen sollten jedoch Transaktionen so wenig wie möglich offen halten. Offene Transaktionen verbrauchen Ressourcen und führen zu Blockierungen, was zu einer erheblichen Durchsatzreduzierung führt. –

Antwort

0

Das hängt davon ab, wie Sie in der Vergangenheit mit DBs kommuniziert haben. Anwendungen wie TOAD haben eine Auto-Commit-Funktion, die ausgeschaltet werden kann, und es hat meinen Speck viele Male gespeichert. Das gesagt.

psql hat eine Startdatei psqlrc. Sie können die Autocommit Off-Option zu dieser Datei hinzufügen. Dies funktioniert jedoch nur mit psql.

+0

Wenn Sie sich die Frage ansehen, ist 'psqlrc' das, was das OP bereits versucht hat, aber es funktioniert nicht. Und der erste Absatz fühlt sich hier wie ein Kommentar oder eine Antwort auf eine andere Frage an; Antworten sollten (neben der Frage, die sie beantworten) allein stehen und nicht Teil einer laufenden Diskussion sein. – IMSoP