SQL Server 2008 R2インデックスの再構築が重大度17で失敗する


12

インデックスのメンテナンス中に、SEV 17エラーでジョブが失敗し、再構築中のオブジェクトに十分なスペースを割り当てられないことがあります。データベースは次のようにレイアウトされます。

Data_file1    PRIMARY    0 growth         0% free                Max Size UNLIMITED
Data_file2    PRIMARY    0 growth         0% free                Max Size UNLIMITED
Data_file3    PRIMARY    0 growth         Less than 1% free      Max Size UNLIMITED
Data_file4    PRIMARY    250 MB growth    Less than 1% free      Max Size UNLIMITED

基本的に、4つのデータファイルのうち3つがいっぱいで成長が許可されず、4つ目がいっぱいで成長が許可されています。ファイルはさまざまなLUNに分散しています(そして、その理由は面倒です)。そのため、オンラインインデックスの再構築が開始されると、追加のスペースが必要な場合、Data_file4に成長して問題ないことを理解していますが、成長が許可されておらず失敗する別のファイルに成長しようとしているようです。このエラーを再現することはできませんが、なぜこれが発生するのかについての洞察を誰かが持っているかどうか疑問に思っていました。

SQL Serverの完全バージョンは2008 R2 Enterprise、SP2 CU 4(10.50.4270)です。Ola Hallengrenの再構築スクリプトを使用しtempdbます。オンラインで再構築しますが、


最大ファイルサイズは指定されていますか?ドキュメントではIf max_size is not specified, the file size will increase until the disk is full.、自動成長がオフの場合、それらのファイルから割り当てようとするべきではありませんが許可されていますA value of 0 indicates that automatic growth is set to off and no additional space is allowed.が、バグがある可能性があるため、設定されていない場合は試してみても害はありません。
ジョンセイゲル14

max_size is成長が0の場合でも、現在UNLIMITEDに設定されています。私は今、これを再現テストで調査しています。
マイクファル14

結果を記録していますか?履歴レコードを保持している場合、エラーが発生するたびに同じインデックスでエラーが発生しますか?
Cougar9000 14

問題のインデックスは何ページですか?
マークウィルキンソン

また、これはスクリプトによって生成されたエラーですか、実際のSQL Serverエラーですか?データファイルのサイズ制限ではなく、トランザクションログのサイズ制限に達している可能性があり、スクリプトがエラーを誤って処理しているのではないかと考えているためです。
マークウィルキンソン14

回答:


1

私の経験では、インデックスが存在するファイルグループで常にオンラインで再構築を行います。既存のインデックスをマップし、本質的に1つのコピーに十分なスペースを保持する必要があります。

エラーが発生するのは、マッピング(コピー)を保持するには大きすぎるインデックスが再構築された場合のみです-たとえば、Olaのスクリプトで修飾するのに十分なほど断片化される場合と、そうでない場合です。

すばらしい記事http://technet.microsoft.com/en-us/library/ms179542(v=sql.105).aspxが あります。これは、インデックスのディスク領域の問題に遭遇したときに何度も読む必要がありました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.