【问题标题】:Powershell SQL Server 2008 Database Backup RemotelyPowershell SQL Server 2008 远程数据库备份
【发布时间】:2012-11-29 21:34:04
【问题描述】:

我正在尝试将 LAN 上的远程数据库备份到网络共享驱动器。我使用 .NET 使用相同的方法进行了测试,它确实有效,但我计划在没有 Jenkins 持续集成工具的情况下使用这个 PowerShell 脚本。

$dbserver = "dbserver"
$location = "\\otherserver\Temp\"
$user = "user"
$pwd = "password"

$timestamp=((get-date).toString("yyyy_MM_dd_hh_mm"))
$file = $location + "jira_" + $timestamp + ".bak"

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | Out-Null

$connection = New-Object "Microsoft.SqlServer.Management.Common.ServerConnection" 
$connection.ServerInstance =$dbserver
$connection.LoginSecure = $false
$connection.Login = $user 
$connection.Password = $pwd

$server = New-Object "Microsoft.SqlServer.Management.Smo.Server" $connection
$backup = New-Object "Microsoft.SqlServer.Management.Smo.backup"
$backup.Action = 'Database'

$device = New-Object ('Microsoft.SqlServer.Management.Smo.BackupDeviceItem') ($file, 'File')
#$device.DeviceType = 'File'
#$device.Name = $file

$backup.MediaDescription = "Disk"
$backup.Database= "jira"
$backup.Devices.Add($device)
$backup.SqlBackup 

我没有遇到任何异常,但也没有任何信息可以帮助我解决我的代码问题。使用所有可用的 throw, catch, try 我只能得到。

MemberType          : Method
OverloadDefinitions : {System.Void SqlBackup(Microsoft.SqlServer.Management.Smo.Server srv)}
TypeNameOfValue     : System.Management.Automation.PSMethod
Value               : System.Void SqlBackup(Microsoft.SqlServer.Management.Smo.Server srv)
Name                : SqlBackup
IsInstance          : True

【问题讨论】:

  • 我的主要问题是:执行此脚本的用户/帐户是否有权访问该远程位置?您能否尝试将文件复制到该位置并查看是否有效?另外:如果您针对 SQL Server 机器上的本地驱动器,此备份脚本是否有效??

标签: .net sql-server-2008 powershell smo


【解决方案1】:

SqlBackup 是一种方法。当你调用一个方法时,你需要包含左括号和右括号:

$backup.sqlbackup($server)

省略括号将输出方法签名而不是调用方法。省略方法签名不是错误,因此没有错误。

【讨论】:

  • 谢谢我知道这么多的 linux 脚本,学习 ps 有点复杂。谢谢!
猜你喜欢
  • 2017-08-14
  • 2010-12-14
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多