성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>SQL 서버 - The transaction log for database '...' is full due to 'LOG_BACKUP'. - 두 번째 이야기</h1> <p> 예전에 쓴 글에 이어서,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > SQL 서버 - The transaction log for database '...' is full due to 'LOG_BACKUP'. ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/1529'>https://www.sysnet.pe.kr/2/0/1529</a> </pre> <br /> 개별 log 파일을 truncate 시키는 게 꽤나 귀찮은 작업이어서, 아예 SP를 다음과 같이 만들어 봤습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > USE [master] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[Trunc_Log] @dbName VarChar(512) AS BEGIN DECLARE @sqlquery NVARCHAR(1024) SET @sqlquery = N'USE "' + @dbName + '" ALTER DATABASE "' + @dbName + '" SET RECOVERY SIMPLE;'; exec sp_executesql @sqlquery; SET @sqlquery = N'USE "' + @dbName + '" DBCC SHRINKFILE ("' + @dbName + '_Log", 7)'; exec sp_executesql @sqlquery; SET @sqlquery = N'USE "' + @dbName + '" ALTER DATABASE "' + @dbName + '" SET RECOVERY FULL;'; exec sp_executesql @sqlquery; END GO </pre> <br /> 저렇게 해 두면, SQL Server Agent의 Job으로 간단하게 처리할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > exec dbo.Trunc_Log 'WSS_Content' exec dbo.Trunc_Log 'SharePoint_Config' exec dbo.Trunc_Log 'Search_Service_Application_DB_36084c0412ce487bad3a2ee7bfcd0ea6' exec dbo.Trunc_Log 'Search_Service_Application_CrawlStoreDB_0d6f4aaf36164621b0e1a3e5ecb4a350' exec dbo.Trunc_Log "SharePoint_AdminContent_13a13d49-57db-4481-a3bf-7d11c857fc49" exec dbo.Trunc_Log "WSS_UsageApplication" </pre> <br /> <hr style='width: 50%' /><br /> <br /> 물론, 테스트 서버가 아니라면 저런 식으로 무자비하게 로그를 날릴 수는 없을 것입니다. 그런 경우에는 결국 디스크 용량이 모자란 것이므로 여유가 있는 디스크로 데이터베이스 파일을 옮겨야 할 텐데 이는 다음의 스크립트를 실행하면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ALTER DATABASE SharePoint_Config MODIFY FILE ( NAME = SharePoint_Config, FILENAME = 'd:\db\SharePoint_Config.mdf'); GO ALTER DATABASE SharePoint_Config MODIFY FILE ( NAME = SharePoint_Config_Log, FILENAME = 'd:\db\SharePoint_Config_Log.ldf'); GO </pre> <br /> 실행 후, 해당 데이터베이스 파일(mdf, ldf)을 대상 디렉터리에 옮기고 DB를 OFFLINE 시킨 후 다시 ONLINE으로 붙이면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ALTER DATABASE WSS_UsageApplication SET OFFLINE; GO // ... 파일 복사 후 ALTER DATABASE WSS_UsageApplication SET ONLINE; GO </pre> <br /> 그런데, (테스트 서버인 경우에도) OFFLINE 시킬 때 한참 동안 대기하는 경우가 있습니다. 그럴 때는 그냥 SQL Server 서비스를 내려 버리고 다시 시작하는 것이 더 빠르게 작업을 진행할 수 있습니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 참고로 다음의 PowerShell 명령어를 이용하면 DB 목록도 자동화할 수 있습니다. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // HOW TO LIST THE SHAREPOINT 2010 DATABASES THAT ARE IN USE ? EVENTUALLY TO A FILE ? // ; <a target='tab' href='https://theblobfarm.wordpress.com/2011/09/29/how-to-list-the-sharepoint-2010-databases-that-are-in-use-eventually-to-a-file/'>https://theblobfarm.wordpress.com/2011/09/29/how-to-list-the-sharepoint-2010-databases-that-are-in-use-eventually-to-a-file/</a> PS C:\> <span style='color: blue; font-weight: bold'>Get-SPDatabase | Sort-Object Name | Select Name</span> Name ---- AppMng_Service_DB_7a3a6de8c3af46bc97b79d0602d26f6a Search_Service_Application_AnalyticsReportingStoreDB_579571845a0b44af963fa8f9ac35dc70 Search_Service_Application_CrawlStoreDB_0d6f4aaf36164621b0e1a3e5ecb4a350 Search_Service_Application_DB_36084c0412ce487bad3a2ee7bfcd0ea6 Search_Service_Application_LinksStoreDB_269342b3f3cb46e7a56cbcf7bd652cce SharePoint_AdminContent_13a13d49-57db-4481-a3bf-7d11c857fc49 SharePoint_Config StateService_8453580cc877412eb9fe4d4c7a591472 User Profile Service Application_ProfileDB_e2ca01fc763f48f794e8caf055061b0c User Profile Service Application_SocialDB_bf498a5c824c4f629cf0852c4b1a7a29 User Profile Service Application_SyncDB_e0517bc2f6764472b70681a15d8d457b WordAutomationServices_b5b9e659208f48cbba978dd228bd61be WSS_Content WSS_UsageApplication </pre> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1856
(왼쪽의 숫자를 입력해야 합니다.)