Mysql 축소 트랜잭션 로그 해결 및 문제 해결 방법

小云云
풀어 주다: 2017-12-25 13:33:08
원래의
1353명이 탐색했습니다.

이 글은 MySQL의 트랜잭션 로그와 로그 파일이 너무 커서 축소할 수 없는 문제를 해결하는 방법을 주로 소개합니다. 매우 좋고 참고할 만한 가치가 있으므로 모두에게 도움이 되기를 바랍니다.

一.MS SQL SERVER 2005

--1. 로그 지우기
exec('DUMP TRANSACTION 데이터베이스 이름 WITH NO_LOG')
--2 트랜잭션 로그 자르기:
exec('BACKUP LOG 데이터베이스 이름 WITH NO_LOG' )
--3. 데이터베이스 파일 축소(압축하지 않으면 데이터베이스 파일이 축소되지 않음
exec('DBCC SHRINKDATABASE (데이터베이스 이름) ')
--4. 자동 축소 설정 exec('EXEC sp_dboption 데이터베이스 이름, autoshrink, TRUE')

2. MS SQL SERVER 2008 &2008r2 &2012 &2016

--在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。
USE [master]
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE --简单模式
GO
USE 数据库名 
GO
--crm50sp1_log 为数据库日志文件逻辑名
DBCC SHRINKFILE (N'crm50sp1_log' , 11, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL --还原为完全模式
GO
로그인 후 복사
3. 로그 파일이 비정상적으로 커서 축소할 수 없는 문제

로그 파일이 비정상적으로 커서 축소할 수 없는 경우 이때 Submitted나 Rollback된 트랜잭션이 있는지 확인해야 합니다.

DBCC OPENTRAN 명령을 실행하여 매우 일찍 실행 중인 트랜잭션이 있는지 확인합니다. (트랜잭션 시작 시간이 메시지에 표시됩니다.) 트랜잭션이 제출되지 않았거나 롤백되지 않아 MinLSN이 앞으로 나아갈 수 없습니다.

이런 경우 두 가지 방법이 있습니다. 하나는 정보에 표시된 프로세스 번호를 통해 프로세스를 종료하는 것입니다. 종료 작업이 허용된 경우 서비스도 가능합니다.)

오랫동안 닫히지 않은 트랜잭션인 경우 단순 모드: 데이터베이스를 먼저 백업한 후 BACKUP LOG를 실행합니다. 데이터베이스 이름 WITH NO_LOG 전체 모드: 경우 전체 백업이 수행되지 않은 경우 전체 백업을 먼저 수행한 후 로그 파일을 백업하고 마지막으로 DBCC SHRINKFILE(N '로그 파일 논리 이름', 0, TRUNCATEONLY)을 실행하면 로그 파일만 축소됩니다.

로그 파일 논리 이름 다음 명령문을 통해 얻을 수 있습니다 USE erp Database go SELECT [name] FROM sys.database_files WHERE type_desc='LOG'

관련 권장 사항:


Mysql 트랜잭션 정보

php Mysql 트랜잭션 예제 코드 사용 방법

MySQL 트랜잭션 처리 예시 설명

위 내용은 Mysql 축소 트랜잭션 로그 해결 및 문제 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿