データベースでログ配布を有効にしています。場所logical name 'AB'
にE:\Databases\AB.ndf
を50 MBとしてファイルを作成しました。しかし、後でこのファイルを削除して、同じ場所logical name 'AB_File'
にE:\Databases\AB.ndf
が10 MBの別のファイルを作成しました。これで、バックアップの移動先のサーバーがエラーで失敗します。
Error:
1) Could not apply log backup file 'some location of a .trn file' to secondary database
2)The operating system returned the error '32(The process cannot access the file because it is being used by another process.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on 'E:\Databases\AB.ndf'.
3) File 'AB_File' cannot be restored to 'E:\Databases\AB.ndf'. Use WITH MOVE to identify a valid location for the file.
次のスクリプトを実行してみました。
RESTORE LOG [db_name] FROM
DISK = 'E:\Log_Shipping\\db_name_20160817070500.trn'
WITH MOVE 'AB_FILE'
TO 'E:\Databases\AB.ndf',
standby = N'E:\Databases\\db_name_20160818.tuf'
私はこれを修正することができないようです。助けてください!
バックアップサーバー上のファイルの場所は、プライマリサーバー上のファイルの場所と同じです。また、ファイルグループは削除され、ファイル名は正しいです。
あなたがエラーを言ったように
'RestoreContainer :: ValidateTargetForCreation'の試行中に、オペレーティングシステムがエラー'32(プロセスはファイルにアクセスできません。別のプロセスが使用しているためです。) 'を返しました
これは、復元しようとしているデータベースのデータベースファイルの名前が既に存在しているためです。
これは、2つの理由が考えられます。すべてのインスタンスで同じデータベースに対して同じ作成スクリプトを使用したか、そのインスタンスに復元しようとしているデータベースの復元を既に実行したかです。
この問題を解決するには、次の手順を実行します:
SSMSの復元ページで、[オプション]タブを押します。
[名前を付けて復元]列で、データファイルとログファイルの名前を一意の名前に変更します。
次に、復元ボタンを押してください。
あなたの参考のために ここ
いくつかのことを確認してください
試す
RESTORE LOG [db_name] FROM
DISK = 'E:\Log_Shipping\\db_name_20160817070500.trn'
WITH FILE=1,
MOVE 'AB_FILE'
TO 'E:\Databases\AB.ndf',
standby N'E:\Databases\\db_name_20160818.tuf',
NOUNLOAD, REPLACE, RECOVERY,
;
GO
それがあなたの問題を解決することを願っています。