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

비밀번호

댓글 작성자
 




... 136  137  138  [139]  140  141  142  143  144  145  146  147  148  149  150  ...
NoWriterDateCnt.TitleFile(s)
1579정성태1/12/201422299오류 유형: 207. System.ArgumentException was unhandled - Message=[net_WebHeaderInvalidControlChars]
1578정성태1/11/201433860개발 환경 구성: 209. Fiddler에서 WebSocket 통신을 모니터링하는 방법 [1]
1577정성태1/11/201424076오류 유형: 206. WriteFile Win32API 사용 시 비정상 종료 현상 [3]
1576정성태1/11/201442010Windows: 81. 긴 이름의 파일/폴더 삭제하는 법 [5]
1575정성태1/11/201422489오류 유형: 205. Exception calling "Provision" with "0" argument(s): "The timer job did not complete running within the allotted time."
1574정성태1/11/201424471오류 유형: 204. An unhandled exception ('System.Security.Cryptography.CryptographicException') occurred in OWSTIMER.EXE
1573정성태1/11/201422258오류 유형: 203. 이벤트 로그 에러 - MsiInstaller에서 Chart Controls 설치 관련 오류 발생
1572정성태1/9/201425753.NET Framework: 406. CoreLab - OraDirect .NET 사용법
1571정성태1/9/201421959.NET Framework: 405. override 메서드가 정의된 타입의 인스턴스로 base 메서드를 호출하는 방법 - 두 번째 이야기
1570정성태1/9/201425337Math: 11. C# 시뮬레이션 - 몬티홀 게임파일 다운로드1
1569정성태1/8/201422528Windows: 80. 윈도우 서버 백업의 복원하는 옵션 설명
1568정성태1/8/201423133오류 유형: 202. Hyper-V 서비스 시작 오류 - Not enough storage is available to complete this operation.
1567정성태1/8/201492471기타: 40. 오피스 2013 라이선스 리셋하는 방법 [5]
1566정성태1/7/201423423Windows: 79. 윈도우 8 - 스카이드라이브(skydrive)의 Online/Offline 동기화 방식 [1]
1565정성태1/3/201421903.NET Framework: 404. 리플렉션을 이용해 닷넷 LicenseManager를 우회할 수 있는 사례
1564정성태1/3/201422454.NET Framework: 403. override 메서드가 정의된 타입의 인스턴스로 base 메서드를 호출하는 방법파일 다운로드1
1563정성태1/3/201428203오류 유형: 201. ASP.NET 웹 사이트를 IIS 7 이상의 환경에서 호스팅할 때 500 오류 발생
1562정성태1/2/201432860.NET Framework: 402. 카카오톡 PC 버전 실행 시 개발자 컴퓨터에서 Themida 오류 나는 문제 - 두 번째 이야기
1561정성태1/1/201442410오류 유형: 200. 카카오톡 PC 버전 실행 시 개발자 컴퓨터에서 Themida 오류 나는 문제 [2]
1560정성태1/1/201421168오류 유형: 199. Hyper-V - Checkpoint 생성 오류
1559정성태12/30/201324405.NET Framework: 401. windbg에서 확인해 보는 관리 힙의 인스턴스 구조 [2]
1558정성태12/29/201333875.NET Framework: 400. 눈으로 확인하는 LayoutKind 옵션 효과 [2]파일 다운로드1
1557정성태12/27/201322926.NET Framework: 399. LayoutKind 옵션에 대해 [2]
1556정성태12/27/201343173개발 환경 구성: 208. IIS + Node.js 환경 구성 [8]
1555정성태12/27/201329930개발 환경 구성: 207. IIS의 80 포트를 공유하는 응용 프로그램 만드는 방법 [1]
1554정성태12/26/201335323Windows: 78. 마음에 드는 윈도우 8.1 태블릿 - 델 베뉴 8 프로 5830 [4]
... 136  137  138  [139]  140  141  142  143  144  145  146  147  148  149  150  ...