2013 年 12 月 SQL Server 最新モジュール

2013 年 12 月 18 日時点の SQL Server 最新モジュールです。 SQL Server 2000 は 2013 年 4 月 9 日に延長サポートが終了しました。長らくのご愛用ありがとうございました。 サービス パック 更新プログラム バージョン リリース年月 SQL Server 2012 SP1 KB 2894115(CU7) 11.0.3393 2013/11 メインストリームサポート SQL Server 2008 R2 SP2 KB 2908087 (CU10) 10.50.4297 2013/12 メインストリームサポート SQL Server 2008 SP3 KB 2893410 (CU14) 10.00.5848 2013/11 メインストリームサポート SQL…

0

クラスター環境にSQL Server をインストールする際、MSDTC をクラスター化する必要があるか?

フェールオーバークラスター環境にSQL Server をインストールする際に以下のお問い合わせをいただくことがあります。 フェールオーバークラスター環境に SQL Server をインストールする際、MSDTC はクラスター化する必要があるか? Books Online には以下のように記載されています。 フェールオーバー クラスタリングをインストールする前に http://technet.microsoft.com/ja-jp/library/ms189910(v=SQL.105).aspx ———–抜粋はじめ Microsoft 分散トランザクション コーディネーターのインストール フェールオーバー クラスターに SQL Server をインストールする前に、Microsoft 分散トランザクション コーディネーター (MSDTC) クラスター リソースを作成する必要があるかどうかを判断します。データベース エンジンだけをインストールする場合、MSDTC クラスター リソースは必要ありません。データベース エンジンと SSIS やワークステーション コンポーネントをインストールする場合、または分散トランザクションを使用する場合は、MSDTC のインストールが必要です。Analysis Services のみのインスタンスには MSDTC は必要ありません。 Microsoft 分散トランザクション コーディネーターの構成 オペレーティング システムをインストールしてクラスターを構成した後で、クラスター アドミニストレーターを使用して、クラスター内で機能するように MSDTC を構成する必要があります。MSDTC のクラスター化に失敗しても SQL Server セットアップは中断しませんが、MSDTC が適切に構成されていない場合は SQL Server…

1

[若葉マークブログ] 第 2 回 : ロックとは

みなさん、こんにちは。若葉マークブログの第 2 回は、ロックの基本についてお話したいと思います。 若葉マークブログの第 1 回は、トランザクションの基本についてお話しました。 トランザクションについてまだ十分に理解されていない方は、本 Blog をお読みになる前に [若葉マークブログ] 第 1 回 : トランザクションとは をご参照いただくことをお勧めいたします。 トランザクションと同様に、「ロック」という言葉も SQL Server を扱っていると日常的によく耳にすると思います。   ■ロック (Lock) とは トランザクション (関連する複数の処理を 1 つの処理単位としてまとめたもの) は、 1 つずつ実行されるのであれば、データは矛盾のない状態に保たれます。 しかし、SQL Server では同時に複数のユーザーが接続し、複数のトランザクションが並行して実行されています。 そのため、同じデータが同時に更新される可能性があり、もしこのような状況が発生するとデータに矛盾が生じてしまいます。 若葉マークブログ第 1 回 のトランザクションの場合と同様に、銀行口座の例を考えてみましょう。 A さんは翌日、銀行の ATM を使って、再度自分の 2 つの口座 の「口座 1 」 から「口座 2 」に 50,000 円 を振り込むことにしました。 口座…

0

[若葉マークブログ] 第 1 回 : トランザクションとは

みなさん、こんにちは。若葉マークブログという事で、SQL Server 初心者の方々へ向けて、第 1 回はトランザクションの基本についてお話したいと思います。 SQL Server を扱っていると、「トランザクション」という言葉を日常的によく耳にすると思います。 トランザクションとは、関連する複数の処理を 1 つの処理単位としてまとめたもので、この処理単位でデータベースへの反映がおこなわれます。 下図のような銀行振り込みの例を考えてみましょう。 A さんが銀行の ATM を使って、自分の 2 つの口座 の「口座 1 」 から「口座 2 」に 50,000 円 を振り込もうとしています。 口座 1 には現在は 300,000 円 の預金があり、口座 2 には 100,000 円の預金があります。 振り込みをおこなうと、口座 1 は 50,000 円引かれるので 250,000 円、口座 2 は 50,000 円足されるので 150,000 円になるはずです。 しかしここでハプニングが発生しました。振り込みの操作をしている最中に突然 ATM の機械が故障して停止してしまったのです。 故障した ATM…

0

2013 年 11 月 SQL Server 最新モジュール

2013 年 11 月 19 日時点の SQL Server 最新モジュールです。 SQL Server 2000 は 2013 年 4 月 9 日に延長サポートが終了しました。長らくのご愛用ありがとうございました。 サービス パック 更新プログラム バージョン リリース年月 SQL Server 2012 SP1 KB 2894115(CU7) 11.0.3393 2013/11 メインストリームサポート SQL Server 2008 R2 SP2 KB 2887606 (CU9) 10.50.4295 2013/10 メインストリームサポート SQL Server 2008 SP3 KB 2893410 (CU14) 10.00.5848 2013/11 メインストリームサポート SQL…

0

破損したデータベースからのデータ抜き出し方法

  前回ご案内したバックアップが存在しない、または、バックアップからのリストアが行えない場合のデータベース復旧手順では、バックアップを採取していなかったり、バックアップからのリストアに失敗したという場合のデータベースの修復方法をご案内しました。その中では、DBCC CHECKDB コマンドの修復オプションを用いてデータベースの修復を行いましたが、DBCC CHECKDB の修復オプションを用いてもデータベースを修復できない場合もあります。そのような場合は、データを抜き出して、そのデータを元にデータベースを再構築する以外にはありません。今回は DBCC CHECKDB コマンドの修復オプションでも復旧できない場合に、破損したデータベースから可能な限りのデータを抜き出すための方法をご案内します。 ※ 注意事項 ※   以下の手順は検証済みの手順ですが、必ずしもデータをすべて抜き出せることを保証しているものではありません。手順の実施につきましては、自己責任において行ってください。   本手順を実施した後、インデックスの作成や外部キー(FK)の設定を行う必要がある場合もあります。そのため、本作業は、対象データベースに格納されているデータ間の関連性を熟知している方、もしくは、この手順を実施する方の責任において実施する必要があります。データ間の関連性が保たれているかどうかの確認が行えない場合には、この手順を実施しないで下さい。            また、SQL Server サポートサービスにて、可能な限りデータベースを復旧するサポートを承っております。必要に応じてご利用下さい。 ■抜き出し手順   1. 移行先となる新規データベースを作成します。 Create Database データベース名                GO Use データベース名 GO Alter database ‘データベース名’ set RECOVERY FULL  GO           2. 以下のいずれかの方法にて、データの抜き出しを行います。 方法 特徴 Export ウィザード 破損データベースの複数のテーブルおよびデータを新規作成したデータベースへ直接コピー。 Select into 破損データベースの一つのテーブルを新規作成したデータベースへ直接コピー。 bcp 事前にテーブルを作成する必要あり。 破損データベースの一つのテーブルを一度、テキストファイルに出力後、そのファイルを元に、新規作成したデータベース内の新規作成したテーブルにコピー。 ※注意事項※  いずれの方法も、アクセスできないデータにヒットした時点でエラーになります。 それぞれの実行方法は以下の通りです。  1.Export ウィザード ※以降はSQL…

0

バックアップが存在しない、または、バックアップからのリストアが行えない場合のデータベース復旧手順

  データベースが破損しエラーが返されたり、アクセスできないといった状況が発生した場合、バックアップからリストアするという対処がもっとも一般的かつ確実な対応であり、SQL Server サポートでは、通常、バックアップからのリカバリ手順をご案内しております。 しかしながら、バックアップを採取していなかったり、バックアップからのリストアに失敗したという場合もあります。 今回は、そのようなバックアップからのリストアが行えない場合のデータベースの修復方法を紹介します。 ※ 注意事項 ※   以下の手順は検証済みの手順ですが、必ずしもデータベースの復旧を保証しているものではありません。手順の実施につきましては、自己責任において行ってください。   データベースの破損状況によっては、以下で紹介する修復手順を実施しても、データベースに接続でき、アプリケーションが実行できるまでの状態に復旧できない場合もあります。その場合はデータベースの再作成が必要となります。       本手順を実施すると、トランザクションの一貫性が失われる場合があります。トランザクションの一貫性が保たれているかどうかの確認は、対象データベースに格納されているデータ間の関連性を熟知している方、もしくは、この手順を実施する方の責任において実施する必要があります。トランザクションの一貫性が保たれているかどうかの確認が行えない場合には、この手順を実施しないで下さい。       また、SQL Server サポートサービスにて、可能な限りデータベースを復旧するサポートを承っております。必要に応じてご利用下さい。     ■修復手順 1. 対象データベースのファイルコピーを行います。 SQL Server サービスを停止し、対象データベースファイルのファイルバックアップ(別フォルダにデータベースファイルをコピー)を行います。 データベースファイル、ログファイルのファイルパスは以下のクエリにて確認可能です。以降の手順で予期しない問題が発生した場合、このファイルを用いて手順 1. の状態まで戻すことができます。バックアップ完了後、SQL Server サービスを再起動します。           select d.name as databasename,f.name as filename ,f.physical_name as filepath            from sys.master_files f,sys.databases d where d.database_id = f.database_id  GO        2. Microsoft SQL Server Management Studio を起動し、sa…

3

2013 年 10 月 SQL Server 最新モジュール

2013 年 10 月 29 日時点の SQL Server 最新モジュールです。 SQL Server 2000 は 2013 年 4 月 9 日に延長サポートが終了しました。長らくのご愛用ありがとうございました。   サービス パック 更新プログラム バージョン リリース年月 SQL Server 2012 SP1 KB 2874879(CU6) 11.00.3381 2013/9 メインストリームサポート SQL Server 2008 R2 SP2 KB 2887606 (CU9) 10.50.4295 2013/10 メインストリームサポート SQL Server 2008 SP3 KB 2880350 (CU13) 10.00.5846 2013/9 メインストリームサポート…

0

DOPは並列クエリで使用されるスレッド数ではない

神谷 雅紀 Escalation Engineer 並列クエリの並列度または次数 (degree of parallelism, DOP) は、クエリを実行するために使用される総スレッド数もしくは最大スレッド数ではありません。 例えば、Gather Streams Parallelism オペレータをひとつ含むクエリが DOP = 4 で実行されると、クエリで使用されるスレッドは、Parallelism オペレータよりも上を担当するメインスレッド 1 つと下を担当する子スレッド 4 つの合計 5 スレッドになります。 DOP とは? DOP は、個々の Parallelism オペレータに作用し、クエリ内の各 Parallelism オペレータが子スレッドを作成する場合のスレッド数を規定します。max degree of parallelism や MAXDOP クエリヒントによって、この各 Parallelism オペレータが生成できる子スレッドの最大値を設定することが可能です。子スレッドが実際にいくつ生成されるかは、論理オペレータと指定されている DOP に加えて、その時点でのインスタンス内のスレッド使用状況に依存します。 並列クエリで使用される論理オペレータ Parallelism オペレータでは、子スレッド (Producer) から親スレッド (Comsumer) へのデータの受け渡しが行われます。受け渡し方法は、論理オペレータによって異なります。DOP により制限されるのは子スレッド (Producer) です。 Gather Streams…

0

[Windows XP] 暗号化された SQL Server Compact Edition データベースに対してアクセス遅延が発生することがある

.NET Framework 4.0 ベースのアプリケーションにおいて、暗号化された SQL Server Compact Edition データベースに対するデータアクセス処理を行った際、Windows XP 環境で処理が遅くなることがあります。 1. 問題発生要因 SQL Server Compact Edition プロバイダは、暗号化されたデータベースを参照する際に初回に CryptAcquireContext メソッドをコールします。暗号化されたデータの複合のためのキー コンテナーは、マシンコンテナに格納されているため(※)、下記フォルダ (以下 MachineKeys フォルダと呼称) を参照することになります。 C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys MachineKeys フォルダにアクセス出来ない場合、後処理ロジックに分岐しますが、この後続処理に時間を要し処理が遅くなります。従って、対処方法としてはアプリケーションを実行するユーザーに MachineKeys フォルダに対する参照権限を付与していただくことで、後続の処理ロジックを実行させないということになります。 2. 対処方法 事前に MachineKeys フォルダに対し、SQL Server Compact Edition を参照するユーザーに対してアクセス権限を付与します。これにより後続の処理ロジックを実行させないことにより遅延が抑止されます。なお、既に SQL Server Compact Database をインストールしている環境には、既に MachineKeys フォ ルダ以下にキーコンテナが存在します。他のアプリケーションが、SQL Server Compact Database を使用している場合などは、キーコンテナの権限を手動で編集し、他のアプリケーションに対しての影響がないか十分に評価を行っていただくことを推奨いたします。…

0