SANレプリケーションがランダムなデータベースの破損を引き起こしているのはなぜですか?
-
28-09-2020 - |
質問
災害復旧技術には奇妙な問題を抱えています。両方のデータセンターの環境は、VMwareとDell Equallogic SANを持つものと同じです。
1つのデータセンターから別のデータセンターに複製すると、ランダムデータベースはどういうわけか破損しており、疑わしいモードで終わっています。このメソッドを試すたびに、さまざまなデータベースが破損します。これはこれを引き起こしているSQLの動作ですか?これは、これらのエラーの原因となるサンで使用されているソフトウェアですか?
データベースの状態を緊急モードに変更してDBCC CheckDBを実行することができましたが、毎回異なる問題とデータベースです。私が見つけたエラーのいくつかは、索引の問題とデータの不一致の問題です。私はまだ他のデータベースをチェックしてパターンを見つけることができるかどうかを確認しています。他のものを見つけたら、それが手助けするのであれば必ず投稿するでしょう。
この手順を正常に実装する人々のことを聞いたことがあり、プロジェクト憲章を閉じる前に把握するためのプロジェクトの最後のタスクです。
ミラーリングやAO-AGSのようなSQL Serverの組み込み機能を使用できることを本当に望んでいました。
SQLのバージョンは2008 R2と2012です。私たちは、いくつかの真新しいSQL 2014サーバーをインストールするプロセスです。また、彼らはすべて標準で、企業ではありません。
私が試してみることができる任意の入力または物事は、事前にありがとう!!
編集#1 8/6/15 12:50 CST - 以下は、Windowsイベントビューアで見つけたエラーメッセージの一部です。これは、DBCC CheckDBが作成されたものです。
- EVENTID 605 - データベース26の論理ページ(1:22620)を取得しようとしました。それは割り当てユニットに属しています72057594239385600は72057594249412608
- eventid 824 - SQL Serverは論理的な整合性ベースのI / Oエラーを検出しました:誤ったページング(予想1:1230;実際の0:0)。ファイル 'd:\ mydatabase.mdf'のオフセット0x00000099c000で、データベースID 58のページ(1:1230)の読み取り中に発生しました。 SQL Serverエラーログまたはシステムイベントログに追加のメッセージが表示される場合があります。これは、データベースの整合性を脅かす重大なエラー状態であり、すぐに正しい必要があります。データベースの一貫性チェック(DBCC CHECKDB)を完成させます。
- eventid 7886 - データをクライアントに送信中に大きなオブジェクトに対する読み取り操作が失敗しました。これに対する一般的な原因は、アプリケーションが読み取られていない分離レベルで実行されている場合です。この接続は終了します。
- EventID 608 - データベース23のパーティションID 72057594383564800のカタログエントリは見つかりません。メタデータは矛盾しています。 DBCC CheckDBを実行してメタデータ破損を確認します。
編集#2 8/6/15 2:24 CST - 疑わしいデータベースのバックファイルを復元する情報は問題を修正します。
解決
あなたのコメントに関しては、SQL Server Engineの問題の代わりにOPS関連の問題をここに疑う。これらのSANデバイスは通常、ブロックレイヤーで動作し、他のエリアと同様に他の領域よりもトランザクションログ/データファイルの同期を管理します。
OPSチームを表示することができ、SQL Serverはこのようなデータをランダムに破損していないことを示します。バックアップを別のサーバーに復元することができ、ミラーリングをセットアップして、これがすべて破損しなくなります。 SANレベルの複製を行う分が起こります。 SQL Serverがこのような破損を引き起こした場合、それは周りではないでしょう。 SQL Serverは、破損を扱う、破損を修正し、破損の可能性を低減するために、ほぼ何百万行のコードがあります。あなたはその問題を他の環境でもらえません、そしてそれはSANレプリケーションのみが正しいですか?
ファームウェアは、多くの場合、これらの種類の問題の主な原因です。あなたのDellサポート担当者を行に入手してください、彼らはもっと多くの情報とトラブルシューティングを持つでしょう。怠惰な担当者のために解決しないでください、あなたの企業のデータと時間は行にあります。背景やDPACなどの他のツールでこれを引き起こしているのかを確認するのを確認するツールがたくさんあります。これはSQL Server Engineの問題ではありませんが、OPSを完全にサポートする必要があります。
編集:ファームウェアが古くなっているか不一致の場合は、SANを管理するSANを管理しているSANを管理していると、最新のマシンのスタックに保存すると述べるOPSチームからポリシーを取得します。このSLAが存在しない場合は、これ以外に他の多くの問題にさらされているため、マネージャにメモを作成する必要があります。
SANブロックレベルの複製を使用していると仮定しています。
それはまた設定の不一致かもしれません。多分異なるブロックサイズなど。しかしSAN OSは通常これらの問題を検出できるはずです。