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.