pg_surgery
모듈은 손상된 관계에 대한 수술을 수행하는 다양한 기능을 제공합니다. 이러한 기능은 설계에 의해 안전하지 않으며이를 사용하면 윈 토토베이스가 손상되거나 추가로 손상 될 수 있습니다. 예를 들어, 이러한 기능은 자체 인덱스와 테이블을 일치하지 않도록하기 위해 쉽게 사용될 수 있습니다.고유 한
또는외국 키
제약 위반, 또는 읽기시 데이터베이스 서버 충돌을 일으키는 튜플을 가시적으로 만들기까지합니다. 그들은 최후의 수단으로만주의를 기울여야합니다.
heap_force_kill (regclass, tid []) 반환 void
heap_force_kill
Marks“중고”라인 포인터 as“죽은”튜플을 검사하지 않고. 이 기능의 의도 된 사용은 접근 할 수없는 튜플을 강제로 제거하는 것입니다. 예를 들어:
test = select *에서 ctid = '(0, 1)'; 오류 : 트랜잭션 4007513275의 상태에 액세스 할 수 없습니다 세부 사항 : "PG_XACT/0EED"파일을 열 수 없습니다. 그러한 파일이나 디렉토리는 없습니다. test =# 선택 heap_force_kill ( 't1':: regclass, 배열 [ '(0, 1)'] :: tid []); heap_force_kill ------------------ (1 줄) test =# select * from t1 where ctid = '(0, 1)'; (0 줄)
heap_force_freeze (regclass, tid []) 반환 void
heap_force_freeze
튜플을 튜플 윈 토토를 검사하지 않고 냉동으로 표시합니다. 이 기능의 의도 된 사용은 가시성 정보가 손상되어 접근 할 수없는 접근 가능한 튜플을 만드는 것입니다. 예를 들어:
test = 진공 t1; 오류 : relfrozenxid 515 이전에서 xmin 507을 찾았습니다 컨텍스트 : 관계의 블록 0을 스캔하는 동안 "public.t1" test =# t1에서 ctid를 선택하십시오. 여기서 xmin = 507; CTID ------- (0,3) (1 줄) test =# 선택 heap_force_freeze ( 't1':: regclass, 배열 [ '(0, 3)'] :: tid []); heap_force_freeze -------------------- (1 줄) test =# t1에서 ctid를 선택하십시오. 여기서 xmin = 2; CTID ------- (0,3) (1 행)
Ashutosh Sharma<ashu.coek88@gmail.com
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면