質問

SQL Server 2005 を使用してネットワーク経由でデータベースのバックアップを復元するにはどうすればよいですか?以前にこれを行った記憶がありますが、その方法には何か奇妙さがありました。

役に立ちましたか?

解決

多くの場合、データベースはネットワーク アクセスのないアカウントでサービスとして実行されます。この場合、ネットワーク経由で直接復元することはできません。バックアップをローカル マシンにコピーするか、適切なネットワーク アクセスを持つユーザーとしてデータベース サービスを実行する必要があります。

他のヒント

ネットワーク ファイルをバックアップ ソースとして使用するにはいくつかのオプションがあります

  1. MS-SQL Server と同じユーザーの下で、ネットワーク ドライブ/パス、ホスティング ファイルをマッピングします。
  2. 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 サーバーのネットワーク ドライブをマップできます。その後、ファイル参照ウィンドウに表示されます。

EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'

詳細はこちら: ネットワークドライブからのDBリストア

私にとっては役に立ちました!

これを何度か行う必要がありましたが、私が知っている選択肢は 2 つだけです。ファイルを SQL Server にローカルにコピーするか、SQL Server 上でバックアップ ファイルを含む共有にマップされたネットワーク ドライブを作成します。

また、ネットワーク アクセスと、バックアップ ファイルが存在する共有へのアクセス許可を持つユーザーとして SQL Server サービスが実行されていることを確認する必要があります。「ローカル システム」にはネットワークにアクセスする権限がありません。

余談ですが、仮想マシン上で SQL を実行している場合は、バックアップ ファイルをコピーするのに十分なスペースのある新しいドライブを VM 上に一時的にセットアップし、その新しいローカル コピーから復元する方が手間がかからないことがよくあります。その後、一時ドライブを削除します。

これは、アカウントを変更するために SQL サービスを停止/開始することが問題となる場合に役立ちます。

バックアップがあるマシン上に共有ドライブを作成します。たとえば、server1 の「Backups」フォルダーにバックアップがあります。SQL Server を実行しているアカウントにフル コントロールを付与します。SSMS を起動するために復元したいサーバーで、データベースの復元に移動し、[デバイスから] を選択します。[バックアップ ファイルの検索 - "サーバー"] ダイアログ ボックスで、[選択したパス] フィールドにあるものをすべて削除し、[ファイル名] フィールドにフル パス (\server\backups\db.bak) を入力します。少なくとも、05 から 08 に移行するときはうまくいきました。ネットワークの障害により復元に問題が発生する可能性があるため、推奨される方法ではありません。

EXEC sp_configure 'show advanced options', 1
GO

-- 詳細オプションの現在構成されている値を更新します。

RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO

-- 詳細オプションの現在構成されている値を更新します。

RECONFIGURE
GO

--これはコマンド プロンプト (cmd) で実行する必要があります。

NET USE Z: \\172.100.1.100\Shared Password /USER:administrator /Persistent:no

次にSQL Server上で

EXEC xp_cmdshell 'NET USE Z: \\172.100.1.100\Shared Password /USER:administrator /Persistent:no'

--その後、Z を運転します。Server Management Studio に表示されるか、単に

RESTORE DATABASE DB FROM DISK = 'Z:\DB.BAK'
WITH REPLACE
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top