[英]SQL Server 2008 restore option is disabled when database goes offline
[英]Database reports option is disabled in SQL Server
我通过运行 PowerShell 脚本从.bak
文件恢复了数据库。 今天,当我尝试使用“报告”检查数据库时,我发现它已被禁用。 看截图:
不太确定我用来恢复数据库的脚本是否有问题,但这里是:
$restoredDbName = "dbx"
[string] $dbCommand = "RESTORE DATABASE [$($restoredDbName)] " +
"FROM DISK = N'$($bakFilePath)' " +
"WITH FILE = 1," +
"MOVE N'$($fileLogicalName)' TO N'$($restorePathD)\$($restoredDbName).mdf'," +
"MOVE N'$($fileLogicalName)_Log' TO N'$($restorePathD)\$($restoredDbName)_Log.ldf',"
if($bakFilename.Contains("xyz")) {
$dbCommand += "MOVE N'abc' TO N'$($restorePathD)\$($restoredDbName).ndf',"
}
$dbCommand += "NOUNLOAD, REPLACE, STATS = 1"
这是因为您的 SSMS 的版本比与您运行的 sql server 实例版本兼容所需的版本要旧。
尝试升级您的 ssms。 这应该可以解决问题。
几件事要尝试:
它可能是未正确安装的 IIS 角色。 通用 HTTP 功能(全选) 应用程序开发(选择 ASP .NET) 安全(Windows 身份验证)
可能是 SSMS 未以管理员身份运行“以管理员身份运行”,即右键单击 SSMS 图标或菜单选项并选择“以管理员身份运行”。 试试这个。
我确定它不是 PowerShell 脚本。 此外,我在您的 SQL 的 PowerShell 脚本中看到了一些问题。 这是我用于恢复数据库的 goto 脚本。
$DBName="RestoreDB"
$fileLogicalName_DATA="XYZ"
$fileLogicalName_LOG="XYZ_LOG"
$backupFilePath="D:\RestoreDB.bak"
$Datafilepath="D:\DataStore" #Do not add the trailing \
$Logfilepath="D:\LogStore" #Do not add the trailing \
$dbCommand = "use [master];RESTORE DATABASE [$DBName] " + "FROM DISK = N'$backupFilePath'" + "WITH FILE = 1, NOUNLOAD, STATS = 10, " + "move '$fileLogicalName_DATA' to '$Datafilepath" + "\" + "$DBName" + "_data.mdf', " + "move '$fileLogicalName_LOG' to '$Logfilepath" + "\" + "$DBName" + "_log.ldf';" + "alter database [$DBName] modify file (name=N'$fileLogicalName_DATA', newname=N'$DBName" + "_data');" + "alter database [$DBName] modify file (name=N'$fileLogicalName_LOG', newname=N'$DBName" + "_log');" + "alter database [$DBName] set read_committed_snapshot on with rollback immediate;" + "alter database [$DBName] set COMPATIBILITY_LEVEL = 100;"
sqlcmd -S $DBServerName -E -Q $dbCommand -r0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.