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 9674 게시물 읽기
No. 9674
테이블 접근 기록
작성자
꿈나무
작성일
2016-07-05 14:23
조회수
7,314

안녕하세요

혹시 table에 대해 최근 언제 사용했는지(select,insert delete etc..) 알 수 있는 카탈로그 테이블이 있나요?

 

혹시 있다면 어떤테이블인지, 없는데 구현을 하셨다면 어떻게 하셨는지 조언을 구할 수 있을까요?

 

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

최근 언제 사용했는지에 대한 카탈로그 테이블은 없습니다.

확인 방법은

 

1. 해당 Database에 접속하셔서

select relfilenode from pg_class where relname='테이블명';

 

후에 해당 database oid값 폴더

cd $PGDATA/base/데이터베이스 oid 

-- 데이터베이스 oid는 oid2name 명령어로 볼수 있습니다.

 

ls -l relfilenode값

단 이것은 해당 table이 변동되고 checkpoint가 발생한 시점의 시간입니다.

 

2. 모든 dml을 logging하여 찾는 방법  (디스크 용량이 많이 쌓이니 주의)

 

3. 특정 table의 정보만 필요할 경우 trigger를 걸어서 별도 table에 logging하는 방법 (성능저하를 고려)

 

제가 혹시 모르는거일수도 있지만 제가 아는 부분에서는 이와 같이 하시면 될 것 같습니다.

 

 

김주왕(kimjuking)님이 2016-07-05 14:49에 작성한 댓글입니다.

원하는 기능이 기업 환경에서 데이터베이스 접근 통제에 대한 것이라면,

접근 통제 솔루션을 구매하셔서 사용하세요.

그게 아니라, 단지 DBA 운영 관점에서 이제 더이상 사용하지 않는 객체를 찾을 목적이라면,

현재로써는 pg_stat_all_tables, pg_stat_all_indexes 시스템 카탈로그 뷰의 통계 정보가 일정 주기에 변화량이 있는지를 확인해서 찾은 놈을 버리거나 다른 스키마 다른 테이블 스페이스로 옮겨둡니다.

문제는 1년에 딱 한 번 사용하는 놈이라면 문제가 있겠죠.

김상기(ioseph)님이 2016-07-05 15:01에 작성한 댓글입니다.

 pgaudit  extension 을 사용해도 되겠네요.

김성식(hellower)님이 2016-07-05 16:09에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9677제가 postgresql을 쓰는 초보인데 이런 에러가 발생해서 궁급합니다. [2]
홍민구
2016-07-19
7276
9676query [1]
학생
2016-07-19
6900
9675pgday.seoul 2016 발표자 모집
김상기
2016-07-14
8130
9674테이블 접근 기록 [3]
꿈나무
2016-07-05
7314
9673Replication failover 관련 질문드립니다. [5]
황하진
2016-06-30
7853
9672Postgres Database와 WebPage를 연동할 수 있나요? [2]
JungHo Kim
2016-06-22
7170
9671PGDay.Seoul 2016 행사 날짜 투표해주세요.
김상기
2016-06-21
8138
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다