보통 데이터베이스 작업을 할 때 데이터가 날아갔을 때를 대비해, 데이터베이스를 덤프 받아 놓는다
오늘은 Postgres에서 특정 데이터베이스를 백업 받아보고, 새로 생성한 데이터베이스에 복제 해보자.
DB를 백업 받고, 원복하는 방법은 2가지가 있다.
첫번째. pgAdmin4를 활용하는 방법.
두번째. CMD창을 이용하여 pg_dump명령어를 활용하는 방법.
오늘은 두번째 방법을 통해 DB백업과 원복을 해보자.
1. 데이터베이스 백업
============================================================================
명령어
pg_dump --username=[DB 유저명] [DB명]
pg_dump --username=[DB 유저명] [DB명] > 경로 -- 필요시 경로 입력
이렇게만 하면 된다. Port번호가 Default인 5432가 아니라면 포트번호도 작성해줘야 한다. 작성해주지 않으면
포트번호가 맞지 않는다는 경고문이 뜰 것이다.
나 같은 경우는 포트번호를 5433으로 설정해놓았었기 때문에, 아래와 같이 명령문을 작성하였다.
pg_dump -p 5433 --username=postgres postgres2 -- 기본 명령어
pg_dump -p 5433 --username=postgres postgres2 > D:\postgres_backup.sql
pg_dump -p 5433 --username=postgres postgres2 > D:\postgres_backup.dump
가운데 보면 -p 5433이 들어갔다. 이렇게 실행하면 덤프가 떠진다.
나는 sql파일과 dump파일 2개를 백업 받아보았다.
2. 데이터베이스 복제하기
============================================================================
명령어
psql –-username=username –f <데이터베이스덤프파일명> <데이터베이스명>
나는 postgres2에서 덤프를 땄고 이것을 postgres3라는 데이터베이스에 복제하려 한다. 입력한 실제 명령어는 아래와
같다.
-- 포트번호가 default가 아니라 따로 입력해주었음 -p 5433
psql -p 5433 -—username=postgres –f D:\postgres_backup.sql postgres3
결과화면은 아래와 같다.
이제 DBeaver를 통해서 보면 복제한 스키마와 테이블이 잘 들어 간 것을 확인 할 수 있다.
'데이터베이스 > 쿼리' 카테고리의 다른 글
[XML] XML 수정시 서버재가동 없이 reloading 하기 (0) | 2022.04.09 |
---|---|
[Postgres] 테이블 컬럼명 바꾸기 (0) | 2022.03.03 |
[Postgres] cmd창에서 테이블 DDL 조회 방법 (0) | 2022.02.08 |
[Postgres] 테이블 정보 조회 ( 데이터베이스 목록, 테이블 목록, 스키마 목록, 컬럼 목록, 테이블 코멘트, 컬럼 코멘트 조회 ) (0) | 2022.02.08 |
[Postgres] cmd창에서 psql을 통해 SQL문을 사용해보자. (0) | 2022.02.08 |