ALTER LOGFILE GROUP logfile_group
ADD UNDOFILE 'file_name'
[INITIAL_SIZE [=] size]
[WAIT]
ENGINE [=] engine_name
此陳述式將名為 'file_name
' 的 UNDO
檔案新增至現有的日誌檔案群組 logfile_group
。 ALTER LOGFILE GROUP
陳述式有一個且僅有一個 ADD UNDOFILE
子句。目前不支援 DROP UNDOFILE
子句。
所有 NDB Cluster 磁碟資料物件都共用相同的命名空間。這表示每個磁碟資料物件都必須具有唯一名稱(而不僅僅是給定類型的每個磁碟資料物件)。例如,您不能有具有相同名稱的表格空間和復原日誌檔案,或具有相同名稱的復原日誌檔案和資料檔案。
選用的 INITIAL_SIZE
參數以位元組為單位設定 UNDO
檔案的初始大小;如果未指定,初始大小預設為 134217728 (128 MB)。您可以選擇性地在 size
後面加上一個字母的數量級縮寫,類似於 my.cnf
中使用的縮寫。一般而言,這是字母 M
(百萬位元組)或 G
(十億位元組)之一。(Bug #13116514, Bug #16104705, Bug #62858)
在 32 位元系統上,INITIAL_SIZE
支援的最大值為 4294967296 (4 GB)。 (錯誤 #29186)
INITIAL_SIZE
允許的最小值為 1048576 (1 MB)。 (錯誤 #29574)
WAIT
會被解析,但會被忽略。此關鍵字目前沒有任何作用,旨在未來擴展使用。
ENGINE
子句(為必要)決定此日誌檔案群組所使用的儲存引擎,其中 engine_name
為儲存引擎的名稱。目前,engine_name
唯一接受的值為 「NDBCLUSTER
」 和 「NDB
」。這兩個值是等效的。
以下是一個範例,假設日誌檔案群組 lg_3
已使用 CREATE LOGFILE GROUP
建立(請參閱第 15.1.16 節,「CREATE LOGFILE GROUP 陳述式」)。
ALTER LOGFILE GROUP lg_3
ADD UNDOFILE 'undo_10.dat'
INITIAL_SIZE=32M
ENGINE=NDBCLUSTER;
當 ALTER LOGFILE GROUP
與 ENGINE = NDBCLUSTER
(或者,ENGINE = NDB
)一起使用時,會在每個 NDB Cluster 資料節點上建立一個還原日誌檔。您可以查詢 Information Schema FILES
資料表,來驗證還原檔案是否已建立並取得有關它們的資訊。例如
mysql> SELECT FILE_NAME, LOGFILE_GROUP_NUMBER, EXTRA
-> FROM INFORMATION_SCHEMA.FILES
-> WHERE LOGFILE_GROUP_NAME = 'lg_3';
+-------------+----------------------+----------------+
| FILE_NAME | LOGFILE_GROUP_NUMBER | EXTRA |
+-------------+----------------------+----------------+
| newdata.dat | 0 | CLUSTER_NODE=3 |
| newdata.dat | 0 | CLUSTER_NODE=4 |
| undo_10.dat | 11 | CLUSTER_NODE=3 |
| undo_10.dat | 11 | CLUSTER_NODE=4 |
+-------------+----------------------+----------------+
4 rows in set (0.01 sec)
(請參閱 第 28.3.15 節,「INFORMATION_SCHEMA FILES 資料表」。)
用於 UNDO_BUFFER_SIZE
的記憶體來自全域池,其大小由 SharedGlobalMemory
資料節點配置參數的值決定。這包括 InitialLogFileGroup
資料節點配置參數設定所暗示的此選項的任何預設值。
ALTER LOGFILE GROUP
僅適用於 NDB Cluster 的磁碟資料儲存。如需更多資訊,請參閱第 25.6.11 節,「NDB Cluster 磁碟資料表」。