2017-02-21 5 views
0

PowerShellスクリプトを実行して.bakファイルからデータベースを復元しました。今日、私は "レポート"でデータベースをチェックしようとしたとき、私はそれが無効になっていたことに気付きました。私は、データベースを復元するために使用されるスクリプトに何か問題があるかどうか、非常にわからない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共通機能(すべて選択) アプリケーション開発(セレクトASP .NET) セキュリティ(Windows認証)

それは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

申し訳ありませんが、私はadminとして実行しようとしましたが、動作していません... – user1888955

+0

私はIISを追加しました。それが正しくインストールされているかどうかを確認します。 SSMSには時々問題があります。 –

+0

ええ、IISがインストールされていて、うまくいきました。私は非常に興味があると感じることは、私は別のSQLサーバー上にbakを復元し、それが現れたということです。古いものに何が間違っているのか分かりません... – user1888955

関連する問題