2008. 9. 17. 15:41
Shrinkfile & MDF 만 있을경우
2008. 9. 17. 15:41 in SQL
## 자주 사용하는 쿼리문들... 기억력이 좋지 않아 여기라도 조금 끄적거려놔야지......##
* shrinkfile
-> SQL 2000
-> SQL 2005(백업은 반드시 1회 이상 해야합니다)
* MDF 파일만 있을경우(LDF 없을경우)
우선 간단한 방법부터
-> 동일한 DB 명을 생성합니다.
-> DB 중지후 MDF 파일을 덮어 쓰기 합니다.
-> SQL 재시작 합니다.
-> 시스템 카달로그 변경을 위해서 allow update 수정합니다.
->해당 DB 를 Emergency Mode(응급복구모드)로 변경합니다.
->트랜젝션로그를 다시 생성합니다.
* shrinkfile
-> SQL 2000
use master
backup log DB이름 with no_log
use DB이름
dbcc shrinkfile(DB이름_log,1)
==> 1Mbyte 로 LDF 파일 사이즈 축소
-> SQL 2005(백업은 반드시 1회 이상 해야합니다)
DBCC SHRINKFILE (DB이름,1) WITH NO_INFOMSGS
==> 1Mbyte 로 LDF 파일 사이즈 축소
* MDF 파일만 있을경우(LDF 없을경우)
우선 간단한 방법부터
CREATE DATABASE DB명위 방법이 안될때는 조금 복잡한 아래 방법으로 합니다.
ON (NAME='DB명', FILENAME='c:\aa.mdf')
FOR ATTACH_REBUILD_LOG
-> 동일한 DB 명을 생성합니다.
-> DB 중지후 MDF 파일을 덮어 쓰기 합니다.
-> SQL 재시작 합니다.
-> 시스템 카달로그 변경을 위해서 allow update 수정합니다.
use master
go
sp_configure 'allow update', 1
reconfigure with override
go
->해당 DB 를 Emergency Mode(응급복구모드)로 변경합니다.
ALTER DATABASE DB명 SET EMERGENCY->SQL 서비스 다시 시작합니다.
->트랜젝션로그를 다시 생성합니다.
ALTER DATABASE dbname REBUILD LOG ON-> 일반모드 변경후 카달로그 수정할수 있도록 원상복귀
(NAME=logname, FILENAME='LDF파일경로\logname.ldf')
ALTER DATABASE DB명 SET ONLINE
use master
go
sp_configure 'allow update', 0
reconfigure with override
go