análise de arquivo de despejo de banco de dados SQLServer

análise de arquivo de despejo aparece sqlserver

fundo

informações de log do banco verificação de rotina para um item, descobriu que despejo mais frequente ocorre, o risco de que precisamos de uma intervenção urgente, a causa do problema a ser analisado, como sério, e reparação;
ambiente de servidor são as seguintes:
Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) 28 out 2016 18:17:30 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) no Windows Server 2012 R2 Datacenter 6.3 <X64> (criação 9600:) (do hipervisor) 

passos

Primeiro DUMP informações primeira vez, para verificar o número de vezes que aparecem;
select *from sys.dm_server_memory_dumps
 
 
Não foram encontrados 160 vezes, mais recentemente em 08 de outubro de 2019, a seleção das informações mais recente despejo é a seguinte:
Ver SQLDump0160.txt encontrar as seguintes informações, que pode determinar a presença de despejo razão é devido ao índice de corrupção, mas também saber o que desencadeou a questão roteiro;
Use windbg SQLDump1060.mdump análise da seguinte forma:
STACK_TEXT:   
0000003f`8511a180 00007ff7`ba549c9c: 00000000 ` 00011000 00007ffe`21973c10 0000003f`8511a2c4 0000003f` 00000004 : KERNELBASE RaiseException + 0x68 
0000003f`8511a260 00007ffe`22e802c6: 00007ff7`ba58bd80 00007ffe`2d101118 00000000 ` 00000000 0000003f`8511a458: sqlservr CDmpDump: : Dump + 0x4C 
0000003f`8511a2a0 00007ffe`2397c411: 00007ff7`ba58bd80 00000000 ` 00000460  00000000 ` 00000000 00007ffe`2d101616: sqllang SQLDumperLibraryInvoke +! 0x1f6 
0000003f`8511a2e0 00007ffe`2397ce94: 00000000 `00,021164 millions  00000000 `58f1f705 00000000 ` 00000000 00007ffe`24cdfe30: sqllang SQLLangDumperLibraryInvoke + 0x161 
0000003f`8511a390 00007ffe`2394cd0b: 0000004b`00f94a70 00000000 `58f1f705 0000004b`00f94a70 0000004b`00f95910: sqllang CImageHelper :: DoMiniDump +! 0x475 
0000003f`8511a5a0 00007ffe`2586da80: 0000005b `23a228a0 0000005b`23a228a0 0000003f`8511c330 00000000 ` 000000bf: sqllang stackTrace + 0x9db 
0000003f`8511bfc0 00007ffe`2586dc42: 00007ffe`272f30a0 00000043 `f2488fc0 00000000 ` 00000000 00007ffe`24f7ac2d: sqlmin IndexFailure_ErrorAbort + 0x1d1
0000003f`8511c2d0 00007ffe` 25109860 : 00000046 ` 00000005  00000043 ` f2488fc0 00000000 ` 00000003 0000003f`58f1f705: sqlmin CPerIndexMetaQS :: ErrorAbort + 0xC3 
0000003f`8511c330 00007ffe`22091de7: 00000043 ` f2488fc0 00000046 ` 00000001 0000003f`8511c420 00000043 ` 08f72bc8: sqlmin CValRowMult :: SetDataX + 0x386 
0000003f`8511c400 00007ffe`24f41c29: 00000000 ` 00000001  00000043 ` 08f72bc0 00000000 ` 00000000  00000043`08f72150: sqltses CEsExec :: GeneralEval4 +! 0xe7 
0000003f`8511c4d0 00007ffe`24f05caf: 0000003f`8511c7a9 00000043 ` 08f72bc0 00000000 ` 00000000  00000041 ` 65c78870: sqlmin CQScanUpdateNew :: getRow + 0x314 
0000003f`8511c580 00007ffe`229365d7: 00000000 ` 00000000  00000000 ` 00000000 7fffffff`ffffffff 00007ffe`229378a2: sqlmin CQueryScan :: getRow + 0x81 
0000003f`8511c5b0 00007ffe`22c79a79: 00000043 `08f72150 0000004b`00f94a70 00000000 ` 00000000  00000000 ` 00000000: Sqllang CXStmtQuery :: ErsqExecuteQuery + 0x4dc 
0000003f`8511c730 00007ffe`22c7983c: 0000003f`eb082101 0000004e`34f25a00 00000000 ` 00000000 0000004b`00f94a01: sqllang CXStmtDML :: XretDMLExecute + 0x3a3 
0000003f`8511c810 00007ffe`235a0de2: 0000004b`00f94a70 0000004b` 46002560 0000003f` 8511c950 00000041 `83cbe8f0: sqllang CXStmtDML :: XretExecute + 0xb0 
0000003f`8511c840 00007ffe`22d172af: 0000004b` 46002000  00000000 ` 00000000  00000000 ` 00000000 0000004b`00f94a00: sqllang CMsqlExecContext :: ExecuteStmts < 1 , 0 > +0x1603 
0000003f`8511cf20 00007ffe` 22932041 : 00000041 `83cbe7c8 00000000 ` 00000000  00000041 `83cbe700 00000000 ` 00000000 : sqllang CMsqlExecContext :: fExecute + 0xaa5 
0000003f`8511d250 00007ffe`2363d83d: 00000000 ` 00000000  00000000 ` 00000007  00000041 `83cbec20 00000000 ` 00000000 : sqllang! CSQLSource :: Execute + 0x983 
0000003f`8511d3f0 00007ffe`2363d241: 00000041 `83cbec20 00000041 ` 83cbe7c8 00000041`0439ab80 00000000 ` 00000000 : sqllang CStmtExecProc :: XretLocalExec + 0x26e 
0000003f`8511d470 00007ffe`23639f98: 00000000 ` 00000000 00007ffe`22a99773 00000041 ` 83cbe710 00000000 ` 00000000 : sqllang CStmtExecProc :: XretExecExecute + 0x481 
0000003f`8511dc20 00007ffe`235a0de2: 00000041 ` 83cbe560 0000004b`00f94a70 00000000 ` 00000002 0000004b`00f94b08: sqllang CXStmtExecProc :: XretExecute + 0x38 
0000003f`8511dc60 00007ffe`22d172af: 00000000 ` 00002000 0000004b`00fac99000000000 ` 00000000 00007ffe` 00000011 : sqllang CMsqlExecContext :: ExecuteStmts < 1 , 0 > + 0x1603 
0000003f`8511e340 00007ffe` 22932041 : 0000004b`00fac890 00000000 ` 00000000 0000004b`00fac800 00000000 ` 00000000 : sqllang CMsqlExecContext :: fExecute + 0xaa5 
0000003f`8511e670 00007ffe`2293a82b: 00000000 ` 00000000 00007ffe` 00000007  00000000 ` 00000000 0000004b` 00000000 : sqllang CSQLSource :: Execute + 0x983
0000003f`8511e810 00007ffe` 22941542 : 0000004b`00fea700 0000004b`00fea430 00000000 ` 00000000 0000004b`00fea400: sqllang process_request + 0xe61 
0000003f`8511ede0 00007ffe`229410a3: 00000000 ` 00000000 0000003f`eb082148 0000003f`eb082148 00000000 ` 00000000 : sqllang process_commands_internal + 0x2df 
0000003f` 8511ee60 00007ffe`21bc5bfd: 0000004b`00febb20 00007ffe`21bc3add 0000003f`ffffffff 00000000 `000027ae: process_messages sqllang +! 0x253 
0000003f`8511f070 00007ffe`21bc58f5: 0000003f`eb082148 0000003f`eb082108 0000003f`eb082190 ffffffff` 00000000: Sqldk SOS_Task :: Param :: Execute +! 0x231 
0000003f`8511f670 00007ffe`21bc554d: 0000004e` 91220040 0000003f`8511f759 0000004e` 91220040 0000003f`eb088160: sqldk SOS_Scheduler :: runTask + 0xaa 
0000003f`8511f6e0 00007ffe`21bed7c8: 00000000 ` 00000000 0000003f` eb088160 0000003f`eb088160 00007ffe`21bedf00: sqldk SOS_Scheduler :: ProcessTasks + 0x3cd 
0000003f`8511f7c0 00007ffe`21bedb10: 0000003f`eb088160 00000000 ` 00000000 0000003f`eb088160 000105a0`65812f97: sqldk SchedulerManager :: WorkerEntryPoint + 0x2a1 
0000003f`8511f890 00007ffe`21bedcd7: 0000003f `eb088160 0000003f`8511f930 0000004e`91080280 0000003f`e7cd0590: sqldk SystemThread :: RunWorker + 0x8F 
0000003f`8511f8c0 00007ffe`21bed9f8: 0000004e` 91080230  00000000 ` 00000000  00000000 ` 00000000 0000004e` 91080170 : sqldk SystemThreadDispatcher :: ProcessWorker + 0x2de 
0000003f`8511f970 00007ffe`2f9f13d2: 00000000 ` 00000000  00000000 ` 00000000 0000003f`e7cd0590 0000003f`e7cd0590: sqldk SchedulerManager :: ThreadEntryPoint + 0x1d8 
0000003f`8511fa20 00007ffe`2fd454f4: 00007ffe`2f9f13b0 00000000 ` 00000000  00000000 ` 00000000 00000000 ` 00000000 : kernel32 BaseThreadInitThunk + 0x22 
0000003f`8511fa50 00000000 ` 00000000 : 00000000 00000000 00000000  ` ` 00000000 00000000 00000000 00000000 ` ` 00000000 : ntdll RtlUserThreadStart +! 0x34  
Seguro para pesquisar se há uma correção oficial documentação de referência e similares.
Ver a última versão do servidor SQL do documento correspondente ao de 2014, 2016 e estamos usando o padrão dos documentos acima questão deveria ter sido fixada; follow-up nos 2016 do SP2 problemas descrevendo reparação relacionados com este caso também não é encontrado na lista;
Uma vez que foi determinado que o índice está danificado, então a próxima pergunta é determinar qual tabela, o que índices danificados.
Através do acima SQLDump0160.txt sabemos que a implementação do procedimento armazenado despejo [sfa_p_updatestorestatus] causada pela visualização do código do procedimento armazenado da seguinte forma:
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sfa_p_updatestorestatus] 
	-- Add the parameters for the stored procedure here
   @guid                 varchar(50)     ,
   @status        int,
   @xwUserNumber int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    UPDATE sfa_t_store set status=@status,updateop=@xwUserNumber,updatetime=getdate() where guid=@guid

END
 
 
 
 
Descobriram que o procedimento armazenado é simples update] [sfa_t_store a mesa, em seguida, levou o problema é ainda exame direto mais simples da tabela pode ser. Você pode precisar checkdb queria o trabalho;
dbcc checktable('dbo.sfa_t_store') 
 
 
消息 8951,级别 16,状态 1,第 7 行
表错误: 表 'sfa_t_store' (ID 1492252421)。数据行在索引 'IX_sfa_t_store_saleareaidGuid' (ID 3)中没有匹配的索引行。与以下数据行匹配的索引行的键可能丢失或无效:
消息 8955,级别 16,状态 1,第 7 行
数据行(1:1132194:0)由(storeid = 419448)标识,索引值为“saleareaid = 'D7B30A46-25F9-41C6-AECB-5838915B0EF8' and guid = 'B777C7B2-1079-4483-8CE1-427379BD9D9C' and status = 1 and storeid = 419448”。
消息 8951,级别 16,状态 1,第 7 行
表错误: 表 'sfa_t_store' (ID 1492252421)。数据行在索引 'IX_sfa_t_store_saleareaidGuid' (ID 3)中没有匹配的索引行。与以下数据行匹配的索引行的键可能丢失或无效:
消息 8955,级别 16,状态 1,第 7 行
数据行(1:1132193:11)由(storeid = 419446)标识,索引值为“saleareaid = 'D7B30A46-25F9-41C6-AECB-5838915B0EF8' and guid = '7FCC1380-EE39-46D4-A4F7-A48466E674D1' and status = 1 and storeid = 419446”。
消息 8951,级别 16,状态 1,第 7 行
表错误: 表 'sfa_t_store' (ID 1492252421)。数据行在索引 'IX_sfa_t_store_saleareaidGuid' (ID 3)中没有匹配的索引行。与以下数据行匹配的索引行的键可能丢失或无效:
消息 8955,级别 16,状态 1,第 7 行
数据行(1:1132193:12)由(storeid = 419447)标识,索引值为“saleareaid = 'F1CCE355-387A-4CB3-A878-F33166E913E4' and guid = '45805C83-EC07-40CB-A810-4D6E2EBFF299' and status = 1 and storeid = 419447”。
sfa_t_store的 DBCC 结果。
对象 'sfa_t_store' 的 105452 页中有 1351236 行。
CHECKTABLE 在表 'sfa_t_store' (对象 ID 1492252421)中发现 0 个分配错误和 3 个一致性错误。
对于由 DBCC CHECKTABLE (*******.dbo.sfa_t_store)发现的错误,repair_rebuild 是最低的修复级别。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
 
 
 
A partir dos resultados dos exames, [são] danos IX_sfa_t_store_saleareaidGuid, a boa notícia é que o índice não é um índice de cluster, em seguida, a próxima ação é excluir o novo índice pode ser re-fix índice de foco semelhante pode referir-se a questionar o reparo página prática
drop index IX_sfa_t_store_saleareaidGuid on  dbo.sfa_t_store
CREATE NONCLUSTERED INDEX [IX_sfa_t_store_saleareaidGuid] ON [dbo].[sfa_t_store]
(
	[saleareaid] ASC,
	[guid] ASC,
	[status] ASC
)
INCLUDE ( 	[storecode],
	[storename],
	[storetype],
	[contactname],
	[contactphone],
	[authorityKeywords]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
 
 
 
 
Verificar novamente a tabela é normal;
 

 

Acho que você gosta

Origin www.cnblogs.com/jil-wen/p/12486408.html
Recomendado
Clasificación