データベースをコピーしようとしています。データベースコピーウィザードを実行すると、SQL Serverエージェントジョブの実行エラーが発生します。エラー状態
ジョブは失敗しました。詳細については、移行先サーバーのイベントログを確認してください
操作を実行する
パッケージのログを追加(成功)
データベースオブジェクトを転送するためのタスクを追加(成功)
パッケージの作成(成功)
SQL Serverエージェントジョブの開始(成功)
SQL Serverエージェントジョブの実行(エラー)
エラー:
ジョブは失敗しました。詳細については、移行先サーバーのイベントログを確認してください。 (データベースのコピーウィザード)
この問題の原因を見つけることができないようです。正しいアプローチを使用していますか?このデータベースをコピーするだけです。前もって感謝します。
同じサーバー上でデータベースを複製しようとしている場合、これを試してください:
Databases
を右クリックし、Restore Database
を選択しますFrom Database
セクションのSource for restore
ドロップダウンリストからコピーするデータベースを選択しますTo database
セクションのDestination for Restore
フィールドに新しいデータベースの名前を入力します-これは既存のデータベースの名前にはできません。Windowsイベントログを確認します。
以下に例を示します。
以下に、発生したエラーと解決策の一部を示します。
ジョブ...の所有者(...)にサーバーアクセスがあるかどうかを判断できません(理由:Windows NTグループ/ユーザー '...'の情報を取得できませんでした、エラーコード0x54b。[SQLSTATE 42000](エラー15404) )。
データベースのコピーウィザード中に、移行先サーバーにサインインしたアカウントに適切な特権があり、それらの特権が取得可能であることを確認する必要がありました(最終的にsa
アカウントを使用しました)。上記の警告。
アクセスが拒否されました
ローカルSQL Serverエージェントがローカルサーバーに対して適切な特権を持っていることを確認する必要がありました。そのため、SQL Serverエージェントをローカルシステムとしてログオンしました。これは、ローカルシステムがSQL Serverインスタンスのsysadminであるため機能しました。
おそらく不十分なアクセス権が原因で、メタデータを読み取れませんでした。
ローカルシステムアカウントにさらに権限を与える必要がありました。
xp_regread()はエラー5、「アクセスが拒否されました」を返しました。
これは私たちを悩ませ、別の質問をしました: xp_regread()はエラー5、「アクセスは拒否されました。」
通常、アカウント(NT Service\SQLSERVERAGENT)にはデータフォルダー(..Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA)に対するアクセス許可がないためです。フルコントロールに設定しても大丈夫
上記のアカウントはデフォルトです。エージェントを実行しているアカウントを確認する場合は、services.mscにアクセスしてください。アカウントのログオンを確認する
データベースコピーウィザードの問題:エラー:値をnullにすることはできません。パラメーター名:データベースStackTrace:at Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.CheckLocalandDestinationStatus
データベースのコピーウィザードをSQL 2012からSQL2017 1のスケジュールで動作させるためにすべてを試しました。sysadmin2のプロキシを既に設定していても、SQLエージェントアカウントを管理者に設定していました。私はデータツールに行き、最大エラーを複数に変更しようとしました。
A. 2017年のサーバーにデータツールをインストールしました(必要な場合に備えて)B. 2017年のサーバーにダミーデータベースを追加して、データベースのコピーウィザードにアクセスできるようにしましたSSMS内。 C.ダミーデータベースからNEWERシステムからopyデータベースウィザードを起動しましたが、ソースを(ローカルSQLインスタンスのデフォルトではなく)ソースサーバーに変更し、それぞれターゲットをローカルマシンSQLインスタンスに変更しました。
D.各アイテムのウィザードを実行しました(私の場合は、SSMSを使用したコピーアンドリプレースオプションでした(プロダクションでソースをダウンできなかったため、デタッチおよび再アタッチしません)。宛先ディレクトリを変更した後の各データベースコピーウィザード画面。
(SQL 2017のSSMS 2017でデータベースを移行する場合は1つのキャビア。SQLバージョンの最新の累積更新があることを確認してください。 https://support.Microsoft.com/en-us/help/434212 vs.クエリで@@ versionを選択
また、SQLエージェントとSQLサーバーアカウントにターゲットディレクトリへのアクセス許可があることを確認してください)
その後、私のスクリプトは最終的にSQL2017サーバーから実行され、SQLエージェントジョブに追加されました。
私にとっては、dbをローカルホストにコピーしていました。
その時点で、私はSQL Serverのインポートおよびエクスポートウィザードをあきらめ、使用しましたが、これは必要なものに対してはうまくいくように見えました。 https://docs.Microsoft.com/en-us/sql/integration-services/import-export-data/import-and-export-data-with-the-sql-server-import-and- export-wizard?view = sql-server-2017
インポートおよびエクスポートウィザードを使用すると、テーブルでうまく機能することに注意してください。データベースを右クリック->タスク->スクリプトを生成して、ビュー、ストアドプロシージャ、および関数を個別にコピーする必要がありました。その後、ウィザードで選択可能なオブジェクトを確認します。
幸運を祈ります。これが誰かの助けになることを願っています。