华为云用户手册

  • 不支持场景 物化视图中不支持带Stream计划,多表join连接计划以及subquery计划。 不支持WITH子句、GROUP BY子句、ORDER BY子句、LIMIT子句、WINDOW子句、DISTINCT算子、AGG算子以及不支持除UNION ALL外的子查询。 除少部分ALTER操作外,不支持对物化视图中基表做绝大多数DDL操作。 创建物化视图不可指定物化视图分布列。 不可对物化视图做增删改操作,只支持查询语句。 不支持用临时表/hashbucket/unlog/分区表创建物化视图,只支持hash分布表。 不支持物化视图嵌套创建(物化视图上创建物化视图)。 不支持UN LOG GED类型的物化视图,不支持WITH语法。
  • 设置存储引擎 存储引擎会对数据库整体效率和性能具有巨大影响,请根据实际需求选择适当的存储引擎。用户可使用WITH ( [ORIENTATION | STORAGE_TYPE] [= value] [, ... ] )为表或索引指定一个可选的存储参数。参数的详细描述如下所示: ORIENTATION STORAGE_TYPE ROW(缺省值):表的数据将以行式存储。 [USTORE(缺省值)|ASTORE|空] 如果ORIENTATION指定为ROW,且STORAGE_TYPE为空的情况下创建出的表类型取决于GUC参数enable_default_ustore_table(取值为on/off,默认情况为on):如果参数设置为on,创建出的表为Ustore类型;如果为off,创建出的表为Astore类型。 具体示例如下: gaussdb=# CREATE TABLE TEST(a int); gaussdb=# \d+ test Table "public.test" Column | Type | Modifiers | Storage | Stats target | Description --------+---------+-----------+---------+--------------+------------- a | integer | | plain | | Has OIDs: no Options: orientation=row, compression=no, storage_type=USTORE gaussdb=# CREATE TABLE TEST1(a int) with(orientation=row, storage_type=ustore); gaussdb=# \d+ test1 Table "public.test1" Column | Type | Modifiers | Storage | Stats target | Description --------+---------+-----------+---------+--------------+------------- a | integer | | plain | | Has OIDs: no Options: orientation=row, storage_type=ustore, compression=no gaussdb=# CREATE TABLE TEST2(a int) with(orientation=row, storage_type=astore); gaussdb=# \d+ test2 Table "public.test2" Column | Type | Modifiers | Storage | Stats target | Description --------+---------+-----------+---------+--------------+------------- a | integer | | plain | | Has OIDs: no Options: orientation=row, storage_type=astore, compression=no gaussdb=# create table test4(a int) with(orientation=row); gaussdb=# \d+ List of relations Schema | Name | Type | Owner | Size | Storage | Description --------+-------+-------+-----------+---------+------------------------------------------------------+------------- public | test4 | table | l30048445 | 0 bytes | {orientation=row,compression=no,storage_type=USTORE} | (1 row) gaussdb=# show enable_default_ustore_table; enable_default_ustore_table ----------------------------- on (1 row) 父主题: 存储引擎体系架构
  • 其他故障 出现因“总线错误”(Bus error)导致的core dump或异常退出。 一般情况下出现此种问题,是进程运行过程中加载的共享动态库(在Linux为.so文件)出现变化;或者进程二进制文件本身出现变化,导致操作系统加载机器的执行码或者加载依赖库的入口发生变化,操作系统出于保护目的将进程杀死,产生core dump文件。 解决此问题,重试便可。同时请尽可能避免在升级等运维操作过程中,在数据库内部运行业务程序,避免升级时因替换文件产生此问题。 此故障的core dump文件的可能堆栈是dl_main及其子调用,它是操作系统用来初始化进程做共享动态库加载的。如果进程已经初始化,但是共享动态库还未加载完成,严格意义上来说,进程并未完全启动。
  • 控制文件 语法说明: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 LOAD [ DATA ] [CHARACTERSET char_set_name] [INFILE [directory_path] [filename ] ] [BADFILE [directory_path] [filename ] ] [{ INSERT | APPEND | REPLACE | TRUNCATE }] INTO TABLE table_name [{ INSERT | APPEND | REPLACE | TRUNCATE }] [FIELDS CS V] [TERMINATED [BY] { 'string' }] [OPTIONALLY ENCLOSED BY { 'string' }] [TRAILING NULLCOLS] [ WHEN { (start:end) | column_name } {= | !=} ‘string’ ] [( col_name [ [ POSITION ({ start:end }) ] ["sql_string"] ] | [ FILLER [column_type [external] ] ] | [ CONSTANT "string" ] | [ SEQUENCE ( { COUNT | MAX | integer } [, incr] ) ]|[NULLIF (COL=BLANKS)] [, ...] )]
  • 新增系统表 新增gs_copy_summary表,记录COPY执行结果汇总,包括成功行数,出错行数,忽略行数,空行数。 新增函数:copy_summary_create用于创建gs_copy_summary表。 gs_copy_summary表格式如下: relname | public.sqlldr_tbl begintime | 2021-09-03 16:00:11.7129-04 endtime | 2021-09-03 16:00:15.259908-04 id | 21870 pid | 47582725060352 readrows | 100000 skiprows | 0 loadrows | 111 errorrows | 0 whenrows | 99889 allnullrows | 0 detail | 111 Rows successfully loaded. | 0 Rows not loaded due to data errors. | 99889 Rows not loaded because all WHEN clauses were failed. | 0 Rows not loaded because all fields were null. |
  • 使用权限 使用场景分为三权分立场景下及非三权分立场景下的使用。使用者可以选择将guc参数enableSeparationOfDuty设置为on/off控制三权分立功能的开闭。 不开启三权分立时,即enableSeparationOfDuty=off: 使用者可以是数据库普通用户或管理员用户。当使用者为普通用户的时候,需要管理员用户对普通用户赋权。管理员账户可以直接使用。 创建用户。 CREATE USER load_user WITH PASSWORD '************'; 创建相关的表并授权。 GRANT ALL ON FUNCTION copy_error_log_create() TO load_user; GRANT ALL ON SCHEMA public TO load_user; SELECT copy_error_log_create(); SELECT copy_summary_create(); GRANT ALL PRIVILEGES ON public.pgxc_copy_error_log To load_user; GRANT ALL PRIVILEGES ON public.gs_copy_summary To load_user; 开启三权分立时,即enableSeparationOfDuty=on: 使用者可以是数据库普通用户或管理员用户。使用前需要到各自的schema下创建pgxc_copy_error_log表以及gs_copy_summary这两张表并添加索引,不需要再进行授权。 创建用户。 CREATE USER load_user WITH PASSWORD '********'; 创建相关的表并添加索引。 CREATE TABLE load_user.pgxc_copy_error_log (relname varchar, begintime timestamptz, filename varchar, lineno int8, rawrecord text, detail text); CREATE INDEX copy_error_log_relname_idx ON load_user.pgxc_copy_error_log(relname); CREATE TABLE load_user.gs_copy_summary(relname varchar, begintime timestamptz, endtime timestamptz, id bigint, pid bigint, readrows bigint, skiprows bigint, loadrows bigint, errorrows bigint, whenrows bigint, allnullrows bigint, detail text); CREATE INDEX gs_copy_summary_idx ON load_user.gs_copy_summary(id);
  • 使用指导 创建用户、相关表并添加索引。 (不开启三权分立)仅对于普通用户。 创建用户。 CREATE USER load_user WITH PASSWORD '************'; 创建相关的表并授权。 gs_copy_summary和pgxc_copy_error_log表中不能含有RULE、TRIGGER、索引函数、行级访问控制、CHECK约束、GENERATED列、DEFAULT列、ON UPDATE列等可能导致提权的对象,否则将认为是恶意用户创建而报错退出。 GRANT ALL ON FUNCTION copy_error_log_create() TO load_user; GRANT ALL ON SCHEMA public TO load_user; SELECT copy_error_log_create(); SELECT copy_summary_create(); GRANT ALL PRIVILEGES ON public.pgxc_copy_error_log To load_user; GRANT ALL PRIVILEGES ON public.gs_copy_summary To load_user; (开启三权分立)对于普通用户和管理员用户。 创建用户。 CREATE USER load_user WITH PASSWORD '********'; 创建相关的表并添加索引。 CREATE TABLE load_user.pgxc_copy_error_log (relname varchar, begintime timestamptz, filename varchar, lineno int8, rawrecord text, detail text); CREATE INDEX copy_error_log_relname_idx ON load_user.pgxc_copy_error_log(relname); CREATE TABLE load_user.gs_copy_summary(relname varchar, begintime timestamptz, endtime timestamptz, id bigint, pid bigint, readrows bigint, skiprows bigint, loadrows bigint, errorrows bigint, whenrows bigint, allnullrows bigint, detail text); CREATE INDEX gs_copy_summary_idx ON load_user.gs_copy_summary(id); 创建表和控制文件,准备数据文件。 创建表loader_tbl。 1 2 3 4 5 6 7 CREATE TABLE loader_tbl ( ID NUMBER, NAME VARCHAR2(20), CON VARCHAR2(20), DT DATE ); 创建控制文件loader.ctl。 1 2 3 4 5 6 7 8 9 10 11 LOAD DATA truncate into table loader_tbl WHEN (2:2) = ',' fields terminated by ',' trailing nullcols ( id integer external, name char(32), con ":id || '-' || :name", dt date ) 创建数据文件data.csv。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1,OK,,2007-07-8 2,OK,,2008-07-8 3,OK,,2009-07-8 4,OK,,2007-07-8 43,DISCARD,,2007-07-8 ,,, 32,DISCARD,,2007-07-8 a,ERROR int,,2007-07-8 8,ERROR date,,2007-37-8 ,,,, , 8,ERROR fields,,2007-37-8 ,,, 5,OK,,2021-07-30 进行导入。 执行导入前,先确认gs_loader工具有可执行权限。确保当前路径有文件写入权限(gs_loader在处理过程中会生成一些临时文件,导入完成后自动删除)。 1 gs_loader control=loader.ctl data=data.csv db=testdb bad=loader.bad errors=5 port=8000 passwd=************ user=load_user 执行结果: 1 2 3 4 5 6 gs_loader: version 0.1 10 Rows successfully loaded. log file is: loader.log
  • 参数说明 表1 gs_loader参数说明 参数 参数说明 参数类型 : 取值范围 help 查看帮助信息。 - user 数据库连接用户(与-U等价)。 字符串 -U 数据库连接用户(与user等价)。 字符串 passwd 用户密码(与-W等价)。 字符串 -W 用户密码(与passwd等价)。 字符串 db 数据库名称(必选,与-d等价)。 字符串 -d 数据库名称(必选与db等价)。 字符串 host 指定正在运行服务器的主机名或者UNIX域套接字的路径(与-h等价)。 参考gsql --host参数 -h 指定正在运行服务器的主机名或者UNIX域套接字的路径(与host等价)。 参考gsql --host参数 port 数据库服务器端口(与-p等价)。 参考gsql --port参考 -p 数据库服务器端口(与port等价)。 参考gsql --port参考 create 是否创建pgxc_copy_error_log和gs_copy_summary表。 [true, false],默认true clean 是否清除本次错误记录。 [true, false],默认false data 数据文件,可以指定多个,或者通配符多字符通配(*)以及单字符通配(?)(必选)。 字符串 control 控制文件名称(必选)。 字符串 log 日志文件名称。 字符串 bad 出错行记录文件名称,也可以指定目录,根据数据文件名生成。 字符串 discard WHEN匹配失败行记录文件名称,也可以指定目录,根据数据文件名生成。 字符串 errors 允许数据文件中出现多少出错行。 整数,默认0 skip 允许跳过数据文件的前多少行。 整数,默认0 bindsize 仅做语法兼容不实现功能。 - rows 仅做语法兼容不实现功能。 - 参数均为小写,不支持大写,同时兼容gsql登录方式:-p端口号,-h主机,-d数据库,-U用户名,-W密码方式。 gs_loader使用bad文件来记录出错数据,该数据来自错误表的rawrecord字段,由于错误表对于以某种编码无法读取的错误不记录rawrecord,因此bad文件中遇到此情况时记录空行。
  • 安装部署 在存放数据源文件的服务器上,安装并配置gs_loader客户端工具,以便后续使用gs_loader工具进行数据的导入。 创建存放gs_loader工具包的目录 mkdir -p /opt/bin 将gsql工具包上传至上一步所创建的目录中 以上传EULER Linux版本的工具包为例,将软件安装包中的gsql工具包" GaussDB -Kernel_数据库版本号_操作系统版本号_64bit_gsql.tar.gz"上传至上一步所创建的目录中。 在工具包所在目录下,解压工具包 cd /opt/bin tar -zxvf GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_gsql.tar.gz source gsql_env.sh 验证工具位置及版本信息 which gs_loader 验证客户端版本信息 gs_loader工具版本与gsql工具版本相对应,直接查询gsql客户端版本即可。 gsql -V 验证数据库版本信息,确保与客户端工具版本保持一致 使用gsql工具连接到数据库后输入: select version();
  • GaussDB入门 实践 当用户购买并连接到 GaussDB数据库 实例后,可以根据自身的业务需求使用GaussDB提供的一系列常用实践。 表1 GaussDB常用最佳实践 实践 描述 开发设计建议 数据库对象命名 介绍数据库对象命名的约束限制。 数据库对象设计 介绍Database和Schema设计、表设计、字段设计、约束设计、视图和关联表设计需要遵循的原则。 工具对接 介绍工具配置时的注意事项。 SQL编写 介绍DDL、数据加载和卸载、类型转换、查询操作需要遵循的原则。 数据库使用 创建数据库用户 介绍如何使用CREATE USER和ALTER USER语法创建和管理数据库用户。不同用户之间的数据并不共享。 创建和管理数据库 介绍使用CREATE DATABASE和ALTER DATABASE语法创建和管理数据库。 创建和管理表空间 通过使用表空间,管理员可以控制一个数据库安装的磁盘布局。介绍如何使用SQL语法创建和管理表空间。 创建和管理表 表是建立在数据库中的,在不同的数据库中可以存放相同的表。可以通过使用模式在同一个数据库中创建相同名称的表。介绍如何使用SQL语法创建表。 查看系统表 除了创建的表以外,GaussDB还包含很多系统表。这些系统表包含集群安装信息以及GaussDB上运行的各种查询和进程的信息。介绍通过查询系统表来收集有关数据库的信息。 数据迁移 使用DRS迁移Oracle至GaussDB 介绍如何使用DRS将数据从Oracle迁移至GaussDB。 数据备份 设置自动备份策略 介绍如何在数据库实例的备份时段中创建数据库实例的自动备份,系统根据用户指定的备份保留期保存数据库实例的自动备份。 手动创建全量备份 介绍如何手动为数据库实例备份数据,用户可以通过手动备份恢复数据,从而保证数据可靠性。 删除手动备份 GaussDB支持对实例级和表级手动备份进行删除,从而释放相关存储空间。介绍如何删除实例手动备份。 数据恢复 通过指定备份文件恢复GaussDB实例数据 介绍如何使用已有的自动备份和手动备份,将实例数据恢复到备份被创建时的状态。该操作恢复的为整个实例的数据。 通过指定时间点恢复GaussDB实例 介绍如何使用已有的自动备份,恢复实例数据到指定时间点。
  • 准备工作 注册华为账号 并开通华为云。 完成实名认证。 个人账号:实名认证 企业账号:实名认证 购买实例前需要确保账户有足够金额,请参见账户充值。 如果需要对华为云上的资源进行精细管理,请使用 统一身份认证 服务(Identity and Access Management,简称 IAM )创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限,更多操作,请参见创建用户组、用户并授予GaussDB权限。
  • 购买ECS GaussDB提供gsql工具帮助用户在命令行下连接数据库,用户需要提前创建一台弹性云服务器用于安装gsql工具。 登录管理控制台。 单击购买弹性云服务器。 配置基础信息后,单击“下一步:网络配置”。 区域:与待连接的GaussDB实例的区域一致 计费模式:按需计费 可用区:与待连接的GaussDB实例的可用区一致 镜像:EulerOS、EulerOS 2.5 64bit(40GiB) 其他参数使用默认配置 图5 基础配置 图6 选择镜像 配置网络信息后,单击“下一步:高级配置”。 网络:与待连接的GaussDB实例的VPC一致 安全组:与待连接的GaussDB实例的安全组一致 弹性公网IP:不使用 图7 网络配置 配置密码等信息后,单击“下一步:确认配置”。 云服务器名称:自定义,命名为便于识别的名称 密码:自定义,设置高强度密码,以提高安全性 确认密码:和密码相同 其他参数使用默认配置 图8 高级配置 确认配置信息后,单击“提交”。 查看购买成功的ECS。
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表4所示。 表4 驱动包下载列表 版本 下载地址 V2.0-8.x 驱动包 驱动包校验包 V2.0-3.x 驱动包 驱动包校验包 V2.0-2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 操作流程 操作步骤 说明 准备工作 注册华为账号并开通华为云、实名认证、账户充值,以及对GaussDB进行精细权限管理。 步骤一:购买实例 配置GaussDB实例的基本信息,购买数据库实例。 步骤二:购买ECS 购买ECS,并确认ECS实例与GaussDB实例在同一区域、同一VPC内。 步骤三:获取驱动包 根据不同版本的实例,下载对应版本的驱动包。 步骤四:连接数据库 使用gsql命令连接GaussDB。
  • SQL入门 登录实例后,可通过DAS创建数据库用户、创建数据库、创建表等。 创建数据库用户。 默认只有集群安装时创建的管理员用户可以访问初始数据库,还可以创建其他数据库用户账号。 CREATE USER joe WITH PASSWORD "xxxxxxxxx"; 当结果显示为如下信息,则表示创建成功。 图6 创建数据库用户 如上创建了一个用户名为joe,密码为xxxxxxx的用户。 引申信息:关于数据库用户的更多信息请参考用户及权限。 创建数据库。 CREATE DATABASE db_tpcds; 当结果显示为如下信息,则表示创建成功。 图7 创建数据库 创建完db_tpcds数据库后,可以在左上方切换到新创建的库中。 图8 切换至新建数据库 创建表。 执行如下命令来创建一个schema。 CREATE SCHEMA myschema; 创建一个名称为mytable,只有一列的表。字段名为firstcol,字段类型为integer。 CREATE TABLE myschema.mytable (firstcol int); 向表中插入数据: INSERT INTO myschema.mytable values (100); 查看表中数据: SELECT * FROM myschema.mytable; 引申信息: 默认情况下,新的数据库对象是创建在“$user”模式下的,例如刚刚新建的表。关于模式的更多信息请参考创建和管理schema。 关于创建表的更多信息请参见创建和管理表。 除了创建的表以外,数据库还包含很多系统表。这些系统表包含集群安装信息以及GaussDB上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。请参见查看系统表。 在db_tpcds库中,root用户下执行如下语句,将新创建的库db_tpcds的所有权限赋予新用户joe。 GRANT ALL ON DATABASE db_tpcds TO joe; GRANT USAGE ON schema myschema TO joe; GRANT ALL ON TABLE myschema.mytable TO joe; 新增joe用户登录数据库db_tpcds。 登录之后,在表中插入数据并验证。 INSERT INTO myschema.mytable values (200); SELECT * FROM myschema.mytable; 图9 插入数据并验证
  • 准备工作 注册华为账号并开通华为云。 完成实名认证。 个人账号:实名认证 企业账号:实名认证 购买实例前需要确保账户有足够金额,请参见账户充值。 如果需要对华为云上的资源进行精细管理,请使用统一身份认证服务(Identity and Access Management,简称IAM)创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限,更多操作,请参见创建用户组、用户并授予GaussDB权限。
  • 服务器变更后能否使用备份恢复数据? 如果您的服务器做过备份后进行变更(添加、删除、扩容云硬盘),还可以使用原有的备份恢复数据。建议您在变更后重新做备份。 如果备份后用户添加了云硬盘,再使用备份进行恢复,则添加的云硬盘数据不会改变。 如果备份后用户删除了云硬盘,再使用备份进行恢复,则删除的云硬盘不会被恢复。 如果备份后用户对服务器切换系统,在使用系统盘备份进行恢复原系统盘,则由于磁盘UUID的改变将导致系统盘备份恢复不成功。如果是整机备份,切换操作系统后不支持直接恢复,恢复前需要切换为之前的操作系统。 如果是文件备份,操作系统被重装之后,仍然可以使用之前的备份恢复数据。 父主题: 恢复类
  • 备份会保存多久? 手动备份:一般为manualbk_xxxx或自定义名称的备份。如果不自行删除且账户余额充足且账户余额充足,则备份数据会一直保留。如果账户余额不足且未及时补充欠款,备份数据将自动被系统释放且无法恢复。 自动备份:一般为autobk_xxxx名称的备份。如果已经在策略中设置保留规则,则备份一般将会按照保留规则进行保留和自动删除。如果策略执行期间修改保留规则,则可能会出现备份没有被自动删除的情况,具体原因请参考保留策略修改后为什么没有生效? 父主题: 备份类
  • 云备份存储库已使用容量为什么突然激增? 存储库已使用容量突然激增可能是因为对数据做校验时未通过,自动将备份任务转为全量备份导致。 系统在备份时会不定期的对依赖的历史数据做一些校验,当校验不通过时,为了备份数据更可靠,系统会单独对当前资源进行一次全量备份。 一般校验不通过的场景包括但不限于校验时OBS 返回的异常,例如被流控,网络丢包或时延突然增大导致的读数据异常,EVS快照的读取异常等。 由于用户没有设置周期性全量备份,所以上层下发备份指令是都是下发的增量备份,但底层做备份时校验历史数据时校验不通过则自动将备份任务转成了全量备份。界面上显示的增量和全量 ,是由上层下发的指令所决定。底层主动转的全量备份不会反向同步给上层,所以上层不感知也不会显示为全量备份。 父主题: 容量类
  • 请求示例 文件系统ID为"77ba6f4b-6365-4895-8dda-bc7142af4ddw",目录的全路径是“/data/test”, 删除目录quota DELETE HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4ddw/fs/dir-quota { "path" : "/data/test" }
  • 请求示例 查询文件系统后端存储列表,文件系统ID为"630509b1-ded4-476e-8d06-dbbc3dc23900", 从target_id为"11abef677ac40f46644d1d5cfc2424a4"起,获取10个后端存储 GET HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/targets?marker=11abef677ac40f46644d1d5cfc2424a4&limit=10
  • 响应示例 状态码: 200 任务下发成功 { "count" : 1, "targets" : [ { "target_id" : "00000334-xxxx-402d-a5d4-bxxxxx87b939", "creation_time" : "2023-10-10T12:02:03", "file_system_path" : "sfsturboDirName", "obs" : { "bucket" : "myBucket", "endpoint" : "obs.region.example.com" } } ] } 状态码: 404 错误响应 { "errCode" : "SFS.TURBO.0002", "errMsg" : "share not exist" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表5 响应Body参数 参数 参数类型 描述 count Integer 后端存储列表个数 targets Array of ShowBackendTargetInfoResponseBody objects 后端存储列表 表6 ShowBackendTargetInfoResponseBody 参数 参数类型 描述 target_id String 绑定关系id creation_time String 绑定关系创建时间 file_system_path String 联动目录名称 failure_details FailureDetailsMessage object 绑定错误信息 lifecycle String 绑定状态 obs ObsDataRepository object OBS类型后端存储 表7 FailureDetailsMessage 参数 参数类型 描述 message String 错误信息 表8 ObsDataRepository 参数 参数类型 描述 bucket String OBS桶名称 endpoint String OBS桶所在的区域 域名 policy ObsDataRepositoryPolicy object 后端存储自动同步策略 attributes ObsTargetAttributes object 后端存储属性。2024年6月30日及之前创建,且未升级的文件系统版本不支持该参数,请提工单处理。 表9 ObsDataRepositoryPolicy 参数 参数类型 描述 auto_export_policy AutoExportPolicy object 后端存储自动导出策略。当文件系统发生数据更新时,将自动导出到OBS桶。 表10 AutoExportPolicy 参数 参数类型 描述 events Array of strings 后端存储自动导出到OBS桶的数据更新类型。 NEW:表示新增数据,SFS Turbo联动目录下创建的文件,及之后对这些文件进行的元数据和数据修改,会被自动同步到OBS桶里。 CHANGED:表示修改数据,从OBS桶里导入到SFS Turbo联动目录下的文件,在SFS Turbo上对这些文件所进行的数据和元数据的修改,会被自动同步到OBS桶里。 DELETED:表示删除数据,在SFS Turbo联动目录下删除文件,OBS桶对应的对象也会被删除,只有被SFS Turbo写入的OBS对象才会被删除。 表11 ObsTargetAttributes 参数 参数类型 描述 file_mode Integer 导入的文件权限。取值范围是0到777。 第一位表示文件所有者的权限,取值范围是0到7;第二位表示文件所属用户组的权限,取值范围是0到7;第三位表示其他用户的权限,取值范围是0到7。文件所有者由uid指定,文件所属用户组由gid指定,不是文件所有者且不在文件所属用户组的用户为其他用户。 数字4、2、1分别表示读、写、执行权限,这些数字相加,即可得到所需的权限组合。例如:750中第一位7代表该文件所有者对该文件具有读、写、执行权限;第二位5代表该文件所属用户组对该文件具有读、执行权限;第三位0代表其他用户对该文件无权限。 dir_mode Integer 导入的目录权限。取值范围是0到777。 第一位表示目录所有者的权限,取值范围是0到7;第二位表示目录所属用户组的权限,取值范围是0到7;第三位表示其他用户的权限,取值范围是0到7。目录所有者由uid指定,目录所属用户组由gid指定,不是目录所有者且不在目录所属用户组的用户为其他用户。 数字4、2、1分别表示读、写、执行权限,这些数字相加,即可得到所需的权限组合。例如:750中第一位7代表该目录所有者对该目录具有读、写、执行权限;第二位5代表该目录所属用户组对该目录具有读、执行权限;第三位0代表其他用户对该文件无权限。 uid Integer 导入对象所有者的用户id,默认值是0,取值范围是0到4,294,967,294(即2^32-2)。 gid Integer 导入对象所属用户组id,默认值是0,取值范围是0到4,294,967,294(即2^32-2)。 状态码: 404 表12 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 500 表13 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
  • URI GET /v1/{project_id}/sfs-turbo/shares/{share_id}/targets 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id share_id 是 String 文件系统id 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 查询列表返回元素个数 marker 否 String 查询列表偏移量
  • 响应示例 状态码: 200 创建成功 { "id" : "1131ed520xxxxxxebedb6e57xxxxxxxx", "ip_cidr" : "192.32.0.0/16", "rw_type" : "rw", "user_type" : "no_root_squash" } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0001", "errMsg" : "Invalid rule id" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 权限规格的id ip_cidr String 授权对象的IP地址或网段 rw_type String 授权对象的读写权限 rw:默认选项,以读写的方式共享 ro:以只读的方式共享 none: 没有权限 user_type String 授权对象的系统用户对文件系统的访问权限。取值如下: no_root_squash:客户端使用的是root用户时,映射到NFS服务器的用户依然为root用户。 root_squash:客户端使用的是root用户时,映射到NFS服务器的用户为NFS的匿名用户(nfsnobody)。 all_squash:默认选项。所有访问NFS服务器的客户端的用户都映射为匿名用户。' 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 账号的token Content-Type 是 String MIME类型 表3 请求Body参数 参数 是否必选 参数类型 描述 ip_cidr 否 String 授权对象的IP地址或网段,设置后不支持修改 rw_type 否 String 授权对象的读写权限 rw:默认选项,以读写的方式共享 ro:以只读的方式共享 none: 没有权限 user_type 否 String 授权对象的系统用户对文件系统的访问权限。取值如下: no_root_squash:默认选项。客户端使用包括root用户在内的任何用户,NFS服务器都保持客户端使用的用户,不做映射。 root_squash:客户端使用的是root用户时,映射到NFS服务器的用户为NFS的匿名用户(nfsnobody)。客户端使用非root用户时,NFS服务器保持客户端使用的用户,不做映射。 all_squash:所有访问NFS服务器的客户端的用户都映射为匿名用户。
  • 请求示例 文件系统ID为"77ba6f4b-6365-4895-8dda-bc7142af4ddw",目录的全路径是“/data/test”,查询该目录的quota值 GET HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4ddw/fs/dir-quota?path=/data/test
  • 响应示例 状态码: 200 查询目录的配额信息成功 { "path" : "/data/test", "capacity" : 1024, "inode" : 100000 } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0102", "errMsg" : "Path is not directory" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 path String 合法的已存在的目录的全路径 capacity Integer 目录的容量大小,单位:MB inode Integer 目录的inode数量限制 used_capacity Integer 目录已使用的容量大小,单位:MB。仅SFSTurbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB返回该字段。数据可能有延迟。 used_inode Integer 目录的已使用的inode数量。仅SFSTurbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB返回该字段。数据可能有延迟。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
共100000条