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 6595 게시물 읽기
No. 6595
복구시 DROP DATABASE 하지 않고 다른 방법 문의 드립니다.
작성자
김명범
작성일
2006-03-29 18:02
조회수
3,413

현재 복구시 DROP DATABASE DB명하고 다시 올리는데

이렇게 하면 복구할때 DB를 다시 생성하고 권한도 부여해

주어야 하는데 복구할때 기존 DB 내용만 지우고 복구한다던가

아니면 증분복구가 되어 필요한 table의 내용만 자동으로 복구

되었으면 합니다..

 

조언 부탁드립니다.

 

 

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

음... 다른 DB는 그런게 되나요? ^^

증분 복구는 가능하지만 특정 table만 하는 것이라든가 database를 날리지 않고 내용만 복구하는 방법은 없을 것 같은데요? 다른 db도 이런 것은 안되지 않나요?

박성철(gyumee)님이 2006-03-31 01:31에 작성한 댓글입니다.
이 댓글은 2006-03-31 01:40에 마지막으로 수정되었습니다.

다른 DB는 잘 모르겠습니다..

(다만  MySQL은 drop database   하지 않고 그냥 역덤프

하면 증분백업이 되지 않나요???)

 

그러다면 세부적인 질문..

 

질문1.

 


pg_dump testdb > testdb.sql

dropdb testdb

psql -f testdb.sql testdb

 

이렇하면 권한도 같이 복구가 되는지.

예를 들어 user1 라는 사용자가 원래  testdb의 owner인데

testdb 내리고 덤프받은 testdb.sql로 복구하면 권한이

유지 되는지 궁금합니다..

 

--
-- Name: branch_no_seq; Type: SEQUENCE SET; Schema: public; Owner: user1
--

 

testdb.sql (덤프된 파일)에 보면 위와 같이 각각의 table에 대해 Owner가 지정되어 있는데 옆에 있는 '--'가 주석이 아닌가요???

 

 

질문2

아니면 만일 dropdb 안하고 그냥 이렇게 해버려도 괜찮은지 궁금합니다..

pg_dump testdb > testdb.sql

psql -f testdb.sql testdb

 

 

갑자기 postgresql을 다루게 되어 궁금한 점이 많습니다..

감사합니다..

김명범님이 2006-03-31 20:23에 작성한 댓글입니다.
이 댓글은 2006-03-31 20:24에 마지막으로 수정되었습니다. Edit

-- 는 주석이 맞습니다만 대부분 그 위에 해당 owner 로 인증을 한 상태로 진행합니다.

SET SESSION AUTHORIZATION 'root';
위와 같은 SQL로 먼저 owner를 스위치 한 다음에 쿼리를 진행하니까 대부분 그대로 복구됩니다.

 

pg_dump testdb > testdb.sql

psql -f testdb.sql testdb

이렇게 하면 에러가 날겁니다. 이미 있는 객체들을 다시 생성하려고 하니까요. 데이터만 같은게 쌓이게 될 겁니다.

 

pg_dump 하게 되면 ALTER DATABASE 명령어로 해당 데이터베이스의 초기 세팅값 설정한 것 만 빼고는 그대로 백업되고 복구 된다고 보시면 됩니다

신기배(소타)님이 2006-04-01 00:10에 작성한 댓글입니다.

조언 감사합니다. 말씀하신데로 이런 저런 테스트를

해보았습니다.

 

덤프하고 dropdb안하고 바로 덮어 올리니 에러나는 군요..

 

덤프된 sql 파일을 유심히 보니..DB가 아니라

각 테이블에 owner를 alter table하네요.. 확인했습니다.

(table level에서 권한이 설정되네요)

 

그냥

 

백업

pg_dump testdb > testdb.sql

 

복구 - 다른 서버에서 실행

(owner ID는 원래 있던 서버와 동일한 id/pw 설정

되어 있음.)

dropdb testdb

createdb testdb

psql -f testdb.sql testdb

 

이런식으로 하니 그전 권한이

유지가 되네요..

 

감사합니다..

 

 

 

 

김명범님이 2006-04-01 11:07에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6599interval 을 excel 시간으로 바꾸기
박인서
2006-04-01
3245
6598에러로그와 재설치 질문... [3]
박순철
2006-04-01
5484
6597원격접속 질문... [6]
김명범
2006-04-01
6372
6595복구시 DROP DATABASE 하지 않고 다른 방법 문의 드립니다. [4]
김명범
2006-03-29
3413
6591급질문 뉴!! 빨리빨리 [3]
나그넹
2006-03-28
2988
6590현재 데이터베이스 최대값구하기
ㅋㅋ
2006-03-28
2745
6589급질문입니다. [1]
급질문
2006-03-28
2344
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다