web-dev-qa-db-ja.com

SQL Serverが論理整合性ベースのI / Oエラーを検出しました:RESTOREのページIDが正しくありません

新しいサーバーハードウェアへのデータベースの復元がページエラーで失敗しました。

Message
SQL Server detected a logical consistency-based I/O error: 
incorrect pageid (expected 49:8125916; actual 49:29097436).
It occurred during a read of page (49:8125916) in database ID 7 at
offset 0x00000f7fbb8000 in file x:\Databases\Data07\DataWarehouse_OperationalData_15.ndf'.
Additional messages in the SQL Server error log or system event
log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately.
Complete a full database consistency check (DBCC CHECKDB). 
This error can be caused by many factors; 
for more information, see SQL Server Books Online.

DBCC CheckDBは、この70 TBデータベースと6年前のサーバーで約1週間かかります。
破損しているのが自分のバックアップである可能性はありますか?
それとも、新しいサーバーに問題があるのですか?
それとも、問題の原因は古いサーバーの本番データベースですか。

これはSQL Server 2016 SP1 CU1であり、page_verify_option_descはCHECKSUMです。

これは、新しいサーバーのエラーログから確認できます。

Starting up database 'DataWarehouse'.
The database 'DataWarehouse' is marked RESTORING and is in a state that does not allow recovery to be run.
Error: 824, Severity: 16, State: 2.
SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 49:8125916; actual 49:29097436). It occurred during a read of page (49:8125916) in database ID 7 at offset 0x00000f7fbb8000 in file 'S:\MSSQL\DSA\Databases\DataWarehouse\Data07\DataWarehouse_OperationalData_15.ndf'.  Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
Error: 18456, Severity: 14, State: 38.

古いサーバーでこれを実行すると:

DBCC TRACEON (3604);
DBCC PAGE ('datawarehouse', 49, 8125916, 0);

私はこれを手に入れます

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

PAGE: (49:8125916)


BUFFER:


BUF @0x000000802C5E9300

bpage = 0x0000004DF03E8000          bhash = 0x0000000000000000          bpageno = (49:8125916)
bdbid = 5                           breferences = 1                     bcputicks = 0
bsampleCount = 0                    bUse1 = 5844                        bstat = 0x9
blog = 0x15ab215a                   bnext = 0x0000000000000000          bDirtyContext = 0x0000000000000000
bstat2 = 0x0                        

PAGE HEADER:


Page @0x0000004DF03E8000

m_pageId = (49:8125916)             m_headerVersion = 1                 m_type = 3
m_typeFlagBits = 0x0                m_level = 0                         m_flagBits = 0xa200
m_objId (AllocUnitId.idObj) = 10814647                                   m_indexId (AllocUnitId.idInd) = 256
Metadata: AllocUnitId = 72058302786633728                                
Metadata: PartitionId = 72058370492596224                                Metadata: IndexId = 1
Metadata: ObjectId = 1916450641     m_prevPage = (0:0)                  m_nextPage = (0:0)
pminlen = 0                         m_slotCnt = 2                       m_freeCnt = 2452
m_freeData = 5764                   m_reservedCnt = 0                   m_lsn = (2455108:11140830:20)
m_xactReserved = 0                  m_xdesId = (28:447547798)           m_ghostRecCnt = 0
m_tornBits = 31453216               DB Frag ID = 1                      

Allocation Status

GAM (49:7668480) = ALLOCATED        SGAM (49:7668481) = NOT ALLOCATED   
PFS (49:8120352) = 0x42 ALLOCATED  80_PCT_FULL                           DIFF (49:7668486) = CHANGED
ML (49:7668487) = NOT MIN_LOGGED    


DBCC execution completed. If DBCC printed error messages, contact your system administrator.

DBCC CHECKFILEGROUPは現在実行中です。エラーなしで終了しました。

SeanGallardyが2進数についてコメントしました。彼の意味を確認するのに長い時間がかかりましたが、プログラマモードのWindows電卓に2つの数値を入力すると、次のようになります。 the red shows the differences

更新:別のバックアップを実行し、古いサーバーから新しいサーバーに復元しました。今回はこのメッセージを受け取りました:

Could not redo log record (2456609:4261461:64), for transaction ID (28:972770238), on page (48:211577379), allocation unit 72058359886184448, database 'DataWarehouse' (database ID 7). 
Page: LSN = (2456609:3279166:236), allocation unit = 72058351460417536, type = 20. Log: OpCode = 2, context 5, PrevPageLSN: (2456609:4250688:2). 
Restore from a backup of the database, or repair the database.

私はこのメッセージをグーグルしようとしましたが、私が見つけることができる唯一のアドバイスは、データベースを復元することです(これは私が試みていることです)。

本当の質問は;次に何をすればいいですか?

復元を行うまでバックアップはありません

本当の質問は;次に何をすればいいですか?

これはDBA.SEの質問への「回答」のように聞こえないかもしれませんが、率直に言って、ここでの唯一の合理的な選択肢は、マイクロソフトにサポートケースを開いて支援を求めるか、または信頼できる専門家(コンサルタントまたは会社)を雇うことですSQL Serverの破損の問題を修正した実績のある記録。これらのオプションを購入できない場合は、データに価値がないことを意味します。

1
Remus Rusanu

ヘンリック、

DBCC CHECKDBの出力を提供してみてください。このスレッドをお読みください: DBCC CHECKDB整合性ベースのI/Oエラー

お役に立てば幸いです。

幸運を!

1
Alfie Jin