Denali の Availability Groups のデータベースに接続をする際には、リスナーを経由して接続をすることで自動的にプライマリに接続がされます。 ![]()
2 ノード構成 (シングルセカンダリ) の Availability Groups の場合は、リスナーを経由しなくても従来から実装されているミラーリングと同様の方法で接続することも可能です。
今回はリスナーを使用しない Availability Groups の接続についてまとめてみたいと思います。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
Denali CTP3 Express Core (SQL Server Express) では LocalDB という機能が追加されています。
SQL Server "Denali" Express LocalDB
# SSDT "Juneau" をインストールしてもこそっと導入されていそうな雰囲気もありますが。
LocalDB はサービスではなく、必要に応じてプロセスが起動される SQL Server Express Core となっています。
今回はこの LocalDBを 軽く触ってみたいと思います。
参考にさせていただいたコンテンツはこちらになります。
SQL Server Express LocalDB Reference
SQL Server Express LocalDB Instance API Reference
Denali CTP3 introduces LocalDB – Think SQL Server Express crossed with SQL CE (or SQL CE grown up or SQL Express made as almost as easy CE)
SQL Server 2011 Express LocalDB Installation
SQL Server LocalDB Management Utility SqlLocalDB.exe
SQL Server 2008 R2 では Unicode 圧縮という機能が追加されました。
この機能を使用すると可変長の列 (nvarchar) に対して行圧縮を設定した場合でも、行サイズを減少することが可能となります。
今回の投稿では DBCC PAGE を使用して、Unicode 圧縮の動作を確認してみたいと思います。
AlwaysOn Availabiility Groups のセカンダリレプリカは読み取り専用のデータベースとして利用することが可能です。 ![]()
プライマリとセカンダリレプリカはデータの同期をしているため定期的にデータの更新が発生します。
Tech Ed の DBI404 のセッションスライドでは以下のように構成が説明されています。
データの更新が発生するということはそのタイミングで同期対象のレコードに対してロックがかかるので読み取り時に頻繁にブロッキングが発生しそうですが、セカンダリレプリカでは [行バージョン] が自動的に使用され、読み取りに対する待ちが軽減される仕組みがとられています。
今回はこのあたりを見ていきたいと思います。
次期 SQL Server では FIleTable というものが使用できるようになっています。
この機能を使用するとファイルシステム上のファイル/ フォルダをテーブルを操作する感覚で T-SQL で柔軟に操作することが可能となります。
また、ファイルシステムに直接変更した結果が、テーブルに反映されるため T-SQL を使用しなくても統合されたファイル管理を実施することが可能です。
今回はこの、FIleTable の設定方法についてみていきたいと思います。
FileTable に関しては以下の情報を参考にさせていただいています。。
SQL Server DenaliのFileTableは、SQLテーブルをフォルダに変える。
FileTable in SQL Server “Denali”?Dateizugriff auf SQL Server Filestream Daten von jeder Anwendung
SQL Server Denali FileTables Feature – The fruits of WinFS? (Think "A FileStream enabled table that you can access as a network file share and other standard File IO API’s" or "SQL Server File System in a Table")
AlwaysOn Availability Groups / Failover Clustering はクラスター環境 (WSFC) が必須となります。
# WSFC の環境を構築するためには AD も必須となります。
AlwaysOn Availability Groups はローカルのディスク上に作成したデータベース、AlwaysOn Failover Clustering は SMB のサポートにより共有フォルダにデータベースを配置できるようになります。
どちらの構成もクラスター環境を共有ディスクを使用しないで構築することが可能となっています。
共有ディスクを使用しないで、クラスターを構築した場合、クラスター クォーラムの構成は [ノードマジョリティ] となります。
この構成だとクラスターを構成する一台で障害が発生すると Availability Groups で可用性を持たせているデータベース / Failover Clustering で可用性を持たせているインスタンスが停止してしまいます。
今回の投稿ではこの設定についてまとめてみたいと思います。
クラスターの概要に関しては以下の技術文章がわかり易いと思います。
Windows Server 2008 フェールオーバー クラスタリングの概要
Denali CTP3 の AlwaysOn は 2 種類あり今までブログで紹介をしていた新しい可用性の構成である
と今までの SQL Server で使用していたフェールオーバークラスター (WSFC) を拡張した
の 2 種類があります。
AlwaysOn Failover Clustering ではマルチサブネットのクラスターを構築できるようになったほかに、共有ディスクを使用しないクラスターを構築できるようになりました。
Shared cluster disks, or SMB file share used for the SQL Server database and log storage
今回はこの構成についてみていきたいと思います。
コマンド プロンプトから SQL Server 2008 R2 をインストールする方法Denali CTP3 のインテリセンスについて の続きのような形なのですが、インストール時に設定したサーバーレベルの照合順序はインストール後に変更することができません。
私が使っている Denali CTP3 の環境はサーバーレベルの称号順序を [Japanese_XJIS_100_CI_AS_SC] にしてしまっているので CTP3 の SSMS を使用してインテリセンスが使えませんでした…。
再インストールすればいいのですがちょっと悔しいのでシステムデータベースを再構築して照合順序を変更してみたいと思います。
# システムデータベースを再構築するのでいろいろな情報が飛びます。
SQL Server 2008 以降 (たしか) の SSMS はインテリセンスが追加されており、SQL Server 2008 以降のインスタンスに接続した場合は、SSMS でインテリセンスを使用してクエリを記述することが可能です。 ![]()
Denali CTP3 の SSMS でもインテリセンスは使えるのですが、リリースノート に記載されているように以下の制限があります。
5.10 新しいキーワードに対する Transact-SQL IntelliSense サポート
データベース エンジン クエリ エディターの Transact-SQL IntelliSense 機能は、SQL Server コードネーム "Denali" CTP3 で導入された新しい構文のすべてをサポートするように更新されていません。新しいキーワードはキーワードとしてエンコードされていないため、これらには、構文エラーとして下線が表示されます。現時点では、SQL Server コードネーム "Denali" の将来のバージョンに、新しい構文に対する IntelliSense サポートを追加するように計画しています。
回避策: 構文エラーを無視します。Transact-SQL ステートメントは正常に実行できます。
新しく追加された構文のすべてにはまだ対応していませんと書かれていますね。
私の使っている環境にも Denali CTP3 の SSMS はインストールしているのですが、どの環境も新しい構文にかかわらずインテリセンスを使うことができませんでした…。 ![]()
他の方はどうなのだろうと思って、twitter でぼそっとつぶやいたところ使えていますよというお返事をいただくことができました。
では環境固有の問題なのだな~と思って考えてみたところ、私の環境はすべて照合順序で [Supplementary characters] (SC) を有効にしてインストールをしていたことを思い出しました。
これは、Denali から追加された照合順序になるのですが、これも新しい機能ですよね。
ということで、[SC] の照合順序を指定しないでインストールをしたところ Denali CTP3 の SSMS でインテリセンスが使えるようになりました。 ![]()
これで検証効率アップです♪
# 検証環境再整備しないといけないですが…。
AlwaysOn Availability Groups はプライマリと複数のセカンダリで構成することが可能です。
ミラーリングの場合は、ミラーサーバー (Availability Groups の セカンダリ) のデータベースを読み取りで使う場合はスナップショットを取得する必要があり、データベースをそのまま使用することはできませんでした。 ![]()
直接アクセスしようとすると以下のようにエラーになりますので、 ![]()
一度データベース スナップショットを作成して、そのスナップショットにアクセスをする必要がありました。 ![]()
Availability Groups ではスナップショットを取得しなくてもセカンダリのデータベースにアクセスができるようになりました。 ![]()
今回の投稿ではこのあたりをまとめてみたいと思います。