Sqlserver 2005 로그 파일 이 너무 크 면 어떻게 줄 입 니까?

6111 단어 sqlserver2005로그
Sqlserver 2005 로그 파일 이 너무 커서 줄 이 는 방법 은 다음 과 같 습 니 다.
다음 세 줄 dbName 을 데이터베이스 이름 으로 실행 합 니 다:
backup log dbNamewith NO_LOG
backup log dbNamewith TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbName)
로그 파일 을 1MB 로 줄 이기
sql 서버 로그 파일 비우 기 2011-04-06 23:05
1:LOG 삭제
1:데이터베이스 기업 관리자->서버->데이터베이스->오른쪽 키->데이터 베 이 스 를 분리 합 니 다.
2:LOG 파일 삭제
3:추가 데이터베이스 기업 관리자->서버->데이터베이스->오른쪽 키->추가 데이터 베이스
이 방법 은 새로운 LOG 를 생 성 하 는데 크기 는 520 여 K 에 불과 하 다
이 데이터 베 이 스 를 자동 으로 축소 합 니 다.
또는 코드 사용:
다음 예제 에 서 는 77169 database 를 분리 한 후 77169 database 의 파일 을 현재 서버 에 추가 합 니 다.
EXEC sp_detach_db @dbname = "77169database"
EXEC sp_attach_single_file_db @dbname = "77169database",
@physname = "c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf"
2:로그 비우 기
DUMP TRANSACTION 라 이브 러 리 이름 WITH NOLOG
다시:
기업 관리자-오른쪽 단 추 를 누 르 면 압축 할 데이터베이스-모든 작업-수축 데이터베이스-수축 파일-선택 로그 파일-수축 방식 에서 XXM 으로 수축 을 선택 합 니 다.여기 서 수축 을 허용 하 는 최소 M 수 를 드 립 니 다.이 수 를 직접 입력 하여 확인 하면 됩 니 다.
3:나중에 자라 지 못 하 게 하려 면
기업 관리자->서버->데이터베이스->속성->사무 로그->파일 증 가 를 2M 으로 제한 합 니 다.
자동 으로 로 그 를 줄 일 수도 있 고,아래 문장 을 사용 할 수도 있다
ALTER DATABASE 데이터베이스 이름
SET AUTO_SHRINK ON
고장 복원 모델 을 간단하게 바 꾸 었 습 니 다.
USE MASTER
GO
ALTER DATABASE 데이터베이스 이름 SET RECOVERY SIMPLE
GO
---------------------------------------------------------------------------------
트 랜 잭 션 로그 차단:
BACKUP LOG { database_name | @database_name_var }
{
[ WITH
{ NO_LOG | TRUNCATE_ONLY } ]
}
--hovertree.com 에 대해 묻 는 것 은 무엇 인가
--압축 로그 및 데이터베이스 파일 크기
특히 주의 하 다
절차 에 따라 진행 하 세 요.앞의 절 차 를 진행 하지 않 았 으 니 뒤의 절 차 를 하지 마 세 요.
그렇지 않 으 면 데이터 베 이 스 를 손상 시 킬 수 있 습 니 다.
--*/
1.로그 비우 기
DUMP TRANSACTION 라 이브 러 리 이름 WITH NOLOG
2.트 랜 잭 션 로그 차단:
BACKUP LOG 데이터베이스 이름 WITH NOLOG
3.데이터베이스 파일 축소(압축 하지 않 으 면 데이터베이스 파일 이 줄 어 들 지 않 습 니 다.
기업 관리자--오른쪽 단 추 를 누 르 면 압축 할 데이터베이스--모든 작업--수축 데이터베이스-수축 파일
--로그 파일 선택--수축 방식 에서 XXM 으로 수축 하 는 것 을 선택 하면 수축 이 가능 한 최소 M 수 를 주 고 이 수 를 직접 입력 하여 확인 하면 됩 니 다.
--데이터 파일 선택--수축 방식 에서 XXM 으로 수축 을 선택 하면 수축 을 허용 하 는 최소 M 수 를 주 고 이 수 를 직접 입력 해 확인 하면 된다
SQL 문장 으로 도 완성 할 수 있 습 니 다.
--수축 데이터베이스
DBCC SHRINKDATABASE(고객 자료)
--지 정 된 데이터 파일 을 줄 이 고 1 은 파일 번호 입 니 다.이 문 구 를 통 해 select*from sysfiles 를 조회 할 수 있 습 니 다.
DBCC SHRINKFILE(1)
4.로그 파일 을 최대 화하 기 위해 서(sql 7.0 이 라면 검색 분석 기 에서 만 진행 할 수 있 습 니 다)
a.데이터베이스 분리:
기업 관리자-서버-데이터베이스-우 클릭-분리 데이터베이스
b.내 컴퓨터 에서 LOG 파일 삭제
c.추가 데이터베이스:
기업 관리자-서버-데이터베이스-우 클릭-추가 데이터베이스
이 방법 은 새로운 LOG 를 생 성 할 것 이 며,크기 는 500 여 K 에 불과 하 다
또는 코드 사용:
다음 예제 에 서 는 77169 database 를 분리 한 후 77169 database 의 파일 을 현재 서버 에 추가 합 니 다.
헤어지다
EXEC sp_detach_db @dbname = "77169database"
b.로그 파일 삭제
c.추가
EXEC sp_attach_single_file_db @dbname = "77169database",
@physname = "c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf"
5.나중에 자동 으로 줄 어 들 수 있 도록 다음 설정 을 합 니 다.
기업 관리자-서버-우 클릭 데이터베이스-속성-옵션-선택"자동 수축"
--SQL 구문 설정 방식:
EXEC sp_dboption"데이터베이스 이름","autoshrink","TRUE"
6.나중에 로 그 를 크게 늘 리 지 않 으 려 면
기업 관리자-서버-오른쪽 키 데이터베이스-속성-트 랜 잭 션 로그
--파일 증 가 를 xM(x 는 허용 하 는 최대 데이터 파일 크기)으로 제한한다
--SQL 문장의 설정 방식:
alter database 데이터베이스 이름 modify file(name=논리 파일 이름,maxsize=20)
-------------------------------------------------------------------------------------------
/*-압축 데이터베이스 의 유 니 버 설 저장 과정
압축 로그 및 데이터베이스 파일 크기
데이터 베 이 스 를 분리 처리 해 야 하기 때문이다.
그래서 저장 과정 은 압축 된 데이터 베 이 스 를 만 들 수 없습니다.

/*--    
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

좋은 웹페이지 즐겨찾기