此表格包含關於 NDB 傳輸器的資訊。有關個別傳輸器的類似資訊,請參閱 transporter_details 表格。
transporters 表格包含以下欄位
node_id此資料節點在叢集中的唯一節點 ID
remote_node_id遠端資料節點的節點 ID
status連線狀態
remote_address遠端主機的名稱或 IP 位址
bytes_sent使用此連線傳送的位元組數
bytes_received使用此連線接收的位元組數
connect_count在此傳輸器上建立連線的次數
overloaded如果此傳輸器目前超載,則為 1,否則為 0
overload_count此傳輸器自連線以來進入超載狀態的次數
slowdown如果此傳輸器處於減速狀態,則為 1,否則為 0
slowdown_count此傳輸器自連線以來進入減速狀態的次數
encrypted如果此傳輸器使用 TLS 連線,則此欄位為
1,否則為0。
注意事項
對於叢集中每個執行的資料節點,transporters 表格會顯示一個列,顯示該節點與叢集中所有節點的連線狀態,包括其本身。此資訊顯示在表格的 status 欄位中,此欄位可以有以下任何一個值:CONNECTING、CONNECTED、DISCONNECTING 或 DISCONNECTED。
與已設定但目前未連線至叢集的 API 和管理節點的連線會顯示狀態 DISCONNECTED。在此表格中不會顯示 node_id 是目前未連線之資料節點的列。(這與 ndbinfo.nodes 表格中省略已斷線節點的情況類似。)
remote_address 是節點的主機名稱或位址,其 ID 顯示在 remote_node_id 欄位中。此節點的 bytes_sent 和此節點的 bytes_received 分別是此節點自連線建立以來使用此連線傳送和接收的位元組數。對於狀態為 CONNECTING 或 DISCONNECTED 的節點,這些欄位始終顯示 0。
假設您有一個包含 2 個資料節點、2 個 SQL 節點和 1 個管理節點的 5 節點叢集,如 SHOW 命令在 ndb_mgm 用戶端中的輸出所示
ndb_mgm> SHOW
Connected to Management Server at: localhost:1186 (using cleartext)
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=1 @10.100.10.1 (9.0.0-ndb-9.0.0, Nodegroup: 0, *)
id=2 @10.100.10.2 (9.0.0-ndb-9.0.0, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=10 @10.100.10.10 (9.0.0-ndb-9.0.0)
[mysqld(API)] 2 node(s)
id=20 @10.100.10.20 (9.0.0-ndb-9.0.0)
id=21 @10.100.10.21 (9.0.0-ndb-9.0.0)transporters 表格中有 10 列—第一個資料節點有 5 列,第二個資料節點有 5 列—假設所有資料節點都在執行,如下所示
+---------+----------------+------------+----------------+------------+----------------+---------------+------------+----------------+----------+----------------+-----------+
| node_id | remote_node_id | status | remote_address | bytes_sent | bytes_received | connect_count | overloaded | overload_count | slowdown | slowdown_count | encrypted |
+---------+----------------+------------+----------------+------------+----------------+---------------+------------+----------------+----------+----------------+-----------+
| 5 | 6 | CONNECTED | 127.0.0.1 | 15509748 | 15558204 | 1 | 0 | 0 | 0 | 0 | 0 |
| 5 | 50 | CONNECTED | 127.0.0.1 | 1058220 | 284316 | 1 | 0 | 0 | 0 | 0 | 0 |
| 5 | 100 | CONNECTED | 127.0.0.1 | 574796 | 402208 | 1 | 0 | 0 | 0 | 0 | 0 |
| 5 | 101 | CONNECTING | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 6 | 5 | CONNECTED | 127.0.0.1 | 15558204 | 15509748 | 1 | 0 | 0 | 0 | 0 | 0 |
| 6 | 50 | CONNECTED | 127.0.0.1 | 1054548 | 283812 | 1 | 0 | 0 | 0 | 0 | 0 |
| 6 | 100 | CONNECTED | 127.0.0.1 | 529948 | 397444 | 1 | 0 | 0 | 0 | 0 | 0 |
| 6 | 101 | CONNECTING | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+----------------+------------+----------------+------------+----------------+---------------+------------+----------------+----------+----------------+-----------+mysql> SELECT node_id, remote_node_id, status
-> FROM ndbinfo.transporters;
+---------+----------------+---------------+
| node_id | remote_node_id | status |
+---------+----------------+---------------+
| 1 | 1 | DISCONNECTED |
| 1 | 2 | CONNECTED |
| 1 | 10 | CONNECTED |
| 1 | 20 | CONNECTED |
| 1 | 21 | CONNECTED |
| 2 | 1 | CONNECTED |
| 2 | 2 | DISCONNECTED |
| 2 | 10 | CONNECTED |
| 2 | 20 | CONNECTED |
| 2 | 21 | CONNECTED |
+---------+----------------+---------------+
10 rows in set (0.04 sec)如果您使用 ndb_mgm 用戶端中的命令 2 STOP 關閉此叢集中的其中一個資料節點,然後重複先前的查詢(再次使用 mysql 用戶端),此表格現在只顯示 5 列—每個從剩餘管理節點到另一個節點(包括其本身和目前離線的資料節點)的連線 1 列—並且對於目前離線之資料節點的每個剩餘連線,其狀態會顯示 CONNECTING,如下所示
mysql> SELECT node_id, remote_node_id, status
-> FROM ndbinfo.transporters;
+---------+----------------+---------------+
| node_id | remote_node_id | status |
+---------+----------------+---------------+
| 1 | 1 | DISCONNECTED |
| 1 | 2 | CONNECTING |
| 1 | 10 | CONNECTED |
| 1 | 20 | CONNECTED |
| 1 | 21 | CONNECTED |
+---------+----------------+---------------+
5 rows in set (0.02 sec)connect_count、overloaded、overload_count、slowdown 和 slowdown_count 計數器會在連線時重設,並在遠端節點斷線後保留其值。bytes_sent 和 bytes_received 計數器也會在連線時重設,因此會在斷線後保留其值(直到下次連線重設它們)。
overloaded 和 overload_count 欄位所指的超載狀態,發生於此傳輸器的傳送緩衝區包含超過 OVerloadLimit 位元組(預設值為 SendBufferMemory 的 80%,即 0.8 * 2097152 = 1677721 位元組)時。當給定的傳輸器處於超載狀態時,任何嘗試使用此傳輸器的新交易都會失敗,並顯示錯誤 1218 (NDB 核心中的傳送緩衝區超載)。這會影響掃描和主索引鍵作業。
此表格的 slowdown 和 slowdown_count 欄位所指的減速狀態,發生於傳輸器的傳送緩衝區包含超過超載限制的 60% 時(預設等於 0.6 * 2097152 = 1258291 位元組)。在此狀態下,任何使用此傳輸器的新掃描都會縮小其批次大小,以最小化傳輸器的負載。
傳送緩衝區減速或超載的常見原因包括以下幾點
將資料節點 (ndbd 或 ndbmtd) 與從事二進位記錄的 SQL 節點放在同一主機上
每個交易或交易批次的列數過多
組態問題,例如
SendBufferMemory不足硬體問題,例如 RAM 不足或網路連線狀況不佳
另請參閱 第 25.4.3.14 節,〈設定 NDB Cluster 傳送緩衝區參數〉。
如果連線使用 TLS,則 encrypted 欄位為 1,如下所示
mysql> SELECT node_id, remote_node_id, status, encrypted
-> FROM ndbinfo.transporters;
+---------+----------------+------------+-----------+
| node_id | remote_node_id | status | encrypted |
+---------+----------------+------------+-----------+
| 5 | 6 | CONNECTED | 1 |
| 5 | 50 | CONNECTED | 1 |
| 5 | 100 | CONNECTED | 1 |
| 5 | 101 | CONNECTING | 0 |
| 6 | 5 | CONNECTED | 1 |
| 6 | 50 | CONNECTED | 1 |
| 6 | 100 | CONNECTED | 1 |
| 6 | 101 | CONNECTING | 0 |
+---------+----------------+------------+-----------+
8 rows in set (0.04 sec)否則,此欄位的值為 0。
可以使用 certificates 表格來取得使用連結加密連線之每個節點的憑證資訊。
如需更多資訊,請參閱 第 25.6.15 節,〈NDB Cluster 的 TLS 連結加密〉。