SQL Server 2008でTDEを構成する際のベストプラクティスはありますか?SQLMagの記事「透過的データ暗号化に関するFAQ」では、CPUの使用率が最大30%増加した可能性があるとありますか?
サーバーの処理能力を追加する以外に、TDEをオンにするときにDBAが通常行うことは他にありますか?
SQL Server 2008でTDEを構成する際のベストプラクティスはありますか?SQLMagの記事「透過的データ暗号化に関するFAQ」では、CPUの使用率が最大30%増加した可能性があるとありますか?
サーバーの処理能力を追加する以外に、TDEをオンにするときにDBAが通常行うことは他にありますか?
回答:
私が気付いたいくつかの追加のポイントは、バックアップ圧縮機能を使用している場合、この機能とTDEがうまく機能しないことです。圧縮率はごくわずかで、ごくわずかであることがわかりました。したがって、バックアップ圧縮を使用している場合は、この点を考慮してください。
ご存知だと思いますが、TDEはEnterpriseエディションでも利用できるため、TDE用にSQLサーバーを設定する際にもこの点を考慮してください。
TDEは、セルレベルの暗号化で提供されるような、ユーザーまたはデータベースロールに固有の細かい制御を提供しません。
暗号化キーが、復元シナリオの際にアクセスできる安全な場所に安全に保存されていることを確認してください。暗号化されたデータベースを新しいサーバーに復元する方法を理解します。(元々はJonathan Fiteによるコメント)。
まず、データベースを暗号化する前に、マスターキーと証明書のバックアップを取り、オフラインで保存します。これを行うためにTDEを適用するまで待つ必要はありません。また、パスワードをパスワード保管庫に保管し、どのパスワードがどのオブジェクトに関連付けられているかを明確にします。あなたは本当にこれらを見逃したくないのです。
TDEがデータベースに与える影響は、関係するワークロードに完全に依存しています。最近、TDEをデータウェアハウスに適用したところ、夜間の負荷に対するパフォーマンスへの影響は何もありませんでした。これは、プロセスがCPUに拘束されていないことを示しています。ただし、データベースには当てはまらない場合があります。したがって、最初に開発環境でワークロードをテストできる場合は、テストしてください。
暗号化されるのはファイル内のデータだけではありません。TDEはtempDBも暗号化するため、TempDBを頻繁に使用する他のデータベースがある場合、パフォーマンスに影響が出る可能性があります。バックアップとスナップショットの両方も暗号化されます。
このデータベースを他の環境(例:テストまたはUAT)に復元する必要があるかどうかも検討してください。データベースの暗号化に使用した証明書をこれらの他のサーバーに復元する必要があります。これはあまり問題に聞こえないかもしれませんが、これらの環境のいずれかにエンタープライズまたは開発者がいない場合、これはコストがかかる可能性があります。環境全体にTDEを適用する代わりに、データベースをエンタープライズ/開発者の中間インスタンスに復元し、機密データをスクランブルするか、暗号化を削除して新しいバックアップを作成し、他の環境に復元することができます。この2番目の選択はおそらく最も賢明ではありませんが、常にオプションです...
TDEをオンにすると、データベースに適用されるロックが2つあります。共有ロックと更新ロックです。TechNetはこれを完全に述べています:
TDEが有効(または無効)の場合、データベースはsys.databasesカタログビューで暗号化済みとしてマークされ、DEK状態は暗号化進行中に設定されます。サーバーは、すべてのデータベースファイルをスキャンして暗号化する(またはTDEを無効にする場合は復号化する)バックグラウンドスレッド(暗号化スキャンまたはスキャンと呼ばれます)を開始します。DDLの実行中、データベースで更新ロックが取得されます。暗号化スキャンはDDLと非同期で実行され、共有ロックを取得します。これらのロックと競合しない通常の操作はすべて続行できます。除外される操作には、ファイル構造の変更とデータベースのデタッチが含まれます。バッファープールからディスクへの通常のデータベース書き込みは暗号化されますが、ログファイル書き込みは暗号化されない場合があります。スキャンでは、仮想ログファイル(VLF)も強制的にロールオーバーされ、ログへの今後の書き込みが確実に暗号化されます。
私の経験は、日中はほとんど使用されず、夜間は頻繁に使用されるデータウェアハウスでしたので、日中の混乱を最小限に抑えてTDEを適用することができました。本番環境でOLTPを暗号化する場合は、問題を最小限に抑えるために、メンテナンス期間中にこれをスケジュールするのが最善です。
編集:また、圧縮のポイントで。TDEがバックアップの圧縮に影響することは事実ですが、行/ページ/列ストアの圧縮には影響しません。そのため、バックアップによる圧縮の損失を調整する場合は、データベース内のオブジェクトを圧縮できます。繰り返しますが、ワークロードによっては、データベースに圧縮を実装する必要がある場合とない場合があります。CPUにさらに負荷がかかるためです。圧縮の実装に関する優れたTechNet記事があります。https://technet.microsoft.com/en-us/library/dd894051%28v=sql.100%29.aspx