2017-02-21 22 views
0

Я восстановил базу данных из файла .bak, выполнив сценарий PowerShell. Сегодня, когда я пытался проверить базу данных с помощью «Отчеты», я заметил, что она была отключена. Смотрите скриншот:Параметр базы данных отключен в SQL Server

enter image description here

Не совсем уверен в том, что нет ничего плохого со сценарием я использовал для восстановления базы данных, но здесь это:

$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" 
+0

Вы не уверены, что это проблемы с разрешением? Вы пытались подключиться к серверу с помощью пользователя с разрешениями sysadmin ('sa'), чтобы проверить, существует ли проблема? –

+0

Я попробовал 'sa', но все еще не работает ... – user1888955

+0

Какую версию SSMS вы используете? – supergrady

ответ

0

Несколько вещей, чтобы попробовать:

Это может быть роль IIS, которая установлена ​​неправильно. Общие характеристики HTTP (Выбрать все) Разработка приложений (Select ASP .NET) безопасности (Windows Authentication)

Это может быть, что SSMS не работает в качестве администратора «Запуск от имени администратора», то есть правой кнопкой мыши на SSMS значок или пункт меню и выберите «Запуск от имени администратора». Попробуй.

Я уверен, что это не сценарий PowerShell. Кроме того, я вижу несколько проблем в сценарии PowerShell для SQL. Это мой скрипт 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 
+0

Извините, я попытался запустить его как администратора, но не работает ... – user1888955

+0

Я добавил IIS. Посмотрите, правильно ли установлено. У SSMS иногда возникают проблемы с этим. –

+0

Да, IIS был установлен, и он работает хорошо. Мне очень любопытно, что я восстановил бак на другом сервере sql, после чего он появился. Не совсем уверен, что случилось с старшим ... – user1888955