ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CentOS7_MySQL 5.7.30 Xtrabackup (+Replication 구성)
    데이터베이스/MySQL 2021. 4. 26. 17:31
    728x90

    0. 백업 Tool 다운로드

     

    Percona Software Downloads

    Percona provides free, open source software for MySQL and MongoDB. For specific details, please visit the individual product pages, where you can also find current documentation for all of our maj

    www.percona.com

    • AS-IS 와 TO-BE  모두 다운받아 준다. (Replication일 경우 Master 와 Slave 모두 다운받아 준다.)

    • 2.4.22 버전 다운로드 -> Linux-Generic 선택

    #링크복사하여 wget 해주기
    [root] wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.22/binary/tarball/percona-xtrabackup-2.4.22-Linux-x86_64.glibc2.12.tar.gz
    [root] tar xvzf percona-xtrabackup-2.4.22-Linux-x86_64.glibc2.12.tar.gz

     

    • MySQL로 소유자를 바꾸고 bash에 추가
    [root] mv percona-xtrabackup-2.4.22-Linux-x86_64.glibc2.12 /mysql/local/xtrabackup  #경로 사용자 지정
    [root] chown mysql:mysql /mysql/local/xtrabackup
    
    [mysql] vi .bash_profile
    ## XtraBackup Binary PATH
    PATH=$PATH:/mysql/local/xtrabackup/bin

     

    1. AS-IS 데이터 풀백업

    • Replication 구성일 경우 이쪽이 Master server 가 된다. 

    • Xtra Full Backup
    #백업받을 디렉토리 생성
    [root] mkdir /backup
    
    #설정 파일에 xtrabackup 경로 추가
    [mysql] vi .bash_profile
    ## XtraBackup Binary PATH
    PATH=$PATH:/mysql/local/xtrabackup/bin    #자신이 설정한 xtrabackup 경로에 따라 달라짐
    
    #AS-IS 백업 수행
    [mysql] xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/backup --user=root --password=1 --socket=/tmp/mysql.sock
    
    #이관을 위해 tar파일로 압축 후 TO-BE MASTER서버로 scp 실행
    [root] tar -cvf backup.tar backup
    [root] scp backup.tar [TO-BE 서버 IP]:/

     

    • 풀 백업 이후 데이터 변경을 대비하여 체크포인트 확인
    [mysql@backup] cat xtrabackup_checkpoints

     

    2. 백업 tar 풀고, TO-BE 서버에 적용

    • Replication 구성일 경우 이쪽이 Slave 서버가 된다. 

    • 압축해제
    [root@/] tar xvf backup.tar 
    • 적용
    #DB 셧다운
    [mysql] mysqladmin -uroot -p shutdown
    -> 1
    
    #원본 데이터 및 로그 파일 cp 후 삭제
    [mysql@/] cp -r data data_org
    [mysql@/] cp -r log log_org
    [mysql@/] rm -rf data/* log/binlog/* log/relay/*
    
    #로그 적용
    [mysql] xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/backup
    
    #백업 데이터에 있던 것을 데이터 디렉토리로 옮겨줌
    [mysql] xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/backup 
    
    #재기동
    [mysql] mysqld --defaults-file=/etc/my.cnf &

     

     

    (Replication 구성일 경우만 진행)

    3. CHANGE TO MASTER 명령어로 동기화


    • 마스터 리두로그의 파일과 포지션 확인
    <<Master>>
    
    [mysql] cat xtrabackup_binlog_info
    mysql-bin.000001             1316

     

    • 슬레이브 설정
    sql> CHANGE MASTER TO
    MASTER_HOST='[Master IP]',
    MASTER_PORT=[Master Port 디폴트 3306],
    MASTER_USER='repl',
    MASTER_PASSWORD='repl',
    MASTER_LOG_FILE='[로그파일]',
    MASTER_LOG_POS=[로그 포지션],
    MASTER_CONNECT_RETRY=10;
    
    #슬레이브 수행
    sql> start slave ;
    728x90

    댓글

Designed by Tistory.