SE の雑記

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

tempdb の自動拡張と再起動後の初期サイズについて

leave a comment

SQL Server のデータベースは自動拡張設定を使用することで、データベースの割り当て領域が不足した際に、
自動的に拡張するように設定することができます。

SQL Server のソート等で使用される tempdb にもこの設定は適用することが可能です。

tempdb の領域が不足するとソート時などに以下のエラーが発生します。

メッセージ 1105、レベル 17、状態 2、行 1
データベース ‘tempdb’ にオブジェクト ‘dbo.SORT temporary run storage:? 140737491501056′ の領域を割り当てられませんでした。’PRIMARY’ ファイル グループがいっぱいです。不要なファイルの削除、ファイル グループ内のオブジェクトの削除、ファイル グループへの新しいファイルの追加、またはファイル グループの既存のファイルの自動拡張の設定のいずれかを行ってディスク領域を作成してください。

# tempdb にはソートの一時結果が保存されますので、これはメモリ上でソートができる場合でも保存されますので、
  メモリが足りていても tempdb が足りていないとソートに失敗します。

保険のために自動拡張を有効にして領域不足を解消するのは有効だと思います。

ただし、tempdb はサービスが再起動するタイミングで再作成されています。
自動拡張がされていても、サービスが再起動されると、明示的に設定をしていたサイズで再作成され、
自動拡張後のサイズはクリアされてしまいます。

[自動拡張前の tempdb のサイズ]

image

現在は 8.5MB 割り当てられています。

この状態で 600MB 程度のデータが入っているテーブルをソートしてみます。

[自動拡張後の tempdb のサイズ]

image

671MB まで拡張されました。

今の設定では 10% 単位で拡張がされるようになっています。
自動拡張のイベントを確認してみると、データファイルの自動拡張イベントが大量に出力されています。

image

今回の自動拡張イベントの処理時間の合計だけで、[34,939 ミリ秒] かかっています。
自動拡張の発生で 30 秒。処理時間としてはもったいないですね。
# 瞬時初期化ありの状態でこの秒数です。

今回はクエリエディタから実行しているのでタイムアウトしていませんが、プログラムから実行した場合は、
クエリタイムアウトの秒数に引っ掛かりエラーとなる可能性も。

この状態で、SQL Server のサービスを再起動してみます。

[再起動後の tempdb のサイズ]

image

再起動後は初期サイズの 8.5MB になってしまっています。

これは、ユーザーデータベースの場合は自動拡張が発生すると、初期サイズが変更されるのですが、tempdb に関しては
自動拡張が発生しても初期サイズが変更されないためです。

自動拡張後にデータベースのプロパティを確認してみると、600MB 超のサイズが初期設定にはなっておらず、
明示的に設定したサイズとなっています。
image?

サーバーの定期メンテナンス等で SQL Server を再起動する前に、tempdb の現在のサイズを確認して、
初期サイズの見直しが必要かの判断は重要かな~と思います。

Written by Masayuki.Ozawa

11月 7th, 2009 at 2:27 pm

Posted in SQL Server

SQL Server の専用管理者接続について

leave a comment

前回の投稿でシステムテーブルの更新には、専用管理者接続 (Dedicated Administrator Connection : DAC) を
使用すると書きました。

DAC は SQL Server 2005 からの機能で、SQL Server の応答が無くなった時に、トラブルシューティング等を
するために使用します。

デフォルトでは SQL Server をインストールしているサーバー (127.0.0.1) からのみ接続ができるようになっています。
以下の SQL を実行することで、リモートからも DAC による接続が可能となります。

sp_configure ‘remote admin connections’, 0
go
RECONFIGURE WITH OVERRIDE
go

?

DAC ですがクラスタ環境の場合、ローカルの接続でもリモート DAC が有効になっていないと接続することができません。
このことは BOL にも記載されています。

クラスタ構成では、DAC は既定でオフになります。ユーザーは、sp_configureremote admin connection オプションを実行すると、DAC リスナを有効にしてリモート接続にアクセスできます。
SQL Server が応答せず、DAC リスナが有効になっていない場合は、DAC で接続するために SQL Server を再起動する必要が生じる場合があります。
この理由から、クラスタ システムでは remote admin connections 構成オプションを有効にすることをお勧めします。

?

DAC の接続ですが、SQL Server Browser サービスが起動しているかによって接続方法が変わってきます。

[SQL Server Browser サービスが起動している場合]

こちらは前回の投稿で記載した接続方法になります。
接続先のサーバーとして、[ADMIN:<サーバー名><インスタンス名>] を指定することで接続ができます。

image

[SQL Server Browser サービスが起動していない場合 ]

SQL Server Browser サービスが起動していない状態で [ADMIN:~] で接続をすると、以下のエラーとなります。
image

ADMIN: での接続は DAC で使用しているポートを SQL Server Browser サービスに問い合わせています。
# DAC のポートは動的ポートのため、起動毎にポートが変更されます。
サービスが起動していないとポートがわからないため接続することができません。

DAC に割り当てられているポートは [ERRORLOG] ファイルに出力されています。
# ERRORLOG は SQL Server のインスタンスのインストールディレクトリの [Log] ディレクトリに出力されています。

image

このファイルをテキストエディタで開くと以下のような出力があります。

2009-11-05 23:02:19.60 サーバー??????? Dedicated admin connection support was established for listening remotely on port 50743.

この行に DAC のポート番号が出力されています。
今回の場合は [50743] となっています。

ローカルから接続する場合、サーバー名の指定は [127.0.0.1,<ポート番号>] になります。
# 対象インスタンスの DAC のポートを直接指定するため、インスタンス名は不要です。

image

リモートから接続する場合は、[<サーバー>,<ポート番号>] になります。

image

DAC を使用して何か障害を解決したということは今のところないのですが、接続方法は知っておくと
障害発生時に便利かと。

Written by Masayuki.Ozawa

11月 5th, 2009 at 3:16 pm

Posted in SQL Server

SQL Server 2005 以降でシステムテーブルを直接更新する方法

leave a comment

このところ SQL Server をインストール以外触っておらず、データベース管理者としてのスキルが右肩下がりです…。
このままでは SQL Server のデータベース管理者としてお先真っ暗となってしまいますので、小さなことでもコツコツと
投稿していきたいと思います。

思い立った初回は SQL Server 2005 以降でシステムテーブルを直接更新する方法を投稿したいと思います。

SQL Server 2000 までは sp_configure で [allow updates オプション] を設定することでシステムテーブルを
直接更新することが可能でした。

SQL Server 2005 以降の Books Online では allow update オプションの説明は以下のように記載されています。
# 今回は SQL Server 2008 で検証をしていますが、2005 でも同様の動作となります。

このオプションは sp_configure ストアド プロシージャにまだ含まれていますが、
その機能を SQL Server で使用することはできません。設定しても何の影響もありません。
SQL Server 2005 以降のバージョンでは、システム テーブルの直接更新はサポートされていません。

allow updates オプションを変更すると、RECONFIGURE ステートメントが失敗します。
allow updates オプションへの変更は、すべてのスクリプトから削除する必要があります。

?

実際に SQL Server 2008 で? allow updates を設定すると以下の実行結果となります。

sp_configure ‘allow updates’, 1
GO
RECONFIGURE
GO

[実行結果]

構成オプション ‘allow updates’ が 0 から 1 に変更されました。RECONFIGURE ステートメントを実行してインストールしてください。
メッセージ 5808、レベル 16、状態 1、行 1
システム カタログへのアドホック更新はサポートされていません。

?

RECONFIGURE をするとエラーとなります。
RECONFIGURE WITH OVERRIDE することで設定ができます。

この状態で、sysdatabases のようなシステムテーブルに更新をかけると以下のようなエラーとなります。
# SQL Server 2005 以降では sysdatabases は下位互換のシステムビューで実体は master.sys.sysdbreg だったりしますが。

update sys.sysdatabases set status = status|32768 where dbid = 5

[実行結果]

メッセージ 259、レベル 16、状態 1、行 1
システム カタログへのアドホック更新は許可されません。

?

SQL Server 2005 以降でシステムテーブルを更新するには以下の手順を実行して SQL Server に接続する必要があります。

  1. SQL Server をシングルユーザーモードで起動
  2. 専用管理者接続 (DAC) で接続

[シングルユーザーモードで起動する方法]

シングルユーザーモードで起動する前に、SQL Server 関連のサービスをすべて停止しておきます。
シングルユーザーモードはその名の通り、一人しか接続ができないモードですので SQL Server Agent や、
SSRS / SSIS / SSAS が起動していると、それらのサービスが SQL Server に接続してしまい、データベースエンジンクエリで
接続ができなくなってしまいます。
シングルユーザーモードで起動した後に、接続をしようとして エラー 18461 が発生する場合は、SQL Server 以外の
関連サービスを停止して確認をした方がよいと思います。

image

シングルユーザーモードはコマンドプロンプトで SQL Server を実行することで起動できます。

cd <インスタンスのプログラムディレクトリ>
sqlservr.exe ?m ?s <インスタンス名>

[実行例]
cd “c:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLBinn”
sqlservr.exe ?m ?s SQL2008

?

[DAC で接続]

DAC で接続する場合は接続時にサーバー名に [ADMIN:] をつけて接続をします。
今回はサーバーで直接作業をしています。
# リモートで DAC を使用することも可能ですがその場合は別の設定をする必要があります。

image

これでシステムテーブルを更新する準備は完了です。
allow updates は SQL Server 2005 以降では無効なオプションですので、設定をしなくてもシステムテーブルを
更新することが可能です。

試しにシステムテーブルを直接更新してデータベースをエマージェンシー (緊急) モードに設定したいと思います。
sysdatabases / sys.database はビューですので、各ビューの実体である sysdbreg テーブルを直接更新しています。
# use mssqlsystemresource を実行してリソースデータベース上で更新をしようとするとエラーとなりますので
  カレントデータベースは master データベース等で実行する必要があります。

update master.sys.sysdbreg set status = status|32768 where id = 5

[実行結果]

警告: システム テーブル ID 28 がデータベース ID 1 で直接更新されました。
キャッシュの一貫性が維持されていない可能性があります。SQL Server を再起動してください。

(1 行処理されました)

# ビット演算で status にエマージェンシーモードに対応するビットを有効にしています。

下が SQL 実行後の状態になります。
ALTER DATABASE ではなく、システムテーブルの直接更新でエマージェンシーモードに切り替わっています。

image

確認ができたのでシステムテーブルを更新できる状態にして以下の SQL を実行して正常な状態に戻しておきます。

update master.sys.sysdbreg set status = 0 where id = 5

?

以上でシステムテーブルの更新方法は終了です。
使うことがあるかはわかりませんが、奥の手として知っておくと便利な時があるかも知れません。

Written by Masayuki.Ozawa

11月 4th, 2009 at 3:26 pm

Posted in SQL Server

AD 降格時に Exchange 管理コンソールでエラーになった件の続き

leave a comment

Windows Server 2008 AD DS を Windows Server 2008 R2 AD DS に移行し、2008 AD DS を
降格させたときに Exchange Server 2010 RC の管理コンソール (EMC) を開くと Active Directory の
0x51 のエラーが発生してしまう件ですが、Exchange 2010 を OS 毎入れなおしたところ、
エラーが発生しなくなりました…。

再度 2008 AD DS をインストールして、降格させたところ現象が再現。

Set-ExchangeServer コマンドレットの、StaticDomainControllers / StaticConfigDomainController
StaticExcludedDomainControllers / StaticGlobalCatalogs を設定しても解決しませんでした。

また、AD の構成パーティションに情報が残っているのかと思って ldifde で構成パーティションを
エクスポートして一通り調べてみたのですが、2008 AD DS の情報は残っていませんでした。

他のユーザーで EMC を実行したところ、エラーが発生しなかったのでユーザー固有の問題かと思って、
エラーが発生しているユーザーのプロファイルを削除して、再度 EMC を実行したらエラーが発生しなくなりました。

Exchange や AD 側の問題ではなく、ユーザープロファイルの中に何か情報が残ってしまっていたのでしょうか??
具体的な解決策までたどり着いていないのですがメモとして残しておきたいと思います。

Written by Masayuki.Ozawa

11月 3rd, 2009 at 2:19 pm

Posted in Exchange

RTX1000 の初期設定だったり基本設定だったり

one comment

ルーターの勉強用に YAMAHA の RTX1000 を購入しました。

ネットワークは苦手なので、この機会にいろいろと学習したいです。
まずは初期設定についてメモとして投稿しておきたいと思います。

RT シリーズのマニュアルは RTシリーズのマニュアル配布 で公開されています。
なお、最新のファームは ファームウェア配布ページ から入手可能です。
代表的な設定例に関しては 設定例集 が提供されています。

Read the rest of this entry »

Written by Masayuki.Ozawa

11月 3rd, 2009 at 7:44 am

Posted in Network

2008 R2 Active Directory に移行 ? AD DS の降格 –

leave a comment

一通り、AD の移行が終わりましたので、今まで使用していた 2008 AD DS を撤去したいと思います。

[AD の降格]

AD の撤去は [dcpromo] から実施します。
AD CS 等、AD 関連の役割がインストールされている場合は事前に役割から削除しておく必要があります。

  1. [ファイル名を指定して実行] から [dcpromo] を実行します。
    image
  2. [次へ] をクリックします。
    image
  3. [OK] をクリックします。
    image
  4. [次へ] をクリックします。
    image
  5. [このサーバーを指している DNS 委任を削除する] のチェックをはずして、[次へ] をクリックします。
    image
  6. パスワードを設定して、[次へ] をクリックします。
    image
  7. [次へ] をクリックします。
    image
  8. [完了時に再起動する] を有効にして、削除が終わるまで待ちます。
    image

以上で既存ドメインコントローラーの降格は終了です。

この状態で Exchange Server 2010 RC に影響が出ないか確認をしてみたところ、以下のエラーが発生しました。
image

ひとまず、構成ドメイン コントローラーを変更してみました。

image
image

メールボックスの一覧等は表示できるようになったのですが、エラーが出る状況は変わらず。
どこかにドメインコントローラーの情報が残ってしまっているようです。

Exchange 2007 では正常に認識ができているのですが、2010 では NG です…。
仕方ないので、Exchange 2010 を再インストールしみたのですが状態は変わらず。

アンインストールしようとしたところいろいろと問題が発生して、以下の情報を参考にする必要がありました。
# メールボックスの削除とパブリックフォルダの削除がうまくできませんでした。

Exchange 2007 をコンピュータから削除する方法
Exchange 2010 – What is an arbitration mailbox?
Uninstall Exchange 2010

Exchange 2010 の RTM ももうじき TechNet からダウンロードできるようになると思いますので、
ダウロードできるようになったら RTM でも同様の現象が発生するのか試してみたいと思います。

Written by Masayuki.Ozawa

11月 1st, 2009 at 1:22 pm

Posted in Active Directory

2008 R2 Active Directory に移行 ? AD DS / DNS の移行 –

leave a comment

検証環境のインフラ整備をそろそろしないといけないと思い、まずは AD の移行から着手してみました。
私の検証環境の AD は 2008 SP2 で構築してあるのですが、これを 2008 R2 に移行してみます。

ワークグループ環境の DNS として設定しているものもあるため、移行の方針としては

  1. コンピュータ名は新規のもの
  2. IP アドレスは最終的に現行の AD のアドレスに変更

で作業したいと思います。

[フォレストとドメインの準備]

2008 R2 を 2008 ドメインのドメインコントローラーとして追加するために、フォレストとドメインの準備をします。
下の画像は、フォレストの準備をする前 / 後 スキーマのバージョンになります。
# 左がコマンド実行前、右がコマンド実行後です。
[objectVersion] が [44] から [47] に変更されています。
image?image

  1. 2008 のドメインコントローラーに Windows Server 2008 R2 のインストールメディアを挿入します。
  2. 以下のコマンドを実行します。
    RODCPREP は以前実行していたか覚えていなかったので改めて実行しています。

    >DVD ドライブ
    >cd supportadprep
    >adprep.exe /forestprep
    >adprep.exe /domainprep /gpprep
    > adprep.exe /rodcprep

    実行例)
    >D:
    >cd supportadrep
    >adprep.exe /forestprep

    ADPREP の警告:

    adprep を実行する前に、フォレスト内のすべての Windows 2000 Active Directory ドメイン コントローラーを Windows 2000 Service Pack 4 (SP4) 以降にアップグレードする必要があります。

    [ユーザーによる操作]
    既存の Windows 2000 Active Directory ドメイン コントローラーのすべてがこの要件を満たす場合は、C キーを押してから Enter キーを押して続行してください。中止するには、その他のキーを押してから Enter キーを押してください。

    c

    xxxxxx への接続を開始しました
    SSPI 結合に成功しました
    現在のスキーマのバージョン 44
    スキーマをバージョン 47 にアップグレードしています
    ファイルの署名を検証しています
    "xxxxxx" に接続しています
    SSPI を使って現在のユーザーとしてログインしています
    ファイル "C:Windowssystem32sch45.ldf" からディレクトリをインポートしています
    エントリを読み込んでいます…………………………………………………………
    66 個のエントリを正しく修正しました。

    コマンドが正しく完了しました
    ファイルの署名を検証しています
    "xxxxxxx" に接続しています
    SSPI を使って現在のユーザーとしてログインしています
    ファイル "C:Windowssystem32sch46.ldf" からディレクトリをインポートしています
    エントリを読み込んでいます….
    3 個のエントリを正しく修正しました。

    コマンドが正しく完了しました
    ファイルの署名を検証しています
    "xxxxxx" に接続しています
    SSPI を使って現在のユーザーとしてログインしています
    ファイル "C:Windowssystem32sch47.ldf" からディレクトリをインポートしています
    エントリを読み込んでいます…..
    4 個のエントリを正しく修正しました。

    コマンドが正しく完了しました
    "xxxxxx" に接続しています
    SSPI を使って現在のユーザーとしてログインしています
    ファイル "C:Windowssystem32PAS.ldf" からディレクトリをインポートしています
    エントリを読み込んでいます…………..
    13 個のエントリを正しく修正しました。

    コマンドが正しく完了しました
    …………………………………………………………………….
    Adprep はフォレスト全体の情報を正しく更新しました。

    >adprep.exe /domainprep /gpprep

    Domainprep を実行中…

    Adprep はドメイン全体の情報を正しく更新しました。

    更新が必要なグループ ポリシー オブジェクト (GPO) はありません。または、GPO 情報は既に更新されています。
    [状態/結果]
    Adprep はこの操作を再試行しませんでした。

    >adprep.exe /rodcprep

    Adprep はドメイン FSMO に接続しました: xxxxxx。

    Adprep は、パーティション DC=ForestDnsZones,DC=xxxxxx,DC=xxxxxに対して操作が実行されたことを検出しました。スキップして、次のパーティションに進みます。
    ===========================================================

    Adprep は、パーティション DC=DomainDnsZones,DC=xxxxxx,DC=xxxxxx に対して操作が実行されたことを検出しました。スキップして、次のパーティションに進みます。
    ===========================================================

    ===========================================================
    Adprep はパーティション DC=xxxx,DC=xxxx を検出しました。アクセス許可を更新しようとしています。

    Adprep はインフラストラクチャ FSMO に接続しました: xxxxxx。

    パーティション DC=xxxxx,DC=xxxxxx に対する操作は成功しました。
    ======================================================

    Adprep は問題なく完了しました。すべてのパーティションが更新されました。詳細については、C:Windowsdebugadpreplogs20091031130646 ディレクトリの ADPrep.log を確認してください。

[固定 IP と DNS の設定]

まずは、追加のドメインコントローラとして設定するために、既存の AD を参照先 DNS として設定して、
固定 IP を割り当てます。

最終的に、現行の AD の IP アドレスに変更するつもりですので、設定している IP は仮の IP になりますね。

image

では次に追加のドメインコントローラーとして設定します。

[ドメインコントローラーの追加]

  1. [ファイル名を指定して実行] から [dcpromo] を実行します。
    image
    サーバーマネージャで事前に、役割を追加していなくても dcpromo 実行時に自動でインストールをしてくれます。
    image
  2. [詳細モード インストールを使用する] を有効にして、[次へ] をクリックします。
    詳細モードは必ず有効にする必要があるわけではないですが、設定を確認したかったので今回は有効にしています。
    image
  3. [次へ] をクリックします。
    image
  4. [既存のフォレスト] [既存のドメインにドメイン コントローラーを追加する] を選択し、[次へ] をクリックします。
    image
  5. ドメイン名と追加のドメインコントローラーに設定するために使用するドメインアカウントの情報を入力し、
    [次へ] をクリックします。
    今回はワークグループの状態からドメインコントローラーとして追加しています。
    image
  6. 追加するドメインを選択し、[次へ] をクリックします。
    image
  7. 追加するサイトを選択して [次へ] をクリックします。
    image
  8. DNS と GC はデフォルトで有効になっているようです。
    今回は置き換えを目的としているので両方必要となります。
    デフォルト状態で [次へ] をクリックします。
    image
  9. [はい] をクリックします。
    image
  10. [次へ] をクリックします。
    image
  11. [次へ] をクリックします。
    image
  12. [次へ] をクリックします。
    image
  13. ディレクトリ復元モードのパスワードを設定し、[次へ] をクリックします。
    image
  14. [次へ] をクリックします。
    image
  15. [完了時に再起動する] を有効にしてインストールが完了するまで待ちます。
    image

これでドメインコントローラーと DNS の追加が完了しました。

[FSMO の移行]

追加したドメインコントローラーに FSMO を移行します。
作業は追加したドメインコントローラー上で実行しています。

  1. ドメイン名前付けマスターの移行
    1. [Active Directory ドメインと信頼関係] を実行します。
      image
    2. [Active Directory ドメインと信頼関係] を右クリックして、[Active Directory ドメイン コントローラーの変更] を
      クリックします。
      image
    3. 追加したドメインコントローラーを選択します。
      image
    4. 再度右クリックして、[操作マスター] をクリックします。
    5. [変更] をクリックします。
      image
    6. [はい] をクリックします。
      image
    7. [OK] をクリックします。
      image
    8. [閉じる] をクリックします。
  2. RID / PDC / インフラストラクチャマスターの移行
    1. [Active Directory ユーザーとコンピューター] を実行します。
      image
    2. ドメイン名を右クリックして、[操作マスター] をクリックします。
      image
    3. [RID] タブを選択して、[変更] をクリックします。
      image
    4. [はい] をクリックします。
      image
    5. [OK] をクリックします。
      image
    6. [PDC] タブを選択して、[変更] をクリックします。
      image
    7. [はい] をクリックします。
    8. [OK] をクリックします。
    9. [インフラストラクチャ] を選択して、[変更] をクリックします。
      image
    10. [はい] をクリックします。
    11. [OK] をクリックします。
  3. スキーママスタの移行
    1. [ファイル名を指定して実行] で [regsvr32 schmmgmt.dll] を実行して、[OK] をクリックします。
      image
    2. [mmc] を実行します。
    3. [ファイル] → [スナップインの追加と削除] をクリックします。
      image
    4. [Active Directory スキーマ] を選択して、[追加] をクリックし、[OK] をクリックします。
      ?image
    5. 右クリックして、 [Active Directory ドメイン コントローラーの変更] をクリックします。
      image
    6. 追加したドメインコントローラーを選択して、[OK] をクリックします。
      image
    7. [OK] をクリックします。
    8. [Active Directory スキーマ] を展開してから右クリックして、[操作マスター] をクリックします。
      image
    9. [変更] をクリックします。
      image
    10. [はい] をクリックします。
    11. [OK] をクリックします。
    12. [閉じる] をクリックします。

以上で FSMO の移行は完了です。

[IP アドレスの変更]

最初の AD の IP を変更して、追加した AD に割り当てられるようにしてみました。

  1. 現行の AD の IP アドレスを変更します。
  2. 現行の AD の 参照先 DNS を上で設定した IP に変更します。
  3. 代替 DNS に変更前の IP を設定します。
    # このあと、追加した AD に変更前の IP を設定するため。
  4. コマンドプロンプトで [ipconfig /registerdns] を実行します。

続いて追加した AD の IP を変更します。

  1. 追加した AD の IP アドレスを、現行の AD の IP アドレスに変更します。
  2. 追加
    した AD の参照先 DNS を上で設定した IP に変更します。

  3. 代替 DNS に現行の AD の IP を設定します。
  4. コマンドプロンプトで [ipconfig /registerdns] を実行します。

再起動後も AD DS のサービスは正常に動いているので、ひとまず変更は完了のようです。

Written by Masayuki.Ozawa

10月 31st, 2009 at 8:49 am

Posted in Active Directory

TMG 2010 RC でリバプロ その 1 – インストール –

leave a comment

TMG 2010 RC のインストールをまとめてみたいと思います。
今回は Windows Server 2008 R2 + TMG 2010 RC の環境を構築しています。

インストーラーで役割までインストールできるのでかなり簡単に導入できます。

ISA 2006 は CSS をインストールしてから、ISA をインストールするパターンで構築しましたが、
今回は両方を一度にインストールする方法でインストールしてみたいと思います。

[役割 / 機能のインストール]

サーバーマネージャで必要となる役割をインストールしなくても、インストーラーから必要なものを
一括でインストールすることができます。

  1. インストーラーを起動します。
  2. [Run Preparation Tool] をクリックします。
    image
  3. [次へ] をクリックします。
    image
  4. [I accept the terms of the License Agreements] を有効にして、[次へ] をクリックします。
    image
  5. [Forefront TMG services and Management] を選択し、[次へ] をクリックします。
    image
  6. 必要となる役割 / 機能がインストールされます。
    image
  7. [完了] をクリックします。
    image?

これでインストール前の準備は完了です。

役割は

  • Active Directory ライトウェイト ディレクトリサービス
  • ネットワーク ポリシーとアクセスサービス

機能は

  • .NET Framework 3.5.1
  • ネットワーク負荷分散
  • AD LDS スナップインおよびコマンドライン ツール
  • Windows PowerShell の Active Directory モジュール
  • ネットワーク負荷分散ツール

がインストールされます。

[TMG 2010 のインストール]

[Launch Forefront TMG Installation Wizard] を有効にした状態で、[完了] をクリックすると
自動的にインストールウィザードが起動されます。
有効にしていなかった場合は、インストーラーの [Run Installation Wizard] をクリックします。

  1. [Next] をクリックします。
    image
  2. [I accept the terms in the license agreement] を選択し、[Next] をクリックします。
    image
  3. [Next] をクリックします。
    image
  4. [Next] をクリックします。
    image
  5. [Add] をクリックして、内部ネットワークを追加し、[Next] をクリックします。
    ?image
  6. [Next] をクリックします。
    image
  7. [Install] をクリックします。
    image image
    image
  8. [Finish] をクリックします。
    image?

これでインストールは完了です。

次は冗長構成のためにサーバーを追加してみたいと思います。

Written by Masayuki.Ozawa

10月 26th, 2009 at 9:34 pm

Posted in ISA

ISA 2006 では SNP を有効にしないほうがよい?

leave a comment

ISA 2006 SP1 をインストールするとイベントビューアのアプリケーションに以下の警告が表示されることがあります。
image

SNP が有効になっていると警告が表示されるみたいですね。
SNP を無効にする方法は説明に表示されている KB948496 に記載されています。

Windows Server 2003 ベースおよび Small Business Server 2003 ベースの既定の SNP 機能をオフにする更新プログラム

KB948496 の更新プログラムを適用するかレジストリ変更により、SNP を無効にできます。

直接レジストリを変更する場合は以下のコマンドを実行すると楽かも。

REG ADD HKLMSYSTEMCurrentControlSetServicesTcpipParameters /v EnableTCPChimney /t REG_DWORD /d 0
REG ADD HKLMSYSTEMCurrentControlSetServicesTcpipParameters /v EnableRSS /t REG_DWORD /d 0
REG ADD HKLMSYSTEMCurrentControlSetServicesTcpipParameters /v EnableTCPA /t REG_DWORD /d 0

?

Windows Server 2008 で SNP を無効にする場合は、以下の KB が参考になります。

Windows Server 2008 で TCP Chimney オフロード、受信側のスケーリング、およびダイレクト メモリ アクセスのネットワーク機能に関する情報

TMG 2010 では特に警告は表示されないみたいですね。
SNP が有効になっているとたまに障害が発生することがあるので、無効にしておいた方がよいのでしょうか??

Windows Server 2008 R2 では NetDMA も netsh コマンドで変更できますので、レジストリ操作はせずに
コマンドだけで SNP が無効にできそうです。
# netdma というパラメータが使用できます。

Written by Masayuki.Ozawa

10月 26th, 2009 at 2:29 pm

Posted in ISA

ISA 2006 経由で Windows Update を実行

leave a comment

ISA 2006 には Windows Update 用のルールがデフォルトで作成されていますが、現在の Windows Update で
必要となるドメイン名セットがいくつか入っていません。
# 投稿を書く前に設定をしてしまったので、具体的にどのドメイン名が抜けていたのかが記載できません…。

必要となるドメイン名は以下の KB に記載されています。

ISA Server を実行するサーバーを経由して Windows Update Version 6 の Web サイトにアクセスするときにエラーが発生する

Windows Update の設定ですが、既定のポリシーでは設定されている個所が 2 個所ありそうです。

  1. システム ポリシーの許可サイト
  2. Microsoft Update ドメイン名

[システム ポリシーの許可サイト] は ISA サーバー自身のアクセスが許可されるドメイン名が定義されています。
# Enterprise Edition の場合はエンタープライズのポリシーとして設定されています。
ISA サーバーが Windows Update に接続できない場合はこのポリシーにドメイン名を設定します。

[Microsoft Update ドメイン名] はアレイにデフォルトで作成されている Windows Update ドメイン名です。
Web プロキシを使用する場合は、許可する宛先としてこのドメイン名セットを指定してルールを作成します。

Windows Update ができない場合は、上記ポリシーの内容を変更して、許可するドメインを増やしていきます。

手動で Windows Update をした場合、 [go.microsoft.com] 経由でアクセスされることがありますので、
KB の記載以外に [go.microsoft.com] または、[*.microsoft.com] の定義も追加が必要かもしれません。
# Windows Update → Microsoft Update への切り替えで必要だったみたいです。

ドメイン名セットだけでアクセスできない場合は、[65.55.0.0 / 16] のセグメントや [202.232.140.15] への
アクセスが拒否されて実行できていないこともあるようです。
アクセス拒否のログを確認していたところ、上記 IP アドレスへのアクセスが拒否となって Windows Update が
できなかったことがありました。

65.55 のセグメントは Microsoft が使用しているもののようですね。202.~ は akamai のようです。
65.55 はサブネットでは開けたくないのですが、Windows Update 用にいくつか IP があるみたいなんですよね。

サーバーで Windows Update を実行するのであれば、この辺の設定を構築段階で確認しておいた方が良さそうです。

TMG でも IP を設定しておかないと手動で Windows Update できませんでした。
私の環境特有の問題なのでしょうか??DNS の逆引きがうまくいっていないのかな…。

ちなみに TMG になると KB のドメイン名はデフォルトで設定されていました。
# [forefrontdl.microsoft.com] が増えているようですね。

ドメイン名セットを確認したくて TMG をインストールしてみたのですがインストーラーに
適切な役割を追加する機能が付いていてかなり簡単にインストールできました。
TMG は x64 専用なんですね。はじめて知りました。

Written by Masayuki.Ozawa

10月 25th, 2009 at 2:42 pm

Posted in ISA