前回はSQL Server 2008の概要説明、ならびにコンセプトと新機能をご紹介しました。第2回の今回は、管理者向けの新機能について紹介します。第1回でご紹介したSQL Server 2008のさまざまな追加機能のうち以下の5つに注目して詳しく見ていきます。
SQL Server上でデータを暗号化するために、SQL Server 2005までは暗号化関数を使った方法が提供されていました。SQL Server 2008ではデータベースファイルやログファイルそのものを暗号化できる透過的データ暗号化が実装されています。
表1にそれぞれの暗号化に関する主な特徴をまとめました。SQL Server 2005において必須であった暗号化、復号のためのアプリケーション書き換えがSQL Server 2008では不要となっています。
暗号化関数(注) | 透過的データ暗号化 | |
---|---|---|
暗号化範囲 | 特定データ | データベース |
アプリケーション変更 | 必要 | 不要 |
鍵(キー)管理 | 必要 | 必要 |
暗号化対象データ | 特定データ型(下記)が対象 ・nvarchar ・char ・varcha ・binary ・varbinary ・nchar |
データファイルおよびログファイル内のデータ |
データサイズの変化 | 列長が変化する | ファイルサイズの変化なし |
表1 暗号化ソリューションの機能比較 注:暗号化関数はSQL Server 2005で搭載された機能。EncryptByKeyやEncryptByCert、Encrypt ByAsymKeyなどがある |
透過的データ暗号化は以下の1〜4の手順で暗号化を行います。
1. マスターキーの作成
2. マスターキーで保護された証明書の作成
3. 証明書で保護された暗号化キーの作成
4. データベースの暗号化設定(図1)
透過的データ暗号化の注意点としては、インスタンス内のいずれかのデータベースを暗号化した場合、TEMPDB注が自動的に暗号化されることです。一般に、暗号化されたデータの復号にはシステムコストがかかります。非暗号化データベースのデータ操作でTEMPDBを使う処理があった場合、TEMPDB上での操作でパフォーマンスが劣化する可能性があるので注意が必要です。
注:TEMPDBは、SQL Serverのインスタンスに接続しているすべてのユーザーが使用できるグローバルリソースのことです。
では、実際にデータベースにクエリを実行してみましょう。
データベースは暗号化、非暗号化の双方用意し、同じ構造、同じレコードを持った表に全件検索を行います。
ここではselect * from table1を実行しています。なお、今回の検証はCTP6(2月版)で行ったものです。CTP版は、パフォーマンスに対する最適化が完全ではないバージョンです。このため、本稿公開段階での具体的な数値は公表を控えます。
結果を図2に示します。
図2の結果から明らかなように、暗号化データベースへのクエリはCPU使用率が上昇し、実行時間が長くなることが分かりました。実際に透過的データ暗号化を用いる際には業務アプリケーションを用いた性能試験を実施して、性能要件を満たすかを確認した方がよいでしょう。
透過的データ暗号化はアプリケーション変更が不要であることは大きな魅力です。実際にデータを暗号化したい場合は暗号化範囲の明確化と非暗号化データへの影響を考慮し、方式を選択する必要があります。
データベース管理者の仕事の1つにバックアップ運用があります。データベースのバックアップはさまざまな障害からデータを保護する重要な機能です。
SQL Server 2008では従来のバックアップ機能に圧縮オプションが導入されました。バックアップの圧縮が可能になったことで、バックアップメディアが節約できるのはもちろんですが、バックアップの際に発生するディスクI/O自体も削減されます。このため、バックアップ/リストア作業にかかる時間も大幅に短縮できます。
ただし、バックアップ圧縮機能はEnterprise EditionまたはDeveloper Edition のみで提供される機能ですから、注意が必要です。
表2のようなデータベースをサンプルにバックアップ圧縮の効果と影響を確認します。
内容 | 内容 |
---|---|
データファイルの総サイズ | 2.41Gbytes |
データファイル数 | 4 |
トランザクションログサイズ | 1.00Gbytes |
使用データ型 | ・char ・tinyint ・int ・smallint ・text ・money ・smallmoney ・datetime |
表2 バックアップ対象のデータベースの特徴 (データは半角英数のみで日本語は含まない) |
バックアップ圧縮はデータベースのタスクからバックアップを選択し、オプションで圧縮を指定することで実行できます。圧縮選択時のプロパティ画面を図3に示します。
圧縮あり、なしのそれぞれのパターンでバックアップを行った結果を表3に示します。
結果比較 | |
---|---|
CPU使用率平均 | 10%増加 |
バックアップ時間 | 38%短縮 |
バックアップファイルサイズ | 40%縮小 |
表3 バックアップの圧縮オプション有無による実行結果比較 |
今回の検証はCTP6(2月版)というパフォーマンスに対する最適化が入っていないバージョンでの実施のため、具体的な数値は公表を控えますが、筆者が検証を行った結果からも、バックアップ圧縮では圧縮によるメリットとCPU使用率がトレードオフの関係にあることが分かります。また、メリットの1つに、ネットワーク上のリソースにバックアップを行う際、圧縮オプションを使うことでネットワークトラフィックを削減できることが挙げられます。
管理者にとって、CPU利用率の上昇が許容されるのであれば、バックアップ圧縮機能は有効であるといえます。
Copyright © ITmedia, Inc. All Rights Reserved.