前回の投稿 (AlwaysOn Availability Gruops のデータ同期の仕組みを調べてみる その 1) ではログキャッシュについてまとめてみました。
今回の投稿では [ログプール] についてみていきたいと思います。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
前回の投稿 (AlwaysOn Availability Gruops のデータ同期の仕組みを調べてみる その 1) ではログキャッシュについてまとめてみました。
今回の投稿では [ログプール] についてみていきたいと思います。
先日 SCVMM 2012 RC がリリースされました。
System Center Virtual Machine Manager 2012 RC? Evaluation
SCVMM 2012 RC では、日本語の UI を使用することが可能なので、この機会に SCVMM 2008 R2 SP1 を SCVMM 2012 に移行してみたいと思います。
アップグレードインストールについては以下の情報が参考になります。
Upgrading VMM 2008 R2 SP1 to VMM 2012 RC
数回に分けてAlwaysOn Availability Groups (可用性グループ) のデータ同期の仕組みについて調べてみたいと思います。
まずは、データ同期を考えるうえで重要になってくる [ログキャッシュ] についてまとめていきたいと思います。
64 ビットの SQL Server ではスタートアップ (起動) オプションとして -E というオプションがあります。
SQL Server サービスのスタートアップ オプションの使用
ファイル グループ内の各ファイルに割り当てられるエクステントの数を増やします。
このオプションは、インデックス スキャンまたはデータ スキャンを実行するユーザーの数が限られているデータ ウェアハウス アプリケーションで役立つ場合があります。
パフォーマンスに悪影響を及ぼす可能性があるため、他のアプリケーションでは使用しないでください。
このオプションは、32 ビット リリースの SQL Server ではサポートされていません。
Fast Track Data Warehouse (FTDW) でもこのオプションは使用されており、SQL Server Fast Track Data Warehouse の実装 にもこのスタートアップオプションについて記載がされています。
SQL Server が 2 MB のエクステントを使用できるようにします。
ダウンロードできる SQL Server Fast Track Data Warehouse の実装 には、
-E をスタートアップのオプションに追加する必要があります。
これによって、データベース テーブルの増大に応じて割り当てられる、各ファイル内の連続するエクステントの数が増えます。
そして、シーケンシャルなディスク アクセスが向上します。
Microsoft サポート技術情報 (KB) の記事 329526 では、-E オプションについて詳しく説明しています。
というように書かれており、リンク先には、
SQL Server 2000 Enterprise Edition (64-bit) リリースでは、-E という新しいサーバー起動オプションをサポートしています。
-E 起動オプションを使用すると、ファイル間でエクステントを振り分けるラウンド ロビン サイクルが繰り返される間に、ファイル グループ内でファイルごとに割り当てられるエクステントの数を増やすことができます。
この拡張によりデータの連続性が向上し、DW (データ ウェアハウス) クエリに対して実行される連続したスキャン中に処理される I/O 数が先読みメカニズムによって減少するため、DW のパフォーマンスが向上する場合があります。
-E オプションの使用は、インデックスまたはデータのスキャンを実行するユーザーの数が限られているデータ ウェアハウス アプリケーションで、役立つ場合があります。
このオプションは、データ ウェアハウス以外の環境ではパフォーマンス上の利点がなく、またパフォーマンスに影響を与える可能性もあるため、他の環境では使用しないようにする必要があります。-E オプションは SQL Server 2000 (32-bit) リリースで機能しますが、サポートされていません。
というように記載があります。
今回の投稿では、この内容がどのようなことを表しているのかデータを取りながら見ていきたいと思います。
Facebook でとあるクマさんからコメントをいただいたので試してみました。
Contained Database の Contained User を使用してリンクサーバーは設定できるかの検証です。
Contained Databases の Contained User (DB 内にログイン可能なユーザーを作成) を使用した場合、複数 DB に対してクエリが実行できるかが気になったので検証してみました。
先に検証結果を書いてしまうと、軽く試してみたところではうまくできませんでした…。
SQL Server のセキュリティ設定として、[ログイン] と [ユーザー] があります。
ログインの情報に関しては [master] データベースに格納され、SQL Server に接続をするために必要となります。
そのログインにデータベースのユーザーをマッピングし、データベース内で権限が付与されます。
データベースのユーザー情報に関しては各データベースに格納されています。
# SQL Server 認証を使っている場合の概略です。
Denali で追加された Contained Databases を Availability Groups と組み合わせることで可用性グループ内のサーバーでログイン情報の同期をとることが可能となります。
今回はこの内容についてまとめていきたいと思います。
Windows Server 2008 以降ではマルチサブネットフェールオーバークラスターを構築することが可能となっています。
このマルチサブネットフェールオーバークラスターですが AlwaysOn Availability Groups でも使用することができます。
今回はマルチサブネットフェールオーバークラスター環境の Availability Groups についてみていきたいと思います。
Hyper-V のゲスト OS で 2 ノードクラスターを構築しようとしていたのですが、何回やっても [クリーンアップを正しく実行できません。] というエラーとなってしまい、クラスターを構築することができませんでした。
なんでだろうと思って調べたところ以下の情報が。
Creating Cluster Fails: Unable to successfully cleanup
[フェールオーバー クラスタリング] の機能を削除→追加したところ正常にクラスターを組むことができました。
今回の環境は Sysprep 前に [フェールオーバー クラスタリング] をインストールしていたのですが、これが影響していたのでしょうか??
# いつもは Sysprep 後にクラスターの機能を追加しているのですよね。
なんでエラーになるのかが分からず 1 時間以上悩んでしまいました…。