Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

SQL 서버 - The transaction log for database '...' is full due to 'LOG_BACKUP'. - 두 번째 이야기

예전에 쓴 글에 이어서,

SQL 서버 - The transaction log for database '...' is full due to 'LOG_BACKUP'.
; https://www.sysnet.pe.kr/2/0/1529

개별 log 파일을 truncate 시키는 게 꽤나 귀찮은 작업이어서, 아예 SP를 다음과 같이 만들어 봤습니다.

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

저렇게 해 두면, SQL Server Agent의 Job으로 간단하게 처리할 수 있습니다.

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"




물론, 테스트 서버가 아니라면 저런 식으로 무자비하게 로그를 날릴 수는 없을 것입니다. 그런 경우에는 결국 디스크 용량이 모자란 것이므로 여유가 있는 디스크로 데이터베이스 파일을 옮겨야 할 텐데 이는 다음의 스크립트를 실행하면 됩니다.

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

실행 후, 해당 데이터베이스 파일(mdf, ldf)을 대상 디렉터리에 옮기고 DB를 OFFLINE 시킨 후 다시 ONLINE으로 붙이면 됩니다.

ALTER DATABASE WSS_UsageApplication SET OFFLINE;  
GO

// ... 파일 복사 후

ALTER DATABASE WSS_UsageApplication SET ONLINE;  
GO

그런데, (테스트 서버인 경우에도) OFFLINE 시킬 때 한참 동안 대기하는 경우가 있습니다. 그럴 때는 그냥 SQL Server 서비스를 내려 버리고 다시 시작하는 것이 더 빠르게 작업을 진행할 수 있습니다.




참고로 다음의 PowerShell 명령어를 이용하면 DB 목록도 자동화할 수 있습니다. ^^

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

PS C:\> Get-SPDatabase | Sort-Object Name | Select Name

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




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 6/19/2020]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 76  77  78  79  80  81  [82]  83  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
11884정성태5/5/201920861.NET Framework: 828. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 - 두 번째 이야기
11883정성태5/3/201926064.NET Framework: 827. C# - 인터넷 시간 서버로부터 받은 시간을 윈도우에 적용하는 방법파일 다운로드1
11882정성태5/2/201922307.NET Framework: 826. (번역글) .NET Internals Cookbook Part 11 - Various C# riddles파일 다운로드1
11881정성태4/28/201922453오류 유형: 532. .NET Core 프로젝트로 마이그레이션 시 "CS0579 Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute" 오류 발생
11880정성태4/25/201918241오류 유형: 531. 이벤트 로그 오류 - Task Scheduling Error: m->NextScheduledSPRetry 1547, m->NextScheduledEvent 1547
11879정성태4/24/201926657.NET Framework: 825. (번역글) .NET Internals Cookbook Part 10 - Threads, Tasks, asynchronous code and others파일 다운로드2
11878정성태4/22/201922456.NET Framework: 824. (번역글) .NET Internals Cookbook Part 9 - Finalizers, queues, card tables and other GC stuff파일 다운로드1
11877정성태4/22/201922451.NET Framework: 823. (번역글) .NET Internals Cookbook Part 8 - C# gotchas파일 다운로드1
11876정성태4/21/201921577.NET Framework: 822. (번역글) .NET Internals Cookbook Part 7 - Word tearing, locking and others파일 다운로드1
11875정성태4/21/201922513오류 유형: 530. Visual Studo에서 .NET Core 프로젝트를 열 때 "One or more errors occurred." 오류 발생
11874정성태4/20/201922672.NET Framework: 821. (번역글) .NET Internals Cookbook Part 6 - Object internals파일 다운로드1
11873정성태4/19/201921207.NET Framework: 820. (번역글) .NET Internals Cookbook Part 5 - Methods, parameters, modifiers파일 다운로드1
11872정성태4/17/201922027.NET Framework: 819. (번역글) .NET Internals Cookbook Part 4 - Type members파일 다운로드1
11871정성태4/16/201920814.NET Framework: 818. (번역글) .NET Internals Cookbook Part 3 - Initialization tricks [3]파일 다운로드1
11870정성태4/16/201919002.NET Framework: 817. Process.Start로 실행한 콘솔 프로그램의 출력 결과를 얻는 방법파일 다운로드1
11869정성태4/15/201924815.NET Framework: 816. (번역글) .NET Internals Cookbook Part 2 - GC-related things [2]파일 다운로드2
11868정성태4/15/201920793.NET Framework: 815. CER(Constrained Execution Region)이란?파일 다운로드1
11867정성태4/15/201920004.NET Framework: 814. Critical Finalizer와 SafeHandle의 사용 의미파일 다운로드1
11866정성태4/9/201923181Windows: 159. 네트워크 공유 폴더(net use)에 대한 인증 정보는 언제까지 유효할까요?
11865정성태4/9/201918866오류 유형: 529. 제어판 - C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools is not accessible.
11864정성태4/9/201917569오류 유형: 528. '...' could be '0': this does not adhere to the specification for the function '...'
11863정성태4/9/201917440디버깅 기술: 127. windbg - .NET x64 EXE의 EntryPoint
11862정성태4/7/201920104개발 환경 구성: 437. .NET EXE의 ASLR 기능을 끄는 방법
11861정성태4/6/201919489디버깅 기술: 126. windbg - .NET x86 CLR2/CLR4 EXE의 EntryPoint
11860정성태4/5/201923333오류 유형: 527. Visual C++ 컴파일 오류 - error C2220: warning treated as error - no 'object' file generated
11859정성태4/4/201920552디버깅 기술: 125. WinDbg로 EXE의 EntryPoint에서 BP 거는 방법
... 76  77  78  79  80  81  [82]  83  84  85  86  87  88  89  90  ...