sql - 无法使用带有 -InputObject 参数的 SQLPS CmdLet Backup-SQLDatabase

标签 sql sql-server powershell smo sqlps

遇到相同的超时问题后发现 here并尝试解决方法,我发现我收到错误:

Backup-SqlDatabase : Cannot bind parameter 'InputObject'. Cannot convert the "[instDW_QA0]" value of type "Microsoft.SqlServer.Management.Smo.Server" to type "Microsoft.SqlServer.Management.Smo.Server".
At line:21 char:50
+   Backup-SQLDatabase -Database msdb -InputObject $server -BackupAction Database  ...
+                                                  ~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Backup-SqlDatabase], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.SqlServer.Management.PowerShell.BackupSqlDatabaseCommand

运行简单脚本时:
$ServerName = "instDW_QA0"
$server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") $ServerName
$server.ConnectionContext.StatementTimeout = 0
$db = $server.Databases["msdb"]
Backup-SQLDatabase -Database msdb -InputObject $server -BackupAction Database -CompressionOption ON -CopyOnly -Initialize

这发生在我试过的三台 Win7 机器上,但脚本在我试过的所有服务器 (Win2012) 上都运行良好。三台 Win7 机器混合安装了软件。一个安装了 SQL 2008R2、2012 和 2014,另一个只有 2008R2 和 2012。一个安装了 PS 2.0,另外两个安装了 PS 3.0。服务器又是一个混合体。所有人都安装了 PS 3.0,但有些有 SQL2008R2 和 SQL2012,有些只有 SQL2012,我试过的一个只有 SQL2014,但它们都有效。唯一一致的区别是操作系统,Win7 与 Win2012,但这对我来说作为潜在原因并没有多大意义。

错误本身令人困惑,它引用的两种类型是相同的。我已经尝试在运行脚本之前加载特定的 SMO 程序集版本(11 和 12),但这似乎没有帮助。

有任何想法吗?提前致谢。

最佳答案

顺便说一句,我猜这些对象可能是使用 Backup-SQLDatabase 使用的同一库的不同版本创建的,这就是为什么有些服务器会提示而其他服务器工作得很好。

由于您仅使用此方法作为解决 Backup-SqlDatabase 超时问题的方法。 ,知道 the same issue 可能有用已修复 Restore-SQLDatabase在 SQL Server 2012 SP1 的累积更新包 8 中。我认为这也会影响 Backup-SQLDatabase .如果您无法修复使用 Backup-SQLDatabase 遇到的错误,这可能会解决超时问题。 .

关于sql - 无法使用带有 -InputObject 参数的 SQLPS CmdLet Backup-SQLDatabase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29944525/

相关文章:

java - isSearchable 什么时候会为 Oracle JDBC 列返回 false?

mysql - SELECT 标签和项目的关联

mysql - SQL查询根据获胜几率找到获胜者

python - 使用Python从数据库中提取

c# - 需要与 Microsoft.SqlServer.Management.Smo Transfer 类连接的帮助

powershell - 如何使用 PowerShell 2 的 export-csv 附加文件?

powershell - 从计算的脚本 block 返回与默认值不同的属性

sql - postgres - 以编程方式将 1gb 模拟数据加载到表中的方法

sql - SQL Server 在窗口函数子句中奇怪的不一致行为?

powershell - 如何使用Powershell递归强制文件夹时间戳?