スケジュールに基づいて毎日復元する必要があるバックアップファイルがあります。
ただし、バックアップファイルはSQL Server 2008からのものであり、復元先はSQL Server 2014です。また、バックアップファイルはクロスネットワークからのものです。ローカル共有フォルダーにコピーして復元しようとしています。
私が使用したコード:
USE [master]
RESTORE DATABASE MyDB FROM
DISK = N'\\Mylocation\DBRestores\MyBackupFile'
WITH
FILE = 1, -- 1 = .bak, 2 = .trn type backup
MOVE N'MyDB_data' TO N'S:\MSSQLsql\mssql\DATA\MyDB.mdf',
MOVE N'MyDB_log' TO N'L:\MSSQLsql\mssql\DATA\MyDB_log.ldf',
NOUNLOAD,
STATS = 5
go
エラーが出ます
メッセージ3241、レベル16、状態0、行3
デバイス '\ Mylocation\DBRestores\MyBackupFile'のメディアファミリーの形式が正しくありません。
SQL Serverはこのメディアファミリを処理できません。メッセージ3013、レベル16、状態1、行3
RESTORE DATABASEが異常終了しています。
何か助け?ありがとう。
SQL Serverユーザーアカウントが「\ Mylocation\DBRestores \」(ファイル共有とファイルシステムのセキュリティ権限)から読み取れるかどうかを確認します。
実際に機能することをテストするには、バックアップをローカルサーバーにコピーして、そこから実行します。
SQLのこの部分は正しくありません
DISK = N '\ Mylocation\DBRestores\MyBackupFile'
それは例えば
DISK = N '\ Mylocation\DBRestores\MyBackupFile.bak'
ディレクトリを提供していますが、バックアップファイルの完全な仕様を提供する必要があります。
あなたの環境では次のようなものが必要です:
USE [master];
RESTORE DATABASE MyDB FROM
DISK = N'\\Mylocation\DBRestores\MyBackupFile.bak'
WITH
FILE = 1,
MOVE N'MyDB_data' TO N'S:\MSSQLsql\mssql\DATA\MyDB.mdf',
MOVE N'MyDB_log' TO N'L:\MSSQLsql\mssql\DATA\MyDB_log.ldf',
NOUNLOAD, REPLACE, RECOVERY,
STATS = 5
;
GO
それがうまくいくことを願っています。