亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

SQL Server 日志操作相關代碼

添加時間:2014-11-4 16:43:51  添加: 思海網絡 

方法一:

--讓日志不再增長,但是不能壓縮日志 
EXEC sp_dboption 'your_dbname', 'trunc. log', 'TRUE'

方法二:

--超強數據庫文件及日志文件壓縮, 
--壓縮后可能會導致數據庫不能正常訪問,重啟一下數據庫即可 
DUMP TRANSACTION [數據庫名] WITH NO_LOG 
BACKUP LOG [數據庫名] WITH NO_LOG 
DBCC SHRINKDATABASE([數據庫名])


方法三:


經常在CSDN上看到網友發帖說,壓縮日志文件處理不當,導致數據庫損壞,甚至不能恢復數據,于是就寫了一個通用的數據庫日志文件壓縮的存儲過程來解決此問題: 

/**//*--壓縮數據庫的通用存儲過程 

壓縮日志及數據庫文件大小 
因為要對數據庫進行分離處理 
所以存儲過程不能創建在被壓縮的數據庫中 

--鄒建 2004.3--*/ 

/**//*--調用示例 
exec p_compdb 'test' 
--*/ 

use master --注意,此存儲過程要建在master數據庫中 
go 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_compdb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[p_compdb] 
GO 

create proc p_compdb 
@dbname sysname, --要壓縮的數據庫名 
@bkdatabase bit=1, --因為分離日志的步驟中,可能會損壞數據庫,所以你可以選擇是否自動數據庫 
@bkfname nvarchar(260)='' --備份的文件名,如果不指定,自動備份到默認備份目錄,備份文件名為:數據庫名+日期時間 
as 
--1.清空日志 
exec('DUMP TRANSACTION ['+@dbname+'] WITH NO_LOG') 

--2.截斷事務日志: 
exec('BACKUP LOG ['+@dbname+'] WITH NO_LOG') 

--3.收縮數據庫文件(如果不壓縮,數據庫的文件不會減小 
exec('DBCC SHRINKDATABASE(['+@dbname+'])') 

--4.設置自動收縮 
exec('EXEC sp_dboption '''+@dbname+''',''autoshrink'',''TRUE'''

--后面的步驟有一定危險,你可以可以選擇是否應該這些步驟 
--5.分離數據庫 
if @bkdatabase=1 
begin 
if isnull(@bkfname,'')='' 
set @bkfname=@dbname+'_'+convert(varchar,getdate(),112) 
+replace(convert(varchar,getdate(),108),':','') 
select 提示信息='備份數據庫到SQL 默認備份目錄,備份文件名:'+@bkfname 
exec('backup database ['+@dbname+'] to disk='''+@bkfname+''''
end 

--進行分離處理 
create table #t(fname nvarchar(260),type int) 
exec('insert into #t select filename,type=status&0x40 from ['+@dbname+']..sysfiles') 
exec('sp_detach_db '''+@dbname+''''

--刪除日志文件 
declare @fname nvarchar(260),@s varchar(8000) 
declare tb cursor local for select fname from #t where type=64 
open tb 
fetch next from tb into @fname 
while @@fetch_status=0 
begin 
set @s='del "'+rtrim(@fname)+'"' 
exec master..xp_cmdshell @s,no_output 
fetch next from tb into @fname 
end 
close tb 
deallocate tb 

--附加數據庫 
set @s='' 
declare tb cursor local for select fname from #t where type=0 
open tb 
fetch next from tb into @fname 
while @@fetch_status=0 
begin 
set @s=@s+','''+rtrim(@fname)+'''' 
fetch next from tb into @fname 
end 
close tb 
deallocate tb 
exec('sp_attach_single_file_db '''+@dbname+''''+@s
go 

關鍵字:SQL Server、數據庫、日志
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站