ネットワーク経由で SQL Server 2005 を使用してデータベースのバックアップを復元するにはどうすればよいですか? 以前にこれをやったのを覚えていますが、あなたがしなければならなかった方法には何か奇妙なことがありました。
10 に答える
ネットワーク ファイルをバックアップ ソースとして使用するオプションはほとんどありません
- ネットワーク ドライブ/パス、ホスティング ファイルを、MS-SQL Server と同じユーザーの下にマップします。
- xp_cmdshell 拡張ストアド プロシージャを使用して、MS SQL の内部からネットワーク ドライブをマップします (このようにして、コマンド シェルは、SSMS を実行しているユーザー アカウントと同じ権限を持ちます)。
-- allow changes to advanced options
EXEC sp_configure 'show advanced options', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
EXEC xp_cmdshell 'NET USE Z: \\Srv\Path password1 /USER:Domain\UserName'
その後、ドライブ Z: が Server Management studio に表示されるか、または
RESTORE DATABASE DataBaseNameHere FROM DISK = 'Z:\BackNameHere.BAK'
GO
多くの場合、データベースはネットワーク アクセスのないアカウントでサービスとして実行されます。この場合、ネットワーク経由で直接復元することはできません。バックアップをローカル マシンにコピーするか、適切なネットワーク アクセスを持つユーザーとしてデータベース サービスを実行する必要があります。
これは、SSMS GUI から行うことはできませんが、スクリプトを使用して行うことができます。RESTORE DATABASE from DISK='\unc\path\filename' このプロセスを自動化する必要がある場合、最適な方法は、SQL Server ジョブをセットアップし、ファイルの場所にアクセスできるユーザーとして実行することです。
で実行しているユーザーがアクティブ ディレクトリSQL services
であることを確認してください。これにより、問題が解決されます。"Services.msc"
"Domain User"
SP xp_cmdshell を使用して SQL Server のネットワーク ドライブをマップすると、ファイル参照ウィンドウに表示されます。
EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'
詳細はこちら:ネットワーク ドライブからの DB 復元
私のために働いた!
また、SQL Serverサービスが、ネットワークアクセスと、バックアップファイルが存在する共有へのアクセス許可を持つユーザーとして実行されていることを確認する必要があります。「ローカルシステム」には、ネットワークにアクセスするためのアクセス許可がありません。
私はこれを数回しなければなりませんでしたが、私が知っているオプションは 2 つだけです。ファイルを SQL Server にローカルにコピーするか、SQL Server でバックアップ ファイルを含む共有にマップされたネットワーク ドライブを作成します。
補足として、仮想マシンで SQL を実行している場合は、バックアップ ファイルをコピーするのに十分なスペースを備えた新しいドライブを VM に一時的にセットアップし、その新しいローカル コピーから復元を行う方が手間がかからないことがよくあります。次に、一時ドライブを削除します。
これは、SQL サービスを停止/開始してアカウントを変更することが問題である場合に役立ちます。
バックアップがあるマシンに共有ドライブを作成します。たとえば、server1 のバックアップは「Backups」フォルダにあるとします。SQL Server を実行しているアカウントにフル コントロールを付与します。SSMS を起動するために復元するサーバーで、復元データベースに移動し、[デバイスから] を選択します。[バックアップ ファイルの検索-"サーバー"] ダイアログ ボックスで、[選択したパス] フィールドと [ファイル名] フィールドにあるものをすべて削除し、"\server\backups\db.bak" のようにフル パスを指定します。少なくとも、05 から 08 に移行するときはうまくいきました。ネットワークの問題が復元に問題を引き起こす可能性があるため、推奨される方法ではありません。