database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 5869 게시물 읽기
No. 5869
PostgreSQL 백업/복구 방법
작성자
초짜(kmsds)
작성일
2005-02-04 14:19ⓒ
2005-02-04 14:20ⓜ
조회수
10,588

데이터 베이스 백업/복구를 하려고 여기저기 자료를 찾아봤는데, 아직 해결을 못해서 질문드립니다.

버전은 8.0입니다.

도스프롬프트(cmd)에서

c:\program files\postgrsql\8.0\bin>pg_dump -U postgres -Ft test2 > file.dump

라고 해서 test2 데이터베이스를 file.dump 파일로 생성되었습니다.

저거 말고도

>pg_dump -f test.backup -U postgres test2 라고해서

test.backup 파일도 생성해보았습니다.

여기서 test.backup 과 file.dump 파일은 용량차이가 꽤 나던데..

왜 차이가 나는지도 사실 잘 모르겠네요

 

어쨋건 이를 가지고 pg_restore 명령을 이래저래 돌려봤는데 하나같이 돌아가지가 않네요

c:\program files\postgrsql\8.0\bin>pg_restore -d test > file.dump 등...

여러가지 옵션을 주고 실행해본결과.

여러가지 결과가 나왔는데요..

어떤 경우는 엔터를 치면 프롬프트는 한칸 내려간 상태로 한동안 멎어있는 경우도 있고

(이땐 복구가 좀 오래 걸려서 그러지 되겠지 하구 기다렸는데, 결국 30분이 넘게 그상태 그대로더라구요)

어떤 경우는 < password authentication failed for user "aa" > 라는 에러가 나기도 하구요.

(로그인이 윈도우로그인 aa(컴퓨터관리자계정)으로 한 상태에서 나는 에러..)

그외에도 여러가지 에러가 나면서 복구가 제대로 되질 않네요

 

그래서 이 게시판 검색에서 "복구", 'pg_restore" 등으로 검색을 수도 없이 해봤는데,

제가 잘 몰라서 그런건지는 몰라도 아직 해답을 못찾았습니다.

 

pgAdmin III에서 하는 백업/복구 말고 "프롬프트 상" 또는 "sql 쿼리"에서 처리할수 있는

구문좀 알려주시면 정말 감사하겠습니다~

 

아참... 예를 들어 test라는 데이터베이스를 통째로 백업(pg_dump)하고

test라는 데이터베이스를 지운 상태에서 다시 자동으로 test라는 데이터베이스 생성과 동시에

전에 있던 test데이터베이스 모양 그대로 복원되게 하고 싶습니다.

이 글에 대한 댓글이 총 3건 있습니다.

pg_restore 명령에서 사용할 수 있는 파일은

pg_dump 명령에서 덤프파일 포멧을 -Fc, -Ft 로 만든 놈만 사용할 수 있습니다 .

 

즉,

pg_dump -Fc(또는 -Ft) -f mydb.dump mydb

dropdb mydb

pg_restore -Fc(또는 -Ft) -C -d template1 mydb.dump

 

이런식으로 사용됩니다.

-Fc 는 -Ft 의 내부적인 압축 포맷입니다. 파일 사이즈는 작아지고, 덤프,리스토어 작업시간은 길어지고. 그렇습니다.

 

pg_restore 명령은 복구 관련으로 아주 세련된 작업을 할 수 있습니다. 이놈의 GUI 버전이 나오면 딱 일터인데.. 관심 있으시면 한번 만들어보시길.

 

이거 말고, 전통적인 백업 복구 방법은

 

pg_dump -C mydb > mydb.sql

dropdb mydb

psql -f mydb.sql template1

 

이런방식을 사용합니다.

 

 

이 모든 과정에서 먼저 이야기 되는 것은

이때, -h, -p, -U  옵션에 대한 이야기가 빠져있습니다.

접근 호스트, 포트, 사용자에 대한 지정인데, 권한관련으로 필요하다면, 지정하셔야합니다.

김상기(ioseph)님이 2005-02-04 17:39에 작성한 댓글입니다.

상기님.. 감사합니다.

 

pg_dump -C mydb > mydb.sql

dropdb mydb

psql -f mydb.sql template1

 

위 방식에 옵션 몇개 더 붙여서 하니깐 잘 되네요.

근데 상기님 말씀대로 전통적인 방법이라니..

pg_restore를 더 연구해서 그걸 사용해야겠네요..

근데 위의 방식대로만 써도 상관없는거죠?

위대로 해도 데이터베이스/트리거/데이터까지 완벽복원되던데..

꼭 pg_restore를 써야 하는건 아니죠?

초짜(kmsds)님이 2005-02-04 18:21에 작성한 댓글입니다.

방금 tutorials 에 pg_restore 사용에 대한 너저분한 글을 하나 썼습니다.

 

읽어보시면, 앞으로 pg_restore 놈을 이용해야겠다는 생각이 마구들겝니다. :)

 

아무튼 저도 덕분에 하나 배웠네요.

 

http://database.sarang.net/index.php?inc=read&aid=5870&criteria=pgsql&subcrit=tutorials&id=&limit=20&keyword=&page=1

김상기(ioseph)님이 2005-02-04 18:42에 작성한 댓글입니다.
이 댓글은 2005-02-04 18:42에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
5873DSN DB 서버 바꾸면서,... [2]
김상기
2005-02-05
2514
5872질문2개 : 8.0.1 을 W2K 에 설치시 한글관련 설정, DB백업 [3]
김이수
2005-02-05
3958
5871PostgreSQL을 사용하는데요..IDLE문제....로.... [2]
이상석
2005-02-04
3009
5869PostgreSQL 백업/복구 방법 [3]
초짜
2005-02-04
10588
5867출력결과테이블 아래 [1][2][3]...[10] 어떻게 해야하져?? [1]
헬프미
2005-02-04
1992
5866server 추가가 안되요 ㅠㅠ [4]
chobo
2005-02-02
2540
5865애플리케이션 작성시 권한관리는 어떻게들 하시는지요? [5]
김창욱
2005-02-02
2731
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.031초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다