10 MySQL의 데이터 백업 및 복구

01- 데이터 백업

# 1, 백업 mysqldump는 명령 
mysqldump를 제공 MySQL 데이터베이스 백업을위한 매우 유용한 도구입니다. 
mysqldump는 명령이 실행되면, 데이터베이스는 텍스트 파일로 백업 할 수 있습니다, 텍스트가 실제로 CREATE 여러 및 INSERT 문을 포함, 당신은 이러한 진술 사용할 수있는 테이블과 데이터 삽입을 재 작성하십시오. 
다음 기본 구문은 다음 
mysqldump를 -u 사용자 -h 호스트 -p 암호 DBNAME [tbName 사용 [tbName 사용을 ...]]> filename.sql 
사용자가 사용자 이름을 나타낸다 로그인 패스워드와 패스워드, 숙주는이 로그온 한 사용자의 호스트 이름을 나타낸다 
DBNAME 인을 필요 데이터베이스 이름을 백업하는 방법, tbName 사용 DBNAME 데이터베이스 테이블의 데이터가 백업 할 테이블의 복수 백업 할 지정할 수 있습니다; 
오른쪽 화살표 기호 ' > ' mysqldump는 백업 데이터 테이블 정의 및 백업 파일에 기록 된 데이터를 말한다; 
의 filename.sql을 백업 파일 이름을 입력합니다. 

# 2, 단일 데이터베이스 및 백업 mysqldump를 사용하여 모든 테이블 
mysqldump를 -u booksdb 루트 -p> / 사용자 / huangyanpeng / 데스크탑 / db_test / booksdb_20190909.sql 

# 3, 데이터베이스 백업의 mysqldump에서 테이블을 사용하여. 
구문 것은 그대로 다음과 
mysqldump는을사용자 -H 호스트 -p DBNAME -u [tbName 사용 [tbName 사용 ...]]> filename.sql 
tbName 사용 테이블 이름의 복수의 공간으로 구분 중, 데이터베이스 테이블 이름으로 표시. 
모든 테이블 및 백업 데이터베이스 백업 테이블 사이의 차이는 : 테이블 이름은 데이터베이스 이름 DBNAME 후 백업 할 지정합니다. 

# 4 mysqldump를 사용하여 데이터베이스 백업 복수 
--databases -p mysqldump를 -u 사용자 -H 호스트 [DBNAME [DBNAME을 ...]]> filename.sql 
사용 - 베이스 파라미터 데이터베이스 중 적어도 한 명을 지정하면 여러 데이터베이스 이름 사이에 공백으로 구분. 
또한, 사용 --all- 모든 데이터베이스 시스템을 백업 할 수 있습니다 데이터베이스 매개 변수는 문은 그대로 다음 : 
mysqldump는 -u -h --all -p 호스트 사용자 - 데이터베이스> filename.sql 

# 실행 도움말 명령 
mysqldump는 - 도움말 

# 5, 사용 MySQLhotcopy 빠르게 백업에 도구 
데이터베이스 또는 단일 테이블을 백업하는 가장 빠른 방법,하지만 그것은 단지 컴퓨터 데이터베이스 디렉토리에서 실행할 수 있으며, 전용 테이블의 MyISM 유형을 백업 할 수 있습니다. 유닉스 시스템에서 실행 MySQLhotcopy.
다음과 같은 구문은 다음과 같습니다
db_name_1 mysqlhotcopy, ... db_name_n   / 경로 /에 / new_directory 

db_name_1 ... db_name_n은 데이터베이스 이름을 백업해야합니다;
 / 경로 /로 / new_directory 백업 파일 디렉토리를 지정합니다. 
사용 MySQLhotcopy 테스트 데이터베이스의 백업 은 / usr / 백업 디렉토리 아래에 다음 문을 입력 : 
mysqlhotcopy   -u 루트 -p 테스트는 / usr / 백업 
, MySQLhotcopy을 실행하려면 테이블, RELOAD 권한이 액세스 테이블 파일 백업, SELECT 권한이 있어야합니다 및 LOCK 테이블 권한. 

주 : 
( 1 )이 백업의 MyISAM과 ARCHIVE 테이블 만 복사 다른 위치로 내용의 테이블을 mysqlhotcopy. 
( 2 데이터 이노 테이블 유형 백업시) 오류 메시지가 발생한다. 
( 로컬 3) 때문에, 그것은 다른 하드웨어 또는 운영체제에없는 이식, 파일 형식을 복사한다.

02- 데이터 복구

# 복원 할 MySQL의 명령을 사용하여 1, 
크리에이트 포함 된 텍스트 파일, INSERT 문은 당신이 데이터베이스로 MySQL의 명령을 사용하여 백업 된합니다. 
SQL 백업 파일이 (가), INSERT 문 (가끔 DROP 문) CREATE 포함되어 있습니다. 
구문은 다음입니다 : 
MySQL의 -u 루트 -p [DBNAME] < filename.sql 
매개 변수 : 
사용자가 사용자 이름 backup.sql 문에서 실행되고, - p 형 표현은 사용자 이름과 암호를 입력합니다 
DBNAME 데이터베이스 이름입니다 filename.sql 파일 mysqldump는 경우 실행이 데이터베이스 이름을 지정하지 않는 경우, 도구에 의해 생성 문이 포함 된 데이터베이스 파일을 만듭니다. 
예 : 
MySQL의 -u 루트 -p booksDB </.../ booksdb_20190909.sql 
문을 실행하기 전에, 먼저 booksDB MySQL 데이터베이스 서버를 작성해야합니다. 
서버가 이미 로그인되어있는 경우, 당신은 또한 SQL 명령으로 소스 파일을 사용할 수 있습니다. 
소스 filename.sql 
해당 데이터베이스에 제 1 스위치. 

# 2, 직접 데이터베이스 디렉토리에 복사 

# 3, mysqlhotcopy 신속한 복구가 
 정지 MySQL 서버를 실행 MySQLhotcopy 백업 이후 파일이 또한 데이터베이스를 복원하는 데 사용할 수 있습니다,
데이터를 저장하기위한 백업 위치 (MySQL의 데이터 폴더)에 데이터베이스 파일을 복사 MySQL의 서비스를 다시 시작합니다.
루트 사용자가 수행하는 작업이 데이터베이스 파일의 소유자를 지정해야하는 경우, 입력 문장은 다음과 같습니다 
대한 Chown -R & LT mysql.mysql은 / var / lib 디렉토리 / MySQL을 / DBNAME 

예 : 
백업 복사본에서 복구 MySQLhotcopy 데이터베이스와 같은 입력 문장은 다음과 같습니다 : 
CP - R 및 LT는 / usr / 백업 / 테스트 usr / 지방 / MySQL은 / 데이터 
명령문을 실행 완료되면, 서버를 다시 MySQL이 백업 상태로 복귀한다. 

참고 : 
( 1 이미 존재하는 데이터베이스, 삭제 DROP 데이터베이스를 복원하려면 이후)를하고 성공을 복원합니다. 
( 또한 2) MySQL의 다른 버전과 호환 가능하도록 데이터 복구 후에 만 사용될 수있다.

03 데이터 마이그레이션

# 1은 동일한 MySQL 데이터베이스의 버전 간 마이그레이션 
쉬운 방법은 데이터베이스 파일 디렉토리를 복사하는 것입니다, 그냥의 MyISAM 엔진 테이블을보십시오. 
InnoDB 테이블의 경우, 직접 파일 데이터베이스를 백업하는 방식 등을 복사 할 수 없습니다. 
따라서, 가장 일반적이고 안전한 방법은 데이터 내보내기에 mysqldump는 명령을 사용하여 다음 목표 MySQL 데이터베이스 서버에서 가져 오기 명령을 사용하는 것입니다. 
예 : 
www.bcd.com의 모든 호스트에 호스트 마이그레이션 www.abc.com의 MySQL 데이터베이스. 명령 호스트 www.abc.com에서 실행하면 다음과 
mysqldump는 -H www.abc.com -uroot - P 암호 DBNAME은 | -uroot-www.bcd.com는 -H MySQL의 - P 암호 
데이터 mysqldump는은 파이프 라인을 통해 직접 소개 | MySQL의 명령에 전달하면 호스트 www.bcd.com 데이터베이스를 가져옵니다. 
DBNAME은 전체 데이터베이스를 마이그레이션하려면 데이터베이스 필요성의 이름이 매개 변수를 사용하여 마이그레이션 될 --all- 데이터베이스. 

# 2, MySQL 데이터베이스의 다른 버전 사이의 마이그레이션 
된 - "새로운 기능 : 
( 1 MyISAM 테이블 용) 엔진, 직접 데이터베이스 파일을 복사 할 수 있습니다, 당신은 MySQLhotcopy 도구, mysqldump는 도구를 사용할 수 있습니다. 
( 2) InnoDB의 테이블 엔진의 경우, 일반적으로 단지 mysqldump는 수출 데이터를 사용합니다. 그런 다음 대상 서버로 가져올 MySQL의 명령을 사용합니다.  - 최고 사용 mysqldump는 이름 내 보낸 다음 대상 데이터베이스를 가져옵니다 오래된 ". 

# 다른 데이터베이스 사이의 3, 마이그레이션

가져 오기 및 테이블의 수출 04-

# 1, 사용 SELECT ... INTO OUTFILE는 텍스트 파일을 내보낼 수 있습니다 
(1 내 보낸 정의이 시간이 수출 데이터를 포함하는 SELECT 문을 사용할 수 있도록시) MySQL 데이터베이스 데이터를 내보낼. 
( 2 ) 파일이 서버 호스트에서 만들어, 하나는이 구문을 사용하여 쓰기 권한 (파일 권한)이 있어야합니다. 
( . 3) " SELECT가 ... OUTFILE '파일 이름'INTO " SELECT 문 양식 파일을 작성 행을 선택할 수 있습니다, 파일 이름은 기존 파일이 아닙니다. 

다음과 같이 기본 구문은 
선택 (SELECT) ColumnList를 WHERE 테이블에서 조건 상기 조건 INTO OUTFILE ' 파일 이름 ' [옵션]
 --options 옵션

 

추천

출처www.cnblogs.com/pgxpython/p/11725721.html