none
SQL Serverのデータベース復元エラーについて

    質問

  • 復元時に以下の警告が発生し復元できません。「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」の警告が発生します。
    全てのデータベースが同じ現象でというわけではありません。該当する分は開発作業中のデータベースです。
    Management Studioのプロセスを確認しましたが対象データベース分は残っていません。
    ただし該当する分はコマンドプロンプトで「RESTORE DATABASE・・・」でmdf及びログファイルを復元すると正常に復元できます。
    開発作業時になんらかのロック(検証などで途中でプログラムがとまっているなど)がかかっていたりしているのでしょうか?

    12/30に追記、ここから

    各DBはバックアップ済みの雛型DB(testdb)より復元してリネームして作成しました。

    しかしながらやり直したことが多々ありコピー先のDBが(以下の例ではaaa)既存であったにもかかわらず以下のコマンドを実行いたしました。

    雛型DBより復元

    sqlcmd -S サーバー名 -U sa -P !!m2bank -Q "RESTORE DATABASE [aaa] FROM DISK='D:\MSSQL\MSSQL13.MSSQLSERVER\MSSQL\Backup\testdb' WITH MOVE 'testdb' TO 'D:\\MSSQL\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\aaa.mdf', MOVE 'testdb_log' TO 'D:\\MSSQL\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\aaa_log.ldf'
    " > C:\temp\log2.txt

    名前を変更、ログファイルも同様に処理

    sqlcmd -S サーバー名 -U sa -P !!m2bank -Q "ALTER DATABASE [aaa] MODIFY FILE ( NAME = 'testdb', NEWNAME = 'aaa')
    " > C:\temp\log3.txt

    既存ファイルに対して「REPLACE」でなく「WITH MOVE」でおこなったのでこのような事象になっているのでしょうか。データ自体は問題なく登録できています。

    12/30に追記、ここまで

    お手数ですがご教示ください。
    OS:Windows Server2012、SQL Server 2016 R2


    • 編集済み dmisa64 2017年12月30日 1:36
    2017年12月23日 14:19

すべての返信