sql-server - 容量不足 - sqlserver 復元 時間 が かかる




ネットワークを介してデータベースのバックアップを復元する (6)

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

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

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

私のために働いた!

ネットワーク経由でSQL Server 2005を使用してデータベースバックアップを復元するにはどうすればよいですか? 私は以前これを思い出していますが、あなたがそれをやらなければならない方法については何か奇妙なことがありました。


"Services.msc"SQL servicesを実行しているユーザーがアクティブディレクトリ"Domain User"ことを確認してください。これにより問題が解決されます。


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


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


バックアップファイルとしてネットワークファイルを使用するオプションはほとんどありません。

  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 Managmentスタジオで表示されます。

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

副次的なことに、仮想マシン上でSQLを実行している場合は、バックアップファイルをコピーするのに十分なスペースを確保して、新しいドライブを一時的にVMにセットアップするだけでなく、一時ドライブを削除します。

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





restore