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

F.19. 토토 베이2이름

토토 베이유틸리티 프로그램입니다 관리자가 사용하는 파일 구조를 검사하는 데 도움이 됩니다. PostgreSQL. 이를 활용하려면 다음과 같은 내용을 숙지해야 합니다. 데이터베이스 파일 구조는 다음에 설명되어 있습니다.53장.

참고:이름"토토 베이"역사적이며 실제로 오히려 오해의 소지가 있습니다. 대부분의 경우 사용 시 당신은 정말로 테이블의 파일 노드 번호에 관심을 가질 것입니다 (데이터베이스에 표시되는 파일 이름입니다. 디렉토리). 차이점을 확실히 이해하세요. 테이블 OID와 테이블 파일노드!

F.19.1. 개요

토토 베이2이름다음에 연결됩니다. 대상 데이터베이스를 만들고 OID, 파일 노드 및/또는 테이블 이름을 추출합니다. 정보. 데이터베이스 OID를 표시하도록 할 수도 있습니다. 테이블스페이스 OID. 이 프로그램은 다수의 사용자에 의해 제어됩니다. 명령줄 스위치(그림 참조)표 F-13.

표 F-13.토토 베이2이름스위치

스위치 설명
-o 토토 베이 OID가 있는 테이블에 대한 정보 표시토토 베이
-f 파일 노드 filenode가 있는 테이블에 대한 정보 표시파일 노드
-t 테이블 이름_패턴 일치하는 테이블에 대한 정보 표시테이블 이름_패턴
-s 테이블스페이스 토토 베이 표시
-S 시스템 개체 포함(다음에 있는 개체information_schema, pg_toast그리고pg_catalog스키마)
-i 목록에 색인 및 시퀀스 포함
-x 표시된 각 개체에 대한 추가 정보 표시: 테이블스페이스 이름, 스키마 이름 및 OID
-q 헤더 생략(스크립팅에 유용함)
-d 데이터베이스 연결할 데이터베이스
-H 호스트 데이터베이스 서버의 호스트
-p 포트 데이터베이스 서버의 포트
-U 사용자 이름 연결할 사용자 이름

특정 테이블을 표시하려면 표시할 테이블을 선택하세요. 사용 중-o, -f및/또는-t. -o토토 베이를 가져옵니다.-f파일 노드를 취하고-t테이블 이름을 사용합니다(실제로는 LIKE 패턴이므로 다음과 같은 것을 사용할 수 있습니다.foo%). 이러한 스위치를 원하는 만큼 사용할 수 있습니다. 당신이 좋아하면 목록에는 다음과 일치하는 모든 개체가 포함됩니다. 스위치 중 하나. 하지만 이 스위치는 다음에서 제공하는 데이터베이스의 개체-d.

당신이 아무것도 주지 않는다면-o, -f또는-t하지만 줘-d, 다음의 모든 테이블이 나열됩니다. 이름이 지정된 데이터베이스-d. 이에 모드,-S그리고-i스위치는 나열되는 항목을 제어합니다.

당신이 주지 않는다면-d어느 쪽이든, 그것은 데이터베이스 OID 목록이 표시됩니다. 또는 다음을 수행할 수 있습니다. 주다-s테이블스페이스를 얻으려면 목록.

F.19.2. 예

$ # 그런데 이 데이터베이스 서버에는 무엇이 들어있나요?
$ 토토 베이2이름
모든 데이터베이스:
    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은 또 뭐였죠?
$ 토토 베이2이름
모든 데이터베이스:
    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 푸

F.19.3. 제한사항

토토 베이2이름달리기가 필요합니다 손상되지 않은 시스템 카탈로그가 있는 데이터베이스 서버. 그것은 그러므로 재난으로부터의 복구를 위해 제한적으로만 사용됩니다. 데이터베이스 손상 상황.