2008-08-19 22 views

答えて

15

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

+2

また、ネットワークアクセスの前に 'EXEC xp_cmdshell 'NET USE ...'を実行してください。他の答えを参照してください。 –

+1

https://www.mssqltips.com/sqlservertip/3499/make-network-path-visible-for-sql-server-backup-and-restore-in-ssms/ –

0

私はこれを数回しなければなりませんでした。私が知っているオプションは2つだけです。ファイルをSQL ServerまたはSQLサーバーにローカルにコピーし、バックアップファイルを含む共有にマップされたネットワークドライブを作成します。

7

SSMS GUIでは実行できませんが、スクリプトを使用して実行できます。 DISK = '\ unc \ path \ filename'からデータベースを復元するこのプロセスを自動化する必要がある場合は、SQL Serverのジョブをセットアップし、ファイルの場所にアクセスできるユーザーとして実行することをお勧めします。

+1

これは正しくありません。 「データベースの復元...」ダイアログを開く前にネットワークドライブをマップしている限り、ネットワーク経由でリストアすることができます。 –

+0

これは、SQL 2005またはSQL 2008ツールのケースではありませんでした。 – baldy

0

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

4

SQL servicesを実行しているユーザーが"Services.msc"になっていることを確認してください。"Domain User"これで問題が解決されます。

0

仮想マシン上でSQLを実行した場合、バックアップファイルをコピーするのに十分なスペースを確保して、VM上に新しいドライブを一時的にセットアップするのは面倒ではありません。新しいローカルコピーを作成し、一時ドライブを削除します。

これは、SQLサービスを停止/開始してアカウントを変更する場合に便利です。

4

SP xp_cmdshellを使用して、SQL Serverのネットワークドライブをマップすることができます。その後、ファイルブラウジングウィンドウに表示されます。ここ

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

詳細:DB Restore from Network Drive

私のために働きました!

59

あなたは、MS-SQL Serverと同じユーザーの下にファイルを、ホスティング、バックアップソース

  1. 地図ネットワークドライブ/パス、などのネットワークファイルを使用するには、いくつかのオプションがあります。
  2. 使用は
-- 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駆動(、コマンドシェルがユーザアカウントSSMSを実行するのと同じprivilegiesを有することになるような方法)MS SQLの内部からネットワークドライブをマッピングするためにストアドプロシージャを拡張xp_cmdshellを:あろうサーバーの経営管理論のスタジオで目に見える、または単に

RESTORE DATABASE DataBaseNameHere FROM DISK = 'Z:\BackNameHere.BAK' 
GO 
+1

SQL Serverの現在のサービスユーザーで「NET USE」を呼び出すと、問題が解決されます。この答えは本当に便利です。 –

+1

これは完璧です。これは私たちの問題に対する解決策でした:完全なMSSQLアクセスですが、ファイルサーバーへのアクセスはありません。コピーが必要です。どうやって?これが解決策です。 –

+0

xp_cmdshellを無効にするには、後で 'EXEC sp_configure 'xp_cmdshell'、0'のようにsomehingを実行する必要がありますか? (セキュリティ上の理由など)。 –

0

バックアップを持っているマシン上の共有ドライブを作成し、サーバ1は、フォルダ「バックアップ」でバックアップを持っていると言います。 SQL Serverを実行しているアカウントに完全な制御を与えます。 SSMSを起動するために復元するサーバーでデータベースを復元し、[From Device]を選択します。「バックアップファイルの検索 - サーバー」ダイアログボックスで、「選択したパス」フィールドのすべてを削除し、「ファイル名」フィールドに「\ server \ backups \ db.bak」というフルパスを入力します。 05から08に移行するときは、少なくとも私のために働いていました。どのようなネットワークの不具合も復元に問題を引き起こす可能性があるため、推奨される方法ではありません。

関連する問題