㈠ 批處理壓縮 log文件
@echo off
set path=%path%;c:\program files\winrar
set d=%date:~,10%
for /f "tokens=*" %%i in ('dir/s/b/a-d *.log') do findstr %d% "%%i"&&rar a %d%.rar "%%i"
㈡ 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 只適用於數據文件。日誌文件不受影響。
WITH NO_INFOMSGS 取消嚴重級別從 0 到 10 的所有信息性消息。
結果集
列名 說明
DbId 資料庫引擎試圖收縮的文件的資料庫標識號。
FileId 資料庫引擎嘗試收縮的文件的文件標識號。
CurrentSize 文件當前佔用的 8 KB 頁數。
MinimumSize 文件最低可以佔用的 8 KB 頁數。這與文件的最小大小或最初創建時的大小相對應。
UsedPages 文件當前使用的 8 KB 頁數。
EstimatedPages 資料庫引擎估計文件能夠收縮到的 8 KB 頁數。
備注
若要收縮特定資料庫的所有數據和日誌文件,請執行 DBCC SHRINKDATABASE 命令。若要一次收縮一個特定資料庫中的一個數據或日誌文件,請執行 DBCC SHRINKFILE 命令。
若要查看資料庫中當前的可用(未分配)空間量,請運行 sp_spaceused。
可在進程中的任一點停止 DBCC SHRINKDATABASE 操作,任何已完成的工作都將保留。
收縮後的資料庫不能小於資料庫的最小大小。最小大小是在資料庫最初創建時指定的大小,或是使用文件大小更改操作(如 DBCC SHIRNKFILE 或 ALTER DATABASE)顯式設置的最後大小。例如,如果資料庫最初創建時的大小為 10 MB,後來增長到 100 MB,則該資料庫最小隻能收縮到 10 MB,即使已經刪除資料庫的所有數據也是如此。
運行 DBCC SHRINKDATABASE 而不指定 NOTRUNCATE 選項或 TRUNCATEONLY 選項等價於帶 NOTRUNCATE 運行 DBCC SHRINKDATABASE 操作,然後再帶 TRUNCATEONLY 運行 DBCC SHRINKDATABASE 操作。
要收縮的資料庫不必在單用戶模式下;其他的用戶仍可以在資料庫收縮時對其進行工作。這也包括系統資料庫。
不能在備份資料庫時收縮資料庫。反之,也不能在資料庫執行收縮操作時備份資料庫。
DBCC SHRINKDATABASE 的工作原理
DBCC SHRINKDATABASE 以每個文件為單位對數據文件進行收縮。然而,DBCC SHRINKDATABASE 在對日誌文件進行收縮時,它將視為所有的日誌文件都存在於一個連續的日誌池中。文件始終從末尾開始收縮。
假設名為 mydb 的資料庫有一個數據文件和兩個日誌文件。數據文件和日誌文件分別是 10 MB,並且數據文件包含 6 MB 數據。
Microsoft SQL Server 2005 資料庫引擎對每個文件計算一個目標大小。這就是文件將要收縮到的大小。將 target_percent 與 DBCC SHRINKDATABASE 一起指定時,資料庫引擎計算的目標大小是收縮後文件中的 target_percent 可用空間大小。例如,如果在收縮 mydb 時將 target_percent 指定為 25,則資料庫引擎將此文件的目標大小計算為 8 MB(6 MB 數據加上 2 MB 可用空間)。因此,資料庫引擎將任何數據從數據文件的後 2 MB 中移動到數據文件前 8 MB 的可用空間中,然後對該文件進行收縮。
假設 mydb 的數據文件包含 7 MB 的數據。將 target_percent 指定為 30,以允許將此數據文件收縮到可用空間為 30%。但是,將 target_percent 指定為 40 卻不會收縮數據文件,因為資料庫引擎收縮文件的目標大小不能小於數據當前佔用空間大小。您還可以用另一種方法來考慮此問題:所要求的 40% 可用空間加上整個數據文件大小的 70%(10 MB 中的 7 MB),超過了 100%。因為所要求的可用百分比加上數據文件佔用的當前百分比大於 100%(多出 10%),所以任何大於 30 的 target_size 都不會收縮此數據文件。
對於日誌文件,資料庫引擎使用 target_percent 來計算整個日誌的目標大小;因此,target_percent 是收縮操作後日誌中的可用空間大小。之後,整個日誌的目標大小轉換為每個日誌文件的目標大小。
DBCC SHRINKDATABASE 嘗試立即將每個物理日誌文件收縮到其目標大小。如果虛擬日誌中的所有邏輯日誌部分都沒有超出日誌文件的目標大小,則該文件將成功截斷,DBCC SHRINKDATABASE 完成且不顯示任何消息。但是,如果部分邏輯日誌位於超出目標大小的虛擬日誌中,則資料庫引擎將釋放盡可能多的空間,並發出一條信息性消息。該消息說明需要執行哪些操作來將邏輯日誌移出位於文件末尾的虛擬日誌。執行該操作以後,DBCC SHRINKDATABASE 可用於釋放剩餘空間。有關詳細信息,請參閱收縮事務日誌。
因為日誌文件只能收縮到虛擬日誌文件邊界,所以不可能將日誌文件收縮到比虛擬日誌文件更小(即使現在沒有使用該文件)。虛擬日誌文件的大小在創建或擴展這些日誌文件時由資料庫引擎動態選擇。有關虛擬日誌文件的詳細信息,請參閱事務日誌物理體系結構。
許可權
要求具有 sysadmin 固定伺服器角色或 db_owner 固定資料庫角色的成員身份。、
示例
A. 收縮資料庫並指定可用空間的百分比
以下示例將減小 UserDB 用戶資料庫中數據文件和日誌文件的大小,以便在資料庫中留出 10% 的可用空間。
DBCC SHRINKDATABASE (UserDB, 10);
GO
B. 截斷資料庫
以下示例使 AdventureWorks 示例資料庫中的數據文件收縮到最後分配的區。
DBCC SHRINKDATABASE (AdventureWorks, TRUNCATEONLY);
2、DBCC SHRINKFILE (Transact-SQL)
收縮當前資料庫的指定數據或日誌文件的大小,或通過將數據從指定的文件移動到相同文件組中的其他文件來清空文件,以允許從資料庫中刪除該文件。文件大小可以收縮到比創建該文件時所指定的大小更小。這樣會將最小文件大小重置為新值。
語法
DBCC SHRINKFILE ( { 'file_name' | file_id } { [ , EMPTYFILE ] | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ] } ) [ WITH NO_INFOMSGS ]
參數
' file_name '
要收縮的文件的邏輯名稱。
file_id
要收縮的文件的標識 (ID) 號。若要獲得文件 ID,請使用 FILE_IDEX 系統函數,或查詢當前資料庫中的 sys.database_files 目錄視圖。
target_size
用兆位元組表示的文件大小(用整數表示)。如果未指定,則 DBCC SHRINKFILE 將文件大小減少到默認文件大小。默認大小是創建文件時指定的大小,或者是使用 ALTER DATABASE 所設置的最後大小。
如果指定了 target_size,則 DBCC SHRINKFILE 嘗試將文件收縮到指定大小。將要釋放的文件部分中的已使用頁重新定位到保留的文件部分中的可用空間。例如,如果數據文件為 10 MB,則 target_size 為 8 的 DBCC SHRINKFILE 操作會將文件最後 2 MB 中所有的已使用頁重新分配到文件前 8 MB 中的任何未分配頁中。DBCC SHRINKFILE 不會將文件收縮到小於存儲文件中的數據所需要的大小。例如,如果使用 10 MB 數據文件中的 7 MB,則帶有 target_size 為 6 的 DBCC SHRINKFILE 語句只能將該文件收縮到 7 MB,而不能收縮到 6 MB。
EMPTYFILE
將指定文件中的所有數據遷移到同一文件組中的其他文件。由於資料庫引擎不再允許將數據放在空文件內,因此可以使用 ALTER DATABASE 語句來刪除該文件。
NOTRUNCATE
在指定或不指定 target_percent 的情況下,將已分配的頁從數據文件的末尾移動到該文件前面的未分配頁。文件末尾的可用空間不會返回給操作系統,文件的物理大小也不會更改。因此,指定 NOTRUNCATE 時,文件看起來未收縮。
NOTRUNCATE 只適用於數據文件。日誌文件不受影響。
TRUNCATEONLY
將文件末尾的所有可用空間釋放給操作系統,但不在文件內部執行任何頁移動。數據文件只收縮到最後分配的區。
如果隨 TRUNCATEONLY 指定了 target_size,則會忽略該參數。
TRUNCATEONLY 只適用於數據文件。
WITH NO_INFOMSGS
取消顯示所有信息性消息。
結果集
列名 說明
DbId 資料庫引擎試圖收縮的文件的資料庫標識號。
FileId 資料庫引擎試圖收縮的文件的文件標識號。
CurrentSize 文件當前佔用的 8 KB 頁數。
MinimumSize 文件最低可以佔用的 8 KB 頁數。這與文件的最小大小或最初創建時的大小相對應。
UsedPages 文件當前使用的 8 KB 頁數。
EstimatedPages 資料庫引擎估計文件能夠收縮到的 8 KB 頁數。
收縮日誌文件
對於日誌文件,SQL Server 2005 資料庫引擎使用 target_size 來計算整個日誌的目標大小;因此,target_size 是收縮操作後日誌中的可用空間大小。之後,整個日誌的目標大小轉換為每個日誌文件的目標大小。DBCC SHRINKFILE 嘗試立即將每個物理日誌文件收縮到其目標大小。但是,如果部分邏輯日誌位於超出目標大小的虛擬日誌中,則資料庫引擎將釋放盡可能多的空間,並發出一條信息性消息。該消息說明需要執行哪些操作來將邏輯日誌移出位於文件末尾的虛擬日誌。執行這些操作以後,DBCC SHRINKFILE 可用於釋放剩餘空間。
如果文件不收縮
如果收縮操作運行時未出現錯誤,但文件大小看起來沒有發生更改,則請執行下列操作之一以驗證文件是否有足夠的可用空間可供刪除:
運行以下查詢。
SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB
FROM sys.database_files;
許可權
要求具有 sysadmin 固定伺服器角色或 db_owner 固定資料庫角色的成員身份。
示例
A. 將數據文件收縮到指定的目標大小
以下示例將 UserDB 用戶資料庫中名為 DataFile1 的數據文件的大小收縮到 7MB。
USE UserDB;
GO
DBCC SHRINKFILE (DataFile1, 7);
GO
B. 將日誌文件收縮到指定的目標大小
以下示例將 AdventureWorks 資料庫中的日誌文件收縮到 1 MB。若要允許 DBCC SHRINKFILE 命令收縮文件,首先需要通過將資料庫恢復模式設置為 SIMPLE 來截斷該文件。
USE AdventureWorks;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE AdventureWorks
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (AdventureWorks_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE AdventureWorks
SET RECOVERY FULL;
GO
C. 截斷數據文件
以下示例將截斷 AdventureWorks 資料庫中的主數據文件。需要查詢 sys.database_files 目錄視圖以獲得數據文件的 file_id。
USE AdventureWorks;
GO
SELECT file_id, name
FROM sys.database_files;
GO
DBCC SHRINKFILE (1, TRUNCATEONLY);
D. 清空文件
以下示例演示了清空文件以便從資料庫中將其刪除的步驟。針對此示例,首先創建一個數據文件,並假設該文件包含數據。
USE AdventureWorks;
GO
-- Create a data file and assume it contains data.
ALTER DATABASE AdventureWorks
ADD FILE (
NAME = Test1data,
FILENAME = 'C:\t1data.ndf',
SIZE = 5MB
);
GO
-- Empty the data file.
DBCC SHRINKFILE (Test1data, EMPTYFILE);
GO
-- Remove the data file from the database.
ALTER DATABASE AdventureWorks
REMOVE FILE Test1data;
GO
㈢ 如何在日誌里粘貼壓縮文件
你可以先將文件上傳到網盤,然後將下載鏈接粘貼到日誌裡面,這樣就ok啦,,,,
㈣ 如何實現linux自動壓縮指定日誌
/bin/bash
# logs zip
dir=你的日誌路徑
log=日誌名稱
bak_dir=壓縮後的日誌存放位置
echo "###########開始備份###################"
tar -zcvf ${bak_dir}/bak_$(date "+%Y%m%d_%H%M").tar.gz ${dir}/$log
㈤ python日誌怎麼配置壓縮
#!/usr/bin/env python#-*- coding: utf-8 -*-#import datetimeimport osimport zipfile#計算昨天的時間time = datetime.datetime.now()
delta = datetime.timedelta(days=-1)
n_days = time + delta
yestoday = n_days.strftime('%Y-%m-%d')
name = 'app.' +yestoday +'.log'#print (name)def zip_files(file,file_news):
file = '/data/server/apps/rules_scalability/logs/' +name #文件名
# print(file)
file_news = '/data/server/apps/rules_scalability/logs/' +name +'.zip' #文件壓縮後的名
#print(file_news)
f = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED,allowZip64=True)
f.write(file,name) #name文件解壓後的名 f.close()
os.remove(file) #刪除源文件file = '/data/server/apps/rules_scalability/logs/' +name
file_news = '/data/server/apps/rules_scalability/logs/' +name +'.zip'zip_files(file,file_news)
㈥ sql server 日誌文件ldf的壓縮
不要壓縮。直接轉移日誌文件。將來要用,再全部轉回來,和帳套的時間不必匹配的。
㈦ 怎樣把資料庫的日誌文件壓縮
具體方法有3種。
方法一:
第一步:
backup log database_name with no_log
或者 backup log database_name with truncate_only
-- no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以。
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行:
dbcc shrinkdatabase (database_name,[,target_percent])
-- database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比。
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc shrinkfile(file_id,[,target_size])
-- file_id是要收縮的文件的標識 (ID) 號,若要獲得文件 ID,請使用 FILE_ID 函數或在當前資料庫中搜索 sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc shrinkfile 將文件大小減少到默認文件大小。兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思查看聯機幫助.
㈧ java 如何將log4j生成的日誌文件壓縮
jdk自帶的包java.util.zip.ZipOutputStream來實現。需要寫獨立的程序。
建議在linux下用shell腳本來處理。用java的效率比較低。
㈨ log4j2 日誌文件壓縮時,可指定壓縮格式為biz2嗎
jdk自帶的包java.util.zip.ZipOutputStream來實現。需要寫獨立的程序。 建議在linux下用shell腳本來處理。用java的效率比較低。