成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server日志文件總結(jié)大盤點(diǎn)

數(shù)據(jù)庫(kù) SQL Server
我們今天是要和大家一起討論的是SQL Server日志文件總結(jié)與日志滿的實(shí)際處理辦法,以下就是文章的詳細(xì)內(nèi)容介紹,望大家借鑒。

SQL Server日志文件總結(jié)與日志滿的實(shí)際處理辦法,我們大家都知道交易日志(Transaction logs)是數(shù)據(jù)庫(kù)結(jié)構(gòu)中十分重要的,但是又容易被忽略的部分。由于它并不像數(shù)據(jù)庫(kù)中的schema那樣活躍,因此很少有人關(guān)注交易日志。

交易日志是針對(duì)數(shù)據(jù)庫(kù)改變所做的記錄,它可以記錄針對(duì)數(shù)據(jù)庫(kù)的任何操作,并將記錄結(jié)果保存在獨(dú)立的文件中。對(duì)于任何每一個(gè)交易過(guò)程,交易日志都有非常全面的記錄,根據(jù)這些記錄可以將數(shù)據(jù)文件恢復(fù)成交易前的狀態(tài)。

從交易動(dòng)作開始,交易日志就處于記錄狀態(tài),交易過(guò)程中對(duì)數(shù)據(jù)庫(kù)的任何操作都在記錄范圍,直到用戶點(diǎn)擊提交或后退后才結(jié)束記錄。每個(gè)數(shù)據(jù)庫(kù)都擁有至少一個(gè)交易日志以及一個(gè)數(shù)據(jù)文件。

 

出于性能上的考慮,SQL Server將用戶的改動(dòng)存入緩存中,這些改變會(huì)立即寫入交易日志,但不會(huì)立即寫入數(shù)據(jù)文件。交易日志會(huì)通過(guò)一個(gè)標(biāo)記點(diǎn)來(lái)確定某個(gè)交易是否已將緩存中的數(shù)據(jù)寫入數(shù)據(jù)文件。

當(dāng)SQL Server重啟后,它會(huì)查看日志中最新的標(biāo)記點(diǎn),并將這個(gè)標(biāo)記點(diǎn)后面的交易記錄抹去,因?yàn)檫@些交易記錄并沒有真正的將緩存中的數(shù)據(jù)寫入數(shù)據(jù)文件。這可以防止那些中斷的交易修改數(shù)據(jù)文件。

 

 

維護(hù)交易日志

因?yàn)楹芏嗳私?jīng)常遺忘交易日志,因此它也會(huì)給系統(tǒng)帶來(lái)一些問(wèn)題。隨著系統(tǒng)的不斷運(yùn)行,日志記錄的內(nèi)容會(huì)越來(lái)越多,SQL Server日志文件的體積也會(huì)越來(lái)越大,最終導(dǎo)致可用磁盤空間不足。除非日常工作中經(jīng)常對(duì)日志進(jìn)行清理,否則日志文件最終會(huì)侵占分區(qū)內(nèi)的全部可用空間。日志的默認(rèn)配置為不限容量,如果以這種配置工作,它就會(huì)不斷膨脹,最終也會(huì)占據(jù)全部可用空間。這兩種情況都會(huì)導(dǎo)致數(shù)據(jù)庫(kù)停止工作。

對(duì)交易日志的日常備份工作可以有效的防止日志文件過(guò)分消耗磁盤空間。備份過(guò)程會(huì)將日志中不再需要的部分截除。截除的方法是首先把舊記錄標(biāo)記為非活動(dòng)狀態(tài),然后將新日志覆蓋到舊日志的位置上,這樣就可以防止交易日志的體積不斷膨脹。如果無(wú)法對(duì)日志進(jìn)行經(jīng)常性的備份工作,最好將數(shù)據(jù)庫(kù)設(shè)置為"簡(jiǎn)單恢復(fù)模式"。在這種模式下,系統(tǒng)會(huì)強(qiáng)制交易日志在每次記錄標(biāo)記點(diǎn)時(shí),自動(dòng)進(jìn)行截除操作,以新日志覆蓋舊日志。

截除過(guò)程發(fā)生在備份或?qū)⑴f標(biāo)記點(diǎn)標(biāo)為非活動(dòng)狀態(tài)時(shí),它使得舊的交易記錄可以被覆蓋,但這并不會(huì)減少交易日志實(shí)際占用的磁盤空間。就算不再使用日志,它依然會(huì)占據(jù)一定的空間。因此在維護(hù)時(shí),還需要對(duì)交易日志進(jìn)行壓縮。壓縮交易日志的方法是刪除非活動(dòng)記錄,從而減少日志文件所占用的物理硬盤空間。

通過(guò)使用DBCC SHRINKDATABASE語(yǔ)句可以壓縮當(dāng)前數(shù)據(jù)庫(kù)的交易SQL Server日志文件,DBCC SHRINKFILE語(yǔ)句用來(lái)壓縮指定的交易日志文件,另外也可以在數(shù)據(jù)庫(kù)中激活自動(dòng)壓縮操作。當(dāng)壓縮日志時(shí),首先會(huì)將舊記錄標(biāo)記為非活動(dòng)狀態(tài),然后將帶有非活動(dòng)標(biāo)記的記錄徹底刪除。根據(jù)所使用的壓縮方式的不同,你可能不會(huì)立即看到結(jié)果。在理想情況下,壓縮工作應(yīng)該選在系統(tǒng)不是非常繁忙的時(shí)段進(jìn)行,否則有可能影響數(shù)據(jù)庫(kù)性能。

恢復(fù)數(shù)據(jù)庫(kù)

交易記錄備份可以用來(lái)將數(shù)據(jù)庫(kù)恢復(fù)到某一指定狀態(tài),但交易記錄備份本身不足以完成恢復(fù)數(shù)據(jù)庫(kù)的任務(wù),還需要備份的數(shù)據(jù)文件參與恢復(fù)工作。恢復(fù)數(shù)據(jù)庫(kù)時(shí),首先進(jìn)行的是數(shù)據(jù)文件的恢復(fù)工作。

在整個(gè)數(shù)據(jù)文件恢復(fù)完成前,不要將其設(shè)為完成狀態(tài),否則交易日志就不會(huì)被恢復(fù)。當(dāng)數(shù)據(jù)文件恢復(fù)完成,系統(tǒng)會(huì)通過(guò)交易日志的備份將數(shù)據(jù)庫(kù)恢復(fù)成用戶希望的狀態(tài)。如果在數(shù)據(jù)庫(kù)最后一次備份后,存在多個(gè)日志文件的備份,備份程序會(huì)按照它們建立的時(shí)間依次將其恢復(fù)。

另一種被稱為log shipping的過(guò)程可以提供更強(qiáng)的數(shù)據(jù)庫(kù)備份能力。當(dāng)log shipping配置好后,它可以將數(shù)據(jù)庫(kù)整個(gè)復(fù)制到另一臺(tái)服務(wù)器上。在這種情況下,交易日志也會(huì)定期發(fā)送到備份服務(wù)器上供恢復(fù)數(shù)據(jù)使用。這使得服務(wù)器一直處于熱備份狀態(tài),當(dāng)數(shù)據(jù)發(fā)生改變時(shí)它也隨之更新。

另一個(gè)服務(wù)器被稱作監(jiān)視(monitor)服務(wù)器,可以用來(lái)監(jiān)視按規(guī)定時(shí)間間隔發(fā)送的shipping信號(hào)。如果在規(guī)定時(shí)間內(nèi)沒有收到信號(hào),監(jiān)視服務(wù)器會(huì)將這一事件記錄到事件日志。這種機(jī)制使得log shipping經(jīng)常成為災(zāi)難恢復(fù)計(jì)劃中使用的方案。

性能優(yōu)化

交易日志對(duì)數(shù)據(jù)庫(kù)有重要作用,同時(shí)它對(duì)系統(tǒng)的整體性能也有一定影響。通過(guò)幾個(gè)選項(xiàng),我們可以對(duì)交易日志的性能進(jìn)行優(yōu)化。由于交易日志是一個(gè)連續(xù)的磁盤寫入過(guò)程,在這當(dāng)中不會(huì)發(fā)生讀取動(dòng)作。因此將日志文件放在一個(gè)獨(dú)立的磁盤,對(duì)優(yōu)化性能有一定作用。

另一項(xiàng)優(yōu)化措施與日志文件的體積有關(guān)。我們可以設(shè)置日志文件的體積不超過(guò)硬盤空間的百分之幾,或者確定它的大小。如果將其設(shè)置的過(guò)大會(huì)浪費(fèi)磁盤空間,而如果設(shè)置的過(guò)小則會(huì)強(qiáng)制記錄文件不斷嘗試擴(kuò)展,導(dǎo)致數(shù)據(jù)庫(kù)性能下降。

 

事務(wù)日志文件Transaction Log File是用來(lái)記錄數(shù)據(jù)庫(kù)更新情況的文件,擴(kuò)展名為ldf。

 

在 SQL Server 7.0 和 SQL Server 2000 中,如果設(shè)置了自動(dòng)增長(zhǎng)功能,事務(wù)SQL Server日志文件將會(huì)自動(dòng)擴(kuò)展。

 

一般情況下,在能夠容納兩次事務(wù)日志截?cái)嘀g發(fā)生的最大數(shù)量的事務(wù)時(shí),事務(wù)日志的大小是穩(wěn)定的,事務(wù)日志截?cái)嘤蓹z查點(diǎn)或者事務(wù)日志備份觸發(fā)。

 

然而,在某些情況下,事務(wù)日志可能會(huì)變得非常大,以致用盡空間或變滿。通常,在事務(wù)日志文件占盡可用磁盤空間且不能再擴(kuò)展時(shí),您將收到如下錯(cuò)誤消息:

 

 

  1. Error:9002, Severity:17, State:2  
  2. The log file for database '%.*ls' is full. 

 

 

除了出現(xiàn)此錯(cuò)誤消息之外,SQL Server 還可能因?yàn)槿鄙偈聞?wù)日志擴(kuò)展空間而將數(shù)據(jù)庫(kù)標(biāo)記為 SUSPECT。有關(guān)如何從此情形中恢復(fù)的其他信息,請(qǐng)參見 SQL Server 聯(lián)機(jī)幫助中的“磁盤空間不足”主題。

 

 

另外,事務(wù)日志擴(kuò)展可能導(dǎo)致下列情形:

 

非常大的事務(wù)日志文件。

 

事務(wù)可能會(huì)失敗并可能開始回滾。

 

事務(wù)可能會(huì)用很長(zhǎng)時(shí)間才能完成。

 

可能發(fā)生性能問(wèn)題。

 

可能發(fā)生阻塞現(xiàn)象。

 

 

原因

 

事務(wù)日志擴(kuò)展可能由于以下原因或情形而發(fā)生:

 

未提交的事務(wù)

 

非常大的事務(wù)

 

操作:DBCC DBREINDEX 和 CREATE INDEX

 

在從事務(wù)日志備份還原時(shí)

 

客戶端應(yīng)用程序不處理所有結(jié)果

 

查詢?cè)谑聞?wù)日志完成擴(kuò)展之前超時(shí),您收到假的“Log Full”錯(cuò)誤消息

 

未復(fù)制的事務(wù)

 

 

解決方法

 

SQL Server日志文件滿而造成SQL數(shù)據(jù)庫(kù)無(wú)法寫入文件時(shí),可用兩種方法:

 

一種方法:清空日志。

 

1.打開查詢分析器,輸入命令

 

DUMP TRANSACTION 數(shù)據(jù)庫(kù)名 WITH NO_LOG

 

2.再打開企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫(kù)--所有任務(wù)--收縮數(shù)據(jù)庫(kù)--收縮文件--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了。

 

 

另一種方法有一定的風(fēng)險(xiǎn)性,因?yàn)镾QL Server日志文件不是即時(shí)寫入數(shù)據(jù)庫(kù)主文件的,如處理不當(dāng),會(huì)造成數(shù)據(jù)的損失。

 

1: 刪除LOG

 

分離數(shù)據(jù)庫(kù) 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫(kù)->右鍵->分離數(shù)據(jù)庫(kù)

 

2:刪除LOG文件

 

附加數(shù)據(jù)庫(kù) 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫(kù)->右鍵->附加數(shù)據(jù)庫(kù)

 

此法生成新的LOG,大小只有500多K。

 

 

注意:建議使用第一種方法。

 

 

如果以后,不想要它變大。

 

SQL2000下使用:

 

在數(shù)據(jù)庫(kù)上點(diǎn)右鍵->屬性->選項(xiàng)->故障恢復(fù)-模型-選擇-簡(jiǎn)單模型。

 

或用SQL語(yǔ)句:

 

alter database 數(shù)據(jù)庫(kù)名 set recovery simple

 

 

 

另外,如上圖中數(shù)據(jù)庫(kù)屬性有兩個(gè)選項(xiàng),與事務(wù)日志的增長(zhǎng)有關(guān):

 

Truncate log on checkpoint

 

(此選項(xiàng)用于SQL7.0,SQL 2000中即故障恢復(fù)模型選擇為簡(jiǎn)單模型)

 

當(dāng)執(zhí)行CHECKPOINT 命令時(shí)如果事務(wù)日志文件超過(guò)其大小的70% 則將其內(nèi)容清除在開發(fā)數(shù)據(jù)庫(kù)時(shí)時(shí)常將此選項(xiàng)設(shè)置為True

 

Auto shrink

 

定期對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢查當(dāng)數(shù)據(jù)庫(kù)文件或日志文件的未用空間超過(guò)其大小的25%時(shí),系統(tǒng)將會(huì)自動(dòng)縮減文件使其未用空間等于25% 當(dāng)文件大小沒有超過(guò)其建立時(shí)的初始大小時(shí)不會(huì)縮減文件縮減后的文件也必須大于或等于其初始大小對(duì)事務(wù)SQL Server日志文件的縮減只有在對(duì)其作備份時(shí)或?qū)runcate log on checkpoint 選項(xiàng)設(shè)為True 時(shí)才能進(jìn)行。

 

 

 

注意:一般立成建立的數(shù)據(jù)庫(kù)默認(rèn)屬性已設(shè)好,但碰到意外情況使數(shù)據(jù)庫(kù)屬性被更改,請(qǐng)用戶清空日志后,檢查數(shù)據(jù)庫(kù)的以上屬性,以防事務(wù)日志再次充滿。

 

【編輯推薦】

  1. SQL Server分布式數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)與缺點(diǎn)
  2. 正確解決SQL Server警報(bào)問(wèn)題
  3. 用SQL Server數(shù)據(jù)庫(kù)鎖來(lái)定時(shí)間的長(zhǎng)短方法
  4. SQL Server 數(shù)據(jù)庫(kù)中鎖的自定義
  5. SQL Server鎖使用注意事項(xiàng)之如何避免死鎖
責(zé)任編輯:佚名 來(lái)源: 比特網(wǎng)
相關(guān)推薦

2010-06-28 15:59:09

SQL Server

2010-07-05 12:40:56

SQL Server

2010-07-23 13:04:39

SQL Server

2010-06-29 17:38:01

SQL Server

2010-07-06 16:24:53

SQL Server數(shù)

2010-07-06 08:56:16

SQL server

2010-09-13 14:12:21

SQL Server日

2011-09-05 16:39:59

黑客事件

2010-08-09 16:31:03

思科認(rèn)證

2010-06-07 17:21:01

MySQL安裝

2023-08-22 10:13:53

模塊工具JavaScrip

2023-03-15 23:59:13

前端構(gòu)建工具

2024-06-04 22:04:39

2024-04-08 00:00:00

前端框架React

2010-06-24 08:55:11

Web開發(fā)Web設(shè)計(jì)Web語(yǔ)言

2013-11-21 10:36:31

iOS APP開發(fā)工具

2013-03-07 14:04:30

2012-06-26 09:41:31

2016-03-24 09:43:57

無(wú)線通信技術(shù)無(wú)線技術(shù)

2018-03-01 09:17:30

DevOps 技術(shù)開發(fā)語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲精品性视频 | 91av视频在线观看 | 99色在线 | 国产精品a久久久久 | 中文视频在线 | 欧美福利 | 91在线资源 | 国产精品1区2区3区 一区中文字幕 | 成人性视频免费网站 | 亚洲视频欧美视频 | 久久久精品一区二区三区 | 国产福利精品一区 | 一级毛片视频在线观看 | 国产精品日韩欧美一区二区三区 | wwwww在线观看 | 亚洲人久久| 成人片免费看 | japan21xxxxhd美女| 欧洲精品久久久久毛片完整版 | 欧美乱淫视频 | 999久久久久久久久6666 | 欧美三级视频在线观看 | 亚洲精品亚洲人成人网 | 国产精品福利在线观看 | 久久爆操 | 日本在线精品视频 | 国产成人精品一区二区三 | 日韩在线观看视频一区 | 欧美日韩精品在线一区 | 夜夜骚| 久久久tv | 男女黄网站 | 亚洲视频免费在线观看 | 欧美在线观看一区 | 欧美a区| 国产精品久久 | 麻豆一区 | 欧美一级特黄aaa大片在线观看 | av成人在线观看 | 色视频在线免费观看 | 521av网站|