請按步驟進行 未進行前面的步驟時 請不要做後面的步驟 以免損壞你的資料庫
一般不建議做第 兩步 第 步不安全 有可能損壞資料庫或丟失數據 第 步如果日誌達到上限 則以後的資料庫處理會失敗 在清理日誌後才能恢復
清空日誌
DUMP TRANSACTION 庫名 WITH NO_LOG
截斷事務日誌
BACKUP LOG 資料庫名 WITH NO_LOG
收縮資料庫文件(如果不壓縮 資料庫的文件不會減小
企業管理器 右鍵你要壓縮的資料庫 所有任務 收縮資料庫 收縮文件
選擇日誌文件 在收縮方式里選擇收縮至XXM 這里會給出一個允許收縮到的最小M數 直接輸入這個數 確定就可以了
選擇數據文件 在收縮方式里選擇收縮至XXM 這里會給出一個允許收縮到的最小M數 直接輸入這個數 確定就可以了
也可以用SQL語句來完成
收縮資料庫
DBCC SHRINKDATABASE(客戶資料)
收縮指定數據文件 是文件號 可以通過這個語句查詢到:
select * from sysfiles
DBCC SHRINKFILE( )
為了最大化的縮小日誌文件(如果是sql 這步只能在查詢分析器中進行)
a 分離資料庫:
企業管理器 伺服器 資料庫 右鍵 分離資料庫
b 在我的電腦中刪除LOG文件
c 附加資料庫:
企業管理器 伺服器 資料庫 右鍵 附加資料庫
此法將生成新的LOG 大小隻有 多K
或用代碼
下面的示例分離 pubs 然後將 pubs 中的一個文件附加到當前伺服器
a 分離
EXEC sp_detach_db @dbname = pubs
b 刪除日誌文件
c 再附加
EXEC sp_attach_single_file_db @dbname = pubs
@physname = c:/Program Files/Microsoft
SQL Server/MSSQL/Data/pubs mdf
為了以後能自動收縮 做如下設置
企業管理器 伺服器 右鍵資料庫 屬性 選項 選擇 自動收縮
SQL語句設置方式:
EXEC sp_dboption 資料庫名
autoshrink TRUE
如果想以後不讓它日誌增長得太大
企業管理器 伺服器 右鍵資料庫 屬性 事務日誌
將文件增長限制為xM(x是你允許的最大數據文件大小)
SQL語句的設置方式:
lishixin/Article/program/SQLServer/201311/22266
⑵ SQL2005資料庫日誌文件LOG太大怎麼辦
Sqlserver2005下,日誌文件太大,使其減小的方法。
在打開SQL Server Management Studio並正常聯接SQL伺服器後,運行下面的三行:
( 注意將dbName代換為你的資料庫名。)
backup log dbName with NO_LOG
backup log dbName with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbName)
注意,在SQL 2008之後的版本以上方法無效,需將資料庫設為簡單模式後再進行收縮。
此外,在SQL Server Management Studio中,以視窗方法操作也可以,操作步驟:
第一步:截斷資料庫日誌,運行代碼:
BACKUP LOG 要收縮的資料庫名 WITH NO_LOG
第二步:收縮資料庫日誌文件:
1. 選擇要收縮的資料庫,點右鍵選擇任務-收縮-文件
2. 在彈出的頁面中,選擇文件類型為日誌
3.點確定。
⑶ SQL Server 2000資料庫的事務日誌文件過大,如何將其縮小
守得雲開見月明,花了一個上午結合前輩的博客,終於弄好了sqlserver2008的資料庫日誌收縮到1MB,分享給大家
# 方法步驟
1、執帶裂段行SQL語句改成「簡單模式」
2、收縮資料庫
3、執行SQL語句改回「完全模式」
## 第一步:執行SQL語句改成「簡單模式」
USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要進行收縮的資料庫名) SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE SlowXWebDB (改成你需要進行收縮的資料庫名) SET RECOVERY SIMPLE --改成簡單模式
GO
## 第二步:進行資料庫操作
相關界面截圖和操作
假定:
資料庫名:SlowXWebDB
日誌文件名:SlowXWebDB_Log
## 第三步:執行SQL語句改成「完全模式」
USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要進行收縮的資料庫名)SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE datebaseName(改成你需要進行源高收縮的資料庫名)SET RECOVERY FULL --還原為完全模式
GO
==最後不要忘記實測下資料庫是否能夠正常使用==
網頁鏈接
⑷ SQL SERVER 2000資料庫日誌文件過大如何解決
收縮資料庫
一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大
1、設置資料庫模式為簡單模式:打開SQL企業管理器,在控制台根目錄中依次點開Microsoft
SQL
Server-->SQL
Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄-->選擇你的資料庫名稱(如論壇資料庫Forum)-->然後點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇「簡單」,然後按確定保存
2、在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的默認設置不用調整,直接點確定
3、收縮資料庫完成後,建議將您的資料庫屬性重新設置為標准模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據
⑸ sql server 資料庫日誌過大會影響運行速度嗎
sql server資料庫日誌文件過大不會影響運行速度,但是會導致數據無法寫入。
SQL Server資料庫中,當日誌文件過大或者日誌已滿時就會影響到資料庫的正常工作。而日誌文件已滿常常會造成SQL Server資料庫無法寫入的問題。
解決方法:
1、右鍵資料庫→屬性→選項→故障還原模型→設為簡單→確定;
2、右鍵資料庫→所有任務→收縮資料庫→確定;
3、右鍵資料庫→屬性→選項→故障還原模型→設為大容量日誌記錄→確定。
⑹ SQL資料庫文件的最大容量是多少(資料庫的最大容量受什麼限制)
技術規格
--------------系統技術規格---------------
--每個伺服器最多可以允許16個SQLSERVER實例
--每個實例可擁有2147483467個鎖
--------------資料庫技術規格--------------
--SQLSERVER的資料庫大小1048516TB
--每個資料庫可擁有的文件組數32767
--每個資料庫可擁有的文件組數256
--文件大小(數據文件)32TB---
--文件大小(日誌文件)32TB---
--資料庫中的對象數2147483647
--標識符的長度128
--------------表技術規格-------------------
--每個資料庫中可擁有的表數受限於資料庫中的對象數
--每個表可擁有的行數受限於可用的存儲容量
--每個表的主鍵約束數1
--每個表的外鍵約束數253
--每個表的引用數253
--每個表的觸發器數受限於資料庫中的對象數
--每個表的簇索引數1
--每個表的非簇索引數249
--每個表的唯一約束249非簇的,1成簇的
--------------列技術規格-------------------
--每個索引可包含的列數16
--每個主鍵可包含的列數16
--每個外鍵可包含的列數16
--每個表的列數1024
--索引鍵的大小900位元組喊型培
--每個character或binary列的位元組數8000
--每個text,ntext或image列的位元組數2GB-2
--每行的位元組數8060
--每個索引的字租櫻節數900
--每個主鍵的位元組數900
--每個外鍵的位元組數900
--------------SQL技術規格-------------------
--批處理大小65536乘以網路包大小
--每個SELECT語句可鄭唯處理的表數256
--存儲過程源文件的位元組數小於批處理大小或250MB
--每個存儲過程的參數數目1024
--嵌套的子查詢數32
--嵌套的觸發器層數32
--每個SELECT語句可處理的列數4096
--每個INSERT語句可處理的列數1024
⑺ sql server 資料庫日誌文件過大是什麼原因
您好:
通常是INSERT,UPDATE,DELETE語句使用過多導致。
請定期備份日誌,清理日誌。
確保資料庫的日誌文件大小在一個穩定的范圍里。
⑻ sql日誌文件太大會影響性能嗎
你的資料庫的數據量大嗎?如果大,肯定的。 你的數據操作很頻繁嗎?如果頻繁,一定的。 如果這兩項都不符合,那沒有道理。