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 10031 게시물 읽기
No. 10031
데이터베이스의 모든 테이블에서 가장 최근 변경이 일어난 시점을 알 수 있을까요?
작성자
숀파
작성일
2019-01-17 10:47ⓒ
2019-01-17 11:54ⓜ
조회수
3,090

안녕하세요.

 

혹시 데이터베이스의 pg_ 테이블 등에서 가장 최근 변경(delete, update) 이 일어난 시점을 알 수 있을까요??

 

아니면  select count(*) 외에 각 테이블 전체 레코드를 빠르게 알 수 있는 방법(테이블이 커서요..) 이 있을까요?

 

A database 를 pg_dump 후 pg_restore 했을 때 , dump 전과 restore 후의 테이블 및 데이터가 완전 일치 하는지 알기 위해서입니다. 옮기기 전 database size 와 옮긴 후 database size 로는 알 수 없어서요..

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

 1. pg_catalog 쪽 개체들의 최근 변경 시점을 알 수 있는 방법은 없습니다. 

postgresql.conf 쪽에 DML 관련 작업에 대한 로그를 남길 수 있도록 설정해서, 로그 파일을 살펴보아 데이터베이스 형상이 언제 누가 바꿨는지는 추적할 수는 있습니다. 

 

2. select count(*) 대신에 추정할 수 있는 값은 pg_stat_all_tables.n_live_tup 값 정도인데, 이것도 analyze 작업 뒤에나 추정치가 조금 정확해지지 100% 정확하다고 간주하면 안됩니다. 

또 한 방법으로 9.5 이상부터는 select 에서 tablesample 이라는 키워드가 추가되어 샘플링을 할 수 있습니다. 

select count(*) from table_name tablesample system(10)

이런 식으로 해서 테이블 전체의 10% 가 총 몇개 되는가?를 찾아 그 열배를 계산하면 대략 그정도 될 것이다는 식으로 추정합니다. 더 극단적이면, 0.1%를 계산해서 천배로 계산하면 추정할 수도 있겠죠.

 

3. restore에서 오류가 없다면 dump 내용은 정확히 다 복원되었다고 믿는 것입니다. 이를 믿지 않는다면, 하나 하나 old 테이블과 new 테이블을 except (차집합 계산, a-b, b-a 둘다 해봐야합니다)  해보아야죠. 

 

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

 네 상기님 좋은 답변 감사합니다.

참고하도록 할꼐요!!

숀파님이 2019-01-18 13:02에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
10034pgadmin 3 에서 DB 등록이 되니 않네요 [1]
탁구공
2019-01-20
3288
10033특정 테이블의 테이블스페이스 백업 기능이 있을까요? [4]
모모와도도
2019-01-18
3208
10032혹시 운영시에 table 의 filfactor 는 몇정도로 주시나요? [1]
윤명식
2019-01-17
3178
10031데이터베이스의 모든 테이블에서 가장 최근 변경이 일어난 시점을 알 수 있을까요? [2]
숀파
2019-01-17
3090
10030C client library libpq 질문이요 [1]
pqpq
2019-01-10
3302
10029pg_restore 시에 archive 쌓이는 부분에 대해서 문의드립니다. [1]
숀파
2019-01-08
2981
10028postgresql 컴파일 시 config.log 내용 좀 봐주세요 [4]
모모와도도
2019-01-04
4840
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다