Loading...
MySQL 9.5 Reference Manual 9.5의 25.5.6 ndb_blob_tool — Check and Repair BLOB and TEXT columns of NDB Cluster Tables의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
이 도구는 NDB 테이블에서 고아 BLOB 컬럼 파트를 검사하고 제거하는 데 사용할 수 있으며, 모든 고아 파트를 나열한 파일을 생성하는 데에도 사용할 수 있습니다. 이는 손상되었거나 오류가 발생한 NDB 테이블 중
BLOB 또는
TEXT 컬럼을 포함하는 테이블을 진단하고 복구하는 데 유용할 때가 있습니다.
ndb_blob_tool의 기본 문법은 다음과 같습니다:
1ndb_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_mgmd와 함께 사용할 수 있는 모든 옵션은 다음 표에 나와 있습니다. 추가 설명은 표 뒤에 나옵니다.
| Property | Value |
|---|---|
| Command-Line Format | --add-missing |
대응하는 BLOB 파트가 없는 NDB Cluster 테이블의 각 인라인 파트에 대해, 공백으로 이루어진 지정된 길이의 더미 BLOB 파트를 기록합니다.
| Property | Value |
|---|---|
| Command-Line Format | --character-sets-dir=path |
캐릭터 세트가 들어 있는 디렉터리입니다.
| Property | Value |
|---|---|
| Command-Line Format | --check-missing |
대응하는 BLOB 파트가 없는 NDB Cluster 테이블의 인라인 파트를 검사합니다.
| Property | Value |
|---|---|
| Command-Line Format | --check-orphans |
대응하는 인라인 파트가 없는 NDB Cluster 테이블의 BLOB 파트를 검사합니다.
| Property | Value |
|---|---|
| Command-Line Format | --connect-retries=# |
| Type | Integer |
| Default Value | 12 |
| Minimum Value | 0 |
| Maximum Value | 12 |
포기하기 전에 연결을 재시도할 횟수입니다.
| Property | Value |
|---|---|
| Command-Line Format | --connect-retry-delay=# |
| Type | Integer |
| Default Value | 5 |
| Minimum Value | 0 |
| Maximum Value | 5 |
매니지먼트 서버에 접속을 시도하는 사이에 대기할 초 수입니다.
| Property | Value |
|---|---|
| Command-Line Format | --connect-string=connection_string |
| Type | String |
| Default Value | [none] |
--ndb-connectstring과 동일합니다.
| Property | Value |
|---|---|
| Command-Line Format | --core-file |
에러 발생 시 코어 파일을 기록합니다. 디버깅에 사용됩니다.
| Property | Value |
|---|---|
| Command-Line Format | --database=name |
| Type | String |
| Default Value | [none] |
테이블을 찾을 데이터베이스를 지정합니다.
| Property | Value |
|---|---|
| Command-Line Format | --defaults-extra-file=path |
| Type | String |
| Default Value | [none] |
글로벌 파일을 읽은 후 지정된 파일을 읽습니다.
| Property | Value |
|---|---|
| Command-Line Format | --defaults-file=path |
| Type | String |
| Default Value | [none] |
지정된 파일에서만 기본 옵션을 읽습니다.
| Property | Value |
|---|---|
| Command-Line Format | --defaults-group-suffix=string |
| Type | String |
| Default Value | [none] |
concat(group, suffix)를 사용한 그룹도 함께 읽습니다.
| Property | Value |
|---|---|
| Command-Line Format | --delete-orphans |
대응하는 인라인 파트가 없는 NDB Cluster 테이블의 BLOB 파트를 제거합니다.
| Property | Value |
|---|---|
| Command-Line Format | --dump-file=file |
| Type | File name |
| Default Value | [none] |
고아 BLOB 컬럼 파트 목록을 _file_에 기록합니다. 파일에 기록되는 정보에는 각 고아 BLOB 파트에 대한 테이블 키와 BLOB 파트 번호가 포함됩니다.
| Property | Value |
|---|---|
| Command-Line Format | --help |
헬프 텍스트를 표시하고 종료합니다.
| Property | Value |
|---|---|
| Command-Line Format | --login-path=path |
| Type | String |
| Default Value | [none] |
로그인 파일에서 지정된 path를 읽습니다.
| Property | Value |
|---|---|
| Command-Line Format | --no-login-paths |
로그인 패스 파일에서 옵션을 읽는 것을 건너뜁니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-connectstring=connection_string |
| Type | String |
| Default Value | [none] |
ndb_mgmd에 연결하기 위한 커넥션 문자열을 설정합니다. 문법:
[nodeid=id;][host=]hostname[:port]. NDB_CONNECTSTRING 및 my.cnf에 있는 항목을 재정의합니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-mgm-tls=level |
| Type | Enumeration |
| Default Value | relaxed |
| Valid Values | relaxed<br>strict |
매니지먼트 서버에 연결하는 데 필요한 TLS 지원 수준을 설정합니다. relaxed 또는
strict 중 하나입니다. 기본값인 relaxed는 TLS 연결을 시도하되 성공을 필수로 요구하지 않는다는 의미입니다. strict는 연결에 TLS가 반드시 필요함을 의미합니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-mgmd-host=connection_string |
| Type | String |
| Default Value | [none] |
--ndb-connectstring과 동일합니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-nodeid=# |
| Type | Integer |
| Default Value | [none] |
--ndb-connectstring에 의해 설정된 ID를 재정의하여, 이 노드에 대한 노드 ID를 설정합니다.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-optimized-node-selection |
트랜잭션에 사용할 노드 선택에 대한 최적화를 활성화합니다. 기본적으로 활성화되어 있으며, 비활성화하려면 --skip-ndb-optimized-node-selection을 사용하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --ndb-tls-search-path=list |
| Type | Path name |
| Default Value (Unix) | $HOME/ndb-tls |
| Default Value (Windows) | $HOMEDIR/ndb-tls |
CA 파일을 검색할 디렉터리 목록을 지정합니다. Unix 플랫폼에서는 디렉터리 이름이 콜론(:)으로 구분되고, Windows 시스템에서는 세미콜론(;) 문자로 구분됩니다. 디렉터리 참조는 상대 또는 절대 경로일 수 있으며, 하나 이상의 환경 변수를 포함할 수 있습니다. 각 환경 변수는 달러 기호($)로 접두사되며 사용 전에 확장됩니다.
검색은 가장 왼쪽에 있는 디렉터리에서 시작하여 파일이 발견될 때까지 왼쪽에서 오른쪽으로 진행됩니다. 빈 문자열은 빈 검색 경로를 나타내며, 이 경우 모든 검색이 실패합니다. 점 하나(.)만으로 구성된 문자열은 검색 경로가 현재 작업 디렉터리로 제한됨을 나타냅니다.
검색 경로가 제공되지 않으면 컴파일 시에 지정된 기본값이 사용됩니다. 이 값은 사용하는 플랫폼에 따라 달라집니다. Windows의 기본값은 \ndb-tls이고, 다른 플랫폼(예: Linux)에서는 $HOME/ndb-tls입니다. 이는 NDB Cluster를
-DWITH_NDB_TLS_SEARCH_PATH를 사용하여 컴파일함으로써 재정의할 수 있습니다.
| Property | Value |
|---|---|
| Command-Line Format | --no-defaults |
로그인 파일 이외의 어떤 옵션 파일에서도 기본 옵션을 읽지 않습니다.
| Property | Value |
|---|---|
| Command-Line Format | --print-defaults |
프로그램 아규먼트 목록을 출력하고 종료합니다.
| Property | Value |
|---|---|
| Command-Line Format | --usage |
헬프 텍스트를 표시하고 종료합니다. --help와 동일합니다.
| Property | Value |
|---|---|
| Command-Line Format | --verbose |
도구의 출력에 진행 상황에 대한 추가 정보를 제공합니다.
| Property | Value |
|---|---|
| Command-Line Format | --version |
버전 정보를 표시하고 종료합니다.
먼저 test 데이터베이스에 있는 NDB 테이블을 다음에 나와 있는
CREATE TABLE 스테이트먼트를 사용하여 생성합니다:
1USE test; 2 3CREATE TABLE btest ( 4 c0 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 5 c1 TEXT, 6 c2 BLOB 7) ENGINE=NDB;
그런 다음 이 테이블에 다음과 유사한 일련의 스테이트먼트를 사용하여 몇 개의 로우를 삽입합니다:
1INSERT INTO btest VALUES (NULL, 'x', REPEAT('x', 1000));
이 테이블에 대해
--check-orphans 옵션을 사용하여
ndb_blob_tool을 실행하면, 다음 출력이 생성됩니다:
1$> ndb_blob_tool --check-orphans --verbose -d test btest 2connected 3processing 2 blobs 4processing blob #0 c1 NDB$BLOB_19_1 5NDB$BLOB_19_1: nextResult: res=1 6total parts: 0 7orphan parts: 0 8processing blob #1 c2 NDB$BLOB_19_2 9NDB$BLOB_19_2: nextResult: res=0 10NDB$BLOB_19_2: nextResult: res=0 11NDB$BLOB_19_2: nextResult: res=0 12NDB$BLOB_19_2: nextResult: res=0 13NDB$BLOB_19_2: nextResult: res=0 14NDB$BLOB_19_2: nextResult: res=0 15NDB$BLOB_19_2: nextResult: res=0 16NDB$BLOB_19_2: nextResult: res=0 17NDB$BLOB_19_2: nextResult: res=0 18NDB$BLOB_19_2: nextResult: res=0 19NDB$BLOB_19_2: nextResult: res=1 20total parts: 10 21orphan parts: 0 22disconnected
도구는 컬럼 c1이
TEXT 컬럼임에도 불구하고, 컬럼 c1과 연관된 NDB BLOB 컬럼 파트가 없다고 보고합니다. 이는 NDB 테이블에서는
BLOB 또는
TEXT 컬럼 값의 처음 256바이트만 인라인으로 저장되고, 초과분이 있을 때만 별도로 저장되기 때문입니다.
따라서 특정 타입의 컬럼에 대해 256바이트를 초과하는 값을 사용하는 경우가 없다면, 이 컬럼에 대해 NDB에 의해 어떤 BLOB 컬럼 파트도 생성되지 않습니다. 자세한 내용은 Section 13.7, “Data Type Storage Requirements”를 참고하십시오.
25.5.5 ndb_mgm — The NDB Cluster Management Client
25.5.7 ndb_config — Extract NDB Cluster Configuration Information