ネットワーク共有を介したMSSQLデータベースのエクスポートとインポート
- Mike Sherman
- 2020年10月8日午前9時00分EDT
MSSQLデータベースを使用する場合、SQL Server Management Studio(SMSS)インターフェイスから直接ネットワーク共有を介してデータベースをエクスポートする必要がある場合があります。 SMSSにはこの関数はネイティブには含まれていませんが、回避策を紹介します!
まず、MSSQLデータベースのエクスポートとインポートをカバーしてみましょう
このガイドを利用するための基本的な必要性として、我々はあなたがあなたのデータベーbakファイル。 これは、MSSQLデータベースをバックアップする方法と、2つのサーバー間でデータベースを移動する方法の両方です。 このプロセスは、SSMS(SQL Server Management Studio)内で内部的に、どの方向に進むかに応じて、データベースのバックアップまたは復元と呼ばれます。
バックアップによるMSSQLデータベースのエクスポート
データベースのエクスポートを開始するには、SSMSを開き、サーバーにログインし、データベースに移動します。
目的のデータベースを右クリックし、タスク>バックアップに移動することで、データベースをバックアップできます。
これは、バックアップするデータベース、バックアップの種類、ファイルの保存先、および他の多数のオプションを選択することができますバックア この記事のために、現時点では追加の設定や詳細設定を変更する必要はないので、メニューとそのレイアウトに注意してください。
MSSQLバックアップを作成すると、データベースはaとしてエクスポートされます。bakファイル。 上記のメニューの[宛先]セクションでは、データベースをバックアップする場所を追加または削除できます。 あなたはあなたの目的地の場所のための一つまたは複数の場所を追加することができます.bakファイル。
OKをクリックすると、データベースが選択した場所にバックアップされます。
を復元してMSSQLデータベースをインポートするデータベースを復元するには、同様のプロセスに従いますが、逆にします。 データベースをaにエクスポートする代わりに。bakファイルは、我々はからデータベースをインポートされます。バックファイル。
データベースをインポートするには、データベースの代わりにサーバーを右クリックし、データベースの復元を選択します。
これにより、バックアップメニューに似たメニューが表示され、インポート元のファイル、デバイス設定、およびその場所の宛先、および必要なその他の高度なオプションを選択できます。
ソース>デバイスメニューの下のアイコンを選択すると、を選択できます。インポートするbakファイル。 [追加]をクリックすると、次の場所に移動できます。あなたが復元したいbakファイル。 [OK]をクリックすると、データベースが現在のSQL serverにインポートされます。
この時点で、ネットワーク共有またはマップされたドライブにインポートまたはエクスポートしようとすると、いくつかの困難が発生する可能性があ
マップされたドライブに直接エクスポートできないのはなぜですか?
このガイドが存在する理由は、Microsoftがネイティブにデータベースをネットワーク共有またはマップされたドライブに直接エクスポートする機能を含まない バックアップのためにデータベースをエクスポートしたり、別のサーバーにインポートしたりする場合は、メニューからネットワークドライブを選択したり、手動で
バックアップ先の選択メニューのアイコンを選択してドライブに移動しようとすると、ネットワーク化されたZ:ドライブは表示されず、ローカルドライ
多くの人は、ネットワークドライブへのパスを手動で入力しようとします。 ネットワーク共有ドライブへのパスを直接入力する場合は、次のようにしますZ:\mybackup…..バックアップ先の選択メニューでOKをクリックすることができます。
しかし、最終的なエクスポートでOKをクリックすると、これに似たエラーメッセージがポップアップ表示されます:
ご覧のように、スペース不足やセキュリティ上の理由でデータベースを遠隔地にバックアップする必要がある場合、これは問題になる可能性があります。 通常、データベースをローカルにエクスポートし、リモートサーバーにコピーしてから、移行先のSQL serverにインポートする必要があります。
この不足している機能をどのように回避するのですか?
これを行うには、一連のスクリプトを実行して、ネットワークドライブをMSSQL選択可能メニューに追加する必要があります。 最初に行うことは、SQLコマンドライン内のプロセス中に再作成するため、現在のネットワーク共有を削除することです。 これを行うには、file-explorerでドライブを右クリックし、「切断」を選択するか、コマンドプロンプトを開き、次のように入力します:
net use Z: /delete
ネットワーク共有はZのドライブ文字です。
既存の共有を削除したので、SSMSを開き、次のコマンドを使用して新しいクエリを作成します:
EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'xp_cmdshell',1 GO RECONFIGURE GO
実行をクリックすると、次のウィンドウが表示されます:
このスクリプトが行うことは、SQL互換のコマンドシェルから直接独自のスクリプトを実行できるようにSQLのコマンドシェルを設定することです。
上記のコマンドを実行したら、新しいクエリを作成し、次のコマンドを実行します:
EXEC XP_CMDSHELL 'net use Z: \192.168.1.1\C$ /user:Administrator '
192.168.1.1をリモート接続先サーバーのIPアドレスに置き換え、管理ユーザーのパスワードに更新します。 これらの共有を作成するには、ほぼ確実に管理者権限が必要であることに注意してください。
次のクエリを実行することで、SQL内でネットワークドライブが正しく構成されていることを確認できます:
EXEC XP_CMDSHELL 'Dir V:'
commandshellを有効にし、SQL内でネットワーク共有を作成し、その存在を確認しました。 この場所から直接バックアップをエクスポートおよびインポートできるようになりました。 データベース>タスク>バックアップに移動すると、バックアップ先の場所を追加するときにZ:ドライブが使用可能であることがわかります。
おめでとう! これで、SSMSを閉じて再度開いても持続するSQL内のネットワーク共有が設定されました。 この場所に直接バックアップまたは復元することができ、データベースをローカルにバックアップすることを心配する必要はなく、その後すぐにリモートサーバーに移動する必要があります。
Mike Shermanは、国際的なデータセンターのリード-エンタープライズ-サーバー管理者、および国家MSPの技術コンサルタントとして働いていました。 彼は、ホスティング、セキュリティ、および実践的な問題解決の経験の年を持っています。全文を読む”
Leave a Reply