簡體   English   中英

導入SQLPS模塊並使用它來將數據庫備份和還原到其他服務器

[英]Import SQLPS module and use it to backup and restore DB to different server

我正在從未安裝SQLPS(MS SQL Server數據庫引擎)的客戶端計算機(Win7)運行PS腳本。

因此,我通過導入遠程ps會話來實現:

  1. 創建到SQL Server的遠程PS會話

$ sourceSQLRemoteSession = New-PSSession -ComputerName $ SQLServerHostname-身份驗證-Credential $ PSOCredentialObject

  1. 導入SQLPS模塊

Import-PSSession-會話$ sourceSQLRemoteSession-模塊SQLPS -DisableNameChecking

  1. 運行SQL備份

Backup-SqlDatabase -ServerInstance“ destinationSQL \\ SQLInstance”-數據庫“ blabla_db” -BackupFile“ c:\\ blabla.bak”-憑據$ PSOCredentialObject

問題是,如果需要將數據庫還原到其他SQL數據庫服務器,則要求我使用“ RelocateFile”對象,例如:

$RelocateData = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("uat_project1_db", "c:\SQLDATA\blabla.mdf")
$RelocateLog = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("uat_project1_db_Log", "c:\SQLDATA\blabla.ldf")
Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RelocateFile @($RelocateData,$RelocateLog)

當我運行新對象時,它似乎不喜歡它:

錯誤:

New-Object : Cannot find type [Microsoft.SqlServer.Management.Smo.RelocateFile]: verify that the assembly containing this type is loaded.At line:1 char:17
+ ... ocateData = New-Object Microsoft.SqlServer.Management.Smo.RelocateFil ...
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo         : InvalidType: (:) [New-Object], PSArgumentException
    + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

解決此問題的最佳方法是什么?

謝謝

最好的方法是使用dbaTools 看看這個! 您可以從PowerShell庫中進行安裝,盡管如果您正在運行Windows 7,則可能必須將PowerShell升級到v3或更高版本(適用於v5! )才能使用PowerShell庫。

dbaTools有一個用於備份和還原數據庫的命令。

這是他們的文檔中的一個示例:

Copy-DbaDatabase -Source sqlserver2014a -Destination sqlcluster -Exclude Northwind, pubs, AdventureWorks -BackupRestore -NetworkShare \\\\fileshare\sql\migration

希望能有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM