清楚資料庫日誌的方法

来源:http://www.cnblogs.com/cuozhixu/archive/2017/03/25/6615934.html
-Advertisement-
Play Games

轉載自http://www.jb51.net/article/30811.htm 謝謝! 方法一: 1、打開查詢分析器,輸入命令 BACKUP LOG database_name WITH NO_LOG 2、再打開企業管理器--右鍵要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件 ...


轉載自http://www.jb51.net/article/30811.htm  謝謝!

 

方法一:
1、打開查詢分析器,輸入命令
BACKUP LOG database_name WITH NO_LOG
2、再打開企業管理器--右鍵要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至xxm,這裡會給出一個允許收縮到的最小m數,直接輸入這個數,確定就可以了。

方法二:
設置檢查點,自動截斷日誌

  一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大
1、設置資料庫模式為簡單模式:打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄-->選擇你的資料庫名稱(如用戶資料庫cwbase1)-->然後點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇“簡單”,然後按確定保存
2、在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的預設設置不用調整,直接點確定
3、收縮資料庫完成後,建議將您的資料庫屬性重新設置為標準模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢複數據庫的重要依據

方法三:通過SQL收縮日誌

把代碼複製到查詢分析器里,然後修改其中的3個參數(資料庫名,日誌文件名,和目標日誌文件的大小),運行即可

SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT

USE tablename -- 要操作的資料庫名
SELECT @LogicalFileName = 'tablename_log', -- 日誌文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 1 -- 你想設定的日誌文件的大小(M)

-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)

DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'

DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF

方法四:刪除日誌文件。

此方法有一定的風險性,因為sql server的日誌文件不是即時寫入資料庫主文件的,如處理不當,會造成數據的損失。1、操作前請斷開所有資料庫連接。
2、分離資料庫
分離資料庫:企業管理器->伺服器->資料庫->cwbase1->右鍵->分離資料庫
分離後,cwbase1資料庫被刪除,但保留了數據文件和日誌文件
3、刪除log物理文件
刪除LOG物理文件,然後附加資料庫: 企業管理器->伺服器->資料庫->右鍵->附加資料庫
此法生成新的log,大小隻有500多k。

註意:建議使用第一種方法。操作前請確保所有操作員都已經推出系統,斷開資料庫的連接。

以上操作前,請務必做好數據備份!

1.sql server 2005 清除日誌語句

dump transaction 資料庫名稱 with no_log
backup log 資料庫名稱 with no_log
dbcc shrinkdatabase(資料庫名稱)


2.sql server 2008 清除日誌語句

sp_dboption 資料庫名稱, "trunc. log on chkpt.", true
checkpoint
sp_dboption 資料庫名稱, "autoshrink", true

清除SQLSERVER資料庫日誌文件的方法:

1、先將這個資料庫卸載:
EXEC sp_detach_db 'database_name', 'true'
然後將該資料庫所對應的Log文件刪掉;
最後,再將這個資料庫註冊到系統裡面:

EXEC sp_attach_db @dbname = N'database_name',
@filename1 = N'e:\mssql7\data\database_name_data.mdf'

2、資料庫上點右鍵-所有任務-收縮資料庫-選擇收縮文件為LOG 。

3、清除SQLSERVER資料庫日誌的方法:

*******下麵是轉發的郵件*****

The shrinking of log files is not immediate in SQL Server 7.0. The
shrinking of log files does not occur until the active portion of the
log moves. As updates are performed on the database, the shrink
operation occurs at checkpoints or transaction log backups. Each log
file is marked with the target_percent for the shrink operation. Each
subsequent log backup or log truncation attempts to shrink the file to
bring its size as close to the target_percent as possible. Because a log
file can be shrunk only to a virtual log file boundary, it may not be
possible to shrink a log file to a size smaller than the size of a
virtual log file even if it is not being used. Please refer to SQL Book
Online for the details.

RESOLUTION

Below script will help to shrink the log file immediately, pls keep it
running for 3~4 minutes and then stop it manually.

\* Run "select fileid, name,filename from ..sysfiles" to get
the fileid which you want to shrink *\

use
go
dbcc shrinkfile(fileid,notruncate)
dbcc shrinkfile(fileid,truncateonly)
create table t1 (char1 char(4000))
go
declare @i int
select @i = 0
while (1 = 1)
begin
while (@i < 100)
begin
insert into t1 values ('a') select @i = @i +1
end
truncate table t1
backup log with truncate_only
end
go

*****轉發內容結束*****

SQLServer資料庫日誌清理 清除sqlserver2005日誌

有時候當系統運行時間比較長的時候,我們把備份的資料庫還原的時候發現,資料庫中數據文件和日誌文件變的好大,特別是日誌文件。現在給大家介紹如何清理SQLServer資料庫日誌;有兩種方法如下:

方法一:手動清除sqlserver2005日誌

1.右鍵在清除日誌的資料庫,如“TestDB”,點擊[新建查詢(Q)]
2.輸入以下SQL語句,其中“TestDB”是資料庫名稱
DUMP TRANSACTION TestDB WITH NO_LOG
3.執行該SQL,成功後繼續以下操作
4.右鍵該資料庫節點,點擊[任務(T)] -> [收縮(S)] -> [文件(F)]
5.在彈出的“收縮文件”對話框中,將“文件類型(T)”選為“日誌”,將“收縮操作”選中“在釋放未使用的空間前重新組織頁(O)”
6.在“將文件收縮到(K)”文本框中輸入後面提示的最小大小的數值,點擊[確定]即可。

方法二:用工具軟體SqlServer日誌清除專家3.0,可對Sql Server 6.5到Sql Server 2005的各種版本的資料庫日誌的清除;其使用方法非常簡單;SqlServer 日誌清除專家綠色版 V3.5下載地址:

下載地址 http://www.jb51.net/softs/21840.html

方法一操作起來相對麻煩一些,可是可以定製日誌的大小,清理日誌後其相應的資料庫數據文件在也會變小,數據也不會丟失;方法二操作比較方便,可以把資料庫中的日誌文件清理到1M大小; 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉載請註明出處:http://www.cnblogs.com/cnwutianhao/p/6611252.html 引言:項目開發有時會使用上傳文件到伺服器,再從伺服器取數據顯示到本地這一過程;或者輸入一段文字,再把文字顯示出來。這個過程都用到了IO流。 IO流分為字元流(Reader\Writer ...
  • 最近公司開發一個項目,要求app能夠發送簡訊並獲取送達報告。這本不是一個什麼難題,實現這一功能的代碼一搜一大把,那麼這麼簡單的一個問題,為什麼我要在這裡提出來呢?那是因為我在寫代碼的時候掉入了一個坑,而且這很可能發生在很多和我一樣粗心的朋友身上。先給大家分享一下當初讓我掉進坑裡的代碼: 咋一看,好像 ...
  • 本文出處:http://www.cnblogs.com/wy123/p/6617700.html SQLServer中沒有函數索引,在某些場景下查詢的時候要根據欄位的某一部分做查詢或者經過某種計算之後做查詢,如果使用函數或者其他方式作用在欄位上之後,就會限制到索引的使用,不過我們可以間接地實現類似於 ...
  • org.springframework.beans.factory.BeanDefinitionStoreException異常 ...
  • 運行Pig時出現這個錯誤: 解決的辦法是把${HADOOP_HOME}/share/hadoop/yarn/lib下的jline-2.1.1.jar刪除掉,再重啟Hadoop就可以了。 ...
  • 多表查詢 1. 分類: * 合併結果集(瞭解) * 連接查詢 * 子查詢合併結果集 * 要求被合併的表中,列的類型和列數相同 * UNION,去除重覆行 * UNION ALL,不去除重覆行 連接查詢 1. 分類 * 內連接 * 外連接 > 左外連接 > 右外連接 > 全外連接(MySQL不支持) ...
  • 1.刪除註冊表:在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到 PendingFileRenameOperations 項目,並刪除它。 ...
  • mysql 常用指令及中文亂碼解決 Mysql 系統管理指令 登陸本地 Mysql mysql -u username -p # 回車輸入密碼 或者 mysql -u username -p passswd; 登陸遠程 Mysql mysql -h address -u username -p # ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...