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 und neu gestartet wird, 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 hinzufü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 Version 1

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

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

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

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/v1/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.

REST v1beta4

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

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

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

HTTP-Methode und URL:

PATCH https://sqladmin.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 Version 1

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

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

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

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/v1/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:

REST v1beta4

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

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

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

HTTP-Methode und URL:

PATCH https://sqladmin.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 Version 1

Mit der Anfrage unten werden die Flags aufgelistet, die für eine Instanz konfiguriert sind.

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

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

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/v1/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.

REST v1beta4

Mit der Anfrage unten werden die Flags aufgelistet, die für eine Instanz konfiguriert sind.

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

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

HTTP-Methode und URL:

GET https://sqladmin.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

Flags, die unten nicht erwähnt werden, werden nicht unterstützt.

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?
autovacuum boolean
on | off
Nutzungsinformationen, die sich auf das SLA auswirken können, finden Sie unter Betriebsrichtlinien für Cloud SQL for PostgreSQL-Instanzen.
Nein
autovacuum_analyze_scale_factor float
0 ... 100
Nein
autovacuum_analyze_threshold integer
0 ... 2147483647
Nein
autovacuum_freeze_max_age integer
100000 ... 2000000000
Nutzungsinformationen, die sich auf das SLA auswirken können, finden Sie unter Betriebsrichtlinien für Cloud SQL for PostgreSQL-Instanzen.
Ja
autovacuum_max_workers integer
1 ... varies (see note)
Ja
autovacuum_multixact_freeze_max_age integer
10000 ... 2000000000
Nutzungsinformationen, die sich auf das SLA auswirken können, finden Sie unter Betriebsrichtlinien für Cloud SQL for PostgreSQL-Instanzen.
Ja
autovacuum_naptime integer
1 ... 2147483 s
Nein
autovacuum_vacuum_cost_delay integer
0 ... 100 ms, oder -1 zur Verwendung des Werts von vacuum_cost_delay
Für PostgreSQL 9.6, 10 und 11, Der Standardwert beträgt 2 ms.
Nein
autovacuum_vacuum_cost_limit integer
0 ... 10000, oder -1 zur Verwendung des Werts von vacuum_cost_limit
Nein
autovacuum_vacuum_scale_factor float
0 ... 100
Nein
autovacuum_vacuum_threshold integer
0 ... 2147483647
Nein
autovacuum_work_mem integer
0 ... 2147483647 KB oder -1 zur Verwendung des Werts von maintenance_work_mem
Nein
checkpoint_completion_target float
0.0 ... 1.0
Nein
checkpoint_timeout integer
30 ... 86,400
Nutzungsinformationen, die sich auf das SLA auswirken können, finden Sie unter Betriebsrichtlinien für Cloud SQL for PostgreSQL-Instanzen.
Nein
checkpoint_warning integer
0 ... 2147483647 s
Nein
cloudsql.enable_pgaudit boolean
on | off
Ja
cloudsql.enable_iam_login
. boolean on off
Standard: off
Aktiviert die Authentifizierung von Datenbanknutzern mithilfe der Cloud SQL IAM-Datenbankauthentifizierung.
Ja
cloudsql.iam_authentication boolean
on | off
Standardeinstellung: off
Ja
cloudsql.enable_pglogical boolean
on | off
Standard: off
Ja
cloudsql.logical_decoding boolean
on | off
Standard: off
Ja
commit_delay integer
0 ... 100000
Nein
commit_siblings integer
0 ... 1000
Nein
constraint_exclusion enumeration
partition | on | off
Nein
cpu_index_tuple_cost float
0.0 ... inf
Nein
cpu_operator_cost float
0.0 ... inf
Nein
cpu_tuple_cost float
0.0 ... inf
Nein
cursor_tuple_fraction float
0.0 ... 1.0
Nein
deadlock_timeout integer
1 ... 2147483647 ms
Nein
default_statistics_target integer
1 ... 10000
Nein
default_tablespace string Nein
default_transaction_deferrable boolean
on | off
Nein
default_transaction_isolation enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
Nein
effective_cache_size integer
Der Größenbereich liegt zwischen 10 % und 70 % des Arbeitsspeichers der Instanz.
Einheit ist 8 KB.
Nein
enable_bitmapscan boolean
on | off
Nein
enable_hashagg boolean
on | off
Nein
enable_hashjoin boolean
on | off
Nein
enable_indexonlyscan boolean
on | off
Nein
enable_indexscan boolean
on | off
Nein
enable_material boolean
on | off
Nein
enable_mergejoin boolean
on | off
Nein
enable_nestloop boolean
on | off
Nein
enable_seqscan boolean
on | off
Nein
enable_sort boolean
on | off
Nein
enable_tidscan boolean
on | off
Nein
force_parallel_mode enumeration
off | on | regress
Nein
from_collapse_limit integer
1 ... 2147483647
Nein
geqo boolean
on | off
Nein
geqo_effort integer
1 ... 10
Nein
geqo_generations integer
0 ... 2147483647
Nein
geqo_pool_size integer
0 ... 2147483647
Nein
geqo_seed float
0.0 ... 1.0
Nein
geqo_selection_bias float
1.5 ... 2.0
Nein
geqo_threshold integer
2 ... 2147483647
Nein
gin_fuzzy_search_limit integer
0 ... 2147483647
Nein
gin_pending_list_limit integer
64 ... 2147483647 KB
Nein
hot_standby_feedback boolean
on | off
Nein
huge_pages enumeration
try | off
Ja
idle_in_transaction_session_timeout integer
0 ... 2147483647 ms
Nein
join_collapse_limit integer
1 ... 2147483647
Nein
lock_timeout integer
0 ... 2147483647 ms
Nein
log_autovacuum_min_duration integer
0 ... 2147483647 ms, oder -1 zur Deaktivierung
Nein
log_checkpoints boolean
on | off
Nein
log_connections boolean
on | off
Nein
log_disconnections boolean
on | off
Nein
log_duration boolean
on | off
Nein
log_error_verbosity enumeration
terse | default | verbose
Nein
log_executor_stats boolean
on | off
Nein
log_hostname boolean
on | off
Nein
log_lock_waits boolean
on | off
Nein
log_min_duration_statement integer
-1 ... 2147483647 ms
Nein
log_min_error_statement enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Nein
log_min_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Nein
log_parser_stats boolean
on | off
Nein
log_planner_stats boolean
on | off
Nein
log_replication_commands boolean
on | off
Nein
log_statement enumeration
none | ddl | mod | all
Auf mod festgelegt, um alle DDL-Anweisungen (Data Definition Language) sowie zusätzlich Anweisungen zu protokollieren, durch die Daten geändert werden, etwa INSERT, UPDATE, DELETE, TRUNCATE
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
log_temp_files integer
0 ... 2147483647 KB, oder -1 zur Deaktivierung
Nein
maintenance_work_mem integer
1024 ... 2147483647 KB
Nein
max_connections integer
14 ... varies (see note)
Speichergröße (MB)StandardwertMaximalwert
0 - 1.7002525
1.700 - 6.0005030.000
6.000 - 7.50020085.000
7.500 - 120.000400200.000
120.000 und mehr1.000262.000

Der Wert für Replikate muss größer oder gleich dem Wert für das Primärreplikat sein. Änderungen am Primärreplikat werden an Replikate weitergegeben, deren Wert niedriger als der neue Wert für das Primärreplikat ist oder für die der Standardwert gilt.

Ja
max_locks_per_transaction integer
10 ... 2,147,483,647

Der Wert für Replikate muss größer oder gleich dem Wert für das Primärreplikat sein. Änderungen am Primärreplikat werden an Replikate weitergegeben, deren Wert niedriger als der neue Wert für das Primärreplikat ist oder für die der Standardwert gilt.

Ja
max_prepared_transactions integer
0 ... varies
Speichergröße (MB)Maximalwert
0 - 3,84030.000
3,840 - 7,68085.000
7,680 - 15,360200.000
15,360 und mehr262.000

Der Wert für Replikate muss größer oder gleich dem Wert für das Primärreplikat sein. Änderungen am Primärreplikat werden an Replikate weitergegeben, deren Wert niedriger als der neue Wert für das Primärreplikat ist oder für die der Standardwert gilt.

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

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

Nutzungsinformationen, die sich auf das SLA auswirken können, finden Sie unter Betriebsrichtlinien für Cloud SQL for PostgreSQL-Instanzen.
Nein
max_worker_processes integer
8 ... varies
Ja
min_parallel_relation_size integer
0 ... 715827882
Einheit ist 8 KB
Nein
min_wal_size integer
32 ... 2147483647

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

Nein
old_snapshot_threshold integer
0, oder ... 86400 min, oder -1 zur Deaktivierung
Ja
parallel_setup_cost float
0.0 ... inf
Nein
parallel_tuple_cost float
0.0 ... inf
Nein
password_encryption enumeration
md5 | scram-sha-256

Postgres 10, 11, 12 und 13.

Standardwert ist md5.

Nein
pglogical.batch_inserts boolean
on | off
Standard: on
Ja
pglogical.conflict_log_level String
Standard: LOG.
Dieses Flag akzeptiert dieselben Werte wie log_min_messages.
Nein
pglogical.conflict_resolution String
error|apply_remote|keep_local|last_update_wins|first_update_wins
Standard: apply_remote
Nein
pglogical.extra_connection_options String
Akzeptiert PostgreSQL-Keyword/Wert-Verbindungsstrings.
Die Standardeinstellung ist der leerer String.
Nein
pglogical.synchronous_commit boolean
on | off
Standard: on
Ja
pglogical.use_spi boolean
on | off
Standard: off
Ja
pg_stat_statements.max integer
100 ... 2147483647
Ja
pg_stat_statements.save boolean
on | off
Nein
pg_stat_statements.track enumeration
none | top | all
Nein
pg_stat_statements.track_utility boolean
on | off
Nein
pgaudit.log enumeration
read | write | function | role | ddl | misc | misc_set | all|none

Sie können mehrere Klassen mithilfe einer durch Kommas getrennten Liste angeben und eine Klasse abziehen, wenn Sie ihr ein --Zeichen voranstellen. Die Standardeinstellung ist none.

Nein
pgaudit.log_catalog boolean
on | off

Die Standardeinstellung ist on.

Nein
pgaudit.log_client boolean
on | off

Die Standardeinstellung ist off.

Nein
pgaudit.log_level enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log

Die Standardeinstellung ist log. Außerdem ist pgaudit.log_level nur aktiviert, wenn pgaudit.log_client aktiviert ist.

Nein
pgaudit.log_parameter boolean
on | off

Die Standardeinstellung ist off.

Nein
pgaudit.log_relation boolean
on | off

Die Standardeinstellung ist off.

Nein
pgaudit.log_statement_once boolean
on | off

Die Standardeinstellung ist off.

Nein
pgaudit.role string

Es gibt keine Standardeinstellung.

Nein
random_page_cost float
0.0 ... inf
Nein
replacement_sort_tuples integer
0 ... 2147483647
Nein
shared_buffers integer
Der Größenbereich liegt zwischen 10 % und 70 % des Arbeitsspeichers der Instanz.
Einheit ist 8 KB.
Ja
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
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
standard_conforming_strings boolean
on | off
Nein
synchronize_seqscans boolean
on | off
Nein
tcp_keepalives_count integer
0 ... 2147483647
Nein
tcp_keepalives_idle integer
0 ... 2147483647
Nein
tcp_keepalives_interval integer
0 ... 2147483647
Nein
temp_buffers integer
100 ... 1,073,741,823
Einheit ist 8 KB
Nein
temp_file_limit integer
1048576 ... 2147483647 KB
Nein
trace_notify boolean
on | off
Nein
trace_recovery_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
Nein
trace_sort boolean
on | off
Nein
track_activities boolean
on | off
Nein
track_activity_query_size integer
100 ... 102400
Ja
track_commit_timestamp boolean
on | off
Ja
track_counts boolean
on | off
Nein
track_functions enumeration
none | pl | all
Nein
track_io_timing boolean
on | off
Nein
vacuum_cost_delay integer
0 ... 100 ms
Nein
vacuum_cost_limit integer
1 ... 10000
Nein
vacuum_freeze_min_age integer
0 ... 1000000000
Nein
vacuum_freeze_table_age integer
0 ... 2000000000
Nein
vacuum_multixact_freeze_min_age integer
0 ... 1000000000
Nein
vacuum_multixact_freeze_table_age integer
0 ... 2000000000
Nein
wal_buffers integer
Der Größenbereich liegt zwischen 10 % und 70 % des Arbeitsspeichers der Instanz.
Einheit ist 8 KB.
Ja
wal_compression boolean
on | off
Nein
work_mem integer
64 ... 2147483647 KB
Nein

##

Fehlerbehebung

Problem Fehlerbehebung
Es ist kein Flag zur Festlegung der Zeitzone vorhanden. PostgreSQL und SQL Server for Cloud SQL unterstützen kein Zeitzonen-Flag, um die Zeitzone an die Anforderungen von Nutzern anzupassen.

Es sind einige Problemumgehungen vorhanden.

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