直接壓縮不太現(xiàn)實(shí)啊,文件太大需要的時(shí)間太長了。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、海北州網(wǎng)站維護(hù)、網(wǎng)站推廣。
如果里面的數(shù)據(jù)資料不重要,只是數(shù)據(jù)結(jié)構(gòu)重要的話,可以再導(dǎo)出一個(gè)只含數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)庫副本。
或者 如果日志文件不重要的話,可以只導(dǎo)出數(shù)據(jù)庫本身,不導(dǎo)出日志。
最后,7G文件也不算大,我這里就是用一個(gè)160G的移動(dòng)硬盤備份的,不過一定要把硬盤格式化成NTFS格式。
你用數(shù)據(jù)庫管理器選中數(shù)據(jù)庫,先分離,然后再附加,然后再點(diǎn)收縮,收縮的時(shí)候先收縮日志文件,一般能收縮很多,記得要填寫數(shù)字啊,比如上面提示能收縮為0,你就填個(gè)5兆,這樣預(yù)留一點(diǎn)空間,而且很快,收縮完日志文件之后再收縮數(shù)據(jù)庫 同理比最小能收縮量大幾兆就可以了,但是收縮數(shù)據(jù)庫比較慢 需要很多時(shí)間
具體方法有3種。
方法一:
第一步:
backup
log
database_name
with
no_log
或者
backup
log
database_name
with
truncate_only
--
no_log和truncate_only是在這里是同義的,隨便執(zhí)行哪一句都可以。
第二步:
1.收縮特定數(shù)據(jù)庫的所有數(shù)據(jù)和日志文件,執(zhí)行:
dbcc
shrinkdatabase
(database_name,[,target_percent])
--
database_name是要收縮的數(shù)據(jù)庫名稱;target_percent是數(shù)據(jù)庫收縮后的數(shù)據(jù)庫文件中所要的剩余可用空間百分比。
2.收縮一次一個(gè)特定數(shù)據(jù)庫中的數(shù)據(jù)或日志文件,執(zhí)行
dbcc
shrinkfile(file_id,[,target_size])
--
file_id是要收縮的文件的標(biāo)識
(id)
號,若要獲得文件
id,請使用
file_id
函數(shù)或在當(dāng)前數(shù)據(jù)庫中搜索
sysfiles;target_size是用兆字節(jié)表示的所要的文件大?。ㄓ谜麛?shù)表示)。如果沒有指定,dbcc
shrinkfile
將文件大小減少到默認(rèn)文件大小。兩個(gè)dbcc都可以帶上參數(shù)notruncate或truncateonly,具體意思查看聯(lián)機(jī)幫助.
方法二:
第一步:
先備份整個(gè)數(shù)據(jù)庫以備不測
。
第二步:
備份結(jié)束后,在query
analyzer中執(zhí)行如下的語句:
exec
sp_detach_db
yourdbname,true
--卸除這個(gè)db在mssql中的注冊信息
第三步:
到日志的物理文件所在的目錄中去刪除該日志文件或者將該日志文件移出該目錄
第四步:
在query
analyzer中執(zhí)行如下的語句:
exec
sp_attach_single_file_db
yourdbname,'
d:\mssql\data\yourdbname_data.mdf
'
--以單文件的方式注冊該db,如果成功則mssql將自動(dòng)為這個(gè)db生成一個(gè)500k的日志文件。
方法三:
1.
進(jìn)入企業(yè)管理器,選中數(shù)據(jù)庫,比如demo
2.
所有任務(wù)-分離數(shù)據(jù)庫
3.
到數(shù)據(jù)庫文件的存放目錄,將muonline_log.ldf文件刪除,以防萬一,你可以拷出去
4.
企業(yè)管理器-附加數(shù)據(jù)庫,選muonline,這個(gè)時(shí)候你會(huì)看見日志文件這項(xiàng)是一個(gè)叉,不要緊,繼續(xù),此時(shí)數(shù)據(jù)庫就會(huì)提示你該數(shù)據(jù)庫無日志是否創(chuàng)建一個(gè)新的,確定就是了。
5.
記得數(shù)據(jù)庫重新附加后用戶要重新設(shè)置一下。
如果以后,不想要它變大:
sql2000下使用:
在數(shù)據(jù)庫上點(diǎn)右鍵-屬性-選項(xiàng)-故障恢復(fù)-模型-選擇-簡單模型。
或用sql語句:
alter
database
數(shù)據(jù)庫名
set
recovery
simple
1、確認(rèn)大量占用空間的對象(表格或索引)。然后通過歸檔歷史數(shù)據(jù),先把空間釋放出來再壓縮數(shù)據(jù)文件
2、重建索引,把一些數(shù)據(jù)頁面重排一次,原先的頁面被釋放,所占用的分區(qū)也被釋放,再去DBCC SHRINKFILE
在程序組中,展開“Sqlserver”運(yùn)行“查詢分析器”。輸入用戶名、密碼。
在工具欄的數(shù)據(jù)庫列表中選擇要操作的數(shù)據(jù)庫。
輸入:select * from sysfiles 執(zhí)行,可以看到下面的內(nèi)容,記住其中的fileid字段的內(nèi)容,也就是1或2,標(biāo)識數(shù)據(jù)庫的數(shù)據(jù)文件或日志文件,下面的命令要用到這里的值。
輸入:dbcc?shrinkdatabase('?庫名'?),收縮數(shù)據(jù)庫,結(jié)果如下:可以看到壓縮后的數(shù)據(jù)庫文件的尺寸。
輸入:dbcc?shrinkfile(2,?0)執(zhí)行,然后輸入dbcc?shrinkfile(1,?0)執(zhí)行。兩句命令中的第一個(gè)參數(shù)就是前面看到的FileID的值,表示了一個(gè)是日志文件,一個(gè)是數(shù)據(jù)文件。第二個(gè)參數(shù)0,表示收縮到初始大小。
輸入:dbcc updateusage (0),執(zhí)行更新操作,完工!更新后可以跟之前的數(shù)據(jù)文件比對一下了,會(huì)有相對較大的尺寸上的優(yōu)化了。
你需要將日志文件截?cái)嗪笫湛s
在查詢分析器里依次執(zhí)行下面的語句就可以了,把“數(shù)據(jù)庫”替換成你實(shí)際的數(shù)據(jù)庫名
--首先截?cái)嗍聞?wù)日志
backup log 數(shù)據(jù)庫 with no_log
--收縮數(shù)據(jù)庫
dbcc shrinkdatabase('數(shù)據(jù)庫',0)