콘텐츠로 이동

2021 09 29

2021-09-29

Binlog

  • 참고: https://byedong.tistory.com/10
  • binlog 썰 - 원래 binlog는 replication을 위함 but 복구용도로도 매우 훌륭! - /etc/my.cnf에 log-bin 주석처리 되어있지 않다면, mysql은 기본적으로... - /usr/local/mysql/data 디렉토리에 - Host명-bin.000001 - Host명-bin.000002 - Host명-bin.000003... 등을 생성 - mysql 재시작할 때 마다 늘어나는 숫자! - binlog에는... - DDL (Create, Alter, Drop), DML (Insert, Update, Delete) 등이 기록 - binlog는 바이너리라서 변환 좀 해야 읽을 수 있음 - /usr/local/mysql/data/Host명-bin.0000001 >> 1.sql - 이렇게 백업 받은 파일에서 1.sql의 50000번쨰 SQL 문이 장애를 일으킨놈이라면 이걸 주석처리하자

Crontab

  • 참고 1: https://jdm.kr/blog/2
  • 참고 2: https://xrabcde.github.io/db-backup-auto/
  • Crontab 기본 - 윈도우의 스케줄러와 비슷 - "특정 시간에 특정 작업을 실행한다!" - $ crontab -e - 크론탭 설정할 수 있는 장소 - 각종 크론탭 명령 입력해두자 - $ crontab -l - cat 명령어로 파일 읽어들인 것처럼 표준 출력으로 크론탭 내용 - $ crontab -r - 크론탭 삭제 - 한 번 입력해볼까? 1. $ crontab -e 2. * * * * * ls -al 3. :wq
  • 주기 설정
    *      *      *      *      *
    분(0-59)  시간(0-23) 일(1-31)  월(1-12)   요일(0-7)
    

    - 숫자 범위로 입력하거나 * 로 입력하거나! - 예시들 - * * * * * /home/script/test.sh : 매분 test.sh 실행 - 45 5 * * 5 /home/script/test.sh : 매주 금요일 오전 5시 45분에 test.sh 실행 - 0,20,40 * * * * /home/script/test.sh : 매일 매시간 0분, 20분, 40분에 test.sh 실행 - 0-30 1 * * * /home/script/test.sh : 매일 1시 0분 ~ 30분 까지 매 분 test.sh 실행 - */10 * * * * /home/script/test.sh : 매 10분마다 test.sh 실행 - */10 2,3,4 5-6 * * /home/script/test.sh : 5일에서 6일까지 2,3,4시에 매 10분마다 tesh.sh 실행 - 기호들 - *: 매번 - -: 부터 어디까지 - /: 마다

MariaDB binlog

  • Overview - binlog는 DB 구조, 데이터 변경, 쿼리 등을 모두 저장 - CREATE, ALTER, INSERT, UPDATE, DELETE는 로그 되지만, SELECT, SHOW는 로그 안 됨 - binlog의 목적은 replication 사용. Master-Slave 구조 - MariaDB 서버에 binlog를 활성화 시키면 조금 느려짐 - binlog에도 민감한 정보가 포함될 수 있으니, 정보 보호가 매우 중요 - binlog는 binary로 저장됨. 따라서 에디터에서 보고 싶다면 mysqlbinlog를 활용해 변환해야함
  • Activating the Binary Log - binlog 활성화를 위해 --log-bin[=name] 옵션으로 서버를 시작할 것 - name을 안쓰면 datadir/log-basename-bin, datadir/mysql-bin, datadir/mariadb-bin 중 하나 - --log-basename 옵션을 추가하여 filename을 명시해주는 것을 추천 - binlog를 저장해두는 곳엔 binary log index가 포함되고, - 진행될수록 높은 번호의 binlog가 쌓임
    shell> ls -l 
    total 100
    ...
    -rw-rw---- 1 mysql adm 2098 Apr 19 00:46 mariadb-bin.000079
    -rw-rw---- 1 mysql adm  332 Apr 19 00:56 mariadb-bin.000080
    -rw-rw---- 1 mysql adm  347 Apr 19 07:36 mariadb-bin.000081
    -rw-rw---- 1 mysql adm  306 Apr 20 07:15 mariadb-bin.000082
    -rw-rw---- 1 mysql adm  332 Apr 20 07:41 mariadb-bin.000083
    -rw-rw---- 1 mysql adm  373 Apr 21 07:56 mariadb-bin.000084
    -rw-rw---- 1 mysql adm  347 Apr 21 09:09 mariadb-bin.000085
    -rw-rw---- 1 mysql adm  398 Apr 21 21:24 mariadb-bin.000086
    -rw-rw---- 1 mysql adm  816 Apr 21 17:05 mariadb-bin.index