sql資料庫中包含主數據文件、事務日誌文件、輔助數據文件三種文件。
1、主數據文件
該文件包含資料庫的啟動信息,並用於存儲數據。每個資料庫都有一個主要數據文件。
2、事務日誌文件
這些文件包含用於恢復資料庫的日誌雹豎信息。每個資料庫都必須至少有一個日誌文件。
3、輔助數據文件
這些文件含有不能置於主要數據文件中的所有數據。如果主文件可以包含資料庫中的所有數據,那麼資料庫就不需要次要數據文件。
(1)sql數據和事務日誌文件擴展閱讀
sql資料庫特點
1、SQL資料庫的數據體系結構基本正肆唯上是三級結構,但使用術語與傳統關系模型術語不同。在SQL中,關系模式(模式)稱為「基本表」(basetable);存儲模式(內模式)稱舉培為「存儲文件」(storedfile);子模式(外模式)稱為「視圖」(view);元組稱為「行」(row);屬性稱為「列」(column)。
2、sql資料庫是非過程化語言、統一的語言、是所有關系型資料庫的公共語言。
3、SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。
2. sql server有幾個文件
Microsoft® SQL Server™ 2000
使用一組操作系統文件映射資料庫。資料庫中的所有數據和對象(如表、存儲過程、觸發器和視圖)都存儲在下列操作系統文件中:
主要
該文件包含資料庫的啟動信息,並用於存儲數據。每個資料庫都有一個主要數據文件。
次要
這些文件含有不能置於主要數據文件中的所有數據。如果主文件可以包含資料庫中的所有數據,那麼資料庫就不需要次要數據文件。有些資料庫可能足夠大故需要多個次要數據文件,或使用位於不同磁碟驅動器上的輔助文件將數據擴展到多個磁碟。
事務日誌
這些文件包含用於恢復資料庫的日誌信息。每個資料庫都必須至少有一個日誌文件。
例如,創建簡單的資料庫 sales
時,可以跡前只使用一個包含所有數據和對象的主文件和一個包含事務日誌信息的日誌文件。另一種情況是,創建更復雜的資料庫 orders
時,可以使用一個主文件和五個輔助文件,資料庫內的數據和對象擴展到所有的六個文件中,另外有四個日誌文件包含事務日誌信息。
文件組允許對文件進行分組,以便於管理和數據的分配/放置。例如,可以分別在三個硬碟驅動器上創建三個文件(Data1.ndf、Data2.ndf
和 Data3.ndf),並將這三個文件指派到文件組 fgroup1 中。然後,可以明確地在文件組 fgroup1
上創建一信州芹個表。對表中數據的查詢將分散到三個磁碟上,因而性能得以提高。在
RAID(獨立磁碟冗餘陣列)條帶集上創建單個文件也可以獲得相同的性能改善。然而,文件和文件組使您得以在新磁碟上輕易地添加新文件。另外,如果資料庫超過單個
Microsoft Windows NT® 文件的最大大小,則可以使用次要數據文件允許資料庫繼續增長。
文件和文件組的設計規則
文件和文件組的設計規則包括:
文件或文件組不能由一個以上的資料庫使用。例如,文件 sales.mdf 和 sales.ndf 包含 sales
資料庫中的數據和對象,任何其它資料庫都不能使用這兩個文件。
文件只能是一個文件組的成員。
數據和事務日誌信息不能屬於同一文件或文件組。
事務日誌文件不能屬於任何滑畢文件組。
3. SQL中主數據文件和事務日誌文件可以位於同一個文件組嗎日誌文件可以成為文件組的成員嗎
最多可以為每個資料庫創建 256 個文件組。文件組只能包含數據文件。事務日誌文件不能是文件組的一部分。參考資料: http://ke..com/view/701355.htm?fr=ala0
4. SQL Server日誌文件總結及日誌滿的處理
交易日誌(Transaction logs)是資料庫結構中非常重要但又經常被忽略的部分 由於它並不像資料庫中的schema那樣活躍 因此很少有人關注交易日誌 交易日誌是針對資料庫改變所做的記錄 它可以記錄針對資料庫的任何操作 並將記錄結果保存在獨立的文件中 對於任何每一個交易過程 交易日誌都有非常全面的記錄 根據這些記錄可以將數據文件恢復成交易前的狀態 從交易動作開始 交易日誌就處於記錄狀態 交易過程中對資料庫的任何操作都在記錄范圍 直到用戶點擊提交或後退後才結束記錄 每個資料庫都擁有至少一個交易日誌以及一個數據文件 出於性能上的考慮 SQL Server將用戶的改動存入緩存中 這些改變會立即寫入交易日誌 但不會立即寫入數據文件 交易日誌會通過一個標記點來確定某個交易是否已將緩存中的數據寫入數據文件 當SQL Server重啟後 它會查看日誌中最新的標記點 並將這個標記點後面的交易記錄抹去 因為這些交易記錄並沒有真正的將緩存中的數據寫入數據文件 這可以防止那些中斷桐桐畢的交易修改數據文件 維護交易日誌 因為很多人經常遺忘交易日誌 因此它也會給系統帶來一些問題 隨著系統的不斷運行 日誌記錄的內容會越來越多 日誌文件的體積也會越來越大 最終導致可用磁碟空間不足 除非日常工作中經常對日誌進行清理 否則日誌文件最終會侵佔分區內的全部可用空間 日誌的默認配置為不限容量 如果以這種配置工作 它就會不斷膨脹 最終也會占據全部可用空間 這兩種情況都會導致資料庫停止工作 對交易日誌的日常備份工作可以有效的防止日誌文件過分消耗磁碟空間 備份過程會將日誌中不再需要的部分截除 截除的方法是首先把舊記錄標記為非活動狀態 然後將新日誌覆蓋到舊日誌的位置上 這樣就可以防止交易日誌的體積不斷局芹膨脹 如果無法對日誌進行經常性的備份工作 最好將資料庫設置為 簡單恢復模式 在這種模式下 系統會強制交易日誌在每次記錄標記點時 自動進行截除操作 以新日誌覆蓋舊日誌 截除過程發生在備份或將舊標記點標為非活動狀態時 它使得舊的交易記錄可以被覆蓋 但這並不會減少交易日誌實際佔用的磁碟空間 就算不再使用日誌 它依然會占據一定的空間 因此在維護時 還需要對交易日誌進行壓縮 壓縮交易日誌的方法是刪除非活動記錄 從而減少日誌文件所佔用的物理硬碟空間 通過使用DBCC SHRINKDATABASE語句可以壓縮當前資料庫的交易日誌文件 DBCC SHRINKFILE語句用來壓縮指定的交易日誌文件 另外也可以在資料庫中激活自動壓縮操作 當壓縮日誌時 首先會將舊記錄標記為非活動狀態 然後將帶有非活動標記的記錄徹底刪除 根據所使用的壓縮方式的不同 你可能不會立即看到結果 在理想情況下 壓縮工作應該選在系統不是非常繁忙的時段進行 否則有可能影響資料庫性能 恢復資料庫 交易記錄備份可以用來將資料庫恢復到某一指定狀態 但交易記錄備份本身不足以完成恢復資料庫的任務 還需要備份的數據文件參與恢復工作 恢復資料庫時 首先進行的輪斗是數據文件的恢復工作 在整個數據文件恢復完成前 不要將其設為完成狀態 否則交易日誌就不會被恢復 當數據文件恢復完成 系統會通過交易日誌的備份將資料庫恢復成用戶希望的狀態 如果在資料庫最後一次備份後 存在多個日誌文件的備份 備份程序會按照它們建立的時間依次將其恢復 另一種被稱為log shipping的過程可以提供更強的資料庫備份能力 當log shipping配置好後 它可以將資料庫整個復制到另一台伺服器上 在這種情況下 交易日誌也會定期發送到備份伺服器上供恢復數據使用 這使得伺服器一直處於熱備份狀態 當數據發生改變時它也隨之更新 另一個伺服器被稱作監視(monitor)伺服器 可以用來監視按規定時間間隔發送的shipping信號 如果在規定時間內沒有收到信號 監視伺服器會將這一事件記錄到事件日誌 這種機制使得log shipping經常成為災難恢復計劃中使用的方案 性能優化 交易日誌對資料庫有重要作用 同時它對系統的整體性能也有一定影響 通過幾個選項 我們可以對交易日誌的性能進行優化 由於交易日誌是一個連續的磁碟寫入過程 在這當中不會發生讀取動作 因此將日誌文件放在一個獨立的磁碟 對優化性能有一定作用 另一項優化措施與日誌文件的體積有關 我們可以設置日誌文件的體積不超過硬碟空間的百分之幾 或者確定它的大小 如果將其設置的過大會浪費磁碟空間 而如果設置的過小則會強制記錄文件不斷嘗試擴展 導致資料庫性能下降 事務日誌文件Transaction Log File是用來記錄資料庫更新情況的文件 擴展名為ldf 在 SQL Server 和 SQL Server 中 如果設置了自動增長功能 事務日誌文件將會自動擴展 一般情況下 在能夠容納兩次事務日誌截斷之間發生的最大數量的事務時 事務日誌的大小是穩定的 事務日誌截斷由檢查點或者事務日誌備份觸發 然而 在某些情況下 事務日誌可能會變得非常大 以致用盡空間或變滿 通常 在事務日誌文件占盡可用磁碟空間且不能再擴展時 您將收到如下錯誤消息 Error: Severity: State: The log file for database % *ls is full 除了出現此錯誤消息之外 SQL Server 還可能因為缺少事務日誌擴展空間而將資料庫標記為 SUSPECT 有關如何從此情形中恢復的其他信息 請參見 SQL Server 聯機幫助中的 磁碟空間不足 主題 另外 事務日誌擴展可能導致下列情形 · 非常大的事務日誌文件 · 事務可能會失敗並可能開始回滾 · 事務可能會用很長時間才能完成 · 可能發生性能問題 · 可能發生阻塞現象 原因 事務日誌擴展可能由於以下原因或情形而發生 · 未提交的事務· 非常大的事務· 操作 DBCC DBREINDEX 和 CREATE INDEX· 在從事務日誌備份還原時· 客戶端應用程序不處理所有結果· 查詢在事務日誌完成擴展之前超時 您收到假的 Log Full 錯誤消息· 未復制的事務 解決方法 日誌文件滿而造成SQL資料庫無法寫入文件時 可用兩種方法 一種方法 清空日誌 .打開查詢分析器 輸入命令DUMP TRANSACTION 資料庫名 WITH NO_LOG 再打開企業管理器 右鍵你要壓縮的資料庫 所有任務 收縮資料庫 收縮文件 選擇日誌文件 在收縮方式里選擇收縮至XXM 這里會給出一個允許收縮到的最小M數 直接輸入這個數 確定就可以了 另一種方法有一定的風險性 因為SQL SERVER的日誌文件不是即時寫入資料庫主文件的 如處理不當 會造成數據的損失 : 刪除LOG分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫 刪除LOG文件附加資料庫 企業管理器->伺服器->資料庫->右鍵->附加資料庫此法生成新的LOG 大小隻有 多K 注意 建議使用第一種方法 如果以後 不想要它變大 SQL 下使用 在資料庫上點右鍵 >屬性 >選項 >故障恢復 模型 選擇 簡單模型 或用SQL語句 alter database 資料庫名 set recovery simple另外 如上圖中資料庫屬性有兩個選項 與事務日誌的增長有關 Truncate log on checkpoint(此選項用於SQL SQL 中即故障恢復模型選擇為簡單模型)當執行CHECKPOINT 命令時如果事務日誌文件超過其大小的 % 則將其內容清除在開發資料庫時時常將此選項設置為True Auto shrink定期對資料庫進行檢查當資料庫文件或日誌文件的未用空間超過其大小的 %時 系統將會自動縮減文件使其未用空間等於 % 當文件大小沒有超過其建立時的初始大小時不會縮減文件縮減後的文件也必須大於或等於其初始大小對事務日誌文件的縮減只有在對其作備份時或將Truncate log on checkpoint 選項設為True 時才能進行 注意 一般立成建立的資料庫默認屬性已設好 但碰到意外情況使資料庫屬性被更改 請用戶清空日誌後 檢查資料庫的以上屬性 以防事務日誌再次充滿 lishixin/Article/program/SQLServer/201311/22123
5. 如何查看sql2008資料庫的事務日誌文件
在SQL Server 7.0和SQL Server2000中,可以用下面的命令查看: DBCC log ( {dbiddbname}, [, type={01234}] ) 參數: Dbid or dbname - 任一資料庫的ID或名字 type - 輸出結果的類型: 0 - 最少信息(operation, context, transaction id) 1 - 更多信息(plus flags, tags, row length) 2 - 非常詳細的信息(plus object name, index name,page id, slot id) 3 - 每種操作的全部信息 4 - 每種操作的全部信息加上該事務的16進制信息 默認 type = 0 要查看MSATER資料庫的事務日誌可以用以下命令: DBCC log (master) 釋放日誌空間 1.清空日誌 DUMP TRANSACTION 庫名 WITH NO_LOG 2.截斷事務日誌: BACKUP LOG 資料庫名 WITH NO_LOG 3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小 企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件 --選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 --選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 也可以用SQL語句來完成 --收縮資料庫 DBCC SHRINKDATABASE(客戶資料) --收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfiles DBCC SHRINKFILE(1) 4.為了最大化的縮小日誌文件(如果是sql 7.0,這步只能在查詢分析器中進行) a.分離資料庫: 企業管理器--伺服器--資料庫--右鍵--分離資料庫 b.在我的電腦中刪除LOG文件 c.附加資料庫: 企業管理器--伺服器--資料庫--右鍵--附加資料庫 此法將生成新的LOG,大小隻有500多K 或用代碼: 下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。 a.分離 E X E C sp_detach_db @dbname = 'pubs' b.刪除日誌文件 c.再附加 E X E C sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 5.為了以後能自動收縮,做如下設置: 企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮" --SQL語句設置方式: E X E C sp_dboption '資料庫名', 'autoshrink', 'TRUE' 6.如果想以後不讓它日誌增長得太大 企業管理器--伺服器--右鍵資料庫--屬性--事務日誌 --將文件增長限制為xM(x是你允許的最大數據文件大小) --SQL語句的設置方式: alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20) 特別注意: 請按步驟進行,未進行前面的步驟,請不要做後面的步驟 否則可能損壞資料庫. 一般不建議做第4,6兩步 第4步不安全,有可能損壞資料庫或丟失數據 第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復. 另外提供一種更簡單的方法,建議大家使用。 更簡單的方法: 1。右建資料庫屬性窗口--故障還原模型--設為簡單 2。右建資料庫所有任務--收縮資料庫 3。右建資料庫屬性窗口--故障還原模型--設為大容量日誌記錄
6. sql事務日誌採用什麼的方式
簡介
SQL Server中的事務日誌無疑是SQL Server中最重要的部分之一。因為SQL SERVER利用事務日誌來確保持久性(Durability)和事務回滾(Rollback)。從而還部分確保了事務的ACID屬性.在SQL Server崩潰時,DBA還可以通過事務日誌將數據恢復到指定的時間點。當SQL Server運轉良好時,多了解一些事務日誌的原理和概念顯得並不是那麼重要。但是,一旦SQL SERVER發生崩潰時,了解事務日誌的原理和概念對於快速做出正確的決策來恢復數據顯得尤為重要.本系列文章將會從事務日誌的概念,原理,SQL Server如何使用日誌來確保持久性屬性等方面來談SQL Server的事務日誌.
事務日誌的物理組織構架
事務日誌僅僅是記錄與其對應資料庫上的事務行為和對資料庫修改的日誌文件.在你新建資料庫時,伴隨著資料庫文件,會有一個默認以ldf為擴展名的事務日誌文件. 當然,一個資料庫也可以配有多個日誌文件,但是在邏輯上,他們可以看成一個.
在SQL Server對於日誌文件的管理,是將邏輯上一個ldf文件劃分成多個邏輯上的虛擬日誌文件(virtual log files,簡稱VLFs).以便於管理。用個類比方法來看,日誌文件(ldf)好比一趟火車,每一節車廂都是一個虛擬日誌文件(VLFs):
7. sql資料庫中包含哪幾種文件
根據作用不同,分為以下三種:
1、主數據文件。
用來存儲資料庫的數據和資料庫的啟動信息。
每個資料庫必須有且只有一個主數據文件,其擴展名為.mdf。
實際的主數據文件都有兩種名稱:操作系統文件名和邏輯文件名(在sql語句中會用到)
2、輔助數據文件
用來存儲資料庫的數據,可以擴展存儲空間。
一個資料庫可以有多個輔助數據文件。擴展名為.ndf
3、事務日誌文件
用來存放資料庫的事務日誌。凡是對資料庫進行的增、刪、改等操作,都會記錄在事務日誌文件中。
每個資料庫至少有一個事務日誌文件。擴展名為.ldf
8. 關於SQL Server事務日誌的問題匯總
用BACKUP LOG database WITH NO_LOG清除日誌把資料庫屬性中的故障還原模型改為 簡單 可以大大減慢日誌增長的速度 如果把還原模型調到簡單 這樣就不支持時間點還原了 但是日誌文件會很小 如果數據比較重要推薦還是把資料庫的還原模型調為完全用BACKUP LOG database WITH NO_LOG命名後 會截斷不活動日誌 不減小物理日誌文件的大小 但邏輯日誌會減小 收縮資料庫後會改銀仿把不活動虛擬日誌刪除來釋放空間 不會損壞數據 如果日誌被截斷並收縮資料庫後 就不能直接用最近的一個全庫備份做時間點還原 建議立即備份資料庫 以防萬一 sql server運行中 是否能刪除主資料庫事務日誌文件步驟如下 ( ) 分離資料庫企業管理器--資料庫--右擊你要刪除日誌的資料庫--所有任務--分離資料庫( ) 然後刪除日誌文件( ) 然後再附加資料庫企業管理器--資料庫--右擊資料庫--所有任務--附加資料庫這時候只附加 mdf就可以了 壓縮核纖SQL資料庫及日誌的詳細方法SQL Server 基礎教程 壓縮資料庫數據搏族庫在使用一段時間後 時常會出現因數據刪除而造成資料庫中空閑空間太多的情況 這時就需要減少分配給資料庫文件和事務日誌文件的磁碟空間 以免浪費磁碟空間 當資料庫中沒有數據時 可以修改資料庫文件屬性直接改變其佔用空間 但當資料庫中有數據時 這樣做會破壞資料庫中的數據 因此需要使用壓縮的方式來縮減資料庫空間 可以在資料庫屬性選項中選擇 Auto shrink 選項 讓系統自動壓縮資料庫 也可以用人工的方法來壓縮 人工壓縮資料庫有以下兩種方式 用Enterprise Manager 壓縮資料庫在Enterprise Manager 中在所要壓縮的資料庫上單擊右鍵 從快捷菜單中的 所有任務(All Tasks) 中選擇 ShrinkDatabase(壓縮資料庫) 選項 就會出現如圖 所示的對話框 可以在圖 所示的對話框中選擇資料庫的壓縮方式 也可以選擇使用壓縮計劃或壓縮單個文件單擊圖 中的 Files 按鈕 會出現如圖 所示的壓縮資料庫文件對話框 可以針對每個資料庫文件進行不同的壓縮設置 單擊圖 中的 Change 按鈕 會出現如圖 所示的壓縮計劃編輯對話框 可以指定壓縮計劃的執行方式 單擊圖 中的 Change 按鈕 會出現如圖 所示的循環工作計劃編輯對話框 可以編輯計劃執行的周期或時間點 設置完成後單擊 OK 按鈕就開始壓縮資料庫 在壓縮結束後會顯示一個壓縮情況信息框 用Transact SQL 命令壓縮資料庫可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令來壓縮資料庫 其中DBCC SHRINKDATABASE 命令對資料庫進行壓縮 DBCC SHRINKFILE 命令對資料庫中指定的文件進行壓縮 ( ) DBCC SHRINKDATABASEDBCC SHRINKDATABASE 命令語法如下 DBCC SHRINKDATABASE (database_name [ target_percent][ {NOTRUNCATE | TRUNCATEONLY}] )各參數說明如下 ·target_percent 指定將資料庫壓縮後 未使用的空間占資料庫大小的百分之幾 如果指定的百分比過大 超過了壓縮前未使用空間所佔的比例 則資料庫不會被壓縮 並且壓縮後的資料庫不能比資料庫初始設定的容量小 ·NOTRUECATE將資料庫縮減後剩餘的空間保留在資料庫 中不返還給操作系統 如果不選擇此選項 則剩餘的空間返還給操作系統 ·TRUNCATEONLY將資料庫縮減後剩餘的空間返還給操作系統 使用此命令時SQLServer 將文件縮減到最後一個文件分配 區域但不移動任何數據文件 選擇此項後 target_percent 選項就無效了 例 壓縮資料庫mytest 的未使用空間為資料庫大小的 % dbcc shrinkdatabase (mytest )運行結果如下 DBCC execution pleted If DBCC printed errormessages contact your system administrator ( ) DBCC SHRINKFILEDBCC SHRINKFILE 命令壓縮當前資料庫中的文件 其語法如下 DBCC SHRINKFILE ( {file_name | file_id }{ [ target_size] |[ {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )各參數說明如下 ·file_id指定要壓縮的文件的鑒別號(Identification number 即ID) 文件的ID 號可以通過 FILE_ID()函數或如本章前面所講述的Sp_helpdb 系統存儲過程來得到 ·target_size指定文件壓縮後的大小 以MB 為單位 如果不指定此選項 SQLServer 就會盡最大可能地縮減文件 ·EMPTYFILE指明此文件不再使用 將移動所有在此文件中的數據到同一文件組中的其它文件中去 執行帶此參數的命令後 此文件就可以用ALTER DATABASE 命令來刪除了 其餘參數NOTRUNCATE 和TRUNCATEONLY 與DBCC SHRINKDATABASE命令中的含義相同 例 : 壓縮資料庫mydb 中的資料庫文件mydb_data 的大小到 MB use mydb dbcc shrinkfile (mydb_data )企業管理器裡面的方法 打開企業管理器 打開要處理的資料庫 點擊最上面菜單>工具>SQL查詢分析器 打開SQL查詢分析器 在輸入窗口裡面輸入:Code:DUMP TRANSACTION [資料庫名] WITHNO_LOGBACKUP LOG [資料庫名] WITH NO_LOGDBCC SHRINKDATABASE([資料庫名])點擊綠色的小三角(或按F )執行查詢 等狀態欄提示處理完成即可!程序裡面的方法 壓縮資料庫日誌 清空日誌exec( DUMP TRANSACTION [ +@dbname+ ] WITHNO_LOG ) 截斷事務日誌 exec( BACKUP LOG [ +@dbname+ ] WITH NO_LOG ) 收縮資料庫文件(如果不壓縮 資料庫的文件不會減小exec( DBCC SHRINKDATABASE([ +@dbname+ ]) ) 減小日誌的方法 一 用如下步做了 DUMPTRANSACTION庫名WITHno_log dbcc shrinkfile(logfilename) 收縮資料庫 設定自動收縮 二 分離資料庫 刪除日誌文件 再附加 OK!右擊資料庫--所有任務--分離or 附加三 backup log庫名WITHno_log dbcc shrinkfile(logfilename) 收縮資料庫 設定自動收縮 lishixin/Article/program/SQLServer/201311/22149
9. sql server運行中,是否能刪除主資料庫事務日誌文件
在SQL Server運行中,只能「清空」和「收縮」事務日誌文件,不能刪除它。
相關知識點延伸:
1、在當前的SQL Server中,事務日誌文件在資料庫運行中必需存在。如果是事務文件過大,想減少磁碟中用的話,可以清空事務日誌,並收縮事務日誌文件。
2、想刪除資料庫事務日誌文件,只能先「分離」資料庫,不過,在附加時如果資料庫文件的事務日誌文件缺失,將會在附加時重建。
3、相關操作:
a.清空日誌
DUMP TRANSACTION 庫名 WITH NO_LOG
b.截斷事務日誌:
BACKUP LOG 資料庫名 WITH NO_LOG
c.收縮資料庫文件(如果不收縮,資料庫的文件不會減小
企業管理器->右鍵你要壓縮的資料庫->所有任務->收縮資料庫->收縮文件
填入收縮數值,後確定。
10. SQL Server 資料庫設計
SQL Server 系統資料庫在安裝軟體時自動創建,用於協助系統共同完成對資料庫的操作;也是資料庫運行的基礎;
1,master資料庫
是SQL Server 2012的核心資料庫,如果損壞則資料庫軟體無法運行,主要包含如下主要信息:
1)所有用戶登陸名和用戶ID所屬角色
2)資料庫存儲路徑
3)伺服器中資料庫的名稱和相關信息
4)系統配置設置, SQL Server 初始化信息
2,model資料庫
在創建資料庫時,總是以一套預定義的標准為模板進行創建的。以model資料庫為模板來創建其他資料庫。且model資料庫是tempdb資料庫的基礎。
3,tempdb資料庫
它是一個臨時資料庫,用來存儲用戶建立的臨時表和臨時存儲過程,存儲用戶定義的全局變數值。它存在於SQL Server會話期間,會話結束,則關閉tempdb資料庫,且資料庫丟失。
4,msdb資料庫
用於代理計劃警報和作業
SQL Server 資料庫存儲文件
資料庫文件是由數據文件和事務日誌文件組成。
1,資料庫文件指資料庫中用來存儲資料庫數據和資料庫對象的文件,一個資料庫只能由一個主資料庫文件,擴展名為 .mdf
2, 次資料庫文件包含除主資料庫文件外的所有數據文件,一個資料庫可以沒有次資料庫文件,也可以由多個,擴展名為 .ndf
3, 日誌文件由一系列日誌記錄組成,它記錄了存儲資料庫的更新情況等事務日誌信息,用戶對資料庫進行的插入,刪除,更新都會記錄在日誌文件中。資料庫發生損壞時可根據日誌文件分析出錯原因,或者數據丟失時,使用事務日誌恢復資料庫。每個資料庫至少要有一個日誌文件。
SQL Server 資料庫創建,使用T-SQL語言創建:
使用T-SQL語言刪除資料庫:
SQL Server 資料庫遷移:
方法1:「分離/附加」資料庫,即把資料庫文件(.MDF)和對應的日誌文件(.LDF)拷貝到其它磁碟上作備份,然後把這兩個文件再拷貝到任何需要這個資料庫的系統之中。
分離資料庫就是將某個資料庫從SQL Server資料庫列表中刪除,使其不再被SQL Server管理和使用,但該資料庫的文件(.MDF)和對應的日誌文件(.LDF)完好無損。分離成功後,就可以把該資料庫文件(.MDF)和對應的日誌文件(.LDF)拷貝到其它磁碟中作為備份保存。
分離之前,設置資料庫為單個用戶,並記住該資料庫所在路徑。
「任務」—「分離」
然後分離資料庫頁面選中「更新統計信息」復選框。若「消息」列中沒有顯示存在活動連接,則「狀態」列顯示為「就緒」;否則顯示「未就緒」,此時必須勾選「刪除連接」列的復選框。分離後資源管理器中資料庫消失
將需要附加的資料庫文件和日誌文件拷貝到某個已經創建好的文件夾中。
右擊資料庫對象,並在快捷菜單中選擇「附加」命令,打開「附加資料庫」窗口。
添加—選擇需要附件的資料庫的.MDF文件。「附件為」資料庫名稱可修改。