18.4.6 ndb_blob_tool - MySQL Cluster 테이블의 BLOB 및 TEXT 컬럼의 체크 및 복구
이 도구는 고립 된 BLOB 컬럼 부품을 확인 NDB
테이블에서 제거하기 위해, 그리고 분리 된 부품 목록 파일을 생성하는 데 사용할 수 있습니다. 이것은 BLOB
또는 TEXT
컬럼이 포함되어 손상되었거나 손상된 NDB
테이블을 진단 및 복구 할 때 도움이 될 수 있습니다.
ndb_blob_tool의 기본 구문을 보여줍니다.
ndb_blob_tool [options
]table
[column
, ...]
--help
옵션을 사용하는 경우를 제외하고 하나 이상의 옵션 ( --check-orphans
, --delete-orphans
또는 --dump-file
)을 포함하여 수행 할 작업을 지정해야합니다 . 이 옵션을 지정하면 ndb_blob_tool가 각각 분리 된 BLOB 부품을 확인하고, 분리 된 BLOB 부품을 제거하고 분리 된 BLOB 부품 목록 덤프 파일을 생성하기도합니다. 이에 대한 자세한 내용은이 섹션 뒷부분합니다.
ndb_blob_tool를 호출 할 때 테이블 이름도 지정해야합니다. 또한 필요에 따라 테이블 이름 뒤에 (쉼표로 구분 된) 그 테이블의 하나 이상의 BLOB
또는 TEXT
컬럼의 이름을 계속할 수 있습니다. 컬럼을 나열 않은 경우,이 도구는 테이블의 모든 BLOB
및 TEXT
컬럼을 처리합니다. 데이터베이스를 지정할 필요가있는 경우 --database
( -d
) 옵션을 사용합니다.
--verbose
옵션은 도구의 진행 상황에 관한 추가 정보를 출력합니다.
다음 표는 ndb_blob_tool 고유의 옵션이 포함되어 있습니다. 추가 설명이 표 다음에 있습니다. 대부분의 MySQL Cluster 프로그램 (ndb_blob_tool 포함)에 공통되는 옵션은 섹션 18.4.27 "MySQL Cluster 프로그램에 공통 옵션 - MySQL Cluster 일반적인 프로그램 옵션" 을 참조하십시오.
표 18.81이 표는 ndb_blob_tool 프로그램의 명령 행 옵션에 대해 설명하고 있습니다
형식 | 설명 | 추가 또는 삭제 |
---|---|---|
| 고립 된 BLOB 부품을 확인합니다 | 모든 MySQL 5.6 기반 자료 |
| 테이블을 찾아 데이터베이스. | 모든 MySQL 5.6 기반 자료 |
| 고립 된 BLOB 부품을 제거합니다 | 모든 MySQL 5.6 기반 자료 |
| 지정한 파일에 고립 된 키를 씁니다 | 모든 MySQL 5.6 기반 자료 |
| 중복 출력 | 모든 MySQL 5.6 기반 자료 |
--check-orphans
명령 줄 형식 --check-orphans
허용되는 값 유형 boolean
기본 FALSE
MySQL Cluster 테이블의 고립 된 BLOB 부품을 확인합니다.
--database=
,db_name
-d
명령 줄 형식 --database=db_name
허용되는 값 유형 string
기본 [none]
테이블을 찾아 데이터베이스를 지정합니다.
--delete-orphans
명령 줄 형식 --delete-orphans
허용되는 값 유형 boolean
기본 FALSE
MySQL Cluster 테이블에서 분리 된 BLOB 부품을 제거합니다.
--dump-file=
file
명령 줄 형식 --dump-file=file
허용되는 값 유형 file name
기본 [none]
고립 된 BLOB 컬럼 부품 목록을
file
에 기록합니다. 파일에 기록되는 정보는 각 분리 된 BLOB 부품 테이블 키 및 BLOB 부품 번호가 포함됩니다.--verbose
명령 줄 형식 --verbose
허용되는 값 유형 boolean
기본 FALSE
진행 상황에 관한 추가 정보를 도구의 출력에 씁니다.
예
먼저 다음 CREATE TABLE
문을 사용하여 test
데이터베이스에 NDB
테이블을 만듭니다.
USE test; CREATE TABLE btest ( c0 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, c1 TEXT, c2 BLOB ) ENGINE=NDB;
그렇다면 이와 비슷한 일련의 명령문을 사용하여이 테이블에 여러 행을 삽입합니다.
INSERT INTO btest VALUES (NULL, 'x', REPEAT('x', 1000));
이 테이블에 --check-orphans
를 지정하고 ndb_blob_tool을 실행하면 다음과 같은 출력이 생성됩니다.
shell> ndb_blob_tool --check-orphans --verbose -d test btest
connected
processing 2 blobs
processing blob #0 c1 NDB$BLOB_19_1
NDB$BLOB_19_1: nextResult: res=1
total parts: 0
orphan parts: 0
processing blob #1 c2 NDB$BLOB_19_2
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=1
total parts: 10
orphan parts: 0
disconnected
NDBT_ProgramExit: 0 - OK
c1
은 TEXT
컬럼이지만, 컬럼 c1
에 관련된 NDB
BLOB 컬럼 부품 아니라는 것을이 도구는보고 있습니다. 이것은 NDB
테이블은 BLOB
또는 TEXT
컬럼 값의 처음 256 바이트 만 인라인으로 저장되고 그것을 초과하는 부분 (있는 경우) 만 별도로 저장되기 때문입니다. 따라서 이러한 유형 중 하나의 컬럼에 256 바이트를 초과하는 값이없는 경우,이 컬럼의 BLOB
컬럼 부품은 NDB
에 의해 만들어지지 않습니다. 자세한 내용은 섹션 11.7 "데이터 타입 스토리지 요구 사항" 을 참조하십시오.