SQL Server の更新プログラム

神谷 雅紀SQL Server Escalation Engineer    SQL Server 2005 の時代に、増分サービスモデル (Incremental Servicing Model / ISM) として紹介された更新プログラムのリリース形態ですが、今回は、改めて SQL Server の更新プログラムについて説明したいと思います。   SQL Server 2005 Tips and Tips – 第 8 回 SQL Server 2005 の更新プログラム提供モデル (ISM)  報告された問題に対する修正プログラムを提供する SQL Server チームの増分サービス モデル (ISM) について   更新プログラムとは?   製品が出荷された後にリリースされる、製品出荷後のソフトウェアに対する変更の差分です。SQL Server では、3 種類の更新プログラムが存在します。 General Distributed Release Hotfix Service Pack  …

0

SQL Server セットアップトラブルシューティング – 初級編

神谷 雅紀Escalation Engineer   対象バージョン   SQL Server 2008 R2SQL Server 2008   Step 1 – Summary.txt でエラー内容を確認する   SQL Server のセットアップに失敗した場合、まず最初に確認するべきは、Summary.txt ファイルの記録です。このファイルは、既定では、以下の場所に保存されています。 C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log Log フォルダ下に、最新のセットアップの Summary.txt があります。また、Log フォルダ下には、セットアップを実行した日時を示す YYYYMMDD_HHMMSS 形式のフォルダ名を持つフォルダもあり、そのフォルダ下には Summary_computername_date_time.txt 形式のファイル名を持つ Summary.txt があります。 Summary.txt には、エラーとなったコンポーネント、エラーコード、エラーメッセージなどが記録されています。   Summary.txt サンプル   Overall summary: Final result: 失敗しました: 以下の詳細を参照してください Exit code (Decimal): -2068052371 Exit facility code:…

1

クエリタイムアウト – その仕組み

神谷 雅紀SQL Server Escalation Engineer   クエリタイムアウトまたはコマンドタイムアウト (Query Timeout/Command Timeout, 以降クエリタイムアウト)、使用するデータアクセスインタフェースにより呼び名は異なりますが、どちらも指定した時間が経過した後、実行中の処理を中断する機能です。 これらのタイムアウトに関して、「クライアントプログラムを変更せず、SQL Server データベースエンジン側の設定で、クエリタイムアウトを発生させないようにすることはできないか?」という質問を受けることがあります。答えは、「できない」です。その理由は、クエリタイムアウトは、クライアント側で動作するデータアクセスインタフェース (OLE DB プロバイダ、ODBC ドライバ、 SqlClient など) によって実装されている機能であるためです。SQL Server データベースエンジンは、クライアントからの要求に従い、実行中の処理をキャンセルするだけで、クエリタイムアウトのための時間計測は行っていません。   クエリの実行要求からクエリタイムアウトの発生までの流れ   クライアントアプリケーションがデータアクセスインタフェースを通じて、SQL Server に対して何らかの処理の実行を要求します。例えば、SqlCommand.ExecuteNonQuery メソッドを呼び出し、クエリを実行します。 データアクセスインタフェースは、その処理要求を SQL Server に送信すると同時にクエリタイムアウト時間を計測するためのタイマーをスタートさせます。 処理要求送信からの経過時間が、クエリタイムアウトとして指定されている時間経過しても、SQL Server から最初のパケットが送信されてこない場合、データアクセスインタフェースは、処理のキャンセル要求を SQL Server へ送信します。このキャンセル要求は、Attention (アテンション) または Attention Signal (アテンションシグナル) と呼ばれます。  SQL Server は、Attention を受け取ると、そのクライアント接続を管理するデータ上で Attention ビットをオンにします。  そのクライアント接続上の処理を実行しているワーカースレッドは、定期的に Attention ビットがオンになっていないかどうかを確認しています。Attention ビットがオンになっていることを確認すると、自身が実行中の処理を中断します。   SQL…

0

SQL Server のメモリ管理 – Part 4

 神谷 雅紀SQL Server Escalation Engineer   バッファプール – まとめ   まずは、前回までのまとめです。 プロセス仮想アドレス空間のサイズは、搭載されている物理メモリサイズに関係なく一定である。32-bit は 4GB。 プロセス仮想アドレス空間は、カーネルモード用とユーザモード用に分かれている。 ユーザーモードプロセスは、プロセス仮想アドレス空間のうち、ユーザモード用のユーザー仮想アドレス空間の中でメモリ割り当てを行う。ユーザーモードアプリケーションが割り当てを行うユーザー仮想アドレス空間のサイズは、32-bit では 2GB (/3GB オプションで 3GB, Wow64 上で 4GB)、x64  では 8TB、IA64 (IPF) では 7TB。   SQL Server プロセスのユーザー仮想アドレス空間は、バッファプールとそれ以外に分けられる。   バッファプールは、Reserved と Committed の領域から構成され、物理メモリやページファイルを使用するのは Committed のみ。 バッファプールは、Reserved を Committed にすることで拡張、Committed を Reserved にすることで縮小する。 拡張縮小の必要性は、SQL Server 内部のメモリ要求と Windows からの物理メモリの空き容量の通知 (Memory Notification API)…

1

SQL Server のメモリ管理 – Part 3

神谷 雅紀SQL Server Escalation Engineer   以下に続く、SQL Server のメモリ管理の第 3 回目です。 SQL Server のメモリ管理 – Part 1 SQL Server のメモリ管理 – Part 2   バッファプール内の領域の用途とそのサイズ   バッファプールは、サイズが 8KB の「ページ (page)」と呼ばれる領域に論理的に分割されています。バッファプールのコミットされている領域のサイズ (以降では、これを単に「バッファプールのサイズ」と呼びます) は、パフォーマンスカウンタ Buffer Manager – Total pages により確認することができます。1 ページは 8KB であるため、このカウンタの値を 8 倍することで、バッファプールの KB 単位のサイズを算出することができます。 データベースファイルのコピーイメージ、言い換えれば、キャッシュしているデータベースのデータは、すべてバッファプール内に置かれます。そのサイズは、パフォーマンスカウンタの Buffer Manager – Database pages により確認することができます。 SQL Server:Buffer Manager…

9

SQL Server のメモリ管理 – Part 2

神谷 雅紀SQL Server Escalation Engineer   SQL Server のメモリ管理 – Part 1 は、SQL Server のメモリ管理を理解する上での前提条件としての仮想アドレス空間についての話でした。今回は、SQL Server の話です。SQL Server 2000 ~ 2008 R2 までのバージョンが該当します。   バッファプール (Buffer Pool)   SQL Server のユーザー仮想アドレス空間は、2 つの領域に分けられます。バッファプール (Buffer Pool) とそれ以外です。 32-bit の場合は、以下のようになります。   バッファプールとは?   バッファプールは、SQL Server の Buffer Manager によって、管理されるメモリ領域です。 バッファプールには、データベースファイルのコピーイメージ (データキャッシュ)、実行プラン (プロシージャキャッシュ)、クライアント接続の管理構造、ロックの管理構造などが置かれます。   バッファプールの予約 (Reserve) サイズとコミット (Commit) サイズ…

1

SQL Server のメモリ管理 – Part 1

神谷 雅紀SQL Server Escalation Engineer   SQL Server のメモリ管理について、質問されることがよくあるため、今回から何回かに分けて、仮想アドレス空間 (Virtual Address Space) や物理メモリ (RAM) との関係も含めて、SQL Server のメモリ管理の概要をまとめます。この内容は、SQL Server 2000 ~ 2008 R2 までのバージョンにあてはまります。   仮想アドレス空間とは?   SQL Server に限らず、ユーザーモードアプリケーションのメモリ管理を理解しようとした場合、仮想アドレス空間について理解していることは必須です。しかし、多くの場合、物理メモリやページファイルとの区別が曖昧であったり、全く理解されていなかったりしています。そのため、まず最初に、仮想アドレス空間について説明します。もし、仮想アドレス空間や物理メモリ、ページファイルといった点は明確に理解しているということであれば、次回から読みはじめて下さい。 尚、仮想アドレス空間を意識しなければならないのは、ほとんどの場合 32-bit 環境であるため、以降は、32-bit 環境についての内容です。しかし、64-bit 環境と 32-bit 環境では、仮想アドレス空間のサイズは異なりますが、それ以外の概念は、基本的に同じであるため、ほとんどの内容は 64-bit にも当てはまります。   32-bit Windows 上で動作するすべてのユーザーモードアプリケーション (ユーザーモードプロセス) には、4GB の仮想的なアドレス空間 (アドレス 0x00000000 から 0xFFFFFFFF) が与えられます。これは、SQL Server であっても、Excel であっても、メモ帳 (notepad.exe) であっても、32-bit…

1

Windows Vista 以降の OS 上で SQL Server 2008 SQL Server 2008 R2 から DTS パッケージ デザイナ を使うには

鈴木 大介 Support Escalation Engineer     はじめに   このドキュメントは Books Online の次のトピックを補完するものです。   データ変換サービス パッケージのサポートをインストールする方法 http://msdn.microsoft.com/ja-jp/library/ms143755.aspx   インストール方法   SQL Server 製品のコンポーネントをインストールする   SQL Server のインストーラーから、管理ツール (SQL Server Management Studio, SSMS) または Business Intelligence Development Studio (BIDS) と [クライアント ツールの旧バージョンとの互換性] をインストールします。   必要な追加コンポーネントをインストールする   1) [Microsoft SQL Server 2005 の旧バージョンとの互換性コンポーネント] を下記よりインストールします。           Microsoft…

0

Known Issue: SQL Server 2008 フェールオーバクラスタのアンインストールに失敗する

神谷 雅紀Escalation Engineer   SQL Server 2008 フェールオーバクラスタのアンインストールに関して、最近同じ内容の問い合わせがありましたので、今回はそれを紹介します。   事象 SQL Server 2008 フェールオーバクラスタのアンインストールを行おうとしたところ、エラーとなり、アンインストールができない。セットアップの Summary.txt (C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\<datetime>\Summary_<servername>_<datetime>.txt ファイル) には以下のエラーが記録されている。   Detailed results:  Feature: データベース エンジン サービス  Status: 失敗しました: 詳細についてはログを参照してください  MSI status: 合格  Configuration status: 失敗しました: 以下の詳細を参照してください  Configuration error code: 0x1C2074D8@1216@1  Configuration error description: SQL Server フェールオーバー クラスタ インスタンス名 ” は、クラスタ リソースとして見つかりませんでした。         この事象の特徴としては、エラーメッセージテキストに「フェールオーバー…

0

SQL Azure 高可用性を保持するための仕組み

SQL Azure に関わる内容については、Windows Azure デベロッパーサポートチームブログ で公開することとしました。 SQL Azure 高可用性を保持するための仕組み Kayoko Nakano GraySenior Support Escalation Engineer

0