SQL Server-VM-Instanzen erstellen


Microsoft SQL Server ist ein Datenbanksystem, das auf Windows Server und einigen Linux-Distributionen ausgeführt wird. SQL Server auf Compute Engine eignet sich gut als Teil des Back-Ends für Ihre Anwendungen, als flexible Entwicklungs- und Testumgebung oder zusätzlich zu Ihren lokalen Systemen für die Datensicherung und Notfallwiederherstellung.

Compute Engine bietet Images von Windows Server, auf denen Microsoft SQL Server bereits vorinstalliert ist. Für diese SQL Server-Images verwaltet Compute Engine sowohl die Lizenz für Windows Server als auch die für SQL Server und fügt die Kosten Ihrer monatlichen Rechnung hinzu. Sie können VMs mit SQL Server erstellen und sie später zu großen Konfigurationen mit mehreren Knoten horizontal skalieren, wenn Sie diese benötigen.

Compute Engine speichert Ihre Daten auf langlebigemnichtflüchtigem Speicher mit automatischer Redundanz und automatischer Verschlüsselung inaktiver Daten. Verwenden Sie diese nichtflüchtigen Speicher zum Speichern Ihrer SQL Server-Daten, ohne sich Gedanken über die Langlebigkeit oder Sicherheit Ihrer Daten machen zu müssen. Für zusätzliche Leistung können Sie Ihre VMs mit einer lokalen SSD als Cache erstellen, die zusätzliche IOPS und Leistung für SQL Server-Abfragen bietet.

Sie können Compute Engine-VM-Instanzen erstellen, auf denen SQL Server auf folgende Arten ausgeführt wird:

Eine vollständige Liste der verfügbaren Images, auf denen SQL Server vorinstalliert ist, finden Sie unter Details zu Betriebssystemen.

Anforderungen an den Maschinentyp für SQL Server-Images

SQL Server Standard

Sie können SQL Server Standard auf VMs mit jedem Maschinentyp ausführen. Auf Maschinen mit gemeinsam genutztem Kern ist jedoch kein optimaler Betrieb gewährleistet. Google empfiehlt, dass Sie VMs mit mindestens einer vCPU verwenden, um SQL Server Standard auszuführen.

SQL Server Enterprise

VMs, auf denen SQL Server Enterprise ausgeführt wird, müssen mindestens 4 vCPUs haben. Für eine optimale Leistung empfiehlt Google, dass Sie SQL Server Enterprise auf VMs mit größerer Arbeitsspeicherkapazität ausführen. Je nach angestrebter Arbeitsbelastung sollten Sie Maschinentypen mit großem Arbeitsspeicher und 8 vCPUs oder mehr verwenden. Diese Maschinentypen haben ein optimiertes Verhältnis von Arbeitsspeicher zu jeder vCPU, die auf Compute Engine zur Verfügung steht, was für den Betrieb von SQL Server Enterprise-VMs ideal ist.

Darüber hinaus können Sie SQL Server Enterprise in Compute Engine verwenden, um SQL Server-Verfügbarkeitsgruppen zu erstellen.

Standardkomponenten

SQL Server-Images umfassen standardmäßig mehrere Komponenten. Die Standardkomponenten sind abhängig von der SQL Server-Version, die Sie ausgewählt haben.

Informationen zu den Standardkomponenten, die in Ihrer SQL Server-Version enthalten sind, finden Sie unter Versionen und unterstützte Funktionen von SQL Server 2019.

Informationen zum Ändern der SQL Server-Komponenten finden Sie unter Features zu einer VM von SQL Server hinzufügen.

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

      Wenn Sie die Terraform-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Weitere Informationen unter Set up authentication for a local development environment.

      REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.

SQL-Server-Instanz erstellen

Um eine SQL-Server-Instanz zu erstellen, geben Sie die Image-Familie für die spezifische Version des SQL-Servers an, den Sie benötigen. Eine Liste der SQL-Server-Image-Familien finden Sie unter Details zu Betriebssystemen.

Für eine optimale Leistung erfordern die Datenbankserverplattformen Maschinentypen mit mehr virtuellen CPUs und größerer Speicherkapazität. Google empfiehlt, dass Sie für die Ausführung von SQL Server-Instanzen Maschinentypen mit mindestens zwei vCPUs und mindestens 4 GB Arbeitsspeicher verwenden. Sie können benutzerdefinierte Maschinentypen zur Konfiguration von SQL Server-Instanzen verwenden, die den Leistungsanforderungen Ihrer Arbeitslasten entsprechen. Darüber hinaus können Sie größere nichtflüchtige Speicher und schnellere nichtflüchtige SSD-Speicher verwenden, um die Leistung Ihrer Anwendungen zu verbessern.

Außerdem müssen Sie bestimmte Firewallregeln festlegen, um den SQL Server-Traffic in dem VPC-Netzwerk oder -Subnetzwerk zu gestatten, zu dem Ihre VM gehört. Weitere Informationen finden Sie unter Best Practices für SQL Server.

Console

So erstellen Sie eine SQL Server-Instanz:

  1. Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.

    Zur Seite „Instanz erstellen“

  2. Geben Sie die VM-Details an

  3. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern und gehen Sie dann so vor:

    1. Klicken Sie auf dem Tab Öffentliche Images auf die Liste Betriebssystem und wählen Sie dann SQL Server auf Windows Server aus.
    2. Wählen Sie in der Liste Version eine Version aus.
    3. Wählen Sie in der Liste Bootlaufwerktyp einen Bootlaufwerktyp aus.
    4. Legen Sie im Feld Größe (GB) die Größe des Bootlaufwerks fest.
    5. Optional: Klicken Sie auf Erweiterte Konfiguration anzeigen und geben Sie Ihre Einstellungen an, um die erweiterte Konfiguration für das Bootlaufwerk zu ändern.
    6. Klicken Sie auf Auswählen, um die Konfiguration des Bootlaufwerks zu speichern.
  4. Klicken Sie auf Erstellen.

Nachdem Sie die VM erstellt haben, erstellen Sie eine Firewallregel, um den Zugriff auf SQL Server auf Ihrer VM zuzulassen. Der Standardport des SQL-Servers ist 1433.

  1. Rufen Sie in der Google Cloud Console die Seite Firewallregeln auf.

    Zu Firewallregeln

  2. Klicken Sie oben auf der Seite auf Firewallregel erstellen, um eine Firewallregel anzulegen.

  3. Geben Sie die Details für diese Firewallregel an.

    • Geben Sie im Feld Name einen Namen für die Firewallregel ein
    • Wählen Sie im Feld Netzwerk das VPC-Netzwerk aus, in dem sich Ihre SQL Server-Instanz befindet.
    • Wählen Sie für Traffic-Richtung die Option "Eingehend" aus
    • Wählen Sie im Feld Ziele die Ziele für die Firewallregel aus. Das können alle Instanzen oder angegebene Ziel-Tags oder Dienstkonten sein. Sie können beispielsweise die Option Alle Instanzen im Netzwerk auswählen. Wenn Sie ein Tag oder Dienstkonto für Ihre SQL Server-Instanz konfiguriert haben, können Sie die Firewallregel auf das entsprechende Tag oder Dienstkonto beschränken.
    • Wählen Sie im Feld Quellfilter den Bereich von IP-Adressen aus, für den Sie den Zugriff auf diesen Port zulassen möchten. Für eine Ingress-Regel können Sie IPv4-Quellbereiche, IPv6-Quellbereiche, Quell-Tags oder Dienstkonten auswählen. Verwenden Sie die Felder nach Quellfilter, um zusätzliche Informationen zu Ihrer Auswahl anzugeben.
    • Wählen Sie im Bereich Protokolle und Ports die Option Angegebene Protokolle und Ports aus und geben Sie den Port ein, den SQL Server verwendet. Wählen Sie in diesem Beispiel TCP aus und geben Sie 1433 ein, den Standardport.
  4. Klicken Sie auf Erstellen, um diese Firewallregel anzulegen und den Zugriff auf Ihre SQL Server-Instanz über den Port 1433 zuzulassen.

Wenn Sie zu Ihrer VM weitere Firewallregeln hinzufügen müssen, finden Sie entsprechende Informationen unter Firewallregeln verwenden.

gcloud

Rufen Sie mit dem Befehl compute images list eine Liste der verfügbaren SQL Server-Images auf:

gcloud compute images list --project windows-sql-cloud --no-standard-images

Verwenden Sie den Befehl compute instances create, um eine neue VM zu erstellen und die Image-Familie für eines der öffentlichen Images von Windows Server oder SQL Server anzugeben.

gcloud compute instances create VM_NAME \
    --image-project windows-sql-cloud \
    --image-family IMAGE_FAMILY \
    --machine-type MACHINE_TYPE \
    --boot-disk-size BOOT_DISK_SIZE \
    --boot-disk-type BOOT_DISK_TYPE

Dabei gilt:

Nachdem Sie die VM erstellt haben, erstellen Sie eine Firewallregel, um den Zugriff auf SQL Server auf Ihrer VM zuzulassen. Der Standardport des SQL-Servers ist 1433.

gcloud compute firewall-rules create sql-server-1433 \
    --description "Allow SQL Server access from all sources on port 1433." \
    --allow tcp:1433 --network NETWORK

wobei NETWORK der Name des VPC-Netzwerks ist, in dem sich Ihre VM befindet.

Wenn Sie zusätzliche Firewallregeln zu Ihrer VM hinzufügen müssen, finden Sie Informationen hierzu in der Dokumentation zu Firewallregeln.

Terraform

Verwenden Sie zum Erstellen der SQL Server-VM-Instanzen die Ressource google_compute_instance.

resource "google_compute_instance" "sqlserver_vm" {
  provider = google-beta
  name     = "sqlserver-vm"
  boot_disk {
    auto_delete = true
    device_name = "persistent-disk-0"
    initialize_params {
      image = "windows-sql-cloud/sql-std-2019-win-2022"
      size  = 50
      type  = "pd-balanced"
    }
    mode = "READ_WRITE"
  }
  machine_type = "n1-standard-4"
  zone         = "europe-west1-b"
  network_interface {
    access_config {
      network_tier = "PREMIUM"
    }
    network    = google_compute_network.default.id
    stack_type = "IPV4_ONLY"
    subnetwork = google_compute_subnetwork.default.id
  }
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

REST

Um eine VM mit der API zu erstellen, verwenden Sie in der Anfrage zur VM-Erstellung das Attribut initializeParams und geben ein Windows-Image an.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

instance = {
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [{
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
         "diskName": "DISK_NAME",
         "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY",
         "diskSizeGb": "BOOT_DISK_SIZE",
         "diskType": "BOOT_DISK_TYPE",
       }
    }],
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
     }],
    "network": "global/networks/default"
  }],
  "serviceAccounts": [{
       "email": DEFAULT_SERVICE_EMAIL,
       "scopes": DEFAULT_SCOPES
  }]
}

Dabei gilt:

  • PROJECT_ID: Die ID für das Projekt.
  • ZONE: Die Zone für diese Instanz.
  • VM_NAME: Der Name für die neue VM.
  • MACHINE_TYPE: Die verfügbaren Maschinentypen.
  • IMAGE_PROJECT: Entweder windows-cloud für Windows Server-Images oder windows-sql-cloud für Windows Server-Images mit vorinstalliertem SQL Server.
  • IMAGE_FAMILY: Die öffentlichen Image-Familien für Windows Server- oder SQL Server-Images.
  • BOOT_DISK_SIZE: Die Größe des Bootlaufwerks in GB. Größere nichtflüchtige Speicher haben einen höheren Durchsatz.
  • BOOT_DISK_TYPE: Der Typ des Bootlaufwerks für Ihre VM. Beispiel: pd-ssd

Nachdem Sie die VM erstellt haben, erstellen Sie eine Firewallregel, um den Zugriff auf SQL Server auf Ihrer VM zuzulassen. Der Standardport des SQL-Servers ist 1433.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls

{
 "name": "sql-server-1433",
 "network": "global/networks/NETWORK",
 "allowed": [
  {
   "IPProtocol": "tcp",
   "ports": [
    "1433"
   ]
  }
 ]
}

Dabei gilt:

  • PROJECT_ID: Die ID für das Projekt.
  • NETWORK: Der Name des VPC-Netzwerks, in dem sich Ihre VM befindet.

Nachdem Sie die SQL Server-Instanz erstellt haben, legen Sie das vorläufige Passwort für die VM fest, damit Sie über RDP eine Verbindung zur VM herstellen können. Anschließend führen Sie SQL Server Management Studio als Administrator aus, um die Datenbanken auf der SQL Server-Instanz zu verwalten.

Zusätzlich können Sie die SQL Server-Installation mit einem oder mehreren der folgenden Elemente optimieren:

SQL Server-Datenbanken verwalten

Führen Sie SQL Server Management Studio als Administrator aus, um SQL Server-Datenbanken zu konfigurieren. Sie können SQL Server Management Studio auf Ihrer lokalen Workstation herunterladen und installieren und damit anschließend per Remote-Zugriff eine Verbindung zur Datenbank-Engine auf Ihrer VM herstellen.

Wenn Sie Management Studio auf Ihrer lokalen Workstation nicht installieren können, stellen Sie über RDP eine Verbindung zur VM her und führen Sie dann Management Studio direkt auf der VM aus. SQL Server 2012 und SQL Server 2014 umfassen beide standardmäßig das SQL Server Management Studio. Für SQL Server 2016 müssen Sie SQL Server Management Studio von der Microsoft-Website herunterladen und auf der VM installieren.

Der SQL Server verwendet standardmäßig den Windows-Authentifizierungsmodus, um den direkten Remotezugriff auf den SQL Server zu steuern. Wenn Sie den SQL Server-Authentifizierungsmodus verwenden müssen, ändern Sie den Authentifizierungsmodus.

SQL Server-Instanznamen manuell aktualisieren

Wenn Sie eine VM umbenennen, die SQL Server hostet, müssen Sie den Namen der SQL Server-Instanz aktualisieren. Weitere Informationen finden Sie unter Computer umbenennen, der eine eigenständige Instanz von SQL Server hostet.

Nächste Schritte