mysql 및 pgsql을 사용하여 데이터베이스 백업을 수행하고 백업 작업을 복원하는 방법


머리말

직장에서 데이터베이스 마이그레이션 작업을 접했는데 기존의 navicate 데이터 연결 도구를 사용하면 데이터 손실과 같은 일련의 문제가 발생할 수 있으므로 mysql 및 pgsql 명령을 사용하여 내 개인 상황과 결합하여 마이그레이션을 수행합니다.Mysql 또는 pgsql은 반드시 사용하기 전에 준비하십시오.

1. mysql은 어떻게 백업을 합니까?

1.1, 데이터베이스 백업

mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
例如:
 mysqldump -hhostname -uroot -ppwd dataname >dataname.sql

1.2, 모든 데이터베이스 백업

mysqldump -h *.*.*.* -p -u username -p password --all-databases > /data/backup/mysql_db.sql

1.3, 테이블 백업

예를 들어:

mysqldump -hhostname -uroot -ppwd dataname specific_tabname1 specific_tabname2> dataname_specific_tabname.sql

1.4, 여러 데이터베이스 백업

mysqldump -hhostname -uusername -ppwd --databases dbname1 dbname2 dbname3 > multibackupfile.sql

1.5 데이터베이스 구조 내보내기

 mysqldump -hhostname -uroot -ppwd  -–add-drop-table --no-data dataname > dataname_nodata.sql

--no-data: 데이터 없음
--add-drop-table 각 create 문 앞에 drop table 명령 추가

1.6 백업 압축

2. 백업 압축

형식: mysqldump -h 호스트 IP -P 포트 -u 사용자 이름 -p 비밀번호 --데이터베이스 데이터베이스 이름 | gzip > 파일 이름
. 압축

mysqldump -h *.*.*.* -p -u username -p password --database mysql | gzip > /data/backup/mysql.sql.gz

둘, mysql 복원 백업

2.1 MySQL 데이터베이스 복원 명령

#database는 데이터베이스 이름입니다.

mysql -h . . . -u 사용자 이름 -p 암호 데이터베이스 < backupfile.sql

2.2 압축된 MySQL 데이터베이스 복원

데이터베이스는 데이터베이스 이름입니다.

gunzip < backupfile.sql.gz | mysql -u username -p password database

2.3 데이터베이스를 새로운 서버로 옮기기

데이터베이스는 데이터베이스 이름입니다.

mysqldump -u username -p password database | mysql –host=*.*.*.* -C database

2.4 데이터베이스 가져오기

소스 명령은 일반적으로 사용되며 특정 데이터베이스, mysql>source d:\test.sql을 입력하는 데 사용되며 다음 매개 변수는 스크립트 파일입니다.

3. pgsql 백업 방법

Linux 시스템에서 백업(여기서 단일 데이터베이스를 다른 서버로 마이그레이션하는 작업 소개)

-h 데이터베이스 IP 주소 연결
-p 데이터베이스 포트
-U 데이터베이스 사용자
-c 다시 만들기 전에 데이터베이스 개체 지우기
-d 데이터베이스 지정
-f 로컬 파일 경로에 대한 백업 지정

pg_dump -h 120.55.163.126 -p 5432 -U postgres -c -d homestead_pengze_prod -f
/ws/db-bak/homestead_pengze_prod.bak

提示:window安装的话进入pgsql的bin目录使用cmd目录执行命令

마이그레이션:
백업 파일을 대상 서버 디렉터리(예: /ws)에 복사하고, 다른 서버에 동일한 이름의 데이터베이스를 만들고, docker를 사용하여 대상 서버에 pgsql을 설치하고, 먼저 백업 스크립트를 컨테이너에 복사합니다
.

docker cp homestead_pengze_prod.bak postgresql:/

컨테이너에 들어가 다음 복원 백업 스크립트를 실행합니다.

docker exec -it postgresql /bin/sh

네, pgsql 복원 백업

복원 스크립트: -d 백업 파일
복원을 위한 -d 데이터베이스

psql -h 127.0.0.1 -p 5432 -U postgres -d homestead_pengze_prod -f
homestead_pengze_prod.bak

추천

출처blog.csdn.net/wei1359765074410/article/details/127634712