SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for the ‘SQL Server’ Category

SQL Server 2008 のフェールオーバークラスタのインストール その 1.5

leave a comment

その 2 でノードの追加手順を書こうと思っていたのですが、クラスタのインストールで補足して書いておきたい
内容がありましたので 1.5 として補足編を。

[インストール時に使用できるディスク]

クラスタの共有ディスクはインストーラーを実行しているノードがリソースを保有している必要があります。
ノードがディスクを保有していない場合、セットアップのルールチェックで以下のエラーとなります。
image

事前に SQL Server をインストールしているグループを作って、ディスクリソースをグループに割り当てている場合は、
ノードの移動で、インストーラーを起動しているノードにグループを移動します。

image

ただし、グループにディスクを割り当てていない時にディスクが割り当てられている [使用可能記憶域] に
ディスクが存在している場合は GUI からはディスクを特定のノードに移動させることができません。

image

今は [2008R2-NODE-02] にディスクが割り当てられていますが、インストーラーは [2008R2-NODE-01] で実行しています。
ディスクを移動させるためにはコマンドで移動させます。
# コマンドプロンプトは管理者として実行する必要があります。

>cluster group "使用可能記憶域" /MOVETO:%COMPUTERNAME%

リソース グループ ‘使用可能記憶域’ を移動しています…

グループ???????????? ノード????????? 状態
——————– ————— ——
使用可能記憶域????????????? 2008R2-NODE-01? オンライン

使用可能記憶域の実体はクラスタグループなので、グループの移動をすることで未割当の共有ディスクを
所有しているノードが変更できます。

[SQL Server 仮想ホストのコンピュータアカウント]

事前にコンピュータアカウントを作成していない場合、SQL Server の仮想ホストは [Computers] に作成されます。
image?
image

このとき、コンピュータアカウントは WSFC の仮想コンピュータが作成を行っています。
今回、クラスタは [2008R2-WSFC-01] としていますので、[SQL-WSFC-01] の作成者は [2008R2-WSFC-01] になります。
作成者は、属性エディタや ADSI Edit で [mS-DS-CreatorSID] を表示すると確認できます。
[mS-DS-CreatorSID] に表示されている SID が作成者の SID ですので [objectSid] が表示内容になっているものが
作成に使われたアカウントになります。

image

2008 のクラスタを構築する際にコンピュータアカウントを事前に作成しておく場合は、コンピュータアカウントに
クラスタを構築する際に使用しているドメインユーザーのフルコントロールを付与しますが、SQL Server の
クラスタの場合には、WSFC の仮想コンピュータ名のフルコントロールを付与しておきます。

事前にコンピュータアカウントを作成していない場合に、自動で作成されるコンピュータアカウントにはフルコントロールは
付与されていないのですが、事前に作成する場合はフルコントロールがないと、コンピュータ名のリソースがオンラインにできませんでした。
自動作成の時と同じ権限を付与して試したのですが、コンピュータアカウントのパスワードリセットができずにエラーとなっていました。
コンピュータアカウントのパスワード関連の権限も付与してはいたのですが。

以下の画像が事前にコンピュータアカウントを作成した場合に、WSFC の仮想コンピュータアカウントにフルコントロールを
付与した設定になります。
コンピュータアカウントに権限を付与しているのでユーザー名は [2008R2-WSFC-01$] となっています。
# コンピュータアカウントを指定する場合は最後に [$] が入ります。

image

[サービス SID とドメイングループ]

インストールするときにサービス SID を使うかドメイングループを使うかの選択がありますが、どこに使われているかというと
フォルダのアクセス権やディレクトリのアクセス権で使用されています。

左がサービス SID を使用する設定でインストールしたインスタンスのデータディレクトリのアクセス権、
右がドメイングループを使用する設定でインストールしたインスタンスのデータディレクトリのアクセス権になります。
# ドメイン名は塗りつぶしています。

image image

[MSSQL$INSTANCE1] となっていますが実際には、[NT ServiceMSSQL$INSTANCE1] となります。
Windows サービス アカウントの設定

Vista ごとはサービスも SID が持て、特定のサービスがアクセスできる領域を制限することができます。
今まではサービスの起動アカウントに対して権限が付与されていましたが、サービス自体にセキュリティを
付与することができるようになっています。

サービス SID はイベントビューアの evt ファイルのセキュリティなどにも使われており、以下はアプリケーションログの
ファイルのセキュリティですが、[eventlog] という [Windows Event Log] サービスのサービス SID にアクセス権が
設定されています。

image

サービスをさらに低い権限で動かすためにサービス SID は使われているようです。

ドメイングループを使用する場合、ドメイングループの中に SQL Server のサービス起動アカウントを事前に
メンバとして追加しておくとよいかと思います。
インストールをしているユーザーにメンバの変更権限がない場合、インストール中にエラーとなるためです。
プロダクション環境にインストールする際、Active Directory の管理者権限を持つユーザーでインストールが
できないのであれば、検証時にも低い権限のユーザーでインストールを試した方がよいかと。

次の投稿でノードの追加をまとめてみたいと思います。

Written by Masayuki.Ozawa

10月 17th, 2009 at 10:38 am

SQL Server 2008 のフェールオーバークラスタのインストール その 1

leave a comment

スリップストリーム セットアップのコマンド実行後の、SQL Server 2008 のクラスタのインストール手順をまとめてみたいと思います。
まずは [その 1] としてフェールオーバークラスタの新規インストールについて。

SQL Server 2005 までは複数ノードを同時にインストールする形式となっていましたが、SQL Server 2008 では 1 ノードで
インストールしてからノードの追加をしていく形式となります。
[その 2] でノードの追加をまとめたいと思います。

[SQL Server 2008 フェールオーバー クラスタのインストール]

  1. [プログラムを実行する] をクリックします。
    image
  2. [インストール] → [SQL Server フェールオーバー クラスタの新規インストール] をクリックします。
    image
  3. [プログラムを実行する] をクリックします。
    image
  4. [OK] をクリックします。
    image
  5. [インストール] をクリックします。
    image
  6. [次へ] をクリックします。
    image
  7. [次へ] をクリックします。
    image
  8. [使用許諾契約書に同意する] を有効にして、[次へ] をクリックします。
    image
  9. インストールする機能を選択して、[次へ] をクリックします。
    image
  10. [SQL Server ネットワーク名] と [インスタンス名] を設定し [次へ] をクリックします。
    ネットワーク名が SQL Server の仮想ホストのコンピュータ名になります。
    SQL Server のクラスタインスタンスが 1 インスタンスだけであれば、[既定のインスタンス] でのインストールでもよいかと。
    今回構築している環境は複数インスタンスをインストールするので [名前付きインスタンス] でインストールしています。
    image
  11. [次へ] をクリックします。
    image
  12. SQL Server のクラスタインスタンスをインストールするグループを指定し、[次へ ]をクリックします。
    グループはこの画面で新規作成するか、事前に作成しておいた空のグループを指定します。

    下の画像ではリストの一番下のグループが事前に作成しておいた空のグループになります。
    緑のチェックアイコンになっているグループはプルダウンから選択することが可能です。
    グループ名のプルダウンはコンボボックスになっているので、新規にグループを作成する場合はコンボボックスに
    グループ名を入力します。
    ?image

  13. SQL Server で使用する共有ディスクを選択し、[次へ] をクリックします。
    image
  14. SQL Server のクラスタインスタンスの IP アドレスを入力し、[次へ] をクリックします。
    デフォルトでは [DHCP] が有効になっているので、IP を入力する場合は DHCP のチェックをはずします。
    DHCP の使用は Windows Server 2008 からの機能だったかと。
    image
  15. SQL Server のクラスタのセキュリティで使用するアカウントを指定し、[次へ] をクリックします。
    推奨となっている [サービス SID を使用する] は OS に Windows Server 2008 / R2 を使用している場合に使用できます。
    Windows Server 2003 の場合には、ドメイングループを用意する必要があります。

    ここで指定したアカウントはディレクトリやレジストリのセキュリティ設定で使われていたはずです。
    サービスの起動アカウントに直接権限
    を付与するのではなく、グループに付与することで、サービスアカウントを
    変更した際の影響を少なくするような設計になっていかと。
    グループを指定した場合は、次の画面で設定したサービスの起動アカウントがグループに追加されます。
    # グループに対して権限を付与しておけば、サービスアカウントを変更してもグループに追加するだけで OK ですので。

    サービス SID は Vista 以降の起動だったはずです。
    アカウントだけでなくサービス自身にも SID を持ち、サービスに対してのアクセス許可が可能になっています。
    image

  16. サービスの起動アカウントと照合順序を設定し、[次へ] をクリックします。
    [SQL Server Agent] と [SQL Server Database Engine] のアカウントはドメインユーザーの必要があります。
    クラスタではサービスのスタートアップは [手動] が基本ですのでこれは変更することはできません。
    # サービスはクラスタ側から起動されるので、[手動] になります。

    照合順序は任意の設定ですが、SQL Server 2008 の場合私は [Japanese_XJIS_100] を設定することが多いですね。
    [Analysis Services] の照合順序は Analysis Servicec をインストールしなくても設定する必要があるようです。
    # これがなんでなのかがわかっていません。

    image image

  17. SQL Server の管理者アカウントを指定して、[次へ] をクリックします。
    ここで指定したアカウントが SQL Server の管理者になります。
    あとで変更することも可能ですので、インストールを進めるのであれば [現在のユーザーの追加] をクリックして、
    インストールを実行しているユーザーを追加して下さい。
    image image
    image
  18. [次へ] をクリックします。
    image
  19. [次へ] をクリックします。
    image?
  20. [インストール] をクリックして、インストールを開始します。
    今回はスリップストリーム セットアップをしているので、[PCU ソース ディレクトリ] [CU ソース ディレクトリ] が
    表示されているのが確認できますね。
    image image
  21. [次へ] をクリックします。
    image
  22. [閉じる] をクリックします。
    image

インストール後のクラスタの状態が以下の画像になります。
image

このままでは 1 ノードクラスタですので次にノードを追加していきます。
ノードの追加は次の投稿で。

Written by Masayuki.Ozawa

10月 15th, 2009 at 3:10 pm

Posted in SQL Server

SQL Server 2008 SP1 CU4 をスリップストリーム セットアップ

leave a comment

Windows Server 2008 R2 + SQL Server 2008 の 4 ノードクラスタ (Active / Active /Active / Passive) を
作ってみようと勉強用の環境を構築しています。
# 1 インスタンスは SQL Server 2008 R2 CTP でインストールしようと考えています。

せっかくですので SQL Server 2008 を SP1 CU4 にスリップストリーム セットアップしてみたいと思います。
Windows Server 2008 R2 に対応しているのは SQL Server 2008 SP1 以降になりますので、今後この方法で
導入する機会が増えるのではないでしょうか。
マイクロソフト製品の Windows Server 2008 R2 対応状況
# SQL Server の導入でしか SQL Server に触る機会のない日々が数年続いています…。

SQL Server クラスタのインストールはスリップストリーム セットアップしないと
[FIX] SQL Server 2008 フェールオーバー クラスタに 2 つ目のノードを追加しようとするとエラー メッセージ "現在の SKU は無効です" が表示される
が発生するので面倒です。

スリップストリーム セットアップの方法は以下の KB に記載されています。

SQL Server 2008 のインストールを更新またはスリップストリームする方法

この KB では SQL Server 2008 SP1 のスリップストリームの方法までしか記載されていません。
CU 込みのインストール方法に関しては以下の Webcast または、SQL Server 2008 のオンラインブックが参考になります。

SQL Server 2008 および更新プログラムの一括セットアップ (スリップストリーム セットアップ)
SQL Server サービスのインストールの概要

[用意するもの]

[Service Pack の展開]

以下のコマンドを実行して SP1 のモジュールを展開します。

SQLServer2008SP1-KB968369-x64-JPN.exe /x:<展開先>

例)
SQLServer2008SP1-KB968369-x64-JPN.exe /x:c:tempPCU

image image

?

[Cumulative Update の展開]

以下のコマンドを実行して CU4 のモジュールを展開します。

SQLServer2008-KB973602-x64.exe /x:<展開先>

例)
SQLServer2008-KB973602-x64.exe /x:c:tempCU

imageimage

?

[Service Pack に含まれているセットアップ サポート ファイルのインストール]

セットアップサポートファイルはインストールメディアに含まれているものではなく、SP1 に含まれているものを使用します。
[Service Pack の展開] 手順では [c:tempPCU] に展開しているので、このフォルダの中の [sqlsupport.msi] を使用します。

今回は [C:tempPCUx64setup1041] の [sqlsupport.msi] を実行します。

image

[次へ] をクリックします。
image

[同意します] を選択し、[次へ] をクリックします。
image

[次へ] をクリックします。

image

[インストール] をクリックします。
image image

[完了] をクリックします。
image?

[.NET Framework 3.5 の追加]

これはスリップストリーム セットアップの要件というよりは SQL Server 2008 のインストール要件ですね。
以下のコマンドを実行して .NET Framework 3.5 を追加します。

dism /online /Enable-Feature:NetFx3

?

[SQL Server 2008 をコマンドでインストール]

スリップストリーム セットアップは SQL Server 2008 の setup.exe をコマンドラインで実行する必要があります。
コマンドの形式は以下の内容になります。

<インストールメディア>setup.exe /PCUSource=<SP 展開先> /CUSource=<CU 展開先>

例)
D:setup.exe /PCUSource="c:tempPCU" /CUSource="c:tempCU"

?

スリップストリーム セットアップ直後のバージョンの表示が以下になります。

1> select @@version
2> go

——————————————————————————–
Microsoft SQL Server 2008 (SP1) – 10.0.2734.0 (X64)
??????? Sep 11 2009 14:30:58
??????? Copyright (c) 1988-2008 Microsoft Corporation
??????? Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (VM)

?

[10.0.2734.0] は SQL Server 2008 SP1 CU4 になりますので、セットアップと同時に SP1 / CU4 が
適用されているのが確認できます。

一度のセットアップで更新プログラムまで同時に適用できると構築時間が短縮できて楽ですね♪

Written by Masayuki.Ozawa

10月 15th, 2009 at 2:53 pm

Posted in SQL Server

トランザクションログが壊れるとバックアップまで戻すしかない??

2 comments

いろいろと話題になっている [中堅企業向け オラクル都市伝説- シーズン2] ですが、記事の中に以下の記載があります。

ログファイルが壊れるとデータの復旧ができない。
毎日夜中にバックアップを取っていたが、データはバックアップした状態、すなわち昨日の夜の時点に戻ってしまう。
ユーザーがショッピングサイト上で行っていた直近の購入情報が損失してしまうのだ。ショッピングサイト運営会社は夜間に社員を緊急収集し、損失したデータを手作業で入力するはめになった。その他、クレーム対応のため、膨大な損失を被むる。
まさに地獄である。

?

ログファイルが壊れ、データの復旧ができなくなったため、バックアップまで戻したとあります。

トランザクションの整合性が保たれた状態に戻すということを考えるとこの対応は正しいと思いますが、
障害発生時では、それまでのデータを何とかして確認する方法がないかということも重要だと思います。

SQL Server はトランザクションログファイルが壊れてもデータファイルが生きていれば状況によってはある程度は復旧できます。

といことで実験してみました。

[トランザクションログを壊す]

まずは、トランザクションログを壊さないと話が始まりません。
とりあえず、バイナリエディタを使用してファイルの内容を 0 クリアしてみました。
データベースは SQL Server 2000 の Northwind を使用しています。
?

[データベースは障害状態になる?]

この状態のデータベースを SQL Server 2000 で開くとどうなるか確認してみました。
image

データベースが開けちゃうんですね・・・。
DBCC で確認してもエラーにはなりませんでした。

[トランザクションログのファイル自体を削除する]

続いては ldf を削除してデータファイルだけの状態にしてみました。
これもまた起動してきちゃうんですね。

image

SQL Server が起動時に新しいトランザクションログを作っていました。

image

[トランザクションログファイルを壊れた状態にするには?]

壊さないことには検証が始まらなさそうですので、ひとまず復旧間隔を 20 分に設定し、10,000 件のデータを挿入して、
サーバーを強制シャットダウンして、トランザクションログを FF でクリアしてみました。

どうやらトランザクションログを壊すことに成功したようです。
# SQL Server 2000 / 2008 でこの方法でログを壊すことができました。
?image

さて、これで都市伝説と同じ状態に持っていくことができました。
ここから、データを復旧したいと思います。

[ログの再構築でデータを復旧]

SQL Server 2000 と 2005 以降ではログの復旧方法が異なります。

[SQL Server 2000]
SQL Server 2000 で復旧する場合は、システムテーブルを直接更新して、EMERGENCY モードに設定する必要があります。
SQL Server 2000 の DBCC にはログを再構築するコマンドがあります。
REBUILD_LOG コマンドで新しいログファイルが作成できます。このコマンドは Undocumented な DBCC なんですよね。

2000 では REPAIR_ALLOW_DATA_LOSS でログファイルを再構築することができないので、REBUILD_LOG コマンドを
使用してログファイルの再構築をする必要があります。

sp_configure ‘allow updates’,1
GO
RECONFIGURE WITH OVERRIDE
GO
UPDATE sysdatabases SET status = 32768 WHERE name = N’Northwind’
GO

ALTER DATABASE [Northwind] SET SINGLE_USER
GO
DBCC REBUILD_LOG(‘Northwind’,’C:Program Files (x86)Microsoft SQL ServerMSSQL$SQL2000DataNorthwind.LDF’)
GO
ALTER DATABASE [Northwind] SET MULTI_USER
GO
sp_configure ‘allow updates’,0
GO
RECONFIGURE WITH OVERRIDE
GO

設定オプション ‘allow updates’ が 0 から 1 に変更されました。RECONFIGURE ステートメントを実行して、インストールしてください。

(1 行処理されました)
警告 : データベース ‘Northwind’ のログが再構築されました。トランザクションの一貫性は失われます。DBCC CHECKDB を実行して物理的な一貫性を調べる必要があります。データベース オプションを再設定し、余分なログ ファイルを削除する必要があります。
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
設定オプション ‘allow updates’ が 1 から 0 に変更されました。RECONFIGURE ステートメントを実行して、インストールしてください。

[SQL Server 2005 以降]
SQL Server 2005 以降では ALTER DATABASE で EMERGENCY モードに設定することができます。
また、2005 以降では DBCC CHECKDB を REPAIR_ALLOW_DATA_LOSS で実行することとで
トランザクションログの再作成ができます。
# REBUILD_LOG は使えなくなっています。

AL
TER DATABASE [Northwind] SET EMERGENCY
GO
ALTER DATABASE [Northwind] SET SINGLE_USER
GO
DBCC CHECKDB (‘Northwind’, REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE [Northwind] SET MULTI_USER
GO

?

ファイル アクティブ化エラー。物理ファイル名 "C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATAnorthwnd.ldf" が正しくない可能性があります。
データベースのシャットダウン時に開いているトランザクション/ユーザーがあったか、データベースにチェックポイントが発生していないか、またはデータベースが読み取り専用のため、ログを再構築できません。このエラーは、トランザクション ログ ファイルが手動で削除されたか、ハードウェアまたは環境の障害により失われた場合に発生する可能性があります。
警告: データベース ‘Northwind’ のログが再構築されました。トランザクションの一貫性は失われました。RESTORE チェーンが壊れ、サーバーが以前のログ ファイルのコンテキストを保持しなくなったので、以前のログ ファイルについて把握しておく必要があります。DBCC CHECKDB を実行して物理的な一貫性を検証してください。データベースは dbo 専用モードに設定されました。データベースが使用可能な状態になったら、データベース オプションを再設定し、余分なログ ファイルを削除してください。
‘Northwind’ の DBCC 結果。
Service Broker メッセージ 9675、状態 1: 分析されるメッセージ型: 14。
Service Broker メッセージ 9676、状態 1: 分析されるサービス コントラクト: 6。
Service Broker メッセージ 9667、状態 1: 分析されるサービス: 3。
Service Broker メッセージ 9668、状態 1: 分析されるサービス キュー: 3。
Service Broker メッセージ 9669、状態 1: 分析されたメッセージ交換のエンドポイント: 0。
Service Broker メッセージ 9674、状態 1: 分析されたメッセージ交換グループ: 0。
Service Broker メッセージ 9670、状態 1: 分析されるリモート サービス バインド: 0。
Service Broker メッセージ 9605、状態 1: 分析されたメッセージ交換の優先度: 0。
‘sys.sysrscols’ の DBCC 結果。
オブジェクト "sys.sysrscols" の 10 ページには 785 行あります。

~ 省略 ~

‘Suppliers’ の DBCC 結果。
オブジェクト "Suppliers" の 1 ページには 29 行あります。
CHECKDB により、データベース ‘Northwind’ に 0 個のアロケーション エラーと 0 個の一貫性エラーが見つかりました。
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
メッセージ 824、レベル 24、状態 2、行 1
SQL Server で、一貫性に基づいた論理 I/O エラーが検出されました: 無効な保護オプション。このエラーは、ファイル ‘C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATAnorthwnd.ldf’ のオフセット 0000000000000000 にあるデータベース ID が 7 のページ (2:0) の 読み取り 中に発生しました。SQL Server エラー ログまたはシステム イベント ログ内の別のメッセージで詳細情報が報告されることもあります。このエラー状態は深刻で、データベースの整合性を損なう可能性があるので、すぐに解決する必要があります。完全なデータベース一貫性確認 (DBCC CHECKDB) を実行してください。このエラーには多くの要因があります。詳細については、SQL Server オンライン ブックを参照してください。

このような形でログファイルが破損していても、データファイルのデータは復旧することが可能です。

SQL Server 2000 / 2005 / 2008 ではログの再構築により、トランザクションログが破損していても
データファイル上のデータを復旧することができます。

ただし、ダーティーページに関してはデータファイル上に書き込みがされていませんので、このようなデータは
トランザクションログだけに書き込まれており、データファイル上には存在しません。

この辺はチェックポイントの発生タイミングに依存しますので、復旧間隔の設定によってどの程度の
データがデータファイルに書き込まれているかが変わっていきます。

[データファイルだけをアタッチ]

SQL Server 2000 以降では sp_attach_singile_file_db というデータファイルだけをアタッチする
ストアドプロシージャがあります。
ログファイルが破損した状態のデータファイルだけをアタッチしようとしたところこの方法は
うまくいきませんでした。

CREATE DATABASE でアタッチする方法も同様でエラーとなってしまいました。

SQL Server 2005 以降では復旧中になっているデータベースはデタッチできないようになっているので、
間違ってエントリをはずすことはないかとは思いますが。

SQL Server 2000 では sp_attach_single_file_db による、単一のデータファイルによるアタッチしか、
データファイルをアタッチする方法がありませんが、状況によってはデータファイルのアタッチによる
復旧ができる可能性もあるかと思います。
# 今回、私は失敗しましたが・・・。

ログファイルが二重化できないのである程度の復旧となってしまいますので、トランザクションログの構成については
Oracle に優位性があるのは確かだと思います。

ただし、SQL Server ではバックアップ取得時点でなくても途中までは復元できる可能性は残っています。
# DBCC でログを再構築した場合はログチェーンも切れてしまうと思いますので、トランザクションログの
? バックアップ運用をしていても直前までは復元できないと思います。

よい機会だったので、復元のメモ書きとして投稿しておきます。

Written by Masayuki.Ozawa

9月 4th, 2009 at 4:26 pm

Posted in SQL Server

SQL Server 2008 R2 の UCP を試してみました

leave a comment

昨日、SQL Server 2008 R2 をインストールしてひとつ新機能を試してみました。

SQL Server 2008 R2 では Utility Control Point (UCP) という機能があります。
この機能を使用すると SQL Server Management Studio から複数のサーバーの状態監視を
行うことができるようになります。

SQL Server の基本機能だけで実装する OpsMgr のようなものでしょうか。

この機能ですが SQL Server 2008 R2 (10.50) 以降かつ、Enterprise Edition でないと使用できないようです。
# 管理される側も上記のバージョンでないと駄目そうです。
??? データ取得に使用する Data Collector のストアドプロシージャが msdb のシステムストアドプロシージャとして
  存在しているようで、SQL Server 2008 Enterprise Edition を管理下に設定しようとしたらエラーになりました。

使用するための手順としては

  1. UCP を使用して監視を統合する SQL Server に UCP 用のデータベース、SQL Server Agent のジョブを作成
    image
    image
  2. SSMS の Utility Explorer で管理されるインスタンスを登録
    image

になります。

SQL Server 2008 R2 の SSMS では [Utility Explorer] という画面があり、この中に UCP が含まれています。

image

1 インスタンスしか用意できていないので管理画面が寂しですが以下のようなレポートが表示できます。

image

image

CPU の使用状況等に関しては閾値を変更することも可能です。

image

閾値超えがメールで連携できると便利そうなのですが、そのような設定ができそうな画面は
今のところ見つかっていません。

Tech Ed 2009 で新機能について話が聞けるといいな~と思っています。

Written by Masayuki.Ozawa

8月 12th, 2009 at 2:12 pm

Posted in SQL Server

Windows Server 2008 で SQL Server 2005 のクラスタを構築する際のメモ

leave a comment

時間のある時にきちんとまとめたいと思いますが忘れないようにメモ。

  1. Windows Firewall の設定
    Firewall が有効になっていると ワークステーションコンポーネントのインストールの際に
    [notifacionservices.dll] が登録できなくてエラーとなることがある。
    MSDTC の設定も必要そうだが、Windows Firewall で [msiexec.exe] の例外が必要。
    image?image
    image?
    インストール時には [Windows ファイアウォールによる新しいプログラム~] を有効にしてダイアログを
    表示したほうがよいかも。
    64ビット版の場合は WOW64 配下にも [msiexec.exe] が存在するので両方許可しておくと良さそう。
  2. インストール直後に SQL Server のリソースがオンラインにならない
    Windows Server 2008 で動作するのは SQL Server 2005 SP2 以降のため、インストール時に
    ダイアログが表示され SQL Server のリソースがオンラインにならない。
    SP2 適用後にオンラインにする。
  3. 互換性の表示
    [BI Development Studio] と [SSIS] のインストール時に [devenv.exe] の互換性のメッセージが表示される。
    image
    インストーラーを起動しているノードで表示されている場合はわかるが、クラスタ内の各ノードで表示され、
    インストーラーが一時停止していることがあるので、インストーラーが停止しているように見える場合は、
    各ノードでダイアログが表示されていないかを確認
  4. MSDTC の設定
    クラスタ環境でインストールする場合の定番リソース。
    細かい調査までできていないが、クラスタの既定のコーディネーターリソースの設定が以下の内容であれば
    インストールが正常にできた。
    image image
  5. SP2 のインストール
    MSDTC の設定が行われていないと SQL Server、Firewall の設定が行われていないと
    ワークステーションコンポーネントのインストールで失敗する。

MSDTC のリソースが SQL Server が起動しているノードで実行されているとこの辺の設定はしなくても
インストールと SP2 の適用ができそうであるが、運用後に SP を適用するときに現象が発生すると
メンテナンス時間内で作業ができなくなる可能性があるので構築時に潰しておくとよい。

Written by Masayuki.Ozawa

8月 12th, 2009 at 1:39 pm

Posted in SQL Server

SQL Server 2008 R2 CTP の提供が開始されました

leave a comment

英語版だけですが SQL Server 2008 R2 (Kilimanjaro) CTP が TechNet / MSDN で提供されています。

以下のプログラムがダウンロード可能なようです。
# 現在、Enterprise x64 をダウンロード中

  • SQL Server 2008 R2 Enterprise Evaluation August CTP (ia64) – (English)
  • SQL Server 2008 R2 Enterprise Evaluation August CTP (x64) – (English)
  • SQL Server 2008 R2 Enterprise Evaluation August CTP (x86) – (English)
  • SQL Server 2008 R2 Express Edition August CTP (x64) – (English)
  • SQL Server 2008 R2 Express Edition August CTP (x86 and x64 WoW) – (English)
  • SQL Server 2008 R2 Express Edition August CTP (x86) – (English)

Books Online も公開されています。
SQL Server 2008 R2 Books Online Community Technology Preview August 2009

R2 の情報はあまり集めていなかったのでこれから勉強したいと思います。

Written by Masayuki.Ozawa

8月 10th, 2009 at 10:13 pm

Posted in SQL Server

SQL Server 管理レポート その 1

leave a comment

SQL Server の管理用カスタマイズレポートの作成状況を今日からすこしずつ書いていきたいと思います。
現在はトップページを小出しに作成中です。

メインページはサーバーの概要を載せたいなと思い、現在は以下の構成で作成しています。

image

現状は大枠だけ作成してみました。

時間がある時にサーバー情報でよく見る項目を少しずつ追加していきたいと思います。
AWE / MAX DOP だけでなく max worker threads や affinity mask も概要ページで見れると便利そうですね。
#sys.configurations で確認できる情報はこのページからリンクレポートを設定して全部見れるようにする予定です。

この手の自分の勉強用のツールを作るのは楽しくていいですね~。

パフォーマンスチューニングや運用のノウハウを補足として記載しながらレポートを作成していきたいです。

Written by Masayuki.Ozawa

7月 5th, 2009 at 2:02 pm

Posted in SQL Server

SQL Server 2008 Management Studio のカスタムレポートについて

leave a comment

Reporting Services の勉強を兼ねて SQL Server 2008 用の管理用カスタムレポートを作成しようと思い、
BI Development Studio 2008 でまずは簡単なレポートを作成してカスタムレポート表示をしたら以下のエラーが。

image

SQL Server 2008 の Management Studio 用のカスタムレポートは BI Development Studio 2005 で開発する
必要があるみたいですね。

下が BIDS 2005 で作成したカスタムレポートを SSMS 2008 で表示した内容になります。

image

まずはサーバーダッシュボードのようなものを少しずつ作っていきたいと思います。
# 最終的には自分で Performance Dashboard Reports のようなものを作ってみたいです。

Written by Masayuki.Ozawa

7月 4th, 2009 at 5:45 am

Posted in SQL Server

SQL Server 2008 のクラスタ環境でワークステーションコンポーネントをインストール

leave a comment

目下、Windows Server 2008 + SQL Server 2008 のクラスタ環境構築の検証中です。

SQL Server 2005 までは Microsoft 分散トランザクション コーディネータ (MSDTC) のクラスタリソースを
登録していない状態で、ワークステーションコンポーネントをインストールしようとすると、インストーラーを
実行しているのとは違うノードでワークステーションコンポーネントがインストールされるタイミングでエラーが
発生していた気がします。

SQL Server 2008 のクラスタ環境を構築する時に、MSDTC のクラスタリソースを登録していない状態で
ノード追加をするとどのような動きになるか気になったので試してみました。

結果は、MSDTC がインストールされていなくても正常にインストールすることができました。

以前のバージョンでは、一度のインストールで複数ノードを含めてインストールすることができたので、
その中で MSDTC が使われていたのでしょうか??

SQL Server 2008 ではインストール時は 1 ノードでインストールして、最初のノードのインストール終了後に
2 ノード目以降を追加する形になっていたので、ここら辺の方法の違いが影響しているのでしょうか。

MSDTC のリソース配置方法も含めていろいろと確認したい内容がありそうです。

Written by Masayuki.Ozawa

6月 10th, 2009 at 11:33 pm

Posted in SQL Server