2025년 9월 25일:토토 커뮤니티 : 토토
지원되는 버전:현재 (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 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

롤 토토

이름

롤 토토 -- a에서 OID 및 파일 노드를 확인합니다.포스트그레SQL데이터 디렉토리

시놉시스

롤 토토 [옵션...]

설명

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

참고:이름"롤 토토"이다 역사적이며 실제로는 다소 오해의 소지가 있습니다. 사용하다 보면 정말 테이블에 신경이 쓰이게 될 거에요. 파일 노드 번호(데이터베이스에 표시되는 파일 이름) 디렉토리). 테이블 간의 차이점을 이해했는지 확인하세요. OID 및 테이블 파일 노드!

oid2이름대상에 연결 데이터베이스를 추출하고 OID, 파일 노드 및/또는 테이블 이름 정보를 추출합니다. 데이터베이스 OID나 테이블스페이스 OID를 표시하도록 할 수도 있습니다.

옵션

oid2이름다음을 수락합니다 명령줄 인수:

-f 파일 노드

filenode가 있는 테이블에 대한 정보 표시파일 노드

-i

목록에 색인 및 시퀀스 포함

-o oid

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

-q

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

-s

테이블스페이스 OID 표시

-에스

시스템 개체 포함(다음에 있는 개체information_schema, pg_toast그리고pg_catalog스키마)

-t 테이블 이름_패턴

일치하는 테이블에 대한 정보 표시테이블 이름_패턴

-V
--버전

인쇄oid2이름버전 및 종료.

-x

표시된 각 객체에 대한 추가 정보 표시: 테이블스페이스 이름, 스키마 이름 및 OID

-?
--도움말

다음에 관한 도움말 표시oid2이름명령줄 인수 및 종료.

oid2이름또한 다음을 수락합니다. 연결 매개변수에 대한 명령줄 인수는 다음과 같습니다.

-d 데이터베이스

연결할 데이터베이스

-H 호스트

데이터베이스 서버의 호스트

-p 포트

데이터베이스 서버의 포트

-U 사용자 이름

연결할 사용자 이름

-P 비밀번호

password(더 이상 사용되지 않음 — 명령줄에 입력하는 것은 보안 위험)

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

아무것도 주지 않는다면-o, -f또는-t하지만 기부하세요-d, 데이터베이스의 모든 테이블을 나열합니다. 이름이 붙은 사람-d. 이 모드에서는-S그리고-i옵션 제어 무엇이 나열되는지.

당신이 포기하지 않는다면-d어느 쪽이든 그럴 것입니다 데이터베이스 OID 목록을 표시합니다. 또는 당신이 줄 수 있습니다-s테이블스페이스 목록을 가져옵니다.

참고

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

$ # 그런데 이 데이터베이스 서버에는 무엇이 들어있나요?
$ 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 푸

저자

B. 팔머