HowTo: Management Studio を使ってトランザクションログファイル (ldf) のサイズを小さくする方法

  神谷 雅紀 Escalation Engineer   「ログファイルが大きくなってディスク領域を圧迫し始めているので、ファイルサイズを小さくしたい」という内容の問合わせは今でも多く寄せられます。今回は、SQL Server Management Studio GUI を使って、トランザクションログファイルのサイズを小さくする手順を紹介します。 ここに記載した方法で、トランザクションログファイルのサイズを小さくしたいという状況のほとんどに対応可能だと思います。 ここに記載した方法でトランザクションログファイルのサイズを小さくできない場合は、おそらく、トランザクションログファイルのサイズを小さくする前に、レプリケーションやミラーリングのトラブルシューティングなどが必要になるでしょう。   ステップ 1 : データベースの復旧モデルを確認する 復旧モデルが「単純」かそれ以外かによって、以降の手順が違ってきますので、まず最初に、データベースの復旧モデルを確認します。 手順 復旧モデルを確認するために、データベースのプロパティを表示します。データベースのプロパティは、オブジェクトエクスプローラでデータベース名を右クリックし、「プロパティ」をクリックすることで表示できます。 表示されたダイアログボックスの左ペインで「オプション」を選択すると、右ペインに「復旧モデル」が表示されます。復旧モデルは、「単純」「完全」「一括ログ」のいずれかです。   ステップ 2 : トランザクションログをバックアップする トランザクションログは、データベースファイルへの更新履歴ですので、データベースに対して更新を行うたびにトランザクションログファイルには履歴データが記録され、何もしなければ、トランザクションログファイル内の履歴データはどんどん増えていきます。 復旧モデルが「単純」の場合は、トランザクションログファイル内のデータ量が一定量を超えると、SQL Server がファイルの中身を消し、ファイル内に空き領域を作り、空いた領域は再利用されます。 一方、復旧モデルが「完全」または「一括ログ」に設定されている場合は、過去に一度でもデータベースの完全バックアップ (データベースフルバックアップ) を取得していると、SQL Server はファイルの中身を消すことはしませんので、トランザクションログファイル内のデータは、バックアップしなければ削除されません。 このステップ 2 は、復旧モデルが「完全」または「一括ログ」の場合のみ行います。「単純」の場合は、次のステップ 3 に進みます。 手順 データベースを右クリックし、「タスク」 –  「バックアップ」をクリックします。 「バックアップの種類」として「トランザクションログ」を選びます。もし、復旧モデルが「単純」に設定されている場合は、「トランザクションログ」は選択できません。 「バックアップセットの有効期限」は既定のまま、「バックアップ先」は、バックアップデータを書き込むファイル名を指定します。「ディスク」を指定して、「追加」でファイル名を指定して下さい。そのサーバーにテープデバイスがある場合には、「テープ」を選んでも構いません。 最後に「OK」を押すと、バックアップが開始されます。   復旧モデルが「完全」または「一括ログ」であっても、データベースの完全バックアップが一度も取得されていない場合、トランザクションログのバックアップは以下のエラーで失敗します。   メッセージ 4214、レベル 16、状態…

4

イベントログに SQL Server 関連のパフォーマンス ライブラリで 警告 2003 が発生した場合の対処方法について

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。 BI Data Platform サポートチームの 高原 です。 今回は、イベントログに SQL Server 関連のパフォーマンス ライブラリで 警告 2003 が発生した場合の対処方法について紹介します。   Microsoft-Windows-Perflib: 警告: 2003: “MSSQLSERVER” サービスのパフォーマンス ライブラリ “perf-MSSQLSERVER-sqlctr**.*.****.*.dll” の構成情報が、レジストリに保存されている信頼されたパフォーマンスライブラリの情報に一致しませんでした。このライブラリの関数は信頼されているものとして処理されません。   [原因] SQL Server のパフォーマンス ライブラリ “perf-MSSQLSERVER-sqlctr**.*.****.*.dll” のファイル作成時刻やファイルサイズが、レジストリに格納されている情報と一致していない場合に発生します。   [影響] 前述の通り、情報のズレを報告するために記録される警告ですが、実動作 (パフォーマンス カウンタの採取など) への影響はありません。   [対処方法] SQL Server のパフォーマンス ライブラリ を再登録することで、警告 2003 は解消します。   #…


Azure 仮想マシン上で SQL Server AlwaysOn 可用性グループを構築する場合の推奨事項

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。 BI Data Platform サポートチームの 高原 です。 今回は、Azure 仮想マシン上で SQL Server AlwaysOn 可用性グループを構築する場合の推奨事項について紹介します。   Azure 仮想マシンをホストしているホスト仮想マシンでは定期的にメンテナンス作業が実施されており、ホスト仮想マシンの完全な再起動を必要としないメカニズムを使用してメンテナンス作業が行われています。 しかしながら、上記の作業の際、Azure 仮想マシンは 数十秒 から 30秒程度、一時停止状態になります。 そのため、Azure 仮想マシンの一時停止状態時間よりも、フェールオーバー クラスターの監視間隔が短い場合、フェールオーバーが発生する可能性があります。 この様な Azure プラットフォーム特有の動作に対応するため、フェールオーバークラスター、SQL Server 、さらに、アプリケーションクライアントにおけるタイムアウト値の延長をお勧めしています。   [推奨設定] 1) フェールオーバー クラスターのハートビート設定 (クラスタ側の設定) SameSubnetDelay (単位:ミリ秒) * SameSubnetThreshold (単位:回数) が、30000 ミリ秒 (30 秒) 以上に設定する。   [例] SameSubnetDelay =…


[FAQ] Azure 管理ポータルのギャラリーからデプロイした Azure 仮想マシン上の SQL Server に対する構成変更 について

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。 BI Data Platform サポートチームの 高原 です。 今回は、Azure 管理ポータルのギャラリーからデプロイした Azure 仮想マシン上の SQL Server の構成変更 (ディスク拡張) について紹介します。   Azure 管理ポータルのギャラリーから 以下のイメージを選択し、デプロイした場合、以下の構成でインストールが行われます。   SQL Server 2012 SP3 Standard on Windows Server 2012 R2SQL Server 2012 SP3 Enterprise on Windows Server 2012 R2 SQL Server 2014 SP2 Enterprise on Windows Server 2012…


Windows インストーラーでイベント 1004/1001 が発生し、SQL Server 関連コンポーネントが繰り返し再構築される現象 及び 回避策 について

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。 Microsoft SQL Server/Microsoft Azure SQL Database サポートチームの 高原 です。 今回は、Windows インストーラーでイベント 1004/1001 が発生し、SQL Server 関連コンポーネントが繰り返し再構築される現象 及び 回避策について紹介します。   Windows Update で .NET Framework の更新プログラムを適用後、イベントログ (アプリケーション) に、Windows インストーラのイベント 1004/1001 が繰り返し発生し、該当サーバーの CPU 使用率が高くなるという現象が報告されています。 [1004] 製品 ‘{7842C220-6E9A-4D5A-AE70-0E138271F883}’、機能 ‘SDK_Full’、コンポーネント ‘{5459C63B-8203-43FD-9C96-9D643FD17EF0}’ の検出に失敗しました。リソース ‘D:\’ がありません。 [1001]製品 ‘{7842C220-6E9A-4D5A-AE70-0E138271F883}’、機能 ‘SDK_FNS’ の検出は、コンポーネント ‘{30DC367C-77F2-4EB1-8661-7B2CC3714758}’ を要求するときに失敗しました   上記のメッセージは、 Windows…


既存の SQL Server ライセンスを使用し、Azure 仮想マシン上に SQL Server をインストールするためには。

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。  BI Data Platform サポートチームの 高原 です。 ※ BI Data Platformサポートチーム では、Microsoft SQL Server/Azure SQL Database/BI Azure などの製品をサポートしています。 今回は、既存の SQL Server ライセンスを使用し、Azure 仮想マシン上に SQL Server をインストールするために必要な契約について紹介します。   既存の SQL Server ライセンス を Azure 仮想マシン上の SQL Server で使用するためには、ソフトウェア アシュアランス (Software Assurance) の契約が必要となります。   SQL Server Azure VM の料金ガイダンス + ライセンスを持ち込む…


SQL Server における分散トランザクション 3

  神谷 雅紀 Escalation Engineer   以下の投稿で、分散トランザクションの開始から終了までの動作を説明しました。   SQL Server における分散トランザクション 1 SQL Server における分散トランザクション 2   本投稿では、分散トランザクションに関連するその他の一般的なトピックについて説明します。   MSDTCを動作させるために必要な設定   MSDTCを動作させるために必要な設定について https://blogs.technet.microsoft.com/jpiis/2018/02/05/msdtc-settings/   ロック所有者 session_id (SPID) –2   MS DTC トランザクションにエンリストしているセッションがない場合、sys.dm_tran_locks 動的管理ビューでは、そのトランザクションが所有しているロックの所有者 session_id が –2 と表示されます。実際に –2 というセッションが存在する訳ではなく、そのロックに紐づくセッションがないために、便宜的に –2 という値を使用しているだけです。 以下の例では、4) と 5) の間、7) から 8) の完了までの間、-2 がこの分散トランザクションによって獲得されたロックの所有者として表示されます。   1) トランザクション開始 2) セッション 51…


Azure 仮想マシン上に作成した SQL Server の日本語化手順(SQL Server 2016 対応手順 )

Microsoft SQL Server/Microsoft Azure SQL Database サポート 田中 真人     皆さん、こんにちは。 Microsoft SQL Server/Microsoft Azure SQL Database サポートチーム です。 日ごろから、Azure サービスをご愛顧頂き誠にありがとうございます。   今回は、日々のサポート業務において、比較的お問合せをいただく、Azure 仮想マシン上に作成した SQL Server の日本語化手順について記載致します。 Azure ギャラリーイメージより、SQL Server が含まれた仮想マシンをデプロイすることが可能ですが、現在は英語版のみの提供となっています。SQL Serverデータベースエンジン実行可能ファイルは全言語共通であるため、以下の手順を実施しなくても、日本語データの格納、取り出し、検索は可能です。データベースの既定の照合順序はデータベースを作成する際に指定可能です。テーブルの列の照合順序は、明示的に指定することもできますし、指定されない場合はデータベースの照合順序が継承されます。 管理ツールの日本語ユーザーインタフェースが必要な場合のみ、SQL Server を以下の手順にて日本語化する必要があります。リモートマシン上の日本語UIを持つSQL Server Management Studioから管理する場合には、以下の手順を実施する必要はありません。   ◆SQL Server 2012 、2014 の日本語化手順は以下の BLOG をご確認ください。 <Azure 仮想マシン上に作成した SQL Server の日本語化手順(SQL Server 2012 ,…

3

Azure 仮想マシン上に作成した SQL Server の日本語化手順(SQL Server 2012 , 2014 対応手順)

Microsoft SQL Server/Microsoft Azure SQL Database サポート 田中 真人     皆さん、こんにちは。 Microsoft SQL Server/Microsoft Azure SQL Database サポートチーム です。 日ごろから、Azure サービスをご愛顧頂き誠にありがとうございます。   今回は、日々のサポート業務において、比較的お問合せをいただく、Azure 仮想マシン上に作成した SQL Server の日本語化手順について記載致します。 Azure ギャラリーイメージより、SQL Server が含まれた仮想マシンをデプロイすることが可能ですが、現在は英語版のみの提供となっています。 SQL Serverデータベースエンジン実行可能ファイルは全言語共通であるため、以下の手順を実施しなくても、日本語データの格納、取り出し、検索は可能です。データベースの既定の照合順序はデータベースを作成する際に指定可能です。テーブルの列の照合順序は、明示的に指定することもできますし、指定されない場合はデータベースの照合順序が継承されます。 管理ツールの日本語ユーザーインタフェースが必要な場合のみ、SQL Server を以下の手順にて日本語化する必要があります。リモートマシン上の日本語UIを持つSQL Server Management Studioから管理する場合には、以下の手順を実施する必要はありません。   ※SQL Server 2016 の日本語化手順は以下の BLOG をご確認ください。 <Azure 仮想マシン上に作成した SQL Server の日本語化手順(SQL Server 2016 対応手順…


イベント ID : 455/489/490 及び 413/486 の対処方法について

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。 BI Data Platform サポートチームの 高原 です。 ※ BI Data Platformサポートチーム では、Microsoft SQL Server/Azure SQL Database/BI Azure などの製品をサポートしています。 今回は、イベント ID : 455/489/490 及び 413/486 の対処方法について、紹介したいと思います。   Windows Server 2012 以降、ソフトウェアの使用状況を収集する機能が追加されており、ソフトウェアの使用状況 を収集する機能の中で、“C:\Windows\system32\LogFiles\Sum” フォルダ配下への読み取り、書き込みが行われています。 そして、SQL Server サービス に指定された サービス起動アカウントに、“C:\Windows\system32\LogFiles\Sum” フォルダ配下に対する読み取り、書き込み、変更権限が付与されていない場合、権限不足に起因し、イベント ID : 455/489/490 がイベントログに記録されます。   ソース:ESENTイベントID:455 内容:   sqlservr (2032) ログファイル C:\Windows\system32\LogFiles\Sum\Api.log を開いているときに、エラー…