亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

分享工作中遇到的問題積累經驗 事務日志太大導致insert不進數據

2024-07-21 02:48:50
字體:
來源:轉載
供稿:網友
分享工作中遇到的問題積累經驗 事務日志太大導致insert不進數據分享工作中遇到的問題積累經驗 事務日志太大導致insert不進數據

今天開發找我,說數據庫insert不進數據,叫我看一下

他發了一個截圖給我

然后我登錄上服務器,發現了可疑的地方,而且這個數據庫之前有一段經歷

在月初的時候這個數據庫曾經置疑過,啟動不起來

Could not redo log record (163041:116859:5), for transaction ID (0:-1175226963), on page (17:20633999), database 'xxrchives' (database ID 7). Page: LSN = (162930:20671:38), type = 2. Log: OpCode = 2, context 3, PRevPageLSN: (163041:116230:18). Restore from a backup of the database, or repair the database.During redoing of a logged Operation in database 'xxxrchives', an error occurred at log record ID (163041:116859:5). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.An error occurred during recovery, preventing the database 'xxxrchives' (database ID 7) from restarting. Diagnose the recovery errors and fix them, or restore from a known good backup. If errors are not corrected or expected, contact Technical Support.Setting database option EMERGENCY to ON for database xxxchives.The database 'xxxxchives' is marked EMERGENCY_MODE and is in a state that does not allow recovery to be run.

由于一些特殊的原因沒有做備份,數據庫大小差不多3TB,這里3TB是已經除去可用空間的了,里面只有幾張表,其中只有一張大表

修復語句如下

USE MASTERGOALTER DATABASE [xxxrchives] SET EMERGENCYGOALTER DATABASE [xxxxchives] SET SINGLE_USER WITH ROLLBACK IMMEDIATEGODBCC CHECKDB('xxxxchives','REPAIR_ALLOW_DATA_LOSS') with tablockGOALTER DATABASE [xxxxchives] SET ONLINEGOALTER DATABASE [xxxxchives] SET MULTI_USERGO

數據相對來說不是非常重要,允許丟失一些數據

結果運行了差不多7天,業務也一度中斷了

其實有數據庫完整備份的話可以使用頁面還原的方法還原有問題的頁面,加上日志備份,而不用這么大工程的。。。

有經驗的SQLSERVER管理員應該知道最后我使用的方法如何拋棄有824錯誤的頁面,只保留正常的數據頁面,這個大表是做了表分區的,由于篇幅關系這里不具體說了

消息 824,級別 24,狀態 2,第 3 行SQL Server 檢測到基于一致性的邏輯 I/O 錯誤 pageid 不正確(應為 6:33780000,但實際為 0:0)。在文件 'E:/DataBase/FG_xxxxive/FG_xxxxhive_Id_04_data.ndf' 中、偏移量為 0x0000406e240000 的位置對數據庫 ID 7 中的頁 (6:33780000) 執行 讀取 期間,發生了該錯誤。SQL Server 錯誤日志或系統事件日志中的其他消息可能提供了更詳細信息。這是一個威脅數據庫完整性的嚴重錯誤條件,必須立即糾正。請執行完整的數據庫一致性檢查(DBCC CHECKDB)。此錯誤可以由許多因素導致;有關詳細信息,請參閱 SQL Server 聯機叢書。


問題所在

這個數據庫運行在SQL2008上面,一直都是簡單模式,那么問題來了,由于當時checkdb的時間很長,積累了大量事務日志

但是,按道理處于簡單模式會自動截斷日志的,但是當時本人也沒有看,心里只想著數據庫馬上online

步驟一:今天開發找我插不進去數據也是因為這個,我運行了下面語句,這個語句是我找問題的時候一般都先用這個語句,因為在徐海蔚老師的書里面也建議先使用這個語句

SELECT * FROM sys.[sysprocesses] 

結果發現

相當多的log等待

步驟二:我再運行下面腳本

-- =============================================-- Author:      <樺仔>-- Blog:        <http://www.cnblogs.com/lyhabc/>-- Create date: <2014/4/18>-- Description: <統計各個數據庫的總大小V2 不包含數據文件>-- =============================================SET NOCOUNT ON USE masterGODECLARE @DBNAME NVARCHAR(MAX)DECLARE @SQL NVARCHAR(MAX)--臨時表保存數據CREATE TABLE #DataBaseServerData(  ID INT IDENTITY(1, 1) ,  DBNAME NVARCHAR(MAX) ,  Log_Total_MB DECIMAL(18, 1) NOT NULL ,  Log_FREE_SPACE_MB DECIMAL(18, 1) NOT NULL )--游標DECLARE @itemCur CURSORSET @itemCur = CURSOR FOR SELECT name from   SYS.[sysdatabases] WHERE [name] NOT IN ('MASTER','MODEL','TEMPDB','MSDB','ReportServer','ReportServerTempDB')OPEN @itemCurFETCH NEXT FROM @itemCur INTO @DBNAMEWHILE @@FETCH_STATUS = 0    BEGIN    SET @SQL=N'USE ['+@DBNAME+'];'+CHAR(10)    +    'INSERT  [#DataBaseServerData]                ( [DBNAME] ,                  [Log_Total_MB] ,          [Log_FREE_SPACE_MB ]                 )                SELECT '''+@DBNAME+''', str(sum(convert(dec(17,2),sysfiles.size)) / 128,10,2) AS Total_MB,                SUM(( database_files.size - FILEPROPERTY(database_files.name, ''SpaceUsed'') )) / 128.0 AS free_space_mb                FROM    dbo.sysfiles as sysfiles INNER JOIN sys.database_files as database_files ON sysfiles.[fileid]=database_files.[file_id] WHERE sysfiles.[groupid]  =0                AND database_files.[type] = 1;'        EXEC (@SQL)        FETCH NEXT FROM @itemCur INTO @DBNAME    END CLOSE @itemCurDEALLOCATE @itemCurSELECT  *  FROM    [#DataBaseServerData]DROP TABLE [#DataBaseServerData]

結果發現

上百G的日志文件

步驟三:我使用數據分析腳本也發現表里面的數據沒有增加,按F5刷新了很多次

--數據分析CREATE TABLE #tablespaceinfo    (      nameinfo VARCHAR(50) ,      rowsinfo BIGINT ,      reserved VARCHAR(20) ,      datainfo VARCHAR(20) ,      index_size VARCHAR(20) ,      unused VARCHAR(20)    )   DECLARE @tablename VARCHAR(255);   DECLARE Info_cursor CURSORFOR    SELECT  '[' + [name] + ']'    FROM    sys.tables    WHERE   type = 'U';   OPEN Info_cursor  FETCH NEXT FROM Info_cursor INTO @tablename   WHILE @@FETCH_STATUS = 0    BEGIN         INSERT  INTO #tablespaceinfo                EXEC sp_spaceused @tablename          FETCH NEXT FROM Info_cursor      INTO @tablename      END  CLOSE Info_cursor  DEALLOCATE Info_cursor   --創建臨時表CREATE TABLE [#tmptb]    (      TableName VARCHAR(50) ,      DataInfo BIGINT ,      RowsInfo BIGINT ,      Spaceperrow  AS ( CASE RowsInfo                         WHEN 0 THEN 0                         ELSE CAST(DataInfo AS decimal(18,2))/CAST(RowsInfo AS decimal(18,2))                       END ) PERSISTED    )--插入數據到臨時表INSERT  INTO [#tmptb]        ( [TableName] ,          [DataInfo] ,          [RowsInfo]        )        SELECT  [nameinfo] ,                CAST(REPLACE([datainfo], 'KB', '') AS BIGINT) AS 'datainfo' ,                [rowsinfo]        FROM    #tablespaceinfo        ORDER BY CAST(REPLACE(reserved, 'KB', '') AS BIGINT) DESC  --匯總記錄SELECT  [tbspinfo].* ,        [tmptb].[Spaceperrow] AS '每行記錄大概占用空間(KB)'FROM    [#tablespaceinfo] AS tbspinfo ,        [#tmptb] AS tmptbWHERE   [tbspinfo].[nameinfo] = [tmptb].[TableName]ORDER BY CAST(REPLACE([tbspinfo].[reserved], 'KB', '') AS BIGINT) DESC  DROP TABLE [#tablespaceinfo]DROP TABLE [#tmptb]
View Code

步驟四:下面檢查 VLF

DBCC LOGINFO
View Code

有400多個VLF

步驟五:檢查一下log為什么不能重用的原因

SELECT  DB_NAME([database_id]) AS dbname ,        [log_reuse_wait] ,        [log_reuse_wait_desc]FROM    sys.[databases]

結果發現 數據庫做了復制,我接手的時候這個數據庫是不需要復制的,可能是以前的同事弄的

步驟六:我使用博客園里面i6first大牛的文章把復制干掉《你還可以再詭異點嗎——SQL日志文件不斷增長》

EXEC sp_removedbreplication [xxxchives]

步驟七:然后再來收縮日志

USE [xxxxchives]GODBCC SHRINKFILE (N'xxxxxchives_log' , 5000)GO

弄完之后,數據庫正常了,沒有log等待,數據也在不斷增加


總結

簡單幾個步驟:從發現問題到解決問題,有些人可能半天才能解決,有些人幾分鐘就可以解決,這就是積累經驗的重要性

我自己的做法是多看書,多看博客園,在QQ群里看一下大家的問題,這就是經驗了,快速解決問題的經驗

本人也喜歡將工作中遇到的問題寫在博客里面,以供大家參考,大家一起進步o(∩_∩)o

如有不對的地

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精美色品网站| 亚洲女在线观看| 国产69精品久久久久久| 欧美有码在线观看视频| 国产在线拍偷自揄拍精品| 欧美性生交大片免网| 国产精品视频大全| 日韩欧美aaa| 尤物99国产成人精品视频| 久热国产精品视频| 亚洲网在线观看| 在线播放国产一区二区三区| 亚洲黄色av网站| 一个人看的www欧美| 色综合天天狠天天透天天伊人| 在线播放日韩专区| 亚洲小视频在线| 中文在线不卡视频| 日韩风俗一区 二区| 97婷婷大伊香蕉精品视频| 茄子视频成人在线| 亚洲精品99久久久久中文字幕| 欧美精品999| 久久中文字幕一区| 久久91超碰青草是什么| 国产精品jizz在线观看麻豆| 热99精品只有里视频精品| 69久久夜色精品国产69| 亚洲午夜av电影| 亚洲一区二区精品| 最近2019中文字幕一页二页| 欧美日韩在线观看视频小说| 亚洲国产精品久久久久秋霞蜜臀| 日本道色综合久久影院| 中文字幕综合一区| 国产日韩欧美在线观看| 91美女片黄在线观| 国产在线久久久| 欧美超级免费视 在线| 91精品中文在线| 久热在线中文字幕色999舞| 欧美成人精品在线视频| 欧美激情手机在线视频| 欧美视频免费在线| 亚洲福利影片在线| 最近中文字幕2019免费| 国产精品亚洲综合天堂夜夜| 97视频免费看| 亚洲精品国产成人| 国产亚洲精品激情久久| 国产欧美精品va在线观看| 色噜噜狠狠色综合网图区| 欧美激情精品久久久久久免费印度| 久久久综合免费视频| 97视频com| 欧美亚洲国产成人精品| 亚洲天堂开心观看| 青青草国产精品一区二区| 日韩精品中文字幕视频在线| 亚洲一级片在线看| 国产精品丝袜高跟| 欧美性一区二区三区| 最近中文字幕日韩精品| 在线视频欧美日韩| 精品成人69xx.xyz| 国产精品久久久久久av| 在线观看日韩专区| 在线亚洲午夜片av大片| 久久国内精品一国内精品| 日韩免费在线电影| 亚洲欧美日韩一区二区三区在线| 久久精品中文字幕| 国产一区二区三区中文| 亚洲欧洲日产国产网站| 91精品视频播放| 亚洲国产天堂网精品网站| 国产在线观看精品一区二区三区| 中文字幕一精品亚洲无线一区| 日韩欧美国产网站| 欧美成人精品不卡视频在线观看| 亚洲女在线观看| 黑人与娇小精品av专区| 亚洲精品国产综合久久| 国产一区视频在线播放| 亚洲国产欧美一区二区三区同亚洲| 91精品国产色综合久久不卡98| 91国内产香蕉| 91国内揄拍国内精品对白| 91国内免费在线视频| 高清日韩电视剧大全免费播放在线观看| 亚洲色图第一页| 色偷偷888欧美精品久久久| 91精品久久久久久久久中文字幕| 97不卡在线视频| 国产欧美在线看| 亚洲一区美女视频在线观看免费| 宅男66日本亚洲欧美视频| 亚洲片在线观看| 日韩高清电影好看的电视剧电影| 91av在线免费观看| 亚洲网站在线观看| 精品国产区一区二区三区在线观看| 日韩中文字幕视频在线观看| 成人有码视频在线播放| 91wwwcom在线观看| 日韩中文视频免费在线观看| 欧美中文字幕在线观看| 亚洲福利视频网站| xvideos成人免费中文版| 国产精品日韩欧美| 亚洲精品97久久| 日韩中文字幕av| 影音先锋欧美在线资源| 欧美色欧美亚洲高清在线视频| 久久久亚洲欧洲日产国码aⅴ| 欧美激情精品久久久久久蜜臀| 亚洲激情久久久| 91精品国产免费久久久久久| 久久中文字幕在线视频| 欧美中文字幕精品| 国产精品爽爽爽爽爽爽在线观看| 热99精品只有里视频精品| 亚洲性无码av在线| 久久国产精品久久国产精品| 日韩欧美一区视频| 国产精品久久77777| 视频在线一区二区| 欧美大片在线影院| 97在线视频免费| 亚洲成人网在线| 国产成人精品视频| 亚洲精品久久久久中文字幕欢迎你| 日韩在线免费观看视频| 91精品国产高清久久久久久| 川上优av一区二区线观看| 91po在线观看91精品国产性色| 在线日韩精品视频| 久久久久久久久久国产| 91chinesevideo永久地址| 热门国产精品亚洲第一区在线| 国产有码一区二区| 精品激情国产视频| 国产色综合天天综合网| 久久久之久亚州精品露出| 亚洲国产精品va在线| 国产精品一二三视频| 亚洲男人av电影| 一个色综合导航| 久久成人免费视频| 国产精品入口免费视频一| 亚洲国产成人精品电影| 久久精品中文字幕| 午夜免费日韩视频| 亚洲精品小视频在线观看| 欧美大成色www永久网站婷| 欧美xxxx18性欧美| 欧美黑人巨大xxx极品| 91av视频导航| 永久免费精品影视网站| 91亚洲国产成人久久精品网站| 日韩精品在线视频美女| 亚洲欧美日韩精品| 欧美黑人极品猛少妇色xxxxx| 国产一区二区视频在线观看|