❶ 如何壓縮sql Server 2005指定資料庫文件和日誌的大小
下面有兩個SQL語句可以達到在SQL
Server
2005/2008壓縮指定資料庫文件和日誌的大小的效果:
1、DBCC
SHRINKDATABASE
(Transact-SQL)
收縮指定資料庫中的數據文件和日誌文件的大小。
語法
DBCC
SHRINKDATABASE
(
'database_name'
|
database_id
|
0
[
,target_percent
]
[
,
{
NOTRUNCATE
|
TRUNCATEONLY
}
]
)
[
WITH
NO_INFOMSGS
]
參數
'database_name'
|
database_id
|
0
要收縮的資料庫的名稱或
ID。如果指定
0,則使用當前資料庫。
target_percent
資料庫收縮後的資料庫文件中所需的剩餘可用空間百分比。
NOTRUNCATE
通過將已分配的頁從文件末尾移動到文件前面的未分配頁來壓縮數據文件中的數據。target_percent
是可選參數。
文件末尾的可用空間不會返回給操作系統,文件的物理大小也不會更改。因此,指定
NOTRUNCATE
時,資料庫看起來未收縮。
NOTRUNCATE
只適用於數據文件。日誌文件不受影響。
TRUNCATEONLY
將文件末尾的所有可用空間釋放給操作系統,但不在文件內部執行任何頁移動。數據文件只收縮到最近分配的區。如果與
TRUNCATEONLY
一起指定,將忽略
target_percent。
TRUNCATEONLY
只適用於數據文件。日誌文件不受影響。
❷ SQL Server 壓縮日誌及資料庫文件大小
請按步驟進行 未進行前面的步驟時 請不要做後面的步驟 以免損壞你的資料庫
一般不建議做第 兩步 第 步不安全 有可能損壞資料庫或丟失數據 第 步如果日誌達到上限 則以後的資料庫處理會失敗 在清理日誌後才能恢復
清空日誌
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
❸ SQL Server 快速清除日誌文件的方法
SQL Server 2000快速清除日誌文件的方法
SQL Server 2000 資料庫日誌太大!
如何清理SQL Server 2000的日誌呢?
如何壓縮SQL Server 2000的日誌呢?
如何讓SQL Server 2000的日誌變小呢?
據我所知,辦法有很多很多,總結起來算有3類吧:
1、點幾下滑鼠,用SQL Server 2000管理工具中的企業管理器即可實現,待會兒詳解;
2、用SQL語句,在SQL Server 2000管理工具中的查詢分析器可以實現,此法高級人士喜歡用;
3、用第三方工具實現,原理嘛,我覺得應該是用SQL語句來實現的,這方法好,簡單易用,網上不乏精品工具,待會兒介紹一款。
一、現在我們詳細描述一下如何用企業管理器清理SQL 2000的日誌:
1、打開企業管理器,右擊要處理的資料庫--》屬性--》選項--》故障還原,選「簡單」--》確定。如圖:
2、右擊要處理的資料庫--》所有任務--》收縮資料庫--》什麼也不動,默認第一個是0%,其它兩個未選中,點確定--》如果您以前資料庫日誌文件大於1M那麼現在再看看,是不是只有1M了呢。
3、操作完後--》按第一步,把「故障還原」,選「完全」,傳說中SQL Server 2000 有自動還原功能,說是如果非法關機等因素造成數據丟失可以自動回滾,另外可以用程序來實現操作回滾,所以最好是讓故障還原是「完全」。
4、這樣便實現了「SQL Server 2000 資料庫日誌太大!如何管理,清除,變小,壓縮它」中的清除,變小,壓縮了,至於怎麼管理,自己看著辦吧,我一般只會用到這些,再有深入研究的話我會寫上來的`。
二、現在我們介紹用第三方SQL Server 日誌清理工具來清理日誌,簡單易用高效,推薦用這個方法。
我喜歡用 SqlServer日誌清除專家 v3.5 來實現這個功能。界面如下:
資料庫那裡一般會將整個伺服器的資料庫名都列舉出來,需要選擇為自己賬戶能管理到的那個,我這里DB_iszip賬戶能管理的是 iszip ,選擇好之後,點「清除日誌」按鈕,然後SQL Server 2000的日誌就被清理好了,此時你去伺服器看你資料庫日誌佔用空間就只有1M了。
;❹ sqlserver如何壓縮數據文件空間
在程序組中,展開「Sqlserver」運行「查詢分析器」。輸入用戶名、密碼。
❺ 怎樣收縮SqlServer2005的日誌文件
1.先分離資料庫,然後刪除日誌文件,再附件資料庫。 2.收縮文件,選擇日誌文件,設置將文件收縮到0M,試了一下,只能從65G收縮到55G,也就是只釋放了未使用的空間。方法 二、 1.選中資料庫,右鍵屬性/選項,把恢復模式從「完整」改為「簡單」。 2.選中資料庫,右鍵任務/收縮文件,選擇日誌文件,設置將文件收縮為0M,確定。 3.再將恢復模式從「簡單」-「完整」即可。 -------------------------------------------------- 方案1: 所以可以執行以下sql語句: DUMP TRANSACTION 你的資料庫名 WITH NO_LOG BACKUP LOG 你的資料庫名 WITH NO_LOG DBCC SHRINKDATABASE(你的資料庫名) EXEC sp_dboption '你的資料庫名', 'autoshrink', 'TRUE'方案2: 在資料庫的屬性里-選擇選項-恢復模式改為「簡單」-勾選「自動收縮」。這樣就可以自動進行資料庫的收縮,推薦採用這種自動方式進行 -------------------------------------------------- SQLSERVER收縮事務日誌 一、由於系統中錄入及刪除數據頻繁,故事務日誌很大。 SQLSERVER中講: BACKUP LOG 資料庫名 WITH NO_LOG|TRUNCATE_ONLY可以截斷事務日誌。 但我在資料庫中進行上述操作後,事務日誌還是沒有改變。 二、只有進行「資料庫收縮」操作。 在此復選框中打勾 選中上圖所示選項,即可點「確定「,執行收縮事務日誌的操作,硬碟經過一段時間的工作後,SQLSERVER終於提示收縮成功。事務日誌文件被恢復到原始尺寸。 綜上所述,第一步只是將非活動的事務日誌截斷,並沒有收縮資料庫,只有進行第二項操作後,資料庫才進行事務日誌的清理工作,將截斷的非活動事務刪除,並將事務日誌文件收縮到適當尺寸。 在使用 SQL Server 時,資料庫里的日誌文件會越來越大,需要把它刪除。 我先把這個資料庫分離,在資料庫上點右鍵 - 所有任務 - 分離資料庫,分離之後,就可以把 Log 文件刪除,同時也可以把數據進行備份。 這個方法只需幾分鍾的時間,但在這幾分鍾里,就不能訪問這個資料庫了,我覺得只適用於小型的應用,對於大型的系統就要找其它方法了
❻ 如何清除SQLserver 日誌
如何清除資料庫日誌
1
打開查詢分析器,輸入命令DUMP TRANSACTION 資料庫名 WITH NO_LOG
2
再打開企業管理器–右鍵你要壓縮的資料庫–所有任務–收縮資料庫–收縮文件–選擇日誌文件–在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。
END
清除Log有兩種方法
自動清除法:
開放資料庫選項 Trunc Log on Chkpt,使資料庫系統每隔一段時間自動清除Log。此方法的優點是無須人工干預,由SQLServer自動執行,並且一般不會出現Log溢滿的情況;缺點是只清除Log而不做備份。
手動清除法
執行命令「mp transaction」來清除Log。以下兩條命令都可以清除日誌:
mp transaction with truncate_onlymp transaction with no_log
通常刪除事務日誌中不活躍的部分可使用「mp transaction with trancate_only」命令,這條命令寫進事務日誌時,還要做必要的並發性檢查。SYBASE提供「mp transaction with no_log」來處理某些非常緊迫的情況,使用這條命令有很大的危險性,SQLServer會彈出一條警告信息。為了盡量確保資料庫的一致性,你應將它 作為「最後一招」
❼ SqlServer日誌文件過大問題的解決方法
直接用SQL的收縮資料庫功能,就可以收縮日誌了。
具體操作:企業管理器-具體資料庫-右鍵-所有任務-收縮資料庫
❽ Sqlserver資料庫日誌太大如何快速刪除
2.截斷事務日誌: BACKUP LOG 資料庫名WITH NO_LOG 3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小 企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件 --選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 --選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 也可以用SQL語句來完成 --收縮資料庫 DBCC SHRINKDATABASE(客戶資料) --收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfiles DBCC SHRINKFILE(1) 代碼如下復制代碼backup, log, 模式 -- 第一步:清空日誌 DUMP TRANSACTION [YZGA] WITH NO_LOG -- 第二步:截斷事務日誌 BACKUP LOG [YZGA] WITH NO_LOG -- 第三步:收縮資料庫 盡管可用該選項手動截斷事務日誌,但是我們極力建議您不要這樣做,因為這會將日誌鏈斷開。在下一次完整備份或完整差異備份之前,將無法為資料庫提供媒體故障保護。只在非常特殊的情況下才手動截斷日誌,並立即創建數據備份。 刪除日誌方法二1、進入企業管理器,選中資料庫,比如it,所有任務->分離資料庫。2、如果資料庫正在連接使用,要先點清除,才可以選確定。3、到資料庫文件的存放目錄,將it_log.LDF文件刪除,不放心可以先拷到別的地方。4、進入企業管理器,資料庫->所有任務->附加資料庫。5、選擇it_Data.MDF,這個時候你會看見日誌文件這項是一個紅叉,不要緊點確定。6、此時資料庫就會提示你該資料庫無日誌是否創建一個新的,確定就是了。
❾ 如何清除SQLserver 日誌
方法一:
1)打開查詢分析器,輸入命令 BACKUP LOG databasename WITH NO_LOG ;
2)打開企業管理器-->右鍵要壓縮的資料庫-->所有任務-->收縮資料庫-->收縮文件-->選擇日誌文件-->在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。方法二:
一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大
1)設置資料庫模式為簡單模式:打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->選擇你的伺服器-->打開資料庫目錄-->選擇你的資料庫名稱-->右擊選擇屬性-->選項-->在故障還原的模式中選擇「簡單」,然後按確定「保存 」
2)在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的默認設置不用修改,直接點確定
3)收縮資料庫完成後,建議將您的資料庫屬性重新設置為標准模式,操作方法同第1點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據 。
❿ sql server 日誌文件ldf的壓縮
不要壓縮。直接轉移日誌文件。將來要用,再全部轉回來,和帳套的時間不必匹配的。