반응형

/********************************************************************************************
-- Title : [9.2] PGDATA, 데이터 디렉토리(../data) 레이아웃 & 아키텍처
-- Reference : http://www.postgresql.org/docs/9.0/static/storage-file-layout.html
                     histlinux.egloos.com
-- Key word : data pgdata 파일 레이아웃 아키텍처 architecture 데이터디렉토리 데이터 디렉토리
                     data directory 클러스터 cluster 

********************************************************************************************/

-- PostgreSQL Architecture


-- PGDATA구조



-- 일반적인 데이터 디렉토리 경로 확인
    postgres$ echo $PGDATA
    /home/postgres/pgsql/data

-- 디렉토리 내용 보기
    postgres$ cd $PGDATA
    postgres$ ll

-- PGDATA 내용
    ㅇ PG_VERSION : PostgreSQL의 주요 버전 번호를 보유하는 파일.
        postgres$ cat PG_VERSION

    ㅇ base : 데이터베이스마다 하위 디렉토리를 보유.
                  각 데이터베이스의 디렉토리 생성. 각 디렉토리에는 테이블과 인덱스 파일 생성.
                  pg_default 테이블스페이스 경로. 


    ㅇ global : pg_database 같은 클러스터에서 공유 테이블을 보유.
                   모든 데이터베이스에서 공유하는 서버 카탈로그 테이블 존재.
                   pg_global 테이블스페이스 경로. 


    ㅇ pg_multixact : 멀티 트랜잭션의 상태 데이터를 보유.
                             공유 행 잠금에서 사용. 
                             저수준(Row-level)의 락(Lock) 상태 파일들이 존재.

    ㅇ pg_notify : LISTEN/NOTIFY 상태 데이터를 보유.

    ㅇ pg_serial : 커밋된 serializable 트랜잭션에 대한 정보를 보유.

    ㅇ pg_snapshots : 내보내기 된 스냅샷을 보유.

    ㅇ pg_stat_tmp : 통계용 하위 시스템을 위한 임시 파일 보유.
                            통계 서브시스템에 대한 임시(Temporary) 파일들이 존재.

    ㅇ pg_subtrans ; 서브 트랜잭션의 상태 데이터를 보유.
                            서브트랜잭션(Subtransaction) 상태 파일들이 존재.

    ㅇ pg_tblspc : 테이블스페이스에 대한 심볼릭 링크를 보유.

    ㅇ pg_towpahse : 준비된 트랜잭션에 대한 상태 파일을 보유.
                              2단계 커밋 또는 준비된 트랜잭션 상태 존재.

    ㅇ pg_xlog : WAL(로그 선행 기입) 파일을 보유.
                      트랜잭션 로그(또는 Write Ahead Log - WAL)들이 존재.

    ㅇ pg_clog : 트랜잭션의 커밋 상태의 데이터를 보유.
                      트랜잭션(Transaction) 상태 파일들이 존재.

   ㅇ postmaster.opt : 마지막으로 서버를 시작할 때 명령 줄 옵션을 기록.
                              이 파일의 내용이 status 모드로 표시됨.
       postgres$ cat postmaster.opts
            /home/postgres/pgsql/bin/postgres
       postgres$ pg_ctl status
            pg_ctl: server is running (PID: 12114)
            /home/postgres/pgsql/bin/postgres

    ㅇ postmaster.pid : 데이터디렉토리에 이 파일이 있는지 여부에 따라 pg_ctl는 서버가 현재 실행
                                중인지 여부 결정.
                                서비스가 stop되면 이 파일이 존재하지 않음.
                                A lock file recording the current postmaster process ID (PID),
                                cluster data directory path, postmaster start timestamp,
                                port number, Unix-domain socket directory path (empty on Windows),
                                 first valid listen_address (IP address or *, or empty if not listening on TCP),
                                and shared memory segment ID.
                                (this file is not present after server shutdown)

반응형

+ Recent posts