롤 토토유틸리티 프로그램입니다 관리자가 사용되는 파일 구조를 검사하는 데 도움이 됩니다. PostgreSQL. 이를 활용하려면 다음과 같은 내용을 숙지해야 합니다. 데이터베이스 파일 구조는 다음에 설명되어 있습니다.58장.
참고:이름"롤 토토"이다 역사적이며 실제로는 다소 오해의 소지가 있습니다. 사용하다 보면 정말 테이블에 신경이 쓰이게 될 거에요. 파일 노드 번호(데이터베이스에 표시되는 파일 이름) 디렉토리). 테이블 간의 차이점을 이해했는지 확인하세요. OID 및 테이블 파일 노드!
oid2이름대상에 연결 데이터베이스를 추출하고 OID, 파일 노드 및/또는 테이블 이름 정보를 추출합니다. 데이터베이스 OID나 테이블스페이스 OID를 표시하도록 할 수도 있습니다.
oid2이름다음을 수락합니다 명령줄 인수:
filenode가 있는 테이블에 대한 정보 표시파일 노드
목록에 색인 및 시퀀스 포함
OID가 있는 테이블에 대한 정보 표시oid
헤더 생략(스크립팅에 유용함)
테이블스페이스 OID 표시
시스템 개체 포함(다음에 있는 개체information_schema, pg_toast그리고pg_catalog스키마)
일치하는 테이블에 대한 정보 표시테이블 이름_패턴
인쇄oid2이름버전 및 종료.
표시된 각 객체에 대한 추가 정보 표시: 테이블스페이스 이름, 스키마 이름 및 OID
다음에 관한 도움말 표시oid2이름명령줄 인수 및 종료.
oid2이름또한 다음을 수락합니다. 연결 매개변수에 대한 명령줄 인수는 다음과 같습니다.
연결할 데이터베이스
데이터베이스 서버의 호스트
데이터베이스 서버의 포트
연결할 사용자 이름
password(더 이상 사용되지 않음 — 명령줄에 입력하는 것은 보안 위험)
특정 테이블을 표시하려면 다음을 사용하여 표시할 테이블을 선택하십시오.-o, -f및/또는-t. -o다음을 취합니다. OID,-f파일 노드를 취하고-t테이블 이름을 사용합니다(실제로는좋아요패턴이므로 다음과 같은 것을 사용할 수 있습니다.foo%). 이러한 옵션을 원하는 만큼 사용할 수 있습니다. like, 목록에는 다음 중 하나와 일치하는 모든 개체가 포함됩니다. 옵션. 그러나 이 옵션은 다음의 개체만 표시할 수 있습니다. 제공되는 데이터베이스-d.
아무것도 주지 않는다면-o, -f또는-t하지만 기부하세요-d, 데이터베이스의 모든 테이블을 나열합니다. 이름이 붙은 사람-d. 이 모드에서는-S그리고-i옵션 제어 무엇이 나열되는지.
당신이 포기하지 않는다면-d어느 쪽이든 그럴 것입니다 데이터베이스 OID 목록을 표시합니다. 또는 당신이 줄 수 있습니다-s테이블스페이스 목록을 가져옵니다.
$ # 그런데 이 데이터베이스 서버에는 무엇이 들어있나요?
$ oid2이름
모든 데이터베이스:
Oid 데이터베이스 이름 테이블스페이스
----------------------------------
17228 alvherre pg_default
17255 회귀 pg_default
17227 템플릿0 pg_default
1 템플릿1 pg_default
$ 롤 토토 -s
모든 테이블스페이스:
Oid 테이블스페이스 이름
------------
1663 pg_기본
1664 pg_글로벌
155151 패스트 디스크
155152 빅디스크
$ # 좋아요, 데이터베이스 alvherre를 살펴보겠습니다
$ cd $PGDATA/베이스/17228
$ # 크기순으로 기본 테이블스페이스의 상위 10개 DB 객체를 가져옵니다.
$ ls -lS * | 머리 -10
-rw------- 1 alvherre alvherre 136536064 sep 14 09:51 155173
-rw------- 1 alvherre alvherre 17965056 sep 14 09:51 1155291
-rw------- 1 alvherre alvherre 1204224 9월 14일 09:51 16717
-rw------- 1 alvherre alvherre 581632 9월 6일 17:51 1255
-rw------- 1 alvherre alvherre 237568 9월 14일 09:50 16674
-rw------- 1 alvherre alvherre 212992 9월 14일 09:51 1249
-rw------- 1 alvherre alvherre 204800 9월 14일 09:51 16684
-rw------- 1 alvherre alvherre 196608 9월 14일 09:50 16700
-rw------- 1 alvherre alvherre 163840 9월 14일 09:50 16699
-rw------- 1 alvherre alvherre 122880 9월 6일 17:51 16751
$ # 155173 파일이 뭔지 궁금하네요...
$ 롤 토토 -d alvherre -f 155173
데이터베이스 "alvherre"에서:
파일노드 테이블 이름
---------
155173 계정
$ # 하나 이상의 개체를 요청할 수 있습니다
$ 롤 토토 -d alvherre -f 155173 -f 1155291
데이터베이스 "alvherre"에서:
파일노드 테이블 이름
------------
155173 계정
1155291 account_pkey
$ # 옵션을 혼합할 수 있으며 -x를 사용하여 자세한 내용을 얻을 수 있습니다.
$ 롤 토토 -d alvherre -t 계정 -f 1155291 -x
데이터베이스 "alvherre"에서:
Filenode 테이블 이름 Oid 스키마 테이블스페이스
----------------------------
155173 계정 155173 공개 pg_default
1155291 account_pkey 1155291 공개 pg_default
$ # 모든 DB 객체의 디스크 공간을 표시합니다.
$ du [0-9]* |
SIZE FILENODE를 읽는 동안
하다
echo "$SIZE `롤 토토 -q -d alvherre -i -f $FILENODE`"
완료
16 1155287 Branch_pkey
16 1155289 Tellers_pkey
17561 1155291 account_pkey
...
$ # 동일하지만 크기별로 정렬
$ du [0-9]* | 정렬 -rn | SIZE FN을 읽는 동안
하다
echo "$SIZE `롤 토토 -q -d alvherre -f $FN`"
완료
133466 155173 계정
17561 1155291 account_pkey
1177 16717 pg_proc_proname_args_nsp_index
...
$ # 테이블스페이스에 무엇이 있는지 보려면 pg_tblspc 디렉토리를 사용하십시오.
$ cd $PGDATA/pg_tblspc
$ 롤 토토 -s
모든 테이블스페이스:
Oid 테이블스페이스 이름
------------
1663 pg_기본
1664 pg_글로벌
155151 패스트 디스크
155152 빅디스크
$ # 테이블스페이스 "fastdisk"에 개체가 있는 데이터베이스는 무엇입니까?
$ ls -d 155151/*
155151/17228/155151/PG_VERSION
$ # 아, 데이터베이스 17228은 또 뭐였죠?
$ oid2이름
모든 데이터베이스:
Oid 데이터베이스 이름 테이블스페이스
----------------------------------
17228 alvherre pg_default
17255 회귀 pg_default
17227 템플릿0 pg_default
1 템플릿1 pg_default
$ # 이 데이터베이스가 테이블스페이스에 어떤 객체를 가지고 있는지 살펴보겠습니다.
$ CD 155151/17228
$ ls -l
총 0
-rw------- 1 포스트그레스 포스트그레스 0 sep 13 23:20 155156
$ # 네, 꽤 작은 테이블인데... 어느 테이블인가요?
$ 롤 토토 -d alvherre -f 155156
데이터베이스 "alvherre"에서:
파일노드 테이블 이름
---------
155156 푸| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | PostgreSQL : 문서 : 9.3 : 스포츠 토토 사이트 |
| 클라이언트 애플리케이션 | 위로 | pgbench |