Instanzen erstellen

Auf dieser Seite wird gezeigt, wie Sie eine Cloud SQL-Instanz für eine PostgreSQL-Instanz erstellen.

Ausführliche Informationen zu allen Instanzeinstellungen finden Sie unter Instanzeinstellungen.

Sie legen zuerst eine Cloud SQL-Instanz an und fügen ihr dann durch Erstellen oder Importieren Datenbanken hinzu.

Hinweis

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Cloud Console auf der Seite für die Projektauswahl ein Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Installieren und initialisieren Sie das Cloud SDK.
  5. Achten Sie darauf, dass Sie für Ihr Nutzerkonto die Rollen "Cloud SQL-Administrator" und "Compute-Betrachter" haben.

    Zur Seite "IAM"

    Weitere Informationen zu Rollen und Berechtigungen

PostgreSQL-Instanz erstellen

So erstellen Sie eine PostgreSQL-Instanz:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite "Cloud SQL-Instanzen"

  2. Klicken Sie auf Instanz erstellen.
  3. Wählen Sie PostgreSQL und klicken Sie auf Weiter.
  4. Geben Sie einen Namen ein.

    Der Instanzname sollte keine vertraulichen Informationen oder personenbezogenen Daten enthalten, da er extern sichtbar ist.

    Die Projekt-ID muss im Instanznamen nicht angegeben werden. Dies erfolgt automatisch, wo es erforderlich ist, beispielsweise in den Logdateien.

    Hinweis: Sie können einen Instanznamen nach dem Löschen der Instanz maximal eine Woche lang nicht wiederverwenden.

  5. Geben Sie ein Passwort für den Nutzer postgres ein.
  6. Wählen Sie unter Standort die Region und die Zone für Ihre Instanz aus.

    Platzieren Sie die Instanz in der Region, in der sich auch die Ressourcen befinden, die darauf zugreifen. Die ausgewählte Region kann später nicht mehr geändert werden. In den meisten Fällen müssen Sie keine Zone angeben.

  7. Aktualisieren Sie unter Konfigurationsoptionen die Einstellungen für Ihre Instanz:
    Einstellung Hinweise
    Datenbankversion
    Datenbankversion PostgreSQL 12 (Standard), PostgreSQL 11, PostgreSQL 10 und PostgreSQL 9.6
    Verbindung
    Private IP-Adresse Fügt Ihrer Instanz eine private IP-Adresse hinzu. Um eine Verbindung zur Instanz herstellen zu können, ist eine zusätzliche Konfiguration erforderlich.
    Öffentliche IP-Adresse Fügt Ihrer Instanz eine öffentliche IP-Adresse hinzu. Zum Herstellen einer Verbindung mit der Instanz ist eine zusätzliche Konfiguration erforderlich.
    Maschinentyp und Speicher
    Kerne Die Anzahl der vCPUs für Ihre Instanz. Weitere Informationen
    Speicher Die Menge an Arbeitsspeicher für Ihre Instanz in GB. Weitere Informationen
    Speichertyp Bestimmt, ob die Instanz einen SSD- oder HDD-Speicher verwendet. Weitere Informationen
    Speicherkapazität Die bereitgestellte Speicherkapazität für die Instanz. Weitere Informationen
    Automatische Speichererweiterung Legt fest, ob über Cloud SQL automatisch mehr Speicherkapazität für die Instanz bereitgestellt wird, wenn wenig freier Speicherplatz verfügbar ist. Weitere Informationen
    Hochverfügbarkeit Wenn Hochverfügbarkeit für Ihre Instanz konfiguriert werden soll, müssen Sie auf das Kästchen Hohe Verfügbarkeit (regional) klicken. Weitere Informationen
    Automatische Sicherungen Das Zeitfenster, in dem Sicherungen gestartet werden sollen. Weitere Informationen
    Wiederherstellung zu einem bestimmten Zeitpunkt Ermöglicht die Wiederherstellung zu einem bestimmten Zeitpunkt und Write-Ahead-Logging. Weitere Informationen
    Datenbank-Flags hinzufügen
    Datenbank-Flags Mit Datenbank-Flags können Sie Einstellungen und Parameter für Ihre Instanz festlegen. Weitere Informationen
    Wartungsplan
    Wartungsfenster Ein Zeitfenster von einer Stunde, in dem von Cloud SQL Wartungsaufgaben mit Betriebsunterbrechung für die Instanz ausgeführt werden können. Wenn Sie dieses Zeitfenster nicht festlegen, können jederzeit Wartungsaufgaben mit Betriebsunterbrechung durchgeführt werden. Weitere Informationen
    Wartungszeitpunkt Der bevorzugte Zeitpunkt für eine Aktualisierung der Instanz relativ zu anderen Instanzen im selben Projekt. Weitere Informationen

    Weitere Informationen zu Instanzeinstellungen

  8. Klicken Sie auf Erstellen.

gcloud

Informationen zur Installation des gcloud-Befehlszeilentools und zu ersten Schritten mit dem Tool finden Sie unter Cloud SDK installieren. Informationen zum Starten von Cloud Shell erhalten Sie in der Cloud Shell-Dokumentation.

  1. Erstellen Sie die Instanz:
    gcloud sql instances create [INSTANCE_NAME] --database-version=POSTGRES_12 \
           --cpu=[NUMBER_CPUS] --memory=[MEMORY_SIZE] \
           --region=[REGION] | --gce-zone=[GCE_ZONE] | --zone=[ZONE]
    
    or, alternatively:
    
    gcloud sql instances create instance --tier=[API_TIER_STRING] --region=[REGION]
    

    Die Werte für [API_TIER_STRING] sind benutzerdefinierte Maschinentypen, die hier definiert sind. Diese Namen umfassen die vCPU- und Arbeitsspeicherwerte. Der Maschinentyp db-custom-2-7680 enthält beispielsweise 2 vCPUs und 7.680 MB Arbeitsspeicher.

    Für die Werte von vCPUs und Arbeitsspeicher gelten Beschränkungen:

    • Der Wert für vCPUs muss entweder 1 oder eine gerade Zahl im Bereich von 2 bis 32 sein.
    • Für den Arbeitsspeicherwert gilt Folgendes:
      • Pro vCPU sind 0,9 bis 6,5 GB zulässig
      • Muss ein Vielfaches von 256 MB sein
      • Muss mindestens 3,75 GB (3.840 MB) sein

    Beispielsweise generiert der folgende String eine Instanz mit 2 vCPUs und 7.680 MB Arbeitsspeicher:

     gcloud sql instances create myinstance --database-version=POSTGRES_12 --cpu=2 \
            --memory=7680MB --region="us-central"
    

    Einige Beispielwerte finden Sie unter Beispielmaschinentypen.

    Sie können auch eine Instanz mit gemeinsam genutztem Kern erstellen. Dazu verwenden Sie --tier db-f1-micro oder --tier db-g1-small und löschen die Parameter --cpu und --memory.

    Der Standardwert für [REGION] ist us-central.

    Der Instanzname sollte keine vertraulichen Informationen oder personenbezogenen Daten enthalten, da er extern sichtbar ist.
    Die Projekt-ID muss im Instanznamen nicht angegeben werden. Dies erfolgt automatisch, wo es erforderlich ist, beispielsweise in den Logdateien.

    Sie können mehrere Parameter hinzufügen, um andere Instanzeinstellungen festzulegen:

    Einstellung Parameter Hinweise
    Erforderliche Parameter
    Datenbankversion --database-version POSTGRES_12 (Standard), POSTGRES_11, POSTGRES_10 oder POSTGRES_9_6
    Region --region Hier finden Sie Informationen zu gültigen Werten.
    Verbindung
    Private IP-Adresse --network Gibt den Namen des VPC-Netzwerks an, das für die Instanz verwendet werden soll. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein. Dies ist nur für den Betabefehl (gcloud beta sql instances create) verfügbar. Weitere Informationen
    Öffentliche IP-Adresse --authorized-networks Öffentliche IP-Verbindungen zur Instanz können nur über autorisierte Netzwerke hergestellt werden. Weitere Informationen
    Maschinentyp und Speicher
    Maschinentyp --tier Wird verwendet, um eine Instanz mit gemeinsam genutztem Kern anzugeben (db-f1-micro oder db-g1-small). Wenn Sie diesen Parameter nutzen, können Sie die Parameter --cpu und --memory nicht festlegen.
    Speichertyp --storage-type Bestimmt, ob die Instanz einen SSD- oder HDD-Speicher verwendet. Weitere Informationen
    Speicherkapazität --storage-size Der Umfang an bereitgestelltem Speicherplatz für die Instanz in GB. Weitere Informationen
    Automatische Speichererweiterung --storage-auto-increase Legt fest, ob über Cloud SQL automatisch mehr Speicherkapazität für die Instanz bereitgestellt wird, wenn wenig freier Speicherplatz verfügbar ist. Weitere Informationen
    Automatische Begrenzung der Speichererweiterung --storage-auto-increase-limit Legt fest, um wie viel die Speicherkapazität von Cloud SQL automatisch erhöht werden kann. Dies ist nur für den Betabefehl (gcloud beta sql instances create) verfügbar. Weitere Informationen
    Automatische Sicherungen und Hochverfügbarkeit
    Hochverfügbarkeit --availability-type Legen Sie für eine Instanz mit Hochverfügbarkeit hierfür den Wert REGIONAL fest. Weitere Informationen
    Automatische Sicherungen --backup-start-time Das Zeitfenster, in dem Sicherungen gestartet werden sollen. Weitere Informationen
    Wiederherstellung zu einem bestimmten Zeitpunkt --enable-point-in-time recovery Ermöglicht die Wiederherstellung zu einem bestimmten Zeitpunkt und Write-Ahead-Logging. Weitere Informationen
    Datenbank-Flags hinzufügen
    Datenbank-Flags --database-flags Mit Datenbank-Flags können Sie Einstellungen und Parameter für Ihre Instanz festlegen. Weitere Informationen zu Datenbank-Flags
    Wartungsplan
    Wartungsfenster --maintenance-window-day,
    --maintenance-window-hour
    Legt ein Zeitfenster von einer Stunde fest, in dem von Cloud SQL eine Wartung mit Betriebsunterbrechung an der Instanz ausgeführt werden kann. Wenn Sie dieses Zeitfenster nicht festlegen, können solche Wartungsaufgaben jederzeit durchgeführt werden. Weitere Informationen
    Wartungszeitpunkt --maintenance-release-channel Der bevorzugte Zeitpunkt für eine Aktualisierung der Instanz relativ zu anderen Instanzen im selben Projekt. Verwenden Sie preview für frühere Aktualisierungen und production für spätere Aktualisierungen. Weitere Informationen

  2. Notieren Sie die automatisch zugewiesene IP-Adresse.

    Wenn Sie nicht den Cloud SQL-Proxy verwenden, nutzen Sie diese Adresse als Hostadresse, mit der Ihre Anwendungen oder Tools eine Verbindung zur Instanz herstellen.

  3. Legen Sie das Passwort für den postgres-Nutzer fest:
    gcloud sql users set-password postgres --instance=[INSTANCE_NAME] \
           --password=[PASSWORD]
    

REST

Instanz erstellen

In diesem Beispiel wird eine Instanz mit aktivierten Sicherungen und aktiviertem binärem Logging erstellt. Diese Einstellungen sind optional. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite instances:insert. Informationen zu den Instanzeinstellungen, einschließlich der gültigen Werte für Region und Maschinentyp, erhalten Sie unter Instanzeinstellungen.

Die Instanz-ID sollte keine vertraulichen oder personenbezogenen Informationen enthalten, da sie extern sichtbar ist.
Die Projekt-ID muss im Instanznamen nicht angegeben werden. Dies erfolgt automatisch, wo es erforderlich ist, beispielsweise in den Logdateien.

Geben Sie für die Parameter folgende Werte an:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • region: die gewünschte Region
  • machine-type: den gewünschten Maschinentyp

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "name": "instance-id",
  "region": "region",
  "settings": {
    "tier": "machine-type",
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true
    }
  }
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Die Antwort ist ein Vorgang mit langer Ausführungszeit, der einige Minuten dauern kann.

IPv4-Adresse abrufen

Rufen Sie die automatisch zugewiesene IPv4-Adresse für die neue Instanz ab:

Geben Sie für die Parameter folgende Werte an:

  • project-id: Ihre Projekt-ID
  • instance-id: die Instanz-ID, die im vorherigen Schritt erstellt wurde

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:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_5_7",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Suchen Sie in der Antwort nach dem Feld ipAddress.

Informationen zum Aufbau der zugrunde liegenden REST API-Anfrage für diese Aufgabe finden Sie im APIs Explorer auf der Seite instances:insert.

Beispielmaschinentypen

Mit benutzerdefinierten Maschinentypen können Sie Ihre Instanz mit der benötigten Menge an Speicher und CPUs konfigurieren. Für diese Werte gelten aber einige Einschränkungen:

  • Der Wert für vCPUs muss entweder 1 oder eine gerade Zahl im Bereich von 2 bis 32 sein.
  • Für den Arbeitsspeicherwert gilt Folgendes:
    • Pro vCPU sind 0,9 bis 6,5 GB zulässig
    • Muss ein Vielfaches von 256 MB sein
    • Muss mindestens 3,75 GB (3.840 MB) sein

Im Folgenden finden Sie einige Beispielwerte für Maschinentypen, die auf den vordefinierten Maschinentypen für PostgreSQL-Instanzen basieren:

Vordefinierter Maschinentyp vCPUs Arbeitsspeicher (MB) API-Stufenstring
db-n1-standard-1 1 3.840 db-custom-1-3840
db-n1-standard-2 2 7.680 db-custom-2-7680
db-n1-standard-4 4 15.360 db-custom-4-15360
db-n1-standard-8 8 30.720 db-custom-8-30720
db-n1-standard-16 16 61.440 db-custom-16-61440
db-n1-standard-32 32 122.880 db-custom-32-122880
db-n1-standard-64 64 245.760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13.312 db-custom-2-13312
db-n1-highmem-4 4 26.624 db-custom-4-26624
db-n1-highmem-8 8 53.248 db-custom-8-53248
db-n1-highmem-16 16 106.496 db-custom-16-106496
db-n1-highmem-32 32 212.992 db-custom-32-212992
db-n1-highmem-64 64 425.984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

Fehlerbehebung

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

Problem Mögliche Ursache Lösungsvorschlag
Internal error. Dienstnetzwerk-Dienstkonto fehlt. Deaktivieren Sie die Service Networking API und aktivieren Sie sie noch einmal.
Die Terraform-Instanz konnte nicht erstellt werden. Terraform-Konfigurationsfehler. Prüfen und reparieren Sie die Terraform-Konfigurationsdatei.
HTTP Error 409 im Terraform-Skript. Es wird bereits ein anderer Vorgang ausgeführt. Korrigieren Sie das Terraform-Skript so, dass es auf den Abschluss jedes Vorgangs wartet.
Unknown error Es wird versucht, eine Instanz mit dem Namen einer kürzlich gelöschten Instanz zu erstellen. Oder es wird versucht, gleichzeitig mehrere Instanzen mit einem neuen privaten IP-Bereich anzulegen. Verwenden Sie einen anderen Namen für die Instanz oder warten Sie, bis das Löschen der Instanz eine Woche zurückliegt. Erstellen Sie die fehlerhaften Instanzen nacheinander neu und verwenden Sie andere Namen.

Interner Fehler

Folgende Fehlermeldung ist zu sehen: {"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null}.

Mögliche Ursache

Im Dienstprojekt fehlt wahrscheinlich das Dienstnetzwerk-Dienstkonto, das für dieses Feature erforderlich ist.

Lösungsvorschlag

Deaktivieren Sie zum Reparieren von Dienstberechtigungen die Service Networking API, warten Sie fünf Minuten und aktivieren Sie sie dann wieder.


Terraform-Instanz konnte nicht erstellt werden

Die Terraform-Instanz konnte nicht erstellt werden.

Mögliche Ursache

Dies ist normalerweise ein Problem im Terraform-Skript selbst.

Lösungsvorschlag

Prüfen und reparieren Sie die Terraform-Konfigurationsdatei.


Fehler 409 im Terraform-Skript

In Terraform-Skripts ist die Fehlermeldung HTTP Error 409 zu sehen.

Mögliche Ursache

Operation failed because another operation was already in progress

Lösungsvorschlag

Überarbeiten Sie das Skript so, dass die Ausführung angehalten wird, bis jeder Instanzvorgang abgeschlossen ist. Lassen Sie das Skript abfragen und warten Sie, bis für die vorherige Vorgangs-ID der Wert 200 zurückgegeben wird, bevor Sie mit dem nächsten Schritt fortfahren.


Unbekannter Fehler

Beim Erstellen einer Instanz ist eine Fehlermeldung wie Cloud SQL creation failed, error UNKNOWN zu sehen.

Mögliche Ursache

Höchstwahrscheinlich versuchen Sie, den Namen einer kürzlich gelöschten Instanz wiederzuverwenden. Instanznamen können nach dem Löschen eine Woche lang nicht wiederverwendet werden. Wenn nur die erste Instanz erstellt wird und andere mit Unknown error fehlschlagen, kann es auch sein, dass Sie versuchen, mehrere Instanzen gleichzeitig mit einem neuen privaten IP-Bereich anzulegen.

Lösungsvorschlag

Verwenden Sie entweder einen anderen Namen für die Instanz oder warten Sie eine Woche, um eine neue Instanz mit diesem Namen zu erstellen. Erstellen Sie mehrere Instanzen nacheinander und nicht gleichzeitig.

Weitere Informationen