連載
» 2008年06月16日 00時00分 公開

一気に分かるSQL Server 2008 新機能(2):SQL Server 2008で管理業務はこう変わる (1/3)

前回は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)

図1 データベースの暗号化設定「データベース暗号化をオンに設定」のチェックボックスをチェックする 図1 データベースの暗号化設定
「データベース暗号化をオンに設定」のチェックボックスをチェックする

 透過的データ暗号化の注意点としては、インスタンス内のいずれかのデータベースを暗号化した場合、TEMPDBが自動的に暗号化されることです。一般に、暗号化されたデータの復号にはシステムコストがかかります。非暗号化データベースのデータ操作でTEMPDBを使う処理があった場合、TEMPDB上での操作でパフォーマンスが劣化する可能性があるので注意が必要です。

注:TEMPDBは、SQL Serverのインスタンスに接続しているすべてのユーザーが使用できるグローバルリソースのことです。

 では、実際にデータベースにクエリを実行してみましょう。
データベースは暗号化、非暗号化の双方用意し、同じ構造、同じレコードを持った表に全件検索を行います。

 ここではselect * from table1を実行しています。なお、今回の検証はCTP6(2月版)で行ったものです。CTP版は、パフォーマンスに対する最適化が完全ではないバージョンです。このため、本稿公開段階での具体的な数値は公表を控えます。

 結果を図2に示します。

図2  クエリ実行時のCPU利用率 図2 クエリ実行時のCPU利用率

 図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 バックアップ圧縮を指定するオプション画面 図3 バックアップ圧縮を指定するオプション画面

 圧縮あり、なしのそれぞれのパターンでバックアップを行った結果を表3に示します。

結果比較
CPU使用率平均 10%増加
バックアップ時間 38%短縮
バックアップファイルサイズ 40%縮小
表3 バックアップの圧縮オプション有無による実行結果比較

 今回の検証はCTP6(2月版)というパフォーマンスに対する最適化が入っていないバージョンでの実施のため、具体的な数値は公表を控えますが、筆者が検証を行った結果からも、バックアップ圧縮では圧縮によるメリットとCPU使用率がトレードオフの関係にあることが分かります。また、メリットの1つに、ネットワーク上のリソースにバックアップを行う際、圧縮オプションを使うことでネットワークトラフィックを削減できることが挙げられます。

 管理者にとって、CPU利用率の上昇が許容されるのであれば、バックアップ圧縮機能は有効であるといえます。

       1|2|3 次のページへ

Copyright© 2018 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。