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 10033 게시물 읽기
No. 10033
특정 테이블의 테이블스페이스 백업 기능이 있을까요?
작성자
모모와도도(zziwhite)
작성일
2019-01-18 14:17ⓒ
2019-01-18 14:17ⓜ
조회수
4,224

 

 

 

일자별 테이블 마다 테이블 스페이스를 만들고 백업하는 방식을 사용하고 계시는 분이 있는지 궁금 합니다. 
 

또 테이블 스페이스 단위로 백업/복구하는 명령어 정보가 있을까요? (지원하는 3rd party 백업 솔루션이라도 있는지?) 

 

 

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

 공식적인 백업 복구는 데이터베이스 클러스터 단위입니다. 

테이블 스페이스 단위는 공식적으로는 불가능합니다. 비공식적으로 온갖 비법을 동원해 작업을 한다고 해도 그 자료의 정합성 문제가 생길 여지가 너무 많아서  독자적으로 개발한다고 해도 꽤 힘든 작업일 것 같네요. 

 

김상기(ioseph)님이 2019-01-18 14:31에 작성한 댓글입니다.

 네 말씀주신 내용을 공신 온라인매뉴얼에서 확인하였습니다. ^^

 

그렇다면 대용량 테이블에 대한 백업은 DUMP 외에 3rd 파티 툴을 이용하면 좀 빠를까요?

이때 테이블스페이스를 일별로 모두 나누는게 IO 병목을 줄이는데 좋을지 고민 중 입니다.

 

참고로 제가 DUMP (COPY) 툴을 안쓰려는 이유는 배열컬럼이 있는 경우, CPU 코어(1core) 부하가 발생하여

Read 양이 너무 적기 때문 입니다. 옵션 튜닝을 해도 변화가 없더라구요. 1개 테이블에 대한 COPY 명령이 여러 코어를 사용하면 좋을텐데....안되는듯 합니다.

모모와도도(zziwhite)님이 2019-01-18 14:36에 작성한 댓글입니다.

pg의 기본 사상은 온라인 백업은 사용자가 알아서 입니다. 

디비 서버로 '나 지금부터 백업할거야 지금부터 dirty buffer 조각은 full page writing을 하고, 일어나는 모든 DML 로그는 따로 보관해(archiving)' 이렇게 설정하고 - 이게 pg_start_backup 입니다.

그 다음 데이터 클러스터 전체를 다른 곳 (다른 호스트가 될 수도 있고, 다른 디렉터리가 될 수도 있고, 어떤 특정 장치(백업 스토리지)일 수도 있고, 심지어 메일 서버일 수도 있겠죠)으로 보관합니다. 이 데이터 클러스터 전체를 복사하는 하는 작업은 사용자의 몫입니다. 얼마든지 속도를 조절 할 수도 있고, 병렬 프로세스로 처리할 수도 있겠죠. 그 아이디어에 따라. 일반적으로는 rsync를 많이 사용하더군요. 큰 기업에서는 대부분 전용 백업 솔루션을 사용하고요.

이 데이터 클러스터 백업작업이 끝나면, 이제 pg_stop_backup을 합니다. 

그리고 나서 start와,  stop 사이 생긴 따로 보관된(archived) 트랜잭션 로그 조각 파일들을 다시 백업 위치에 따로 보관해 둡니다. 더 극단적으로 이야기하면, pg의 트랜잭션 로그 따로 보관하기(archiving)도 사용자 몫입니다. 

이렇게 백업이 끝나면, 결국 두 묶음이 따로 보관(backuped) 되어있겠죠. 하나는 데이터 클러스터 덩어리고, 다른 하나는 아카이브들의 덩어리고.

이 두 덩어리를 가지고 복원합니다. 이게 일반적인 pg의 백업&복구입니다. 

pg_dump는 백업이라는 개념보다는 export 개념에 더 가깝습니다. 

김상기(ioseph)님이 2019-01-18 15:16에 작성한 댓글입니다.

네 답변 감사합니다. DB가 10~20TB 사이가 되다보니...

export 방식을  고민하다...성능이 안나와 백업 툴에서 일별로 구성된 단일 테이블에 대한 백업을 고민하게 되었습니다.

모모와도도(zziwhite)님이 2019-01-21 10:14에 작성한 댓글입니다.
이 댓글은 2019-01-21 10:15에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
10036쿼리문 조언 부탁 드립니다 ㅠ [2]
김영욱
2019-01-24
4514
10035array + array 원소들끼리의 합? 가능한가요? [2]
test
2019-01-23
4196
10034pgadmin 3 에서 DB 등록이 되니 않네요 [1]
탁구공
2019-01-20
4327
10033특정 테이블의 테이블스페이스 백업 기능이 있을까요? [4]
모모와도도
2019-01-18
4224
10032혹시 운영시에 table 의 filfactor 는 몇정도로 주시나요? [1]
윤명식
2019-01-17
4108
10031데이터베이스의 모든 테이블에서 가장 최근 변경이 일어난 시점을 알 수 있을까요? [2]
숀파
2019-01-17
3967
10030C client library libpq 질문이요 [1]
pqpq
2019-01-10
4332
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다