-
通过包年/包月方式重购的WAF与原WAF在同一区域 原WAF上的配置数据可以保存30天。 退订WAF后,WAF将暂停防护
域名 。当您重新购买WAF后,您只需要为域名开启防护,即将域名的“工作模式”切换为“开启防护”。开启防护后,WAF会根据域名在原WAF上配置的防护对域名进行防护。 有关退订WAF的详细操作,请参见如何退订
Web应用防火墙 ?。 有关购买WAF的详细操作,请参见购买Web应用防火墙。 有关开启WAF防护的详细操作,请参见切换工作模式。
-
计费项 云备份计费项包括存储费和流量费,存储费根据存储库的不同进行收取。详细的计费项目如下所示: 表1 云备份计费项 资费项 计费项 计费项说明 适用的计费模式 计费公式 存储费 云硬盘备份存储库 备份云硬盘时,需要购买云硬盘备份存储库用于存放云硬盘产生的备份。 计费因子:存储库容量。 按需计费 包年包月 按需计费:存储库每GB单价 *存储库容量* 购买时长 包年/包月:详细的资费项费率标准请参见产品价格详情中“云备份”的内容。 云服务器备份存储库 备份普通云服务器(不包含数据库等应用)时,需要
购买云服务器 备份存储库用于存放云服务器产生的备份。 计费因子:存储库容量。 按需计费 包年包月 SFS Turbo备份存储库 备份SFS Turbo文件系统时,需要购买SFS Turbo备份存储库用于存放SFS Turbo文件系统产生的备份。 计费因子:存储库容量。 按需计费 包年包月 数据库服务器备份存储库 备份部署了数据库等应用的云服务器时,需要购买数据库服务器备份存储库用于存放数据库服务器备份产生的备份。 购买方式:在创建云服务器备份存储库时,勾选“启用数据库备份”。更多关于数据库服务器备份的介绍,请参见数据库服务器备份概述。 计费因子:存储库容量。 按需计费 包年包月 混合云备份存储库 备份用户云下数据中心的VMware虚拟机、本地文件目录时,需要购买混合云备份存储库用于存放云下IDC产生的备份。 计费因子:存储库容量。 按需计费 包年包月
云桌面 备份存储库 备份云桌面时,需要购买云桌面备份存储库用于存放云桌面产生的备份。 计费因子:存储库容量。 按需计费 包年包月 云数据库备份存储库 当在云数据库RDS进行备份时,系统在云备份自动创建的用于存放
云数据库产品 的备份。 计费因子:存储库使用量。 按需计费 复制存储库 使用跨区域复制备份功能时,在复制的目标区域购买。 计费因子:存储库容量。 按需计费 包年包月 专属云备份存储库 专属云客户可选择将数据备份到专属云备份存储库中。 计费因子:存储库容量 按需计费 包年包月 流量费 公网流出流量 使用混合云备份的云上备份恢复云下IDC时,会产生公网流出流量。 限时免费 限时免费 跨区域复制流量 在进行跨区域复制备份/存储库时,会在源区域产生跨区域复制流量。 计费因子:存储库容量、流量大小。 按需计费 按需计费:跨区域复制流量 * 每GB单价
-
计费示例 【案例一】 备份普通云服务器按需计费实例: 例如某用户有100GB的云服务器,在华北-北京四购置400GB的云服务器备份存储库A,并将该云服务器绑定至存储库A中。则收取400GB的云服务器备份存储库费用。 【案例二】 部署数据库等应用云服务器按需计费实例: 例如某用户有100GB的部署数据库的云服务器,在华北-北京四购置800GB的数据库服务器备份存储库A,并将该云服务器备份绑定至存储库A中。则收取800GB的数据库服务器备份存储库费用。 【案例三】 将备份跨区域复制至其他区域按需计费实例: 某用户在华北-北京四购买容量为100GB的云服务器备份存储库A,其中备份数据占用40GB存储库空间。该用户在华南-广州区域购买了容量为200GB的复制存储库B,并将存储库A复制至华南-广州区域复制存储库B中,不使用加速。则收取100GB云服务器备份存储库、200GB复制存储库的存储库容量费和40GB的跨区域复制流量费。
-
函数和存储过程的区别是什么? 答:函数和存储过程是数据库中常见的两种对象,两者都可以封装一系列的SQL语句,以完成某些特定的操作。两者区别见表1: 表1 函数和存储过程的区别 函数 存储过程 函数的标识符为FUNCTION。 存储过程标识符为PROCEDURE。 函数必须有返回值。 存储过程可以有返回值,也可以没有返回值。 函数可以输入输出参数。 存储过程可以输入输出参数。 函数只可以调用SELECT语句,不可以对表中的数据做出修改。 存储过程可以对表中的数据做出修改,如UPDATE、DELETE和INSERT等。 不可以在函数中调用存储过程。 可以在存储过程中调用函数和存储过程。可以简化一系列复杂语句。 函数适用于需要返回单个值的情况,比如计算某个数据、字符串处理、返回表等。 存储过程适用于需要执行DML操作的情况,比如批量插入、更新、删除数据等。 父主题: FAQ
-
如何设置账号的有效期? 答:在数据库使用过程中,会创建一些用户对数据库进行相关操作。创建用户时,需要限制用户的操作期限(即有效开始时间和有效结束时间),具体的设置方法如下: 通过gsql连接数据库。 创建用户并制定用户的有效开始时间和有效结束时间。 gaussdb=# CREATE USER jack WITH PASSWORD '********' VALID BEGIN '2015-10-10 08:00:00' VALID UNTIL '2016-10-10 08:00:00';
CREATE ROLE 当显示CREATE ROLE信息时表示创建用户成功。 当用户已不在有效使用期内,重新设定账号的有效期,包括有效开始时间和有效结束时间。 gaussdb=# ALTER USER jack WITH VALID BEGIN '2016-11-10 08:00:00' VALID UNTIL '2017-11-10 08:00:00';
ALTER ROLE 当显示ALTER ROLE信息时表示重新设定成功。 父主题: FAQ
-
GaussDB 支持动态内存管理吗? 答:支持。动态内存使用方法均基于内存上下文管理,在内存上下文的机制上,引入了逻辑内存管理机制,同时提供多项视图追踪内存使用情况。当前GaussDB Kernel的内存管理分为两级,分别是: 内存节点级别控制:通过max_process_memory参数限制DN上可以使用的内存上限。 内存作业级别控制:限制单条query语句最大可使用的内存上限。 父主题: FAQ
-
GaussDB的DROP、TRUNCATE、DELETE这三种删除数据的方式主要区别是什么? 答:DROP、TRUNCATE、DELETE这三种删除方式的区别主要体现在删除的速度和删除的范围上,具体如下: DROP语句的删除速度最快,可以删除整个表,包括表结构、数据、索引和权限。 TRUNCATE语句的删除速度中等,可以删除表中的所有数据,但不删除表结构。 DELETE语句的删除速度最慢,可以根据条件删除表中的数据,但不包括表结构。 父主题: FAQ
-
日期/时间类型哪些带时区,哪些不带时区? 答:date、time、timestamp、smalldatetime等类型不带时区,timetz、timestamptz等类型带时区。 示例如下: --timestamp类型不带时区。
gaussdb=# SELECT '2019-01-01'::timestamp;
timestamp
---------------------
2019-01-01 00:00:00
(1 row)
--timestamptz类型带时区。
gaussdb=# SELECT '2019-01-01'::timestamptz;
timestamptz
------------------------
2019-01-01 00:00:00+08
(1 row) 父主题: FAQ
-
如何查看某张表创建时间? 答:在系统视图PG_TABLES里created字段的取值为表的真实创建时间。 示例如下: --创建表。
gaussdb=# CREATE TABLE test(id int, name varchar(10));
--查询test表创建时间。
gaussdb=# SELECT tablename,created FROM pg_tables WHERE tablename = 'test';
tablename | created
-----------+-------------------------------
test | 2024-01-12 14:50:59.611988+08
(1 row) 父主题: FAQ
-
如何创建自动递增列? 答:
GaussDB数据库 支持创建自动递增列,您可以在创建表时,指定SERIAL数据类型。 示例: gaussdb=# CREATE TABLE table_name(id serial, name varchar(20)); 也可以使用如下方式: --创建序列。
gaussdb=# CREATE SEQUENCE tbl_person_id_seq;
--创建表tbl_persion,其中id字段依据序列tbl_person_id_seq实现自增。
gaussdb=# CREATE TABLE tbl_persion(
id int NOT NULL DEFAULT nextval('tbl_person_id_seq'::regclass),
name varchar(20)); 父主题: FAQ
-
为什么REVOKE某个用户的CONNECT ON DATABASE权限后还可以登录数据库? 答:使用REVOKE CONNECT ON DATABASE dbname FROM u1命令撤销u1的权限后,因为数据库的CONNECT权限授予了public,需要指定public来实现。 GaussDB提供了一个隐式定义的拥有所有角色组public,所有创建的用户和角色默认拥有public所拥有的权限。需要撤销或重新授予用户和角色public的权限,可通过GRANT和REVOKE指定关键字public实现。 GaussDB会将某些类型的对象上的权限授予public。默认情况以下这些对象的权限会授予public: 数据库的CONNECT权限。 CREATE TEMP TABLE权限。 函数的EXECUTE权限。 语言和数据类型(包括域)的USAGE权限。 对象的拥有者可以撤销默认授予public的权限,并授予权限给其他用户。 具体示例如下: 创建用户u1和数据库db_test。 gaussdb=# CREATE USER u1 PASSWORD '********';
gaussdb=# CREATE DATABASE db_test; 测试确定u1用户可以正常连接数据库test。后退出数据库。 gsql -d db_test -h xxx.xxx.xxx.xxx -p xxxx -U u1 -W '********' 执行REVOKE命令撤销public连接db_test的权限。 gaussdb=# REVOKE CONNECT ON DATABASE db_test FROM public; 验证结果,使用u1连接数据库。结果显示u1用户已经无法连接数据库。 gsql -d db_test -h xxx.xxx.xxx.xxx -p xxxx -U u1 -W '********'
gsql: FATAL: permission denied for database "db_test"
DETAIL: User does not have CONNECT privilege.
--删除。
gaussdb=# DROP USER u1;
gaussdb=# DROP DATABASE db_test; 父主题: FAQ
-
数据库事务正确执行的四个特性是什么? 答:数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)正确执行,必须具备的四个特性ACID,Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性)。 Atomicity(原子性):又称为不可分割性。一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。 Isolation(隔离性):又称为独立性。数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。 Durability(持久性):事务处理结束后,对数据的修改是永久的,即便系统故障也不会丢失。 父主题: FAQ
-
GaussDB都有哪些通配符,如何使用? 答:GaussDB数据库支持以下三种通配符: %:表示任意数量的字符,包括0个,用于LIKE和NOT LIKE语句中。 _:表示一个字符,用于LIKE和 NOT LIKE语句中。 *:表示任意数量字符,包括0个,在部分元命令中使用。 示例: --任意数量字符的通配符使用,查询tbl_test表中以col1字段以ab开头任意多个字符结尾的数据。
gaussdb=# SELECT * FROM tbl_test WHERE col1 LIKE 'ab%';
--一个字符的通配符使用,查询tbl_test表中col1字段以a开头b结尾中间任意单个字符串的数据。
gaussdb=# SELECT * FROM tbl_test WHERE col1 LIKE 'a_b';
--查询所有以tbl开头的表。
gaussdb=# \dt tbl* 父主题: FAQ
-
count(*)和count(column)的区别是什么? 答:count()函数用于计算行数的聚合函数,区别如下: count(*)统计包括了所有列的行数,在统计结果时不会忽略值为NULL的数据。 count(column)只包括列名那一列,在统计结果时会忽略值为NULL的数据。 --建表并插入数据。
gaussdb=# CREATE TABLE test(c1 int);
gaussdb=# INSERT INTO test VALUES(1),(2),(3);
gaussdb=# INSERT INTO test VALUES(NULL);
--count(*)统计行数,不忽略值为NULL的数据。
gaussdb=# SELECT count(*) FROM test;
count
-------
4
(1 row)
--count(column)统计行数,忽略值为NULL的数据。
gaussdb=# SELECT count(c1) from test;
count
-------
3
(1 row)
--删除。
gaussdb=# DROP TABLE test; 父主题: FAQ
-
函数和存储过程的区别是什么? 答:函数和存储过程是数据库中常见的两种对象,两者都可以封装一系列的SQL语句,以完成某些特定的操作。两者区别见表1: 表1 函数和存储过程的区别 函数 存储过程 函数的标识符为FUNCTION。 存储过程标识符为PROCEDURE。 函数必须有返回值。 存储过程可以有返回值,也可以没有返回值。 函数可以输入输出参数。 存储过程可以输入输出参数。 函数只可以调用SELECT语句,不可以对表中的数据做出修改。 存储过程可以对表中的数据做出修改,如UPDATE、DELETE和INSERT等。 不可以在函数中调用存储过程。 可以在存储过程中调用函数和存储过程。可以简化一系列复杂语句。 函数适用于需要返回单个值的情况,比如计算某个数据、字符串处理、返回表等。 存储过程适用于需要执行DML操作的情况,比如批量插入、更新、删除数据等。 父主题: FAQ