지원되는 버전 :현재(17) /16 / 15 / 14 / 13
개발 버전 :18 / Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

F.22. 스포츠 토토

스포츠 토토유틸리티 프로그램입니다 관리자가 사용하는 파일 구조를 검사하는 데 도움이됩니다. Postgresql. 그것을 사용하려면 친숙해야합니다. 에 설명 된 데이터베이스 파일 구조55 장.

참고 :이름"스포츠 토토"는 역사적이며 실제로입니다 당신이 그것을 사용할 때 대부분의 시간 이후 오히려 오해의 소지가 있습니다. 당신은 실제로 테이블의 filenode 번호에 관심이있을 것입니다 (데이터베이스에 표시된 파일 이름입니다 디렉토리). 차이점을 이해하십시오 표 OID 및 테이블 FILENODES!

F.22.1. 개요

스포츠 토토a에 연결합니다 데이터베이스 및 추출 OID, Filenode 및/또는 테이블 이름을 추출합니다 정보. 데이터베이스 OID를 표시하거나 표시 할 수도 있습니다 테이블 스페이스 OIDS.

F.22.2.스포츠 토토옵션

스포츠 토토다음 명령 줄 인수 :

-o OID

OID가있는 테이블에 대한 정보 표시OID

-f filenode

filenode가있는 테이블에 대한 정보 표시filenode

-t tableName_pattern

테이블 일치에 대한 정보 표시TableName_pattern

-s

테이블 스페이스 OID 표시

-s

시스템 개체 포함 (Information_Schema, PG_TOASTandPG_CATALOGskemas)

-i

목록에 인덱스 및 시퀀스 포함

-x

표시된 각 개체에 대한 자세한 정보 : 테이블 스페이스 이름, 스키마 이름 및 OID

-Q

헤더 생략 (스크립팅에 유용)

-d 데이터베이스

연결할 데이터베이스

-h host

데이터베이스 서버 호스트

-p 포트

데이터베이스 서버 포트

-u 사용자 이름

사용자 이름으로 연결할

-p 비밀번호

비밀번호 (비밀번호 -이를 명령에 올려 놓는다 라인은 보안 위험입니다)

특정 테이블을 표시하려면 표시 할 테이블을 선택하십시오. 사용-o, -f및/또는-t. -oOID를 가져와-fFilenode를 복용하고-t테이블 이름을 가져옵니다 (실제로는 A좋아요패턴이므로 물건을 사용할 수 있습니다 좋다foo%). 당신은 많은 것을 사용할 수 있습니다 이러한 옵션이 원하는대로, 목록에는 모두가 포함됩니다. 모든 옵션과 일치하는 객체. 그러나 이것들에 주목하십시오 옵션은에 주어진 데이터베이스에 객체 만 표시 할 수 있습니다.-d.

당신이 아무것도주지 않는다면-o, -f또는-t하지만 줘-d, 모든 테이블을 나열합니다 에 이름이 지정된 데이터베이스-d. 이 모드에서 그만큼-sand-i옵션 제어 내용을 제어합니다.

주지 않으면-d둘 다 데이터베이스 OID 목록을 표시하십시오. 또는 당신은 줄 수 있습니다-s테이블 스페이스 목록을 얻으려면

F.22.3. 예

$ # 어쨌든이 데이터베이스 서버는 무엇입니까?
$ 스포츠 토토
모든 데이터베이스 :
    OID 데이터베이스 이름 테이블 스페이스
------------------------------------
  17228 ALVHERRE PG_DEFAULT
  17255 회귀 pg_default
  17227 Template0 PG_DEFAULT
      1 Template1 PG_DEFAULT

$ 스포츠 토토 -s
모든 테이블 스페이스 :
     OID 테이블 스페이스 이름
-----------------------------
    1663 PG_DEFAULT
    1664 PG_GLOBAL
  155151 FastDisk
  155152 BIGDISK

$ # 좋아, 데이터베이스 ALVHERRE를 살펴 보자
$ cd $ pgdata/base/17228

$ # 기본 테이블 스페이스에서 상위 10 개의 DB 객체를 크기별로 주문하십시오.
$ ls -ls * | 머리 -10
-RW ------ 1 ALVHERRE ALVHERRE 136536064 9 월 14 일 09:51 155173
-RW ------ 1 ALVHERRE ALVHERRE 17965056 9 월 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 sep 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이 무엇인지 궁금합니다 ...
$ OID2NAME -D ALVHERRE -F 155173
데이터베이스 "Alvherre"에서 :
  Filenode 테이블 이름
------------------------
    155173 계정

$ # 둘 이상의 객체를 요청할 수 있습니다.
$ OID2NAME -D ALVHERRE -F 155173 -F 1155291
데이터베이스 "Alvherre"에서 :
  Filenode 테이블 이름
-----------------------------
    155173 계정
   1155291 Accounts_pkey

$ # 옵션을 혼합하고 -X로 자세한 내용을 얻을 수 있습니다.
$ 스포츠 토토 -d alvherre -t 계정 -f 1155291 -x
데이터베이스 "Alvherre"에서 :
  Filenode 테이블 이름 OID 스키마 테이블 스페이스
--------------------------------------------------------------
    155173 계정 155173 Public Pg_default
   1155291 Accounts_Pkey 1155291 Public PG_DEFAULT

$ # 모든 DB 객체에 대한 디스크 공간 표시
$ du [0-9]* |
 크기 필레 노드를 읽는 동안
하십시오
 echo "$ size`스포츠 토토 -q -d alvherre -i -f $ filenode`"
 완료
16 1155287 Branches_pkey
16 1155289 Tellers_pkey
17561 1155291 Accounts_pkey
...

$ # 동일하지만 크기별로 정렬하십시오
$ du [0-9]* | 정렬 -rn | 읽기 크기 fn
하십시오
 echo "$ size`스포츠 토토 -q -d alvherre -f $ fn`"
 완료
133466 155173 계정
17561 1155291 Accounts_pkey
1177 16717 PG_PROC_PRONAME_ARGS_NSP_INDEX
...

$ # 테이블 스페이스에있는 내용을 보려면 PG_TBLSPC 디렉토리를 사용하십시오.
$ cd $ pgdata/pg_tblspc
$ 스포츠 토토 -s
모든 테이블 스페이스 :
     OID 테이블 스페이스 이름
-----------------------------
    1663 PG_DEFAULT
    1664 PG_GLOBAL
  155151 FastDisk
  155152 BIGDISK

$ # 테이블 스페이스 "FastDisk"에 객체가있는 데이터베이스는 무엇입니까?
$ ls -d 155151/*
155151/17228/155151/pg_version

$ # 오, 데이터베이스 17228은 무엇입니까?
$ 스포츠 토토
모든 데이터베이스 :
    OID 데이터베이스 이름 테이블 스페이스
------------------------------------
  17228       alvherre  pg_default
  17255 회귀 pg_default
  17227 Template0 PG_DEFAULT
      1 Template1 PG_DEFAULT

$ #이 데이터베이스가 테이블 스페이스에 어떤 객체를 가지고 있는지 보자.
$ CD 155151/17228
$ ls -l
총 0
-RW ------- 1 Postgres Postgres 0 9 월 13:20 155156

$ # 좋아, 이것은 꽤 작은 테이블이지만 ... 어느 쪽입니까?
$ OID2NAME -D ALVHERRE -F 155156
데이터베이스 "Alvherre"에서 :
  Filenode 테이블 이름
------------------------
    155156 foo

F.22.4. 제한

스포츠 토토달리기가 필요합니다 비유 한 시스템 카탈로그가있는 데이터베이스 서버. 그것은 그러므로 치명적에서 회복하기위한 제한된 사용만이 제한적입니다 데이터베이스 부패 상황.