>  기사  >  데이터 베이스  >  단일 테이블의 백업 및 복원을 위한 mysql 샘플 코드에 대한 자세한 소개

단일 테이블의 백업 및 복원을 위한 mysql 샘플 코드에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-18 13:55:351185검색

아래 편집자는 단일 테이블의 백업 및 복원을 위해 mysql에 대해 간략하게 설명합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 편집기를 따라 살펴보겠습니다

A. MySQL 백업 도구 xtrabackup 설치

1. percona 공식 xtrabackup의 바이너리 버전입니다. ; 바이너리 버전을 압축해제하여 사용할 수 있습니다.

2. xtrabackup 압축 풀기 및 연결 만들기

tar -xzvf percona-xtrabackup-2.3.4-
Linux
-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/percona-xtrabackup-2.3.4 /usr/local/xtrabackup

3. PATH 환경 설정 변수

export PATH=/usr/local/xtrabackup/bin/:$PATH

B. mysql 데이터베이스

에서 사용자 백업 사용자 및 권한을 생성합니다. 1

    create user backuper@'localhost' ident
if
ied by 'backup123';
        create user backuper@'127.0.0.1' identified by 'backup123';

2. 인증

grant reload,lock tables,replication client,process,
super
 on *.* to 'backuper'@'localhost';
        grant create,insert,select on percona_schema.xtrabackup_history to 'backuper'@'localhost';
        grant reload,lock tables,replication client,process,super on *.* to 'backuper'@'127.0.0.1';
        grant create,insert,select on percona_schema.xtrabackup_history to 'backuper'@'127.0.0.1';

C. 백업 전 확인 이 단계의 주요 목적은 나중에 복원 작업을 수행할 때 복원이 유효한지 확인하는 것입니다. ;(제작에는 그런 단계가 없습니다.

1.

select * from tempdb.dictmajor;   
select * from dictmajor;
        +--------------+-----------------+        
        | column_value | column_mean     |        
        +--------------+-----------------+        
        |            1 | 汉语言文学      |        
        |            2 | 精算            |        
        |            3 | 生物制药        |        
        |            4 | 材料化学        |        
        |            5 | 商务英语        |        
        |            6 | 考古            |        
        |            7 | 外交            |        
        |            8 | 导游            |        
        +--------------+-----------------+

D. tempdb.dictmajor 테이블 백업

1. 백업 명령

innobackupex --host=127.0.0.1 --user=backuper --password=backup123 --port=3306 --include='tempdb.dictmajor' /tmp/tempdb

2. 백업이 완료되면 현재 파일이 생성됩니다. 디렉터리(/tmp/tempdb) 시간으로 명명된 디렉터리에는 백업 파일

   tree /tmp/tempdb/
        /tmp/tempdb/
        └── 2016-09-10_18-25-16
            ├── backup-my.cnf
            ├── ibdata1
            ├── tempdb
            │   ├── dictmajor.frm
            │   └── dictmajor.ibd
            ├── xtrabackup_binlog_info
            ├── xtrabackup_checkpoints
            ├── xtrabackup_info
            └── xtrabackup_logfile

                                       
tempdb.dictmajor 테이블이 포함되어 있습니다(테이블 정의는 여기에 저장되어야 합니다. 복원 시 사용)

mysql>drop table tempdb.dictmajor;
F. 일관된 백업 세트를 얻으려면 복원 작업 전에 로그 롤포워드 및 롤백이 필요합니다

1. 롤포워드 & 롤백 로그

innobackupex --apply-log --export /tmp/tempdb/2016-09-10_18-25-16/

2. 롤포워드 & 롤백 전 비교

  tree /tmp/tempdb/
        /tmp/tempdb/
        └── 2016-09-10_18-25-16
            ├── backup-my.cnf
            ├── ibdata1
            ├── ib_logfile0
            ├── ib_logfile1
            ├── tempdb
            │   ├── dictmajor.cfg
            │   ├── dictmajor.exp
            │   ├── dictmajor.frm
            │   └── dictmajor.ibd
            ├── xtrabackup_binlog_info
            ├── xtrabackup_binlog_pos_innodb
            ├── xtrabackup_checkpoints
            ├── xtrabackup_info
            └── xtrabackup_logfile

                                           tempdb.dictmajor 테이블


1 tempdb.dictmajor 테이블을 생성합니다


아아아아

2. tempdb.dictmajor의 테이블스페이스 파일

  create table dictmajor(
        column_value tinyint not null,
        column_mean varchar(32) not null,
        constraint pkdictmajor primary key (column_value));
3. 백업의 테이블스페이스 파일을 tempdb.dictmajor에 복사합니다. 여기서 테이블스페이스는

alter table tempdb.dictmajor discard tablespace;
여야 합니다.  

4. 테이블스페이스 파일 가져오기

   cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.ibd /usr/local/mysql/data/tempdb/
        cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.exp /usr/local/mysql/data/tempdb/
        cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.cfg /usr/local/mysql/data/tempdb/
        chown -R mysql:mysql /usr/local/mysql/data/tempdb/*

5. dictmajor 테이블 복구 상태 확인


아아앙

- --------------------------- ---------- ------------

이전 섹션에서는 xtrabackup을 사용하여 테이블을 백업했습니다. 해당 응용 시나리오는 데이터 볼륨입니다. 즉, 현재 시나리오에서는 간단한
백업 도구도 요구 사항을 충족할 수 있습니다. 🎜>

이제 mysqldump 백업의 일반 단계가 제공됩니다.

A: 백업 사용자 생성

1. >

alter table tempdb.dictmajor import tablespace;

🎜>

B: tempdb.dictmajor 테이블 백업

1.

      select * from dictmajor;
        +--------------+-----------------+
        | column_value | column_mean     |
        +--------------+-----------------+
        |            1 | 汉语言文学      |
        |            2 | 精算            |
        |            3 | 生物制药        |
        |            4 | 材料化学        |
        |            5 | 商务英语        |
        |            6 | 考古            |
        |            7 | 外交            |
        |            8 | 导游            |
        +--------------+-----------------+

C: 백업된 테이블 삭제


1.

  create user dumper@'127.0.0.1' identified by 'dumper123';
        grant select on *.* to dumper@'127.0.0.1';
        grant show view on *.* to dumper@'127.0.0.1';
        grant lock tables on *.* to dumper@'127.0.0.1';
        grant trigger on *.* to dumper@'127.0.0.1';
D: tempdb.dictmajor 테이블 복원


1.

아아앙E: 복원 효과 검증


1.dictmajor에서 *를 선택하세요.

mysqldump --host=127.0.0.1 --port=3306 --user=dumper --password=dumper123 --quick tempdb dictmajor >/tmp/tempdb.dictmajor.sql

위 내용은 단일 테이블의 백업 및 복원을 위한 mysql 샘플 코드에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.