본문 바로가기

내가 당면한 문제와 해결방안

pg_dump, pg_restore huge size

삽질이죠

말그대로...

 

개발 db를 날려서 (ddl-auto=validate으로 되어있던 것을 우연히 ctrl c ctrl v 한 코드를 복붙, create으로 바꾸게 되면서) 이 일이 벌어졌다. 다른 테이블들은 별로 문제가 없었는데. 큰 데이터가 많이 든 테이블이 문제였다. 지역데이터는 하나 하나가 꽤 큼.

 

 

명령어 같은 경우에는 그냥 doc 읽으면 있는 내용이지만.

추후 나의 편의를 위하여 간단히 기재.

상황에 따라 다를것이므로 명령어는 doc을 참고하세요.

 

과정

1) pg_dump 로 bak 파일의 형태로 압축
pg_dump -Fc 디비이름 --table=테이블이름 --verbose --port=디폴트아니면기재 -U 유저이름 > 파일이름.bak

2) 그것을 gzip 명령어로 .bak.gz 형태의 파일로 만들고
gzip --best 파일이름.bak

3) sftp로 centos -> windows로 가져온뒤

4) 망 간 자료전송시스템으로 가져옴(얘가 bak을 받지 않아서 gz으로 압축함)

5) 이것을 개발하는 망에서 받고(windows) 다시 centos에 sftp로 전송

6) gunzip 해주고
gunzip 파일이름.bak.gz

7) pg_restore -Fc 를 통해 restore
pg_restore -Fc 파일이름.bak --dbname=디비이름 --table=테이블이름

 

 

하여 

 

배운것

 

ddl-auto=validate 의 의미

centos background 잡

압축 명령어.

ls -l 명령어 보기 편하게 하는 방법ㅋ 

등 이었다.

어쨌든간 최대한 OS간, 프로그램간, 프로세스간 범용적으로 사용할 수 있는 확장자로.. 최대한 데이터를 끌고 오는 것이 포인트겠다. 그래도 뭐... 삽질도 원하던 결과로 가는 과정이니 꼭 나쁜 것만은 아니야...(으응?)