Datenbankflags 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 SQL Server-Parametern und Optionen sowie für das Konfigurieren und Optimieren einer Instanz.

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.

Datenbankflags konfigurieren

Datenbank-Flag festlegen

Console

  1. Wählen Sie in der Google Cloud Console das Projekt aus, das die Cloud SQL-Instanz enthält, für die Sie ein Datenbank-Flag festlegen möchten.
  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.

Die Flags 1204, remote access und remote query timeout (s) können Sie beispielsweise mit folgendem Befehl festlegen:

gcloud sql instances patch INSTANCE_NAME \
  --database-flags="1204"=on,"remote access"=on,"remote query timeout (s)"=300

Terraform

Verwenden Sie zum Hinzufügen von Datenbank-Flags eine Terraform-Ressource.

resource "google_sql_database_instance" "instance" {
  name             = "sqlserver-instance-flags"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    database_flags {
      name  = "1204"
      value = "on"
    }
    database_flags {
      name  = "remote access"
      value = "on"
    }
    database_flags {
      name  = "remote query timeout (s)"
      value = "300"
    }
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Änderungen anwenden

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.

Cloud Shell vorbereiten

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

    Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

Verzeichnis vorbereiten

Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).

  1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf. In dieser Anleitung wird die Datei als main.tf bezeichnet.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.

    Kopieren Sie den Beispielcode in das neu erstellte main.tf.

    Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.

  3. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  4. Speichern Sie die Änderungen.
  5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
    terraform init

    Fügen Sie optional die Option -upgrade ein, um die neueste Google-Anbieterversion zu verwenden:

    terraform init -upgrade

Änderungen anwenden

  1. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
    terraform plan

    Korrigieren Sie die Konfiguration nach Bedarf.

  2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply

    Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

  3. Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

Änderungen löschen

So löschen Sie das Projekt:

  1. Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument deletion_protection auf false.
    deletion_protection =  "false"
  2. Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply
  1. Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und yes an der Eingabeaufforderung eingeben:

    terraform destroy

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 Standardwerte zurücksetzen

Console

  1. Wählen Sie in der Google Cloud Console das Projekt aus, das die Cloud SQL-Instanz enthält, für die Sie alle Flags löschen möchten.
  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:

Für eine Instanz festgelegte Datenbank-Flags ermitteln

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

Console

  1. Wählen Sie in der Google Cloud Console das Projekt aus, das die Cloud SQL-Instanz enthält, für die Sie die festgelegten Datenbank-Flags sehen möchten.
  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 eine JSON-Antwort ähnlich wie diese 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 eine JSON-Antwort ähnlich wie diese erhalten:

Suchen Sie in der Ausgabe nach dem Feld databaseFlags.

Unterstützte Flags

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

Cloud SQL-Flag Typ
Gültige Werte und Hinweise
Neustart
erforderlich?
1204 (Trace-Flag) boolean
on | off
Nein
1222 (Trace-Flag) boolean
on | off
Nein
1224 (Trace-Flag) boolean
on | off
Nein
2528 (Trace-Flag) boolean
on | off
Nein
3205 (Trace-Flag) boolean
on | off
Nein
3226 (Trace-Flag) boolean
on | off
Nein
3625 (Trace-Flag) boolean
on | off
Ja
4199 (Trace-Flag) boolean
on | off
Nein
4616 (Trace-Flag) boolean
on | off
Nein
7806 (Trace-Flag) boolean
on | off
Ja
access check cache bucket count integer
0 ... 65536
Nein
access check cache quota integer
0 ... 2147483647
Nein
affinity mask integer
2147483648 ... 2147483647
Nein
agent xps boolean
on | off
Nein
automatic soft-numa disabled boolean
on | off
Ja
cloudsql aktivierte Server aktivieren boolean
on | off
Nein
cost threshold for parallelism integer
0 ... 32767
Nein
contained database authentication boolean
on | off
Nein
cross db ownership chaining boolean
on | off
Nein
cursor threshold integer
-1 ... 2147483647
Nein
default full-text language integer
0 ... 2147483647
Nein
Standardsprache integer
0 ... 32
Nein
default trace enabled boolean
on | off
Nein
disallow results from triggers boolean
on | off
Nein
external scripts enabled boolean
on | off
Ja
ft crawl bandwidth (max) integer
0 ... 32767
Nein
ft crawl bandwidth (min) integer
0 ... 32767
Nein
ft notify bandwidth (max) integer
0 ... 32767
Nein
ft notify bandwidth (min) integer
0 ... 32767
Nein
fill factor (%) integer
0 ... 100
Nein
index create memory (kb) integer
704 ... 2147483647
Nein
locks integer
5000 ... 2147483647
Ja
max server memory (mb) integer
128 ... 2147483647
Cloud SQL kann für dieses Flag einen Wert auf Instanzen festlegen, der auf von Microsoft empfohlene Werten basiert.
Nein
max text repl size (b) integer
-1 ... 2147483647
Nein
max worker threads integer
128 ... 65535
Nein
nested triggers boolean
on | off
Nein
optimize for ad hoc workloads boolean
on | off
Nein
ph timeout (s) integer
1 ... 3600
Nein
query governor cost limit integer
0 ... 2147483647
Nein
query wait (s) integer
-1 ... 2147483647
Nein
recovery interval (min) integer
0 ... 32767
Nein
remote access boolean
on | off
Ja
remote login timeout (s) integer
0 ... 2147483647
Nein
remote query timeout (s) integer
0 ... 2147483647
Nein
transform noise words boolean
on | off
Nein
two digit year cutoff integer
1753 ... 9999
Nein
user connections integer
0, 10 ... 32767
Ja
user options integer
0 ... 32767
Nein

Fehlerbehebung

Problem Fehlerbehebung
In Cloud SQL for SQL Server wird die Änderung der Zeitzone einer vorhandenen Instanz nicht unterstützt.

In Cloud SQL for SQL Server wird das Festlegen der Zeitzone einer neuen Instanz unterstützt, einer vorhandenen Instanz jedoch nicht.

In Cloud SQL for SQL Server können Sie die Funktion AT TIME ZONE für Zeitkonvertierungen und mehr verwenden. Informationen zu dieser Funktion finden Sie unter AT TIME ZONE (Transact-SQL).

Nächste Schritte