Datenbank-Flags konfigurieren

Auf dieser Seite wird gezeigt, wie Sie Datenbank-Flags für Cloud SQL konfigurieren und welche Flags sich für Ihre Instanz festlegen lassen. Sie können Datenbank-Flags für viele Vorgänge verwenden, z. B. für das Anpassen von PostgreSQL-Parametern und Optionen sowie für das Konfigurieren und Optimieren einer Instanz.

In einigen Fällen ist es notwendig, mit dem Festlegen eines Flags ein anderes Flag zu setzen, damit die Funktionalität in vollem Umfang zur Verfügung steht.

Wenn Sie ein Flag für eine Datenbankinstanz festlegen, entfernen oder ändern, wird die Datenbank möglicherweise neu gestartet. Der Wert des Flags wird dann für die Instanz beibehalten, bis Sie es entfernen. Wenn die Instanz die Quelle für ein Replikat ist, wird das Replikat ebenfalls neu gestartet, um es an die aktuelle Konfiguration der Instanz anzupassen.

Datenbank-Flags konfigurieren

Wert für Datenbank-Flag festlegen

Console

  1. Erstellen Sie in der Google Cloud Console ein neues Cloud Console-Projekt oder rufen Sie ein vorhandenes Projekt durch Auswahl des Projektnamens auf.
  2. Öffnen Sie die Instanz und klicken Sie auf Bearbeiten.
  3. Scrollen Sie nach unten zum Abschnitt Flags.
  4. Zum Setzen eines neuen Flags, das noch nicht in der Instanz gesetzt wurde, klicken Sie auf Zeile hinzufügen, wählen Sie das Flag aus dem Drop-down-Menü aus und legen Sie dessen Wert fest.
  5. Klicken Sie auf Speichern, um die Änderungen zu speichern.
  6. Bestätigen Sie die Änderungen auf der Übersichtsseite unter Flags.

gcloud

Bearbeiten Sie die Instanz:

gcloud sql instances patch [INSTANCE_NAME] --database-flags [FLAG1=VALUE1,FLAG2=VALUE2]

Mit diesem Befehl werden alle zuvor festgelegten Datenbank-Flags überschrieben. Wenn Sie diese Flags beibehalten und neue Flags hinzuzufügen möchten, geben Sie die Werte für alle Flags an, die Sie für die Instanz festlegen möchten. Für alle Flags, die nicht ausdrücklich angegeben werden, gilt der Standardwert. Für Flags, die keinen Wert haben, geben Sie den Flag-Namen gefolgt von einem Gleichheitszeichen ("=") ein.

REST

Mit der Anfrage unten legen Sie ein Flag für eine vorhandene Datenbank fest.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID

HTTP-Methode und URL:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

Wenn bereits konfigurierte Flags für die Datenbank vorhanden sind, ändern Sie den obigen Befehl und fügen diese ein. Der Befehl PATCH überschreibt vorhandene Flags mit den Flags, die in der Anfrage festgelegt sind.

Alle Flags auf Standardwert zurücksetzen

Console

  1. Erstellen Sie in der Google Cloud Console ein neues Cloud Console-Projekt oder rufen Sie ein vorhandenes Projekt durch Auswahl des Projektnamens auf.
  2. Öffnen Sie die Instanz und klicken Sie auf Bearbeiten.
  3. Öffnen Sie den Bereich Datenbank-Flags.
  4. Klicken Sie neben allen angezeigten Flags auf X.
  5. Klicken Sie auf Speichern, um die Änderungen zu speichern.

gcloud

Setzen Sie alle Flags in einer Instanz auf ihren Standardwert zurück:

gcloud sql instances patch [INSTANCE_NAME] --clear-database-flags

Sie werden aufgefordert, den Neustart der Instanz zu bestätigen.

REST

So löschen Sie alle Flags in einer vorhandenen Instanz:

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID

HTTP-Methode und URL:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings":
  {
    "databaseFlags": []
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

Aktuelle Werte von Datenbank-Flags abrufen

Zum Abrufen aller aktuellen Werte der PostgreSQL-Einstellungen melden Sie sich mit dem psql-Client bei Ihrer Instanz an und geben die folgende Anweisung ein:

 SELECT name, setting FROM pg_settings;

Sie können den Wert nur für unterstützte Flags ändern (wie unten aufgeführt).

Für eine Instanz festgelegte Datenbank-Flags ermitteln

So rufen Sie alle für eine Cloud SQL-Instanz festgelegten Flags auf:

Console

  1. Erstellen Sie in der Google Cloud Console ein neues Cloud Console-Projekt oder rufen Sie ein vorhandenes Projekt durch Auswahl des Projektnamens auf.
  2. Wählen Sie die Instanz aus, um die Seite Instanzübersicht zu öffnen.

    Die gesetzten Flags werden im Bereich Datenbank-Flags aufgelistet.

gcloud

Rufen Sie den Status der Instanz ab:

gcloud sql instances describe [INSTANCE_NAME]

In der Ausgabe werden Datenbank-Flags unter settings als databaseFlags-Sammlung aufgelistet. Weitere Informationen zur Darstellung der Flags in der Ausgabe finden Sie unter Darstellung von Instanzressourcen.

REST

So listen Sie Flags auf, die für eine Instanz konfiguriert sind:

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID

HTTP-Methode und URL:

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

Suchen Sie in der Ausgabe nach dem Feld databaseFlags.

Unterstützte Flags

Für ein bestimmtes Flag unterstützt Cloud SQL eventuell einen anderen Wertebereich für den entsprechenden PostgreSQL-Parameter oder für die entsprechende PostgreSQL-Option.

A | C | D | E | F | G | H | I | J | L | M | O | P | R | S | T | V | W

Cloud SQL-Flag Typ
Gültige Werte und Hinweise
Neustart
erforderlich?
In der Betaphase?
autovacuum boolean
on | off
Nein Nein
autovacuum_analyze_scale_factor float
0 ... 100
Nein Nein
autovacuum_analyze_threshold integer
0 ... 2147483647
Nein Nein
autovacuum_freeze_max_age integer
100000 ... 2000000000
Ja Ja
autovacuum_max_workers integer
1 ... varies (see note)

Ja Nein
autovacuum_multixact_freeze_max_age integer
10000 ... 2000000000
Ja Ja
autovacuum_naptime integer
1 ... 2147483 s
Nein Nein
autovacuum_vacuum_cost_delay integer
0 ... 100 ms, oder -1 zur Verwendung des Werts von vacuum_cost_delay
Nein Nein
autovacuum_vacuum_cost_limit integer
0 ... 10000, oder -1 zur Verwendung des Werts von vacuum_cost_limit
Nein Nein
autovacuum_vacuum_scale_factor float
0 ... 100
Nein Nein
autovacuum_vacuum_threshold integer
0 ... 2147483647
Nein Nein
autovacuum_work_mem integer
0 ... 2147483647 KB, oder -1 zur Verwendung des Werts von maintenance_work_mem
Nein Ja
checkpoint_completion_target float
0.0 ... 1.0
Nein Nein
checkpoint_timeout integer
30 ... 86400 s
Nein Ja
checkpoint_warning integer
0 ... 2147483647 s
Nein Nein
commit_delay integer
0 ... 100000
Nein Nein
commit_siblings integer
0 ... 1000
Nein Nein
constraint_exclusion enumeration
partition | on | off
Nein Nein
cpu_index_tuple_cost float
0.0 ... inf
Nein Nein
cpu_operator_cost float
0.0 ... inf
Nein Nein
cpu_tuple_cost float
0.0 ... inf
Nein Nein
cursor_tuple_fraction float
0.0 ... 1.0
Nein Nein
deadlock_timeout integer
1 ... 2147483647 ms
Nein Nein
default_statistics_target integer
1 ... 10000
Nein Nein
default_tablespace string Nein Nein
default_transaction_deferrable boolean
on | off
Nein Nein
default_transaction_isolation enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
Nein Nein
enable_bitmapscan boolean
on | off
Nein Nein
enable_hashagg boolean
on | off
Nein Nein
enable_hashjoin boolean
on | off
Nein Nein
enable_indexonlyscan boolean
on | off
Nein Nein
enable_indexscan boolean
on | off
Nein Nein
enable_material boolean
on | off
Nein Nein
enable_mergejoin boolean
on | off
Nein Nein
enable_nestloop boolean
on | off
Nein Nein
enable_seqscan boolean
on | off
Nein Nein
enable_sort boolean
on | off
Nein Nein
enable_tidscan boolean
on | off
Nein Nein
force_parallel_mode enumeration
off | on | regress
Nein Nein
from_collapse_limit integer
1 ... 2147483647
Nein Nein
geqo boolean
on | off
Nein Nein
geqo_effort integer
1 ... 10
Nein Nein
geqo_generations integer
0 ... 2147483647
Nein Nein
geqo_pool_size integer
0 ... 2147483647
Nein Nein
geqo_seed float
0.0 ... 1.0
Nein Nein
geqo_selection_bias float
1.5 ... 2.0
Nein Nein
geqo_threshold integer
2 ... 2147483647
Nein Nein
gin_fuzzy_search_limit integer
0 ... 2147483647
Nein Nein
gin_pending_list_limit integer
64 ... 2147483647 KB
Nein Nein
hot_standby_feedback boolean
on | off
Nein Nein
idle_in_transaction_session_timeout integer
0 ... 2147483647 ms
Nein Nein
join_collapse_limit integer
1 ... 2147483647
Nein Nein
lock_timeout integer
0 ... 2147483647 ms
Nein Nein
log_autovacuum_min_duration integer
0 ... 2147483647 ms, oder -1 zur Deaktivierung
Nein Nein
log_checkpoints boolean
on | off
Nein Nein
log_connections boolean
on | off
Nein Nein
log_disconnections boolean
on | off
Nein Nein
log_duration boolean
on | off
Nein Nein
log_error_verbosity enumeration
terse | default | verbose
Nein Nein
log_executor_stats boolean
on | off
Nein Nein
log_hostname boolean
on | off
Nein Nein
log_lock_waits boolean
on | off
Nein Nein
log_min_duration_statement integer
-1 ... 2147483647 ms
Nein Nein
log_min_error_statement enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Nein Nein
log_min_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Nein Nein
log_parser_stats boolean
on | off
Nein Nein
log_planner_stats boolean
on | off
Nein Nein
log_replication_commands boolean
on | off
Nein Nein
log_statement enumeration
none | ddl | mod | all
Nein Nein
log_statement_stats boolean
on | off
Kann möglicherweise nicht zusammen mit log_parser_stats, log_planner_stats oder log_executor_stats aktiviert werden.
Nein Nein
log_temp_files integer
0 ... 2147483647 KB, oder -1 zur Deaktivierung
Nein Nein
maintenance_work_mem integer
1024 ... 2147483647 KB
Nein Ja
max_connections integer
14 ... varies (see note)

Der Wert der Replikate muss größer oder gleich dem Wert des Primären sein. Änderungen am Primären werden an Replikate weitergegeben, deren Wert niedriger als der neue Wert des Primären ist oder der nicht vom Standardwert geändert wurde.

Ja Ja
max_locks_per_transaction integer
10 ... 2147483647

Der Wert der Replikate muss größer oder gleich dem Wert des Primären sein. Änderungen am Primären werden an Replikate weitergegeben, deren Wert niedriger als der neue Wert des Primären ist oder der nicht vom Standardwert geändert wurde.

Ja Ja
max_prepared_transactions integer
0 ... 262143

Der Wert der Replikate muss größer oder gleich dem Wert des Primären sein. Änderungen am Primären werden an Replikate weitergegeben, deren Wert niedriger als der neue Wert des Primären ist oder der nicht vom Standardwert geändert wurde.

Ja Ja
max_standby_archive_delay integer
0 ... 2147483647 ms, oder -1 für unbegrenztes Warten
Nein Nein
max_standby_streaming_delay integer
0 ... 2147483647  ms, oder -1 für unbegrenztes Warten
Nein Nein
max_wal_size integer
2 ... 2147483647

Die Einheit ist 1 MB für Postgres 10, 11 und 12. Die Einheit ist 16 MB (die WAL-Dateigröße) für Version 9.6.

Nein Ja
min_parallel_relation_size integer
0 ... 715827882
Einheit ist 8 KB
Nein Nein
old_snapshot_threshold integer
0, oder ... 86400 min, oder -1 zur Deaktivierung
Ja Nein
parallel_setup_cost float
0.0 ... inf
Nein Nein
parallel_tuple_cost float
0.0 ... inf
Nein Nein
pg_stat_statements.max integer
100 ... 2147483647
Ja Nein
pg_stat_statements.save boolean
on | off
Nein Nein
pg_stat_statements.track enumeration
none | top | all
Nein Nein
pg_stat_statements.track_utility boolean
on | off
Nein Nein
random_page_cost float
0.0 ... inf
Nein Nein
replacement_sort_tuples integer
0 ... 2147483647
Nein Nein
ssl_max_protocol_version enumeration
Postgres 12: Legt die höchste zu verwendende SSL-/TLS-Protokollversion fest. Gültige Werte sind wie für ssl_min_protocol_version, wobei ein leerer String eingefügt wird, der die Angabe einer beliebigen Protokollversion ermöglicht.
Nein Nein
ssl_min_protocol_version enumeration
Postgres 12: Legt die minimale SSL/TLS-Protokollversion fest, die verwendet werden soll. Gültige Werte: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.

Der Standardwert ist TLSv1.

Nein Nein
standard_conforming_strings boolean
on | off
Nein Nein
synchronize_seqscans boolean
on | off
Nein Nein
temp_buffers integer
100 ... 1073741823
Einheit ist 8 KB
Nein Ja
temp_file_limit integer
1048576 ... 2147483647 KB
Nein Nein
trace_notify boolean
on | off
Nein Nein
trace_recovery_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
Nein Nein
trace_sort boolean
on | off
Nein Nein
track_activities boolean
on | off
Nein Nein
track_activity_query_size integer
100 ... 102400
Ja Nein
track_commit_timestamp boolean
on | off
Ja Nein
track_counts boolean
on | off
Nein Nein
track_functions enumeration
none | pl | all
Nein Nein
track_io_timing boolean
on | off
Nein Nein
vacuum_cost_delay integer
0 ... 100 ms
Nein Nein
vacuum_cost_limit integer
1 ... 10000
Nein Nein
vacuum_freeze_min_age integer
0 ... 1000000000
Nein Nein
vacuum_freeze_table_age integer
0 ... 2000000000
Nein Nein
vacuum_multixact_freeze_min_age integer
0 ... 1000000000
Nein Nein
vacuum_multixact_freeze_table_age integer
0 ... 2000000000
Nein Nein
work_mem integer
64 ... 2147483647 KB
Nein Ja

Fehlerbehebung

Klicken Sie auf die Links in der Tabelle, um weitere Informationen zu erhalten:

Problem Mögliche Ursache Lösungsvorschlag
Es ist kein Flag zur Festlegung der Zeitzone vorhanden. Zeitzonen-Flags werden nicht unterstützt. Es sind einige Problemumgehungen vorhanden.

Es ist kein Flag zur Festlegung der Zeitzone vorhanden.

Postgres unterstützt kein Zeitzonen-Flag zur Anpassung der Zeitzone an die Anforderungen von Nutzern.

Mögliche Ursache

Zeitzonen-Flags werden nicht unterstützt.

Lösungsvorschlag

Sie können die Zeitzone pro Sitzung festlegen. Diese läuft aber ab, wenn Sie sich abmelden. Eine bessere Lösung besteht darin, eine Verbindung zur Datenbank herzustellen und als Datenbankzeitzone die gewünschte Zeitzone pro Nutzer oder Datenbank festzulegen:

ALTER DATABASE dbname SET TIMEZONE TO 'timezone';
ALTER USER username SET TIMEZONE TO 'timezone';

Diese Einstellungen bleiben auch nach dem Schließen der Sitzung erhalten. Dadurch wird die .conf-Konfiguration imitiert.

Nächste Schritte