歸檔為CSV或ORC格式
本文介紹了將冷數(shù)據(jù)歸檔為CSV或ORC格式的方法,以及將OSS表數(shù)據(jù)導(dǎo)回至PolarStore的方法。
前提條件
若要?dú)w檔為CSV格式的文件,企業(yè)版集群版本需滿足以下要求,您可以通過查詢版本號(hào)來確認(rèn)集群版本。
產(chǎn)品系列為集群版,且版本為以下版本之一:
PolarDB MySQL版8.0.1版本且小版本為8.0.1.1.32及以上。
PolarDB MySQL版8.0.2版本且小版本為8.0.2.2.10及以上。
說明集群版本為以下版本時(shí),手動(dòng)歸檔冷數(shù)據(jù)不記錄Binlog日志。
PolarDB MySQL版8.0.1版本且小版本為8.0.1.1.33及以上。
PolarDB MySQL版8.0.2版本且小版本為8.0.2.2.11.1及以上。
產(chǎn)品系列為多主集群(庫表),且版本為PolarDB MySQL版8.0.1.0.13及以上。
若要?dú)w檔為ORC格式的文件,企業(yè)版集群版本需為PolarDB MySQL版8.0.2版本且修訂版本為8.0.2.2.16.2及以上。您可以通過查詢版本號(hào)來確認(rèn)集群版本。
已開啟冷數(shù)據(jù)歸檔功能。
使用說明
歸檔普通表
冷數(shù)據(jù)歸檔執(zhí)行的是表歸檔操作,執(zhí)行冷數(shù)據(jù)歸檔操作后的表稱為歸檔表(只讀),歸檔表的引擎為OSS引擎,歸檔表的數(shù)據(jù)文件存儲(chǔ)在OSS上。執(zhí)行冷數(shù)據(jù)歸檔操作后,原來本地表在PolarStore上占用的空間將被釋放。
語法
歸檔為CSV格式的文件:
ALTER TABLE table_name ENGINE = CSV CONNECTION = 'default_oss_server';
當(dāng)集群版本為PolarDB MySQL版8.0.1.1.33版本及以上,或PolarDB MySQL版8.0.2.2.13版本及以上,或多主集群(庫表)為PolarDB MySQL版8.0.1.1.15及以上時(shí),除上述語法外,還支持使用以下語法來手動(dòng)歸檔冷數(shù)據(jù):
ALTER TABLE table_name ENGINE = CSV STORAGE OSS;
歸檔為ORC格式的文件:
ALTER TABLE table_name ENGINE = ORC STORAGE OSS;
如果OSS對(duì)象存儲(chǔ)中存在與歸檔的數(shù)據(jù)文件名稱沖突的數(shù)據(jù)文件,系統(tǒng)會(huì)報(bào)文件已經(jīng)存在的錯(cuò)誤。例如:
Target file for archived table exists on oss.
您可以在以上三個(gè)語法中通過添加FORCE關(guān)鍵字來覆蓋OSS對(duì)象存儲(chǔ)中已經(jīng)存在的數(shù)據(jù)文件。以歸檔為CSV格式為例,添加FORCE關(guān)鍵字的語法如下:
ALTER TABLE table_name ENGINE = CSV CONNECTION = 'default_oss_server' , FORCE;
參數(shù)說明
參數(shù) | 說明 |
table_name | 需要?dú)w檔到OSS對(duì)象存儲(chǔ)中的表名。 |
注意事項(xiàng)
支持對(duì)InnoDB引擎和X-Engine引擎上的表使用冷數(shù)據(jù)歸檔功能。
冷數(shù)據(jù)歸檔過程中不支持對(duì)表進(jìn)行修改(DDL和DML)。
冷數(shù)據(jù)歸檔功能不支持將數(shù)據(jù)文件歸檔到用戶自建的OSS Server中。
對(duì)InnoDB引擎中的表使用冷數(shù)據(jù)歸檔功能時(shí),執(zhí)行冷數(shù)據(jù)歸檔操作的表中必須有主鍵。
冷數(shù)據(jù)歸檔完成后,OSS上的歸檔表只讀,且查詢性能較差。您需要提前測(cè)試數(shù)據(jù)歸檔后是否能滿足您的查詢性能要求。
示例
將表t
中的數(shù)據(jù)以CSV或ORC格式歸檔至OSS。
在數(shù)據(jù)庫
oss_test
中創(chuàng)建InnoDB表t
。在表
t
中插入數(shù)據(jù)。通過
ALTER
命令歸檔冷數(shù)據(jù)。歸檔為CSV格式:
ALTER TABLE t ENGINE = CSV CONNECTION = 'default_oss_server';
集群版本為PolarDB MySQL版8.0.1.1.33版本及以上,或PolarDB MySQL版8.0.2.2.13版本及以上,或多主集群(庫表)為PolarDB MySQL版8.0.1.1.15及以上時(shí),使用以下命令:
ALTER TABLE t ENGINE = CSV STORAGE OSS;
歸檔為ORC格式:
ALTER TABLE t ENGINE = ORC STORAGE OSS;
歸檔完成后,您可以登錄PolarDB控制臺(tái)查看歸檔在OSS上的庫表信息,或通過SQL語句查看歸檔表上的數(shù)據(jù):
查看歸檔在OSS上的庫表信息:登錄PolarDB控制臺(tái)。在目標(biāo)集群的 路徑下,查看歸檔在OSS上的庫表信息。
查看歸檔表上的數(shù)據(jù):通過SQL語句查看歸檔表上的數(shù)據(jù),而不需要修改表的訪問方式。例如:
SELECT * FROM t;
CREATE TABLE t(a int, b int, c int, primary key(a)) ENGINE = INNODB;
INSERT INTO t VALUES (1,2,3);
分區(qū)表歸檔至OSS外表
PolarDB MySQL版需要為8.0.2版本且小版本為8.0.2.2.25及以上。
請(qǐng)?jiān)诳刂婆_(tái)上將集群參數(shù)
partition_level_mdl_enabled
設(shè)置為ON,開啟分區(qū)級(jí)別的元數(shù)據(jù)鎖功能(MDL),集群詳細(xì)參數(shù)配置請(qǐng)參考設(shè)置集群參數(shù)和節(jié)點(diǎn)參數(shù)。請(qǐng)?jiān)诳刂婆_(tái)上將集群參數(shù)
loose_use_oss_meta
設(shè)置為ON,開啟use_oss_meta
功能,集群詳細(xì)參數(shù)配置請(qǐng)參考設(shè)置集群參數(shù)和節(jié)點(diǎn)參數(shù)。
語法
CALL dbms_dlm.archive_partition2table('source_db', 'source_tb', 'source_part', 'archive_db', 'archive_table', 'archive_table_file_filter');
參數(shù)說明
參數(shù) | 說明 |
source_db | 源表數(shù)據(jù)庫名稱。 |
source_tb | 源表表名。 |
source_part | 源表歸檔的分區(qū)可以通過逗號(hào)分隔,以支持多個(gè)分區(qū)。 |
archive_db | 目標(biāo)表數(shù)據(jù)庫名稱。 |
archive_table | 目標(biāo)表表名。 |
archive_table_file_filter | 用于指定目標(biāo)表是否需要新創(chuàng)建FILE FILTER。 |
注意事項(xiàng)
如果歸檔目標(biāo)OSS表不存在,會(huì)自動(dòng)創(chuàng)建目標(biāo)OSS表,且目標(biāo)表上會(huì)自動(dòng)在
archive_table_file_filter
指定的列上創(chuàng)建oss_file_filter
,以提供查詢加速功能。同時(shí)archive_table_file_filter
中會(huì)自動(dòng)加入主鍵和分區(qū)鍵,幫助提升查詢速度。如果歸檔目標(biāo)OSS表存在,則需要比較兩個(gè)表中列名或者列類型定義是否一致。如果一致,則可以進(jìn)行歸檔;如果不一致,則會(huì)出錯(cuò)。您可以使用DDL語句讓這兩個(gè)表定義保持一致,具體請(qǐng)參考相關(guān)文檔冷數(shù)據(jù)DDL。同時(shí),如果目標(biāo)表上有
oss_file_filter
,且定義與call dbms_dlm.archive_partition2table
中定義的不一致,則以目標(biāo)表上的oss_file_filter
為準(zhǔn)。如果目標(biāo)表OSS不存在,但OSS表上有同名文件,則進(jìn)行歸檔操作會(huì)出現(xiàn)報(bào)錯(cuò)信息。報(bào)錯(cuò)信息如下:
mysql> CALL dbms_dlm.archive_partition2table('test', 'sales', 'p0', 'test', 'sales_history', 'id'); ERROR 8181 (HY000): [Data Lifecycle Management] errmsg: Target file for archived table exists on oss, please remove it first, or use flag 'FORCE' to overwrite on existing files.
此時(shí)如果確認(rèn)OSS上的殘留文件不需要,可以通過存儲(chǔ)過程刪除OSS上的數(shù)據(jù),再執(zhí)行歸檔操作。
-- 刪除OSS數(shù)據(jù) mysql> CALL dbms_oss.delete_table_file('test', 'sales_history'); Query OK, 0 rows affected (0.76 sec) -- 執(zhí)行歸檔操作 mysql> CALL dbms_dlm.archive_partition2table('test', 'sales', 'p0', 'test', 'sales_history', 'id'); Query OK, 0 rows affected (4.24 sec)
目標(biāo)表OSS僅支持CSV格式冷數(shù)據(jù)。
分區(qū)表歸檔后至少還需要包含一個(gè)InnoDB分區(qū)。
歸檔后的數(shù)據(jù)丟失了分區(qū)信息,無法直接取回。但是可以通過
insert select
取回。不支持單獨(dú)歸檔二級(jí)分區(qū),可以把整個(gè)一級(jí)分區(qū)下的二級(jí)分區(qū)全部歸檔。
下表列出了PolarDB MySQL版分區(qū)函數(shù)支持的分區(qū)類型。
一級(jí)分區(qū)
二級(jí)分區(qū)
是否支持歸檔至OSS外表
HASH
任意類型
不支持一級(jí)分區(qū)HASH類型歸檔至OSS外表。
LIST
任意類型
支持。
RANGE
任意類型
支持。
KEY
任意類型
支持。
任意類型
不支持歸檔DEFAULT分區(qū)。
示例
創(chuàng)建InnoDB分區(qū)表并插入數(shù)據(jù)。
DROP TABLE IF EXISTS `sales`; -- 創(chuàng)建分區(qū)表; CREATE TABLE `sales` ( `id` int DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `order_time` datetime NOT NULL, primary key (order_time) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 PARTITION BY RANGE COLUMNS(order_time) INTERVAL(month, 1) (PARTITION p0 VALUES LESS THAN ('2022-01-01') ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN ('2023-01-01 00:00:00') ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN ('2024-01-01 00:00:00') ENGINE = InnoDB); DROP PROCEDURE IF EXISTS proc_batch_insert; delimiter $$ CREATE PROCEDURE proc_batch_insert(IN begin INT, IN end INT, IN name VARCHAR(20)) BEGIN SET @insert_stmt = concat('INSERT INTO ', name, ' VALUES(? , ?, ?);'); PREPARE stmt from @insert_stmt; WHILE begin <= end DO SET @ID1 = begin; SET @NAME = CONCAT(begin+begin*281313, '@stiven'); SET @TIME = from_days(begin + 738368); EXECUTE stmt using @ID1, @NAME, @TIME; SET begin = begin + 1; END WHILE; END; $$ delimiter ; CALL proc_batch_insert(1, 1000, 'sales');
把分區(qū)表的p0分區(qū)歸檔至新的執(zhí)行OSS表。
執(zhí)行如下命令,查看sales表結(jié)構(gòu)信息。
-- 查看當(dāng)前InnoDB表的狀態(tài); mysql> SHOW CREATE TABLE sales;
執(zhí)行結(jié)果如下:
*************************** 1. row *************************** Table: sales Create Table: CREATE TABLE `sales` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `order_time` datetime NOT NULL, PRIMARY KEY (`order_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!50500 PARTITION BY RANGE COLUMNS(order_time) */ /*!99990 800020200 INTERVAL(MONTH, 1) */ /*!50500 (PARTITION p0 VALUES LESS THAN ('2022-01-01') ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN ('2023-01-01 00:00:00') ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN ('2024-01-01 00:00:00') ENGINE = InnoDB, PARTITION _p20240201000000 VALUES LESS THAN ('2024-02-01 00:00:00') ENGINE = InnoDB, PARTITION _p20240301000000 VALUES LESS THAN ('2024-03-01 00:00:00') ENGINE = InnoDB, PARTITION _p20240401000000 VALUES LESS THAN ('2024-04-01 00:00:00') ENGINE = InnoDB, PARTITION _p20240501000000 VALUES LESS THAN ('2024-05-01 00:00:00') ENGINE = InnoDB) */ 1 row in set (0.03 sec)
執(zhí)行如下命令,將p0分區(qū)歸檔至OSS表sales_history。
-- 把p0分區(qū)歸檔至OSS表 sales_history,并在id 列上建立OSS_FILE_FILTER; mysql> CALL dbms_dlm.archive_partition2table('test', 'sales', 'p0', 'test', 'sales_history', 'id'); Query OK, 0 rows affected (1.86 sec)
執(zhí)行如下命令,查看sales_history表結(jié)構(gòu)信息。
SHOW CREATE TABLE sales_history;
執(zhí)行結(jié)果如下:
*************************** 1. row ***************************; Table: sales_history Create Table: CREATE TABLE `sales_history` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `order_time` datetime DEFAULT NULL, PRIMARY KEY (`order_time`) ) /*!99990 800020213 STORAGE OSS */ ENGINE=CSV DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!99990 800020204 NULL_MARKER='NULL' */ /*!99990 800020223 OSS META=1 */ /*!99990 800020224 OSS_FILE_FILTER='id,order_time' */ 1 row in set (0.00 sec)
在新的OSS表上進(jìn)行查詢。
說明您可以啟用OSS_FILE_FILTER查詢加速功能,以完成加速查詢。
mysql> explain SELECT * FROM sales_history WHERE id = 100; +----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------------------------------------------------------------------------------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------------------------------------------------------------------------------+ | 1 | SIMPLE | sales_history | NULL | ALL | NULL | NULL | NULL | NULL | 152 | 10.00 | Using where; With pushed engine condition (`test`.`sales_history`.`id` = 100) | +----+-------------+---------------+------------+------+---------------+------+---------+------+------+----------+-------------------------------------------------------------------------------+ 1 row in set, 1 warning (0.00 sec) mysql> SELECT * FROM sales_history WHERE id = 100; +------+-----------------+---------------------+ | id | name | order_time | +------+-----------------+---------------------+ | 100 | 28131400@stiven | 2021-11-09 00:00:00 | +------+-----------------+---------------------+ 1 row in set (0.24 sec)
歸檔分區(qū)表
歸檔分區(qū)表功能目前處于灰度階段,如需使用,請(qǐng)前往配額中心,根據(jù)配額ID
polardb_mysql_hybrid_partition
找到配額名稱,在對(duì)應(yīng)的操作列單擊申請(qǐng)
來開通該功能。企業(yè)版集群版本為PolarDB MySQL版8.0.2版本且修訂版本為8.0.2.2.14及以上時(shí),支持歸檔分區(qū)表。
歸檔分區(qū)表是對(duì)表的分區(qū)進(jìn)行歸檔,歸檔后的表為混合分區(qū)表,歸檔后分區(qū)的數(shù)據(jù)文件保存在OSS上。執(zhí)行完歸檔操作后,分區(qū)在PolarStore上占用的空間會(huì)自動(dòng)釋放。
語法
歸檔為CSV格式的文件:
ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV;
歸檔為ORC格式的文件:
ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = ORC;
如果OSS對(duì)象存儲(chǔ)中存在與歸檔的數(shù)據(jù)文件名稱沖突的數(shù)據(jù)文件,系統(tǒng)會(huì)報(bào)文件已經(jīng)存在的錯(cuò)誤。例如:
Target file for archived table exists on oss.
您可以在以上三個(gè)語法中通過添加FORCE關(guān)鍵字來覆蓋OSS對(duì)象存儲(chǔ)中已經(jīng)存在的數(shù)據(jù)文件。以歸檔為CSV格式為例,添加FORCE關(guān)鍵字的語法如下:
ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV FORCE;
參數(shù)說明
參數(shù) | 說明 |
table_name | 需要?dú)w檔到OSS對(duì)象存儲(chǔ)中的表名。 |
part_name | 需要?dú)w檔到OSS對(duì)象存儲(chǔ)中的分區(qū)名。 |
注意事項(xiàng)
僅支持對(duì)InnoDB引擎上的分區(qū)表使用冷數(shù)據(jù)歸檔功能。
對(duì)分區(qū)表執(zhí)行分區(qū)歸檔操作時(shí),至少保留一個(gè)分區(qū)在InnoDB引擎上,即無法對(duì)最后一個(gè)InnoDB引擎上的分區(qū)執(zhí)行冷數(shù)據(jù)歸檔操作。
歸檔后的表為混合分區(qū)表,不支持對(duì)混合分區(qū)表執(zhí)行DDL操作。使用時(shí)的注意事項(xiàng)詳情請(qǐng)參見創(chuàng)建混合分區(qū)。
暫不支持對(duì)歸檔后的分區(qū)數(shù)據(jù)進(jìn)行修改。
暫不支持對(duì)分區(qū)表中的二級(jí)分區(qū)執(zhí)行冷數(shù)據(jù)歸檔操作。
暫不支持對(duì)LIST DEFAULT HASH分區(qū)表的DEFAULT分區(qū)執(zhí)行冷數(shù)據(jù)歸檔操作。
暫不支持對(duì)HASH或KEY類型的分區(qū)表執(zhí)行冷數(shù)據(jù)歸檔操作。
暫不支持對(duì)整張分區(qū)表執(zhí)行手動(dòng)歸檔冷數(shù)據(jù)操作。
歸檔分區(qū)中的數(shù)據(jù)時(shí),若OSS上存在同名文件,則會(huì)執(zhí)行失敗并報(bào)類似如下錯(cuò)誤信息:
Target file for archived table exists on oss.
您需要執(zhí)行以下命令來覆蓋OSS上已存在的文件。執(zhí)行命令時(shí)請(qǐng)根據(jù)實(shí)際情況替換
table_name
和part_name
。ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV/ORC FORCE;
示例
將表t
中p1
和p2
分區(qū)上的數(shù)據(jù)以CSV格式歸檔至OSS。
在數(shù)據(jù)庫中創(chuàng)建InnoDB表
t
。CREATE TABLE t(a int, b int, c int, primary key(a)) PARTITION BY RANGE(a) (PARTITION p1 values less than(100), PARTITION p2 values less than(200), PARTITION p3 values less than MAXVALUE );
在表
t
中插入數(shù)據(jù)。INSERT INTO t VALUES(1,1,1); INSERT INTO t VALUES(10,10,10); INSERT INTO t VALUES(100,100,100); INSERT INTO t VALUES(150,150,150); INSERT INTO t VALUES(200,200,200); INSERT INTO t VALUES(1000,1000,1000);
執(zhí)行以下命令,將
p1
和p2
分區(qū)上的數(shù)據(jù)歸檔至OSS引擎。歸檔為CSV格式:
ALTER TABLE t CHANGE PARTITION p1 ENGINE = csv; ALTER TABLE t CHANGE PARTITION p2 ENGINE = csv;
歸檔為ORC格式:
ALTER TABLE t CHANGE PARTITION p1 ENGINE = ORC; ALTER TABLE t CHANGE PARTITION p2 ENGINE = ORC;
歸檔完成后,您可以登錄PolarDB控制臺(tái)查看歸檔在OSS上的庫表信息,或通過SQL語句查詢混合分區(qū)表中的數(shù)據(jù):
查看歸檔在OSS上的庫表信息:登錄PolarDB控制臺(tái)。在目標(biāo)集群的 路徑下,查看歸檔在OSS上的庫表信息。
查詢混合分區(qū)表中的數(shù)據(jù):操作詳情請(qǐng)參見查詢混合分區(qū)。
將OSS數(shù)據(jù)導(dǎo)回至PolarStore
導(dǎo)回在OSS上歸檔的普通表中的數(shù)據(jù)
如果您有低頻修改歸檔到OSS上冷數(shù)據(jù)的需求,您可以通過ALTER ENGINE
語法將OSS數(shù)據(jù)導(dǎo)回至PolarStore進(jìn)行修改。數(shù)據(jù)導(dǎo)回至PolarStore后,會(huì)同步刪除OSS上的冷數(shù)據(jù)。修改完數(shù)據(jù)之后,您可以再次將修改后的表歸檔為OSS表。
語法
ALTER TABLE table_name ENGINE[=]engine_name;
參數(shù)說明
參數(shù) | 參數(shù)說明 |
table_name | 需要導(dǎo)回的OSS表的表名。 |
engine_name | 導(dǎo)回后的引擎類型。 |
注意事項(xiàng)
OSS表為只讀狀態(tài)時(shí),不支持執(zhí)行修改操作(INSERT
、UPDATE
和DELETE
)。如需修改已經(jīng)歸檔的冷數(shù)據(jù),您需要將OSS表轉(zhuǎn)換成可讀可寫的表,如InnoDB表。修改只讀狀態(tài)下的OSS表時(shí),報(bào)錯(cuò)信息如下:
1036 - Table 't1' is read only
示例
在數(shù)據(jù)庫oss_test
中將OSS表t
導(dǎo)回至PolarStore。
ALTER TABLE `oss_test`.`t` ENGINE = InnoDB;
修改InnoDB表t
的數(shù)據(jù),修改完數(shù)據(jù)之后,再次將InnoDB引擎中的表t
歸檔至OSS。示例如下:
ALTER TABLE t ENGINE = CSV CONNECTION = 'default_oss_server';
或
ALTER TABLE t ENGINE = CSV STORAGE OSS;
導(dǎo)回在OSS上歸檔的分區(qū)表中的數(shù)據(jù)
如果您有將已歸檔的分區(qū)表中的數(shù)據(jù)導(dǎo)回至PolarStore的需求,您可以使用ALTER語句將OSS上的數(shù)據(jù)導(dǎo)回至PolarStore。數(shù)據(jù)導(dǎo)回后,會(huì)同步刪除OSS上的冷數(shù)據(jù)。
語法
ALTER TABLE table_name REORGANIZE PARTITION part_name INTO (partition_definition);
參數(shù)說明
參數(shù) | 參數(shù)說明 |
table_name | 需要導(dǎo)回的OSS表的表名。 |
part_name | 需要導(dǎo)回的分區(qū)名稱。 |
partition_definition | 與需要導(dǎo)回的分區(qū)的 |
示例
在數(shù)據(jù)庫中,將歸檔在OSS上的分區(qū)表t
中p1
分區(qū)上的數(shù)據(jù)導(dǎo)回至PolarStore。
ALTER TABLE t REORGANIZE PARTITION p1 INTO(PARTITION p1 values less than(100));
刪除OSS上對(duì)應(yīng)的文件
當(dāng)前僅滿足以下版本的PolarDB MySQL版集群支持刪除OSS上對(duì)應(yīng)的文件:
8.0.1版本且小版本需為8.0.1.1.42及以上。
8.0.2版本且小版本需為8.0.2.2.23及以上。
若您的集群的小版本不滿足以上版本要求時(shí),暫不支持刪除OSS上對(duì)應(yīng)的文件。建議升級(jí)您集群的小版本,具體請(qǐng)參見版本管理。
當(dāng)您將OSS上的表刪除或?qū)Щ刂罰olarStore后,OSS上的文件不會(huì)同步刪除。確定數(shù)據(jù)不再使用后,您可以使用如下語法刪除OSS上對(duì)應(yīng)的文件:
CALL dbms_oss.delete_table_file('database_name', 'table_name');
由于刪除OSS上對(duì)應(yīng)文件的操作是異步執(zhí)行的,故需要等待集群中的所有節(jié)點(diǎn)都不再依賴OSS文件后才可完全刪除,且流量較大時(shí)存在一定時(shí)延。因此,如果上述命令執(zhí)行失敗并返回錯(cuò)誤信息OSS files are still in use
時(shí),您可以等待一段時(shí)間后再重新執(zhí)行該命令。