찾다
데이터 베이스MySQL 튜토리얼binlog 로그를 자동으로 정리하는 MySQL 방법

지침:

MySQL 활성화 binlog 서버가 로그를 자동으로 정리하도록 설정되어 있지 않으면 기본적으로 binlog 로그가 유지됩니다. 시간이 지남에 따라 서버 디스크 공간이 binlog 로그로 가득 차서 MySQL 데이터베이스에 오류가 발생합니다.

binlog 로그를 안전하게 정리하려면 다음 방법을 사용하세요

1. 마스터-슬레이브 동기화 없이 로그를 정리합니다

mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB(지금(),간격) 5 DAY)';

#mysql은 5일 전의 binlog를 정기적으로 정리합니다.

mysql -u root -p #mysql 콘솔로 진입

#reset binlog;

2. MySQL 마스터-슬레이브 동기화에서 binlog 로그를 안전하게 삭제

1. mysql -u root -p #슬레이브 서버에 진입 mysql console
showslave statusG; #슬레이브 서버에서 어떤 로그를 읽고 있는지 확인하세요. 슬레이브 서버가 여러 개 있습니다. 가장 빠른 것을 대상 로그로 선택하세요.
2. 마스터 서버 mysql 콘솔에 들어가세요

show master log; #마스터 서버에서 일련의 로그 가져오기
PURGE MASTER LOGS TO 'binlog.000058'; #binlog.000005 이전 항목 삭제, binlog.000058 제외
'2016-06-22 이전 마스터 로그 제거 13:00:00'; #2016-06-22 13:00:00 이전 binlog 로그 지우기
이전 마스터 로그 제거 DATE_SUB( NOW( ), INTERVAL 3 DAY); #3일 전 binlog 로그 지우기

3. MySQL binlog 로그 자동 정리 설정

vi /etc/my.cnf #구성 편집

expire_logs_days = 15 #自动删除15天前的日志。默认值为0,表示从不删除。
log-bin=mysql-bin #注释掉之后,会关闭binlog日志
binlog_format=mixed #注释掉之后,会关闭binlog日志

:wq! #저장하고 종료

자세한 내용 보기:

mysql> >이름: 'PURGE BINARY LOGS'

설명:

구문:

PURGE { BINARY | MASTER } LOGS

{ TO 'log_name' | datetime_expr }

바이너리 로그는

MySQL 서버에서 수정된 데이터에 대한 정보가 포함된 파일 집합입니다.

로그는 바이너리 로그 파일 집합으로 구성됩니다. , 인덱스 파일(

http://dev.mysql.com/doc/refman/5.5/en/binary-log.html 참조).

PURGE BINARY LOGS 문은 다음을 삭제합니다. 지정된 로그 파일 이름이나 날짜 이전에 로그 인덱스 파일에 나열된

모든 바이너리 로그 파일.

BINARY와 MASTER는 동의어입니다.

인덱스 파일에 기록된 목록으로, 해당 로그 파일은

목록의 첫 번째 파일이 됩니다.

서버가

--log-bin 바이너리 로깅을 활성화하는 옵션.

URL: http://dev.mysql.com/doc/refman/5.5/en/purge-binary-logs.html

예:

'mysql-bin.010'으로 바이너리 로그 제거;

'2008-04-02 22:46:26' 이전에 바이너리 로그 제거;

다음은 다른 네티즌들이 제시한 방법들을 참고하시면 됩니다.

MYSQL 마스터-슬레이브 복제는 RBR을 사용합니다. 모드를 변경한 후 binlog의 형식은 "ROW"이며, 이는 많은 원래 키 중복 문제를 해결할 수 있습니다.

바쁜 마스터 DB에서 서버에서 binlog 로그 파일은 매우 빠르게 증가합니다. 정기적으로 삭제하지 않으면 하드 디스크 공간이 빠르게 채워집니다.

mysql 자동 정리 설정 Binlog 로그, my.cnf 구성:


expire_logs_days = 10

런타임 수정:

바이너리 로그 표시

'%log%'와 같은 변수 표시; 🎜>글로벌 설정 만료_logs_days = 10;

삭제하기 전에 해당 백업 전략을 채택할 수 있습니다.

10일 전 MySQL binlog 로그를 수동으로 삭제합니다.

DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY) 이전에 마스터 로그를 제거합니다.

표시 마스터 로그;

MASTER와 BINARY는 동의어입니다.


일반적으로 MIXED binlog 복사본을 사용하는 것이 좋습니다. http://dev.mysql.com/doc/refman/5.1/en/open-bugs-general.html의 지침: 복제 쿼리 수준 로깅 사용: 마스터는 실행된 쿼리를 바이너리에 기록합니다. log는 작동하는 매우 빠르고 컴팩트하며 효율적인 로깅 방법입니다. 대부분의 경우 완벽합니다.

첨부: 여러 MYSQL 복제 모드

MySQL 5.1.12부터 다음 세 가지 모드를 사용하여 달성할 수 있습니다.

– 기반 SQL 문 복제(문 기반 복제(SBR),

– 행 기반 복제(RBR),

– MBR(혼합 기반 복제).
따라서 binlog에는 STATEMENT, ROW 및 MIXED의 세 가지 형식이 있습니다. MBR 모드에서는 SBR 모드가 기본값입니다.

다음 상황을 제외하고 binlog 형식은 런타임 중에 동적으로 변경될 수 있습니다.
저장 프로세스 또는 트리거 도중
NDB가 활성화되었습니다

. 현재 세션 모드이며, 임시 테이블이 오픈되었습니다


binlog가 MIXED 모드를 채택하는 경우 다음과 같은 상황에서는 binlog 모드가 SBR 모드에서 RBR 모드로 자동 변경됩니다.
. DML 문이 NDB 테이블을 업데이트하는 경우
. 함수에 UUID()

가 포함된 경우 AUTO_INCREMENT 필드가 포함된 테이블이 2개 이상인 경우

. INSERT DELAYED 문
을 실행할 때 UDF
를 사용할 때 뷰를 생성할 때와 같이 뷰에서 RBR을 사용해야 하는 경우 UUID()가 사용됩니다. 기능

마스터-슬레이브 복제 모드 설정:
log-bin=mysql-bin
#binlog_format="STATEMENT"
#binlog_format="ROW"
binlog_format="MIXED"

런타임에 binlog 형식을 동적으로 수정할 수도 있습니다. 예를 들어
mysql> SET SESSION binlog_format = 'STATEMENT';
mysql> SET SESSION binlog_format = 'ROW';
mysql> 세션 binlog_format = '혼합';
mysql> SET GLOBAL binlog_format = 'STATEMENT';
mysql> SET GLOBAL binlog_format = 'ROW';
mysql> GLOBAL binlog_format = 'MIXED';

두 모드의 장점과 단점:

SBR 장점:
오랜 역사와 성숙한 기술
binlog 파일이 더 작습니다
binlog에는 모든 데이터베이스 수정 정보가 포함되어 있으며, 이는 데이터베이스 보안 및 기타 상황을 감사하는 데 사용할 수 있습니다.
binlog는 복제뿐만 아니라 실시간 복원에 사용됩니다
마스터와 슬레이브 버전이 다를 수 있으며, 슬레이브 서버 버전이 마스터 서버 버전보다 높을 수 있습니다
SBR 단점:
모든 UPDATE 문을 복사할 수 있는 것은 아니며, 특히 불확실한 작업이 포함된 경우에는 더욱 그렇습니다.
불확실한 상황에서 UDF 호출 복사 시 문제가 발생할 수 있습니다.
다음 함수를 사용하는 문은 복사할 수 없습니다:
* LOAD_FILE()
* UUID()
* USER()
* FOUND_ROWS()
* SYSDATE()(시작 시 –sysdate-is-now 옵션이 활성화되지 않은 경우)
INSERT … SELECT RBR보다 더 많은 행 수준 잠금을 생성합니다.
전체 테이블 스캔을 수행해야 하는 UPDATE를 복사할 때(WHERE 문에 인덱스가 사용되지 않음) RBR보다 더 많은 행 수준 잠금이 필요합니다. 추가 행 수준 잠금 요청
AUTO_INCREMENT 필드가 있는 InnoDB 테이블의 경우 INSERT 문은 다른 INSERT를 차단합니다. 명령문
일부 복잡한 명령문의 경우 슬레이브 서버의 리소스 소비가 더 심각하며 RBR 모드에서는 변경된 레코드에만 영향을 미칩니다
저장 기능(저장 프로세스 아님) )은 호출될 때 NOW() 함수를 한 번 실행합니다. 이는 나쁜 것일 수도 있고 좋은 것일 수도 있습니다
UDF 결정 슬레이브 서버에서도 실행해야 합니다
데이터 테이블이 마스터 서버와 거의 일치해야 합니다. 그렇지 않으면 복제 오류가 발생할 수 있습니다
복잡한 명령문 실행 시 오류가 발생하면 더 많은 리소스가 소모됩니다

RBR 장점:
어떠한 상황이라도 복제가 가능하여 가장 안전하고 신뢰성 있는 복제
대부분의 다른 데이터베이스 시스템과 동일한 복제 기술
대부분의 경우 슬레이브 서버의 테이블에 기본 데이터베이스가 있는 경우 키를 사용하면 복제 속도가 훨씬 빨라집니다.
다음 명령문을 복제할 때 행 잠금이 줄어듭니다.
* INSERT … SELECT
* INSERT
* AUTO_INCREMENT 필드를 포함하는 UPDATE 조건 없이 또는 많은 레코드를 수정하지 않고 또는 DELETE 문
INSERT, UPDATE, DELETE 문 실행 시 잠금이 적습니다
여러 스레드를 사용하여 서버에서 복제를 수행할 수 있습니다
RBR 단점:
binlog가 훨씬 큽니다
복잡한 롤백 중에 binlog에 많은 양의 데이터가 포함됩니다
메인 서버에서 UPDATE 실행 명령문을 사용하면 변경된 모든 레코드가 binlog에 기록되고 SBR은 한 번만 기록하므로 binlog의 동시 쓰기 문제가 자주 발생합니다.
UDF에서 생성된 대형 BLOB 값으로 인해 복제 속도가 느려집니다
어떤 명령문이 복사(암호화)되었는지 binlog에서 확인할 수 없습니다
비트랜잭션 테이블에서 SQL 문 더미를 실행할 때는 SBR을 사용하는 것이 가장 좋습니다. 모드를 사용하지 않으면 마스터 서버와 슬레이브 서버 간의 데이터 불일치가 발생하기 쉽습니다
또한 시스템 라이브러리 mysql의 테이블 변경에 대한 처리 지침은 다음과 같습니다.
채택할 경우 INSERT, UPDATE, DELETE가 테이블을 직접 연산할 경우 binlog_format
설정에 따라 로그 형식을 기록한다
사용할 경우 GRANT, REVOKE, SET PASSWORD 등의 관리문을 사용하여 이를 수행하면 무슨 일이 있어도 SBR 모드 녹화가 사용됩니다.
참고: RBR이 사용됩니다. 모드를 구현한 후에는 원래 발생했던 많은 기본 키 중복 문제를 해결할 수 있습니다. 예:
db_allot_ids에 삽입하려면 다음에서 *를 선택하세요. db_allot_ids 이 문은 다음과 같습니다. BINLOG_FORMAT=STATEMENT의
모드:
BINLOG 로그 정보:
——————————————–
BEGIN
/*!*/;
# at 173
#090612 16:05:42 서버 ID 1 end_log_pos 288 쿼리 thread_id=4 exec_time=0 error_code=0
SET TIMESTAMP=1244793942/*!*/;
db_allot_ids에 삽입 db_allot_ids에서 * 선택
/*!*/;

——————————————–


BINLOG_FORMAT=ROW 모드:
BINLOG 로그 정보는 :
——————————————–
빈로그 '
hA0yShMBAAAAMwAAAOAAAAAAA8AAAAAAAAAA1NOUwAMZGJfYWxsb3RfaWRzAAIBAwAA
hA0yShcBAAAANQAAAABUBAAAQAA8AAAAAAAEAAv/8AQEAAAD8AQEAAAD8AQEAAAD8AQEAAAD8AQEAAAA=
'/*!*/;

— ————————————–


로그 삭제 단계
1. 로그 파일 찾기
mysql> 로그;
+---+----------+
| Log_name | |
+---+----------+
|ablelee.000001 |
| 에이블리.000002 |125 |
| |
+---+------------+
2. bin-log 삭제(ablelee.000003 이전 로그 삭제) 그리고ablelee.000003)
mysql>은 포함되지 않습니다. 바이너리 로그를 'ablelee.000003'으로 삭제;
쿼리 확인, 영향을 받은 행 0개(0.16 초)

3. 쿼리 결과(현재 레코드는 하나만 있습니다.)

mysql> show binlog eventsG
*************** *** *********** 1. 행 ***************************
Log_name:ablelee.000003
Pos: 4
Event_type: Format_desc
Server_id: 1
End_log_pos: 106
정보: 서버 버전: 5.1.26-rc-log, Binlog 버전: 4
1행(0.01) 초)
(ablelee.000001 및ablelee.000002가 삭제되었습니다.)
mysql> 로그;
+---+----------+
| Log_name | |
+---+----------+
|ablelee.000003 | |
+---+------------+
세트의 1행(0.00 초)

(다른 형식은 삭제되었습니다!)
{MASTER BINARY} 로그 삭제 | 'log_name'
 이전의 {MASTER BINARY} 로그 제거 | 'date'
지정된 로그나 날짜 이전에 로그 인덱스에 나열된 모든 바이너리 로그를 삭제하는 데 사용됩니다. 해당 로그는 로그 인덱스 파일에 기록된 목록에서도 제거되어 해당 로그가 첫 번째가 됩니다.
예:
퍼지 마스터 로그는 'mysql-bin.010';
 '2008-06-22 이전 마스터 로그 제거 13:00:00';
3일 전의 binlog 지우기
DATE_SUB( NOW( ), INTERVAL 3 DAY);
BEFORE 변수의 날짜 인수는 'YYYY-MM-DD일 수 있습니다. hh:mm:ss' 형식입니다. MASTER와 BINARY는 동의어입니다.
삭제하려는 로그 중 하나를 현재 읽고 있는 활성 슬레이브 서버가 있는 경우 이 명령문은 작동하지 않으며 오류와 함께 실패합니다. 그러나 슬레이브가 정지된 상태에서 읽으려는 로그 중 하나를 지우면 슬레이브는 시작된 후 복제할 수 없습니다. 이 명령문은 슬레이브 서버가 복제되는 동안 안전하게 실행될 수 있습니다. 그들을 막을 필요는 없습니다.
로그를 지우려면 다음 단계를 따르세요.
1. 각 슬레이브에서 SHOW SLAVE STATUS를 사용하여 읽고 있는 로그를 확인합니다.
 2. SHOW MASTER를 활용하세요 LOGS는 마스터 서버에서 일련의 로그를 가져옵니다.
 3. 모든 슬레이브 서버 중에서 가장 오래된 로그를 확인합니다. 대상 로그입니다. 모든 슬레이브 서버가 최신 상태라면 이것이 목록의 마지막 로그입니다.

 4. 삭제할 모든 로그는 백업해두세요. (이 단계는 선택사항이지만 권장됩니다.)

5. 모든 로그를 정리하고 대상 로그는 정리하지 않습니다


위 MySQL의 binlog 로그 자동 정리 방법에 대한 내용입니다. 더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
MySQL의 역할 : 웹 응용 프로그램의 데이터베이스MySQL의 역할 : 웹 응용 프로그램의 데이터베이스Apr 17, 2025 am 12:23 AM

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

MySQL : 첫 번째 데이터베이스 구축MySQL : 첫 번째 데이터베이스 구축Apr 17, 2025 am 12:22 AM

MySQL 데이터베이스를 구축하는 단계에는 다음이 포함됩니다. 1. 데이터베이스 및 테이블 작성, 2. 데이터 삽입 및 3. 쿼리를 수행하십시오. 먼저 CreateAbase 및 CreateTable 문을 사용하여 데이터베이스 및 테이블을 작성한 다음 InsertInto 문을 사용하여 데이터를 삽입 한 다음 최종적으로 SELECT 문을 사용하여 데이터를 쿼리하십시오.

MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식Apr 17, 2025 am 12:21 AM

MySQL은 사용하기 쉽고 강력하기 때문에 초보자에게 적합합니다. 1.MySQL은 관계형 데이터베이스이며 CRUD 작업에 SQL을 사용합니다. 2. 설치가 간단하고 루트 사용자 비밀번호를 구성해야합니다. 3. 삽입, 업데이트, 삭제 및 선택하여 데이터 작업을 수행하십시오. 4. Orderby, Where and Join은 복잡한 쿼리에 사용될 수 있습니다. 5. 디버깅은 구문을 확인하고 쿼리를 분석하기 위해 설명을 사용해야합니다. 6. 최적화 제안에는 인덱스 사용, 올바른 데이터 유형 선택 및 우수한 프로그래밍 습관이 포함됩니다.

MySQL 초보자가 친숙합니까? 학습 곡선 평가MySQL 초보자가 친숙합니까? 학습 곡선 평가Apr 17, 2025 am 12:19 AM

MySQL은 다음과 같은 초보자에게 적합합니다. 1) 설치 및 구성이 쉽고, 2) 풍부한 학습 리소스, 3) 직관적 인 SQL 구문, 4) 강력한 도구 지원. 그럼에도 불구하고 초보자는 데이터베이스 디자인, 쿼리 최적화, 보안 관리 및 데이터 백업과 같은 과제를 극복해야합니다.

SQL은 프로그래밍 언어입니까? 용어를 명확하게합니다SQL은 프로그래밍 언어입니까? 용어를 명확하게합니다Apr 17, 2025 am 12:17 AM

예, sqlisaprogramminglanguages-pecializedfordatamanagement.1) 그것은 초점을 맞추고, 초점을 맞추고, 초점을 맞추고, sqlisessentialforquerying, 삽입, 업데이트 및 adletingdataindataindationaldatabase.3) weburer infriendly, itrequires-quirestoamtoavase

산성 특성 (원자력, 일관성, 분리, 내구성)을 설명하십시오.산성 특성 (원자력, 일관성, 분리, 내구성)을 설명하십시오.Apr 16, 2025 am 12:20 AM

산성 속성에는 원자력, 일관성, 분리 및 내구성이 포함되며 데이터베이스 설계의 초석입니다. 1. 원자력은 거래가 완전히 성공적이거나 완전히 실패하도록합니다. 2. 일관성은 거래 전후에 데이터베이스가 일관성을 유지하도록합니다. 3. 격리는 거래가 서로를 방해하지 않도록합니다. 4. 지속성은 거래 제출 후 데이터가 영구적으로 저장되도록합니다.

MySQL : 데이터베이스 관리 시스템 대 프로그래밍 언어MySQL : 데이터베이스 관리 시스템 대 프로그래밍 언어Apr 16, 2025 am 12:19 AM

MySQL은 데이터베이스 관리 시스템 (DBMS) 일뿐 만 아니라 프로그래밍 언어와 밀접한 관련이 있습니다. 1) DBMS로서 MySQL은 데이터를 저장, 구성 및 검색하는 데 사용되며 인덱스 최적화는 쿼리 성능을 향상시킬 수 있습니다. 2) SQL과 같은 ORM 도구를 사용하여 Python에 내장 된 SQL과 프로그래밍 언어를 결합하면 작업을 단순화 할 수 있습니다. 3) 성능 최적화에는 인덱싱, 쿼리, 캐싱, 라이브러리 및 테이블 부서 및 거래 관리가 포함됩니다.

MySQL : SQL 명령으로 데이터 관리MySQL : SQL 명령으로 데이터 관리Apr 16, 2025 am 12:19 AM

MySQL은 SQL 명령을 사용하여 데이터를 관리합니다. 1. 기본 명령에는 선택, 삽입, 업데이트 및 삭제가 포함됩니다. 2. 고급 사용에는 조인, 하위 쿼리 및 집계 함수가 포함됩니다. 3. 일반적인 오류에는 구문, 논리 및 성능 문제가 포함됩니다. 4. 최적화 팁에는 인덱스 사용, 선택*을 피하고 한계 사용이 포함됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기