Copy Mssql Database
Zuletzt geändert: 21.03.2026 08:03

Übersicht

Copy-MssqlDatabase #

ÜBERSICHT #

Erstellt eine vollwertige Kopie einer vorhandenen SQL Server-Datenbank mit neuem Namen und neuer DB-ID.

SYNTAX #

Copy-MssqlDatabase [-SourceDatabase] <string> [[-TargetDatabase] <string>] [[-Server] <string>]
    [[-User] <string>] [[-Password] <string>] [[-Provider] <string>] [[-DataFile] <string>]
    [[-LogFile] <string>] [[-BackupPath] <string>] [-UseSourcePaths] [-InfoOnly] [-Force]
    [<CommonParameters>]

BESCHREIBUNG #

Die Funktion klont eine bestehende SQL Server-Datenbank, indem sie ein vollständiges Backup erstellt und dieses unter neuem Namen wiederherstellt. Dabei werden auch logische und physische Dateinamen angepasst. Die neue Datenbank verhält sich wie frisch angelegt.

Mit -InfoOnly können Datenbankdetails (logische Namen, Dateipfade, Größen) abgefragt werden, ohne Änderungen vorzunehmen. Es wird kein Backup erstellt und keine Datenbank kopiert.

Mit -UseSourcePaths werden die MDF-/LDF-Verzeichnisse automatisch von der Quelldatenbank übernommen. Alternativ können mit -DataFile und -LogFile eigene Zielpfade angegeben werden.

Voraussetzung: Der SQL Server muss im Zielverzeichnis Schreibrechte haben.

Bei EULANDA-Datenbanken wird nach dem Kopieren automatisch Repair-MssqlDatabaseUser aufgerufen, um den verwaisten DB-User ’eulanda’ zu reparieren.

PARAMETER #

-SourceDatabase #

Type: string

Name der bestehenden Datenbank, die geklont werden soll.

-TargetDatabase #

Type: string

Neuer Name für die geklonte Datenbank. Nicht erforderlich bei -InfoOnly.

-Server #

Type: string
Default: '.'

SQL Server-Instanzname (z. B. “.\SQL2022”).

-User #

Type: string

SQL-Login. Wird nur verwendet, wenn kein Windows-Login gewünscht ist.

-Password #

Type: string

Kennwort für SQL-Login.

-Provider #

Type: string
Default: 'SQLOLEDB'

OLEDB-Provider (z. B. SQLOLEDB oder MSOLEDBSQL). Standard ist SQLOLEDB.

-DataFile #

Type: string

Vollständiger Zielpfad für die MDF-Datei. Überschreibt die automatische Pfadermittlung.

-LogFile #

Type: string

Vollständiger Zielpfad für die LDF-Datei. Überschreibt die automatische Pfadermittlung.

-BackupPath #

Type: string

Vollständiger Pfad für die temporäre Backup-Datei (.bak). Wenn nicht angegeben, wird das Backup im MDF-Verzeichnis der Quelldatenbank erstellt.

-UseSourcePaths #

Type: switch

Übernimmt automatisch die MDF-/LDF-Verzeichnisse der Quelldatenbank und passt nur die Dateinamen an den Zielnamen an.

-InfoOnly #

Type: switch

Gibt nur Informationen über die Quelldatenbank aus (logische Namen, Dateipfade, Größen), ohne Änderungen vorzunehmen.

-Force #

Type: switch

Wenn gesetzt, wird eine bereits vorhandene Datenbank mit dem Zielnamen automatisch entfernt.

AUSGABEN #

PSCustomObject. Bei `-InfoOnly` ein Objekt mit Quelldatenbank-Details. Beim Kopieren ein Objekt

mit den Pfaden der neuen Datenbank.

BEISPIELE #

Copy-MssqlDatabase -SourceDatabase 'Eulanda_Mustermann' -InfoOnly -Server '.\\SQL2022'

Zeigt Informationen zur Quelldatenbank an, ohne Änderungen vorzunehmen.
Copy-MssqlDatabase -SourceDatabase 'Eulanda_Original' -TargetDatabase 'Eulanda_Test' -Server '.\\SQL2022' -UseSourcePaths

Kopiert die Datenbank und übernimmt die Verzeichnisse der Quelldatenbank.
Copy-MssqlDatabase -SourceDatabase 'Eulanda_Original' -TargetDatabase 'Eulanda_Test' -Server '.\\SQL2022' `
  -DataFile 'D:\\Data\\Eulanda_Test.mdf' -LogFile 'L:\\Logs\\Eulanda_Test_log.ldf' -Force

Kopiert die Datenbank mit eigenen Zielpfaden und überschreibt eine vorhandene Zieldatenbank.