同じサーバー上のSQL Server 2012
からSQL Server 2014
にデータベースを移行しています。
どうやら暗号化されているデータベースにLOG SHIPPINGを設定しています。
ログ配布を設定すると、次のメッセージが表示されます(バックアップからデータベースを復元し始めたとき):
私はここの新しいDBAであり、マスターキー、暗号化されたキーなどのレポートはありません。
SQL2012からSQL2014へのログ配布を設定しています(回復なし)。このデータベースをEncryption enabled - false
に設定して、ログ配布ウィザードでデータベースを復元しようとすると、何が問題になるのでしょうか?
これ のように、この問題についていくつかの質問がありますが、すべてのユーザーがパスワードが必要だと言っています。
プライマリサーバー(2012)のmaster > security > certificates
でこの証明書を見つけました。
そして、Interetを介していくつかのコードサンプルがありますが、それらを本当に信頼することはできません(単純すぎるとは思いません)。
`USE MASTER
GO
ALTER DATABASE DatabaseName
SET ENCRYPTION OFF
GO
USE DatabaseName
GO
DROP DATABASE ENCRYPTION KEY
GO`
Edit1:
この質問では Dylonさんのコメント:
拇印エラーが発生する場合、証明書はソースサーバーの証明書/キーバックアップから適切に作成されていません。
このトピックについて混乱しています。暗号化を無効にし、他のサーバーでデータベースを復元してログ配布を行い、いつか暗号化を有効にするだけです。
Edit2:
Database > tasks > manage database encryption
にもいくつかのオプションがあります:
これを無効にすると、データベースを再度バックアップし、新しいインスタンスで復元できますか?
TDEを無効にしないでください。長いデータサイズの操作であることに加えて、それは最初に理由のために確立されたものであり、TDEに存在するコンプライアンス/操作の理由をすべて壊す可能性があります。
むしろ、TDEの存在下でログ配布を適切にセットアップします。 TDEで保護されたデータベースを別のSQLサーバーに移動する で説明されている手順に従います。元のサーバーからTDE証明書をexportして、importスタンバイサーバー上で、master
データベースマスターキーで暗号化され、データベースmaster
マスターキーがサービスマスターキーで暗号化されていることを確認します。その後、正しく実行されれば、必要なTDE証明書が存在するため、復元操作は成功します。
証明書をコピーするには:証明書は、プライマリインスタンスのmaster
データベースにあります。実行する必要があります:
BACKUP CERTIFICATE TDE_CERT
TO FILE <where to save cert>
WITH PRIVATE KEY (FILE = <where to save private key>,
ENCRYPTION BY PASSWORD = <password for the private key file>);
次に、証明書と秘密鍵の両方のファイルをセカンダリにコピーし、次のコマンドを使用してmaster
に復元します。
CREATE CERTIFICATE TDE_CERT
FROM FILE = <your copied cert file>
WITH PRIVATE KEY (FILE = <your copied private key file>,
DECRYPTION BY PASSWORD = <password that protects private key file>);
セカンダリのmaster
のTDE_CERT
は、作成する必要があるmaster
データベースマスターキーで暗号化する必要があります。