메뉴 건너뛰기

2016.12.23 18:22

테이블 체크, 백업

조회 수 7478 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
* mysql sell 상에서 Ctrl+a를 누르면 문장의 맨 앞으로, Ctrl+e를 누르면 문장의 맨 뒤로,
화살표 키(↑)를 누르면 전에 사용했던 명령들을 볼 수 있어 재사용할 수 있다.

* shell>mysql --tee=mysql_qry.txt -u root -p : mysql 서버 안에서 행한 모든 것이 mysql_qry.txt 파일로저장

* shell>mysql -E -u root -p : 쿼리 결과를 수직으로 출력. -E 옵션없이 시작한 후, mysql shell 상에서
수직으로 출력하려면 끝에 \G를 붙이면된다.

* perror : mysql에서 에러 원인 확인 shell>perror 145 (145번 에러 내용 표시)

*reload : flush-privileges 명령과 같다.

*shutdown : mysql 서버를 중지 시킨다.

MYISAMCHK를 이용한 테이블 체크 및 복구

select 나 desc 쿼리를 통해 테이블 정보가 보이지 않을 경우 테이블이 깨진것이다.

myisamchk 를 사용하기 전 주의할 점 : ① mysql 서버를 중지시키고 사용해야 한다.
② mysql 서버를 중지 시키면 안될경우, 특정 테이블에만
lock을 걸고 사용해야한다.
③ myisamchk 유틸리티를 사용하기 전에 백업을 하는것이 좋다.

테이블 체크 : shell>myisamchk 테이블명(경로지정해줘야함)

테이블 체크 옵션 : -m 빠르고, 99.99% 에러를 찾는다.

테이블 복구 : shell>myisamchk --recover 테이블명

테이블 복구 옵션 : -er 옵션을 사용해 보고, 안될 경우 -fo 옵션 사용.

shell>myisamchk -fo 테이블명

CHECK TABLE 문과 REPAIR TABLE 문 이용한 테이블 체크 및 복구

테이블 체크 : mysql>check table 테이블명;

테이블 복구 : mysql>repair table 테이블명;

*테스트를 위해 고의로 테이블을 깨지게 할려면 mysql 서버를 중지시키고 data디렉토리에서
"테이블명.MYD" 파일을 메모장으로 열어서 일부 수정해주면된다.


백업

1. data 디렉토리를 백업하는 방법

shell>tar cvfz mysql_data.tar.gz /usr/local/mysql/data

2. mysqldump 유틸리티 사용

shell>mysqldump -u root -p -A > all.sql (모든 데이터베이스를 백업)
shell>mysqldump -u root -p test > db.sql (test DB만 백업)
shell>mysqldump -u root -p --databases test test2 > dbs.sql (test 와 test2 데이터베이스를 백업)
shell>mysqldump -u root -p test board > table.sql (test DB 안에 board란 테이블만 백업)

* 일정 시간마다 자동백업 : shell 프로그래밍을 작성하여 cron에 등록시켜 줌.

ex)dumpx란 shell 프로그래밍을 작성해보자 (/tmp 디렉토리 아래 기록)

#vi dumpx
#!/bin/sh

#########################################
# MySQL 백업 script #
#########################################

# 날짜 지정-파일명-저장 디렉토리 설정
DATE=`/bin/date +%d-%b-%Y-%H-%M-%S`
FILEPREFIX="MySQL-Backup-$DATE"
TEMPDIR="/tmp"

#
# HOSTNAME=`/bin/hostname`
#

# root와 비밀번호
USERNAME="root"
PASSWORD="123456"
# --all-databases일 경우 전체 DB 백업
DATABASE="test"

# 메일 정보 - 백업 성공시 메일 보내기
RECIPIENT="friendvirus@naver.com"
NICEDATE=`/bin/date +%b-%d-%Y`
SUBJECT="MySQL 백업 성공 -$NICEDATE"

# backup
# /usr/local/mysql/bin/mysqldump 절대 경로를 모두 써주는 것이 좋다.
/usr/local/mysql/bin/mysqldump -u$USERNAME -p$PASSWORD $DATABASE > $TEMPDIR/$FILEPREFIX.
sql | tar -cf $TEMPDIR/$FILEPREFIX.tar.gz -z $TEMPDIR/$FILEPREFIX.sql | rm -f
$TEMPDIR/$FILEPREFIX.sql


:wq!

shell>chmod 711 dumpx
shell>./dumpx

*매일 새벽 05시 35분에 dumpx스크립트를 실행하는 것을 cron에 등록해 보자.

shell>crontab -e
35 05 * * * /usr/local/mysql/bin/dumpx

:wq!

주의>DATE에서 사용된 기호 (`)는 ~ 에있는 기호이다. 작음따옴표(')아님.

복구 : shell>mysql -u root -p test < table.sql shell>mysql -u root -p < db.sql

  1. No Image 19Feb
    by
    2019/02/19 Views 2424 

    한글정렬 order by

  2. 하나의 쿼리로 여러 테이블의 데이터 삭제

  3. No Image 23Dec
    by
    2016/12/23 Views 6085 

    필드 변경, 추가, 삭제

  4. No Image 18Jul
    by
    2018/07/18 Views 2810 

    특정 테이블만 replication 하거나 제외하는 방법

  5. No Image 16Nov
    by
    2017/11/16 Views 8859 

    특정 COLUMN을 제외하고 SELECT/INSERT하는 방법

  6. No Image 26Mar
    by
    2021/03/26 Views 186 

    테이블, 컬럼 charset 변경

  7. No Image 26Mar
    by
    2021/03/26 Views 164 

    테이블, 레코드 복사

  8. No Image 22Dec
    by
    2017/12/22 Views 4940 

    테이블 파티셔닝

  9. No Image 12Apr
    by
    2017/04/12 Views 5272 

    테이블 타입(Heap, MyIsam, InnoDB...) 변경하기

  10. No Image 23Dec
    by 조쉬
    2016/12/23 Views 7478 

    테이블 체크, 백업

  11. No Image 23Dec
    by
    2016/12/23 Views 5783 

    테이블 복사, 테이블 비우기

  12. No Image 30Aug
    by
    2016/08/30 Views 6606 

    컬럼에 포함된 특정문자열을 검색해서 그 문자로 또 다른 테이블검색하기

  13. No Image 27Feb
    by
    2014/02/27 Views 6012 

    컬럼내 특정 문자를 다른문자로 변경하고자 할때

  14. No Image 11Jan
    by
    2019/01/11 Views 3163 

    중복데이터 하나만 빼고 삭제

  15. 전체 텍스트 검색과 파티션

  16. 전체 텍스트 검색과 파티션

  17. 일반적인 오류를 해결하는 유용한 정보들

  18. 이벤트 스케줄러 등록하기

  19. No Image 19Dec
    by
    2015/12/19 Views 5996 

    월의 마지막 일수를 반환하는 함수입니다

  20. 외부접근 권한 주기

Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved