华为云用户手册

  • ORGANIZE ON ORGANIZE ON需加注释。 Netezza语法 迁移后语法 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE N_AG_AMT_H ( AG_NO national character varying(50) not null, AG_CATEG_CD national character varying(12) not null, AMT_TYPE_CD national character varying(12) not null, DATA_START_DT date not null, CCY_CD national character varying(3) not null, DATA_END_DT date ) DISTRIBUTE ON (AG_NO, AG_CATEG_CD, AMT_TYPE_CD) ORGANIZE ON (AG_CATEG_CD, AMT_TYPE_CD, DATA_END_DT) ; 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE N_AG_AMT_H ( AG_NO national character varying(50) not null, AG_CATEG_CD national character varying(12) not null, AMT_TYPE_CD national character varying(12) not null, DATA_START_DT date not null, CCY_CD national character varying(3) not null, DATA_END_DT date ) WITH(ORIENTATION=COLUMN) DISTRIBUTE BY HASH (AG_NO, AG_CATEG_CD, AMT_TYPE_CD) /* ORGANIZE ON (AG_CATEG_CD, AMT_TYPE_CD, DATA_END_DT)*/ ;
  • MIN_ROWS MIN_ROWS表示在表中存储的最小行数。DSC迁移过程时会将该属性删除。 输入示例 1 2 3 4 5 6 7 8 CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ); ALTER TABLE runoob_alter_test MIN_ROWS 10000; ALTER TABLE runoob_alter_test MIN_ROWS=10000; 输出示例 1 2 3 4 5 6 7 8 9 10 CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" DOUBLE PRECISION, "datatype3" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); 父主题: 表(可选参数、操作)
  • 操作步骤 创建一个名为thesaurus_astro的TZ词典。 以一个简单的天文学词典thesaurus_astro为例,其中定义了两组天文短语及其同义词如下: 1 2 supernovae stars : sn crab nebulae : crab 执行如下语句创建TZ词典: 1 2 3 4 5 6 CREATE TEXT SEARCH DICTIONARY thesaurus_astro ( TEMPLATE = thesaurus, DictFile = thesaurus_astro, Dictionary = pg_catalog.english_stem, FILEPATH = 'obs://bucket_name/path accesskey=ak secretkey=sk region=rg' ); 其中,词典定义文件全名为thesaurus_astro.ths,所在目录为 "obs://bucket_name/path accesskey=ak secretkey=sk region=rg"。子词典pg_catalog.english_stem是预定义的Snowball类型的英语词干词典,用于规范化输入词,子词典自身相关配置(例如停用词等)不在此处显示。关于创建词典的语法和更多参数,请参见CREATE TEXT SEARCH DICTIONARY。 创建词典后,将其绑定到对应文本搜索配置中需要处理的token类型上: 1 2 3 ALTER TEXT SEARCH CONFIGURATION english ALTER MAPPING FOR asciiword, asciihword, hword_asciipart WITH thesaurus_astro, english_stem; 使用TZ词典。 测试TZ词典。 ts_lexize函数对于测试TZ词典作用不大,因为该函数是按照单个token处理输入。可以使用plainto_tsquery、to_tsvector、to_tsquery函数测试TZ词典,这些函数能够将输入分解成多个token(to_tsquery函数需要将输入加上引号)。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 SELECT plainto_tsquery('english','supernova star'); plainto_tsquery ----------------- 'sn' (1 row) SELECT to_tsvector('english','supernova star'); to_tsvector ------------- 'sn':1 (1 row) SELECT to_tsquery('english','''supernova star'''); to_tsquery ------------ 'sn' (1 row) 其中,supernova star匹配了词典thesaurus_astro定义中的supernovae stars,这是因为在thesaurus_astro词典定义中指定了Snowball类型的子词典english_stem,该词典移除了e和s。 如果同时需要索引原始短语,只要将其同时放置在词典定义文件中对应定义的右侧即可,如下: 1 2 3 4 5 6 7 8 9 10 11 supernovae stars : sn supernovae stars ALTER TEXT SEARCH DICTIONARY thesaurus_astro ( DictFile = thesaurus_astro, FILEPATH = 'file:///home/dicts/'); SELECT plainto_tsquery('english','supernova star'); plainto_tsquery ----------------------------- 'sn' & 'supernova' & 'star' (1 row)
  • SET MySQL INSERT...SET语句的形式插入基于明确指定的值的行。 输入示例 1 2 3 4 # INSERT INTO SET 可以针对性的执行插入操作,但是一次只能插入一行数据,不能批量添加数据 INSERT INTO exmp_tb2 SET tb2_price=56.1,tb2_note='unbelievable',tb2_date='2018-11-13'; INSERT INTO exmp_tb2 SET tb2_price=99.9,tb2_note='perfect',tb2_date='2018-10-13'; INSERT INTO exmp_tb2 SET tb2_id=9,tb2_price=99.9,tb2_note='perfect',tb2_date='2018-10-13'; 输出示例 1 2 3 4 -- INSERT INTO SET 可以针对性的执行插入操作,但是一次只能插入一行数据,不能批量添加数据 INSERT INTO "public"."exmp_tb2" ("tb2_price","tb2_note","tb2_date") VALUES (56.1,'unbelievable','2018-11-13'); INSERT INTO "public"."exmp_tb2" ("tb2_price","tb2_note","tb2_date") VALUES (99.9,'perfect','2018-10-13'); INSERT INTO "public"."exmp_tb2" ("tb2_id","tb2_price","tb2_note","tb2_date") VALUES (9,99.9,'perfect','2018-10-13'); 父主题: INSERT
  • 注意事项 由于TZ词典需要识别短语,所以在处理过程中必须保存当前状态并与解析器进行交互,以决定是否处理下一个token或是结束当前识别。此外,TZ词典配置时需谨慎,如果设置TZ词典仅处理asciiword类型的token,则类似one 7的分类词典定义将不会生效,因为uint类型的token不会传给TZ词典处理。 在索引期间要用到分类词典,因此分类词典参数中的任何变化都要求重新索引。对于其他大多数类型的词典来说,类似添加或删除停用词这种修改并不需要强制重新索引。
  • 安全 Data Studio在首次连接时验证SSL连接参数。在后续连接中,Data Studio不再验证SSL连接参数。如果勾选了“启用SSL”,打开新连接时,该连接会使用同样的SSL连接参数。 Data Studio连接时如果未勾选“启用SSL”默认是未加密的。 SSL连接中,如果安全文件被损坏,Data Studio将无法继续进行任何数据库操作。如果要修复该问题,请删除对应配置文件所在文件夹下的安全文件夹,然后重启Data Studio。
  • SQL终端 打开一个包含大量SQL语句的SQL文件,可能会出现“内存不足”错误。请参见故障处理。 对于“SQL终端”页签中被注释掉的文本,Data Studio不禁用自动建议和超链接功能。 如果模式名或表名中有空格或点(.),则不支持超链接。 如果对象名称中包含半角单引号(')或双引号("),则不支持自动建议功能。 Data Studio仅支持对简单的SELECT语句进行基本的格式化,对于复杂查询可能无法达到预期效果。
  • 通用 在编辑区域一次最多可打开100个页签。页签的显示取决于主机的可用资源。 数据库对象名最多可包含64个字符(仅限文本格式),数据库对象包括数据库、模式、函数、存储过程、表、序列、约束条件、索引和视图。但在Data Studio的表达式和说明中使用的字符数没有限制。 在Data Studio已登录的实例上最多可打开300个结果页签。 如果“对象浏览器”和“搜索对象”窗口中加载了大对象,则“对象浏览器”中对象展开的速度可能会变慢,同时Data Studio也可能会无法响应。 对于包含数据的单元格,如果数据超出了可显示区域,调整单元格宽度可能导致Data Studio无法响应。 表的单元格最多可显示1000个字符,超出部分显示为“...”。 如果用户从表或“结果”页签的单元格复制数据到任意编辑器(如SQL终端/PLSQL源编辑器、记事本或任意外部编辑器应用),将会粘贴全部数据。 如果用户从表或“结果”页签的单元格复制数据到一个可编辑的单元格(本单元格或其他单元格),该单元格仅显示1000个字符,并将超出部分显示为“...”。 导出表或“结果”页签数据时,导出的文件将包含全部数据。
  • BLOCK_SIZE 在ADB中,指定列式存储中每个block存储的Value的个数,也是最小的IO单元。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该关键字删除。 输入示例 1 2 3 4 5 6 7 DROP TABLE IF EXISTS exists unsupport_parse_test; CREATE TABLE `unsupport_parse_test` ( `username` int, `update` timestamp not null default current_timestamp on update current_timestamp , clustered key clustered_key(shopid ASC, datetype ASC) )BLOCK_SIZE = 1024 index_ALL = 'y'; DROP TABLE IF EXISTS unsupport_parse_test; 输出示例 1 2 3 4 5 6 DROP TABLE IF EXISTS "public"."unsupport_parse_test"; CREATE TABLE "public"."unsupport_parse_test" ( "username" INTEGER, "update" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("username"); DROP TABLE IF EXISTS "public"."unsupport_parse_test"; 父主题: 表(可选参数、操作)
  • 工具简介 本手册介绍数据仓库服务的工具使用,提供了客户端工具和服务端工具,客户端工具如表1所示,服务端工具如表2所示。 客户端工具:参见工具下载获取。 服务端工具:位于安装数据库服务器的$GPHOME/script和$GAUSSHOME/bin路径下。 表1 客户端工具 工具名称 工具简介 gsql 一款运行在Linux操作系统的命令行工具,用于连接DWS集群中的数据库,并对数据库进行操作和维护。 Data Studio 用于连接数据库的客户端工具,有着丰富的GUI界面,能够管理数据库和数据库对象,编辑、运行、调试SQL脚本,查看执行计划等。Data Studio工具可运行在32位或64位windows操作系统上,解压软件包后免安装即可使用。 GDS 一款运行在Linux操作系统的命令行工具,通过和外表机制的配合,实现数据的高速导入导出。GDS工具包需要安装在数据源文件所在的服务器上,数据源文件所在的服务器称为数据服务器,也叫GDS服务器。 DSC 用于将Teradata或Oracle数据库中的sql脚本迁移为适用于GaussDB(DWS)的sql脚本,便于在GaussDB(DWS)中重建数据库。DSC工具是运行在Linux操作系统的命令行工具,解压软件包免安装即可使用。 表2 服务端工具 工具名称 简介 gs_dump gs_dump是一款用于导出数据库相关信息的工具,支持导出完整一致的数据库对象(数据库、模式、表、视图等)数据,同时不影响用户对数据库的正常访问。 gs_dumpall gs_dumpall是一款用于导出数据库相关信息的工具,支持导出完整一致的集群数据库所有数据,同时不影响用户对数据库的正常访问。 gs_restore gs_restore是GaussDB(DWS)提供的针对gs_dump导出数据的导入工具。通过此工具可由gs_dump生成的导出文件进行导入。 gds_check gds_check用于对GDS部署环境进行检查,包括操作系统参数、网络环境、磁盘占用情况等,也支持对可修复系统参数的修复校正,有助于在部署运行GDS时提前发现潜在问题,提高执行成功率。 gds_install gds_install是用于批量安装gds的脚本工具,可大大提高GDS部署效率。 gds_uninstall gds_uninstall是用于批量卸载GDS的脚本工具。 gds_ctl gds_ctl是一个批量控制GDS启停的脚本工具,一次执行可以在多个节点上启动/停止相同端口的GDS服务进程,并在启动时为每一个进程设置看护程序,用于看护GDS进程。
  • 类型对照 表1 字符串类型对照表 MySQL字符串类型 MySQL INPUT GaussDB(DWS) OUTPUT CHAR CHAR[(0)] CHAR[(n)] CHAR[(1)] CHAR[(4n)] CHARACTER CHARACTER[(0)] CHARACTER[(n)] CHAR[(1)] CHAR[(4n)] NCHAR NCHAR[(0)] NCHAR[(n)] CHAR[(1)] CHAR[(4n)] LONGTEXT LONGTEXT TEXT MEDIUMTEXT MEDIUMTEXT TEXT TEXT TEXT TEXT TINYTEXT TINYTEXT TEXT VARCHAR VARCHAR[(0)] VARCHAR[(n)] VARCHAR[(1)] VARCHAR[(4n)] NVARCHAR NVARCHAR[(0)] NVARCHAR[(n)] VARCHAR[(1)] VARCHAR[(4n)] CHARACTE VARYING CHARACTE VARYING VARCHAR CHAR/CHARACTER/NCHAR进行转换时,如果其精度小于等于0时,转换后为CHAR(1),如果精度大于0,则转换为CHAR类型4倍的精度大小。 VARCHAR/NVARCHAR进行转换时,如果其精度小于等于0时,转换后为VARCHAR(1),如果精度大于0,则转换为VARCHAR类型4倍的精度大小。 输入示例CHAR MySQL一个长度CHAR列被固定在创建表声明的长度,长度可以是从0到255之间的任何值。CHAR存储值时,它们将空格填充到指定的长度。 1 2 3 4 5 CREATE TABLE IF NOT EXISTS `runoob_dataType_test`( `dataType_1` CHAR NOT NULL, `dataType_2` CHAR(0) NOT NULL, `dataType_3` CHAR(255) NOT NULL ); 输出示例 1 2 3 4 5 6 7 8 9 CREATE TABLE IF NOT EXISTS "public"."runoob_datatype_test" ( "datatype_1" CHAR NOT NULL, "datatype_2" CHAR(1) NOT NULL, "datatype_3" CHAR(1020) NOT NULL ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype_1"); 输入示例[LONG|MEDIUM|TINY]TEXT 1 2 3 4 5 6 CREATE TABLE IF NOT EXISTS `runoob_dataType_test`( `dataType_1` LONGTEXT, `dataType_2` MEDIUMTEXT, `dataType_3` TEXT, `dataType_4` TINYTEXT ); 输出示例 1 2 3 4 5 6 7 8 9 10 CREATE TABLE IF NOT EXISTS "public"."runoob_datatype_test" ( "datatype_1" TEXT, "datatype_2" TEXT, "datatype_3" TEXT, "datatype_4" TEXT ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype_1"); 输入示例VARCHAR MySQL VARCHAR列中的 值是可变长度的字符串。长度可以指定为0到65,535之间的值。 1 2 3 4 CREATE TABLE IF NOT EXISTS `runoob_dataType_test`( `dataType_1` VARCHAR(0), `dataType_2` VARCHAR(1845) ); 输出示例 1 2 3 4 5 6 7 8 CREATE TABLE IF NOT EXISTS "public"."runoob_datatype_test" ( "datatype_1" VARCHAR(1), "datatype_2" VARCHAR(7380) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype_1");
  • 附加日志数据 可以在重做日志文件中记录附加列。 记录这些附加列的过程称为补充日志记录。 Oracle支持此功能,GaussDB(DWS)不支持此功能。 输入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 CREATE TABLE sad.fnd_lookup_values_t ( lookup_code_id NUMBER NOT NULL /* ENABLE */ ,lookup_code VARCHAR2 (40) NOT NULL /* ENABLE */ ,meaning VARCHAR2 (100) ,other_meaning VARCHAR2 (100) ,order_by_no NUMBER ,start_time DATE DEFAULT SYSDATE NOT NULL /* ENABLE */ ,end_time DATE ,enable_flag CHAR( 1 ) DEFAULT 'Y' NOT NULL /* ENABLE */ ,disable_date DATE ,created_by NUMBER ( 15 ,0 ) NOT NULL /* ENABLE */ ,creation_date DATE NOT NULL /* ENABLE */ ,last_updated_by NUMBER ( 15 ,0 ) NOT NULL /* ENABLE */ ,last_update_date DATE NOT NULL /* ENABLE */ ,last_update_login NUMBER ( 15 ,0 ) DEFAULT 0 NOT NULL /* ENABLE */ ,description VARCHAR2 (500) ,lookup_type_id NUMBER NOT NULL/* ENABLE */ ,attribute4 VARCHAR2 (250) ,supplemental log data (ALL) COLUMNS ) ; 输出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 CREATE TABLE sad.fnd_lookup_values_t ( lookup_code_id NUMBER NOT NULL /* ENABLE */ ,lookup_code VARCHAR2 (40) NOT NULL /* ENABLE */ ,meaning VARCHAR2 (100) ,other_meaning VARCHAR2 (100) ,order_by_no NUMBER ,start_time DATE DEFAULT SYSDATE NOT NULL /* ENABLE */ ,end_time DATE ,enable_flag CHAR( 1 ) DEFAULT 'Y' NOT NULL /* ENABLE */ ,disable_date DATE ,created_by NUMBER ( 15 ,0 ) NOT NULL /* ENABLE */ ,creation_date DATE NOT NULL /* ENABLE */ ,last_updated_by NUMBER ( 15 ,0 ) NOT NULL /* ENABLE */ ,last_update_date DATE NOT NULL /* ENABLE */ ,last_update_login NUMBER ( 15 ,0 ) DEFAULT 0 NOT NULL /* ENABLE */ ,description VARCHAR2 (500) ,lookup_type_id NUMBER NOT NULL/* ENABLE */ ,attribute4 VARCHAR2 (250) /* ,supplemental log data (ALL) COLUMNS */ ) ; GaussDB(DWS)不支持的补充日志数据功能,需要注释掉。 CREATE TABLE不支持“SUPPLEMENTAL LOG DATA”,因此需要注释掉。 输入 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE SAD.FND_DATA_CHANGE_LOGS_T ( LOGID NUMBER, TABLE_NAME VARCHAR2(40) NOT NULL ENABLE, TABLE_KEY_COLUMNS VARCHAR2(200), TABLE_KEY_VALUES VARCHAR2(200), COLUMN_NAME VARCHAR2(40) NOT NULL ENABLE, COLUMN_CHANGE_FROM_VALUE VARCHAR2(200), COLUMN_CHANGE_TO_VALUE VARCHAR2(200), DESCRIPTION VARCHAR2(500), SUPPLEMENTAL LOG DATA (ALL) COLUMNS ); 输出 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE sad.fnd_data_change_logs_t ( logid NUMBER ,table_name VARCHAR2 (40) NOT NULL /* ENABLE */ ,table_key_columns VARCHAR2 (200) ,table_key_values VARCHAR2 (200) ,column_name VARCHAR2 (40) NOT NULL /* ENABLE */ ,column_change_from_value VARCHAR2 (200) ,column_change_to_value VARCHAR2 (200) ,description VARCHAR2 (500) /*, SUPPLEMENTAL LOG DATA (ALL) COLUMNS*/ ) 父主题: Oracle语法迁移
  • 其他故障 出现因“总线错误”(Bus error)导致的core dump或异常退出 一般情况下出现此种问题,是进程运行过程中加载的共享动态库(在Linux为.so文件)出现变化;或者进程二进制文件本身出现变化,导致操作系统加载机器的执行码或者加载依赖库的入口发生变化,操作系统出于保护目的将进程终止,产生core dump文件。 解决此问题,重试便可。同时请尽可能避免在升级等运维操作过程中,在集群内部运行业务程序,避免升级时因替换文件产生此问题。 此故障的core dump文件的可能堆栈是dl_main及其子调用,它是操作系统用来初始化进程做共享动态库加载的。如果进程已经初始化,但是共享动态库还未加载完成,严格意义上来说,进程并未完全启动。
  • 连接性能问题 数据库内核执行初始化语句较慢导致的性能问题。 此种情况定位较难,可以尝试使用Linux的跟踪命令:strace。 strace gsql -U MyUserName -W {password} -d postgres -h 127.0.0.1 -p 23508 -r -c '\q' 此时便会在屏幕上打印出数据库的连接过程。比如较长时间停留在下面的操作上: sendto(3, "Q\0\0\0\25SELECT VERSION()\0", 22, MSG_NOSIGNAL, NULL, 0) = 22 poll([{fd=3, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=3, revents=POLLIN}]) 此时便可以确定是数据库执行"SELECT VERSION()"语句较慢。 在连接上数据库后,便可以通过执行“explain performance select version()”语句来确定初始化语句执行较慢的原因。更多信息请参考《开发指南》中的“SQL执行计划介绍”章节。 另外还有一种场景不太常见:由于数据库CN所在机器的磁盘满或故障,此时所查询等受影响,无法进行用户认证,导致连接过程挂起,表现为假死。解决此问题清理数据库CN的数据盘空间便可。 TCP连接创建较慢问题。 此问题可以参考上面的初始化语句较慢排查的做法,通过strace跟踪,如果长时间停留在: connect(3, {sa_family=AF_FILE, path="/home/test/tmp/gaussdb_llt1/.s.PGSQL.61052"}, 110) = 0 或者 connect(3, {sa_family=AF_INET, sin_port=htons(61052), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress) 那么说明客户端与数据库端建立物理连接过慢,此时应当检查网络是否存在不稳定、网络吞吐量太大的问题。
  • 创建连接故障 gsql: could not connect to server: No route to host 此问题一般是指定了不可达的地址或者端口导致的。请检查-h参数与-p参数是否添加正确。 gsql: FATAL: Invalid username/password,login denied. 此问题一般是输入了错误的用户名和密码导致的,请联系数据库管理员,确认用户名和密码的正确性。 The "libpq.so" loaded mismatch the version of gsql, please check it. 此问题是由于环境中使用的libpq.so的版本与gsql的版本不匹配导致的,请通过“ldd gsql”命令确认当前加载的libpq.so的版本,并通过修改LD_LIBRARY_PATH环境变量来加载正确的libpq.so。 gsql: symbol lookup error: xxx/gsql: undefined symbol: libpqVersionString 此问题是由于环境中使用的libpq.so的版本与gsql的版本不匹配导致的(也有可能是环境中存在PostgreSQL的libpq.so),请通过“ldd gsql”命令确认当前加载的libpq.so的版本,并通过修改LD_LIBRARY_PATH环境变量来加载正确的libpq.so。 gsql: connect to server failed: Connection timed out Is the server running on host "xx.xxx.xxx.xxx" and accepting TCP/IP connections on port xxxx? 此问题是由于网络连接故障造成。请检查客户端与数据库服务器间的网络连接。如果发现从客户端无法PING到数据库服务器端,则说明网络连接出现故障。请联系网络管理人员排查解决。 ping -c 4 10.10.10.1 PING 10.10.10.1 (10.10.10.1) 56(84) bytes of data. From 10.10.10.1: icmp_seq=2 Destination Host Unreachable From 10.10.10.1 icmp_seq=2 Destination Host Unreachable From 10.10.10.1 icmp_seq=3 Destination Host Unreachable From 10.10.10.1 icmp_seq=4 Destination Host Unreachable --- 10.10.10.1 ping statistics --- 4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 2999ms gsql: FATAL: permission denied for database "postgres" DETAIL: User does not have CONNECT privilege. 此问题是由于用户不具备访问该数据库的权限,可以使用如下方法解决。 使用管理员用户dbadmin连接数据库。 gsql -d postgres -U dbadmin -p 8000 赋予该用户访问数据库的权限。 GRANT CONNECT ON DATABASE postgres TO user1; 实际上,常见的许多错误操作也可能产生用户无法连接上数据库的现象。如用户连接的数据库不存在,用户名或密码输入错误等。这些错误操作在客户端工具也有相应的提示信息。 gsql -d postgres -p 8000 gsql: FATAL: database "postgres" does not exist gsql -d postgres -U user1 -W gauss@789 -p 8000 gsql: FATAL: Invalid username/password,login denied. gsql: FATAL: sorry, too many clients already,active/non-active: 197/3. 此问题是由于系统连接数量超过了最大连接数量。请联系数据库DBA进行会话连接数管理,释放无用会话。 关于查看用户会话连接数的方法如表1。 会话状态可以在视图PG_STAT_ACTIVITY中查看。无用会话可以使用函数pg_terminate_backend进行释放。 select datid,pid,state from pg_stat_activity; datid | pid | state -------+-----------------+-------- 13205 | 139834762094352 | active 13205 | 139834759993104 | idle (2 rows) 其中pid的值即为该会话的线程ID。根据线程ID结束会话。 SELECT PG_TERMINATE_BACKEND(139834759993104); 显示类似如下信息,表示结束会话成功。 PG_TERMINATE_BACKEND ---------------------- t (1 row) 表1 查看会话连接数 描述 命令 查看指定用户的会话连接数上限。 执行如下命令查看连接到指定用户USER1的会话连接数上限。其中-1表示没有对用户user1设置连接数的限制。 SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='user1'; rolname | rolconnlimit ---------+-------------- user1 | -1 (1 row) 查看指定用户已使用的会话连接数。 执行如下命令查看指定用户USER1已使用的会话连接数。其中,1表示USER1已使用的会话连接数。 SELECT COUNT(*) FROM V$SESSION WHERE USERNAME='user1'; count ------- 1 (1 row) 查看指定数据库的会话连接数上限。 执行如下命令查看连接到指定数据库postgres的会话连接数上限。其中-1表示没有对数据库postgres设置连接数的限制。 SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='postgres'; datname | datconnlimit ----------+-------------- postgres | -1 (1 row) 查看指定数据库已使用的会话连接数。 执行如下命令查看指定数据库postgres上已使用的会话连接数。其中,1表示数据库postgres上已使用的会话连接数。 SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='postgres'; count ------- 1 (1 row) 查看所有用户已使用会话连接数。 执行如下命令查看所有用户已使用的会话连接数。 SELECT COUNT(*) FROM V$SESSION; count ------- 10 (1 row) gsql: wait xxx.xxx.xxx.xxx:xxxx timeout expired gsql在向数据库发起连接的时候,会有5分钟超时机制,如果在这个超时时间内,数据库未能正常的对客户端请求进行校验和身份认证,那么gsql会退出当前会话的连接过程,并报出如上错误。 一般来说,此问题是由于连接时使用的-h参数及-p参数指定的连接主机及端口有误(即错误信息中的xxx部分),导致通信故障;极少数情况是网络故障导致。要排除此问题,请检查数据库的主机名及端口是否正确。 gsql: could not receive data from server: Connection reset by peer. 同时,检查CN日志中出现类似如下日志“ FATAL: cipher file "/data/coordinator/server.key.cipher" has group or world access”,一般是由于数据目录或部分关键文件的权限被误操作篡改导致。请参照其他正常实例下的相关文件权限,修改回来便可。 gsql: FATAL: GSS authentication method is not allowed because XXXX user password is not disabled. 目标CN的pg_hba.conf里配置了当前客户端IP使用"gss"方式来做认证,该认证算法不支持用作客户端的身份认证,请修改到"sha256"后再试。 请不要修改pg_hba.conf中数据库集群主机的相关设置,否则可能导致数据库功能故障。 建议业务应用部署在数据库集群之外,而非集群内部。
  • INSERT_METHOD INSERT_METHOD指定在表中插入行的位置,使用FIRST或LAST值将插入转到第一个或最后一个表,或使用值NO以防止插入。在迁移的过程中DSC会将该属性删除。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ) INSERT_METHOD=LAST; ALTER TABLE runoob_alter_test INSERT_METHOD NO; ALTER TABLE runoob_alter_test INSERT_METHOD=NO; ALTER TABLE runoob_alter_test INSERT_METHOD FIRST; ALTER TABLE runoob_alter_test INSERT_METHOD=FIRST; ALTER TABLE runoob_alter_test INSERT_METHOD LAST; ALTER TABLE runoob_alter_test INSERT_METHOD=LAST; 输出示例 1 2 3 4 5 6 7 8 9 10 CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" DOUBLE PRECISION, "datatype3" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); 父主题: 表(可选参数、操作)
  • CHARSET CHARSET指定表的默认字符集。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该关键字删除。 输入示例 1 2 3 4 5 6 CREATE TABLE `public`.`runoob_tbl_test`( `runoob_id` VARCHAR(30), `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` VARCHAR(30) )DEFAULT CHARSET=utf8; 输出示例 1 2 3 4 5 6 7 8 9 10 CREATE TABLE "public"."runoob_tbl_test" ( "runoob_id" VARCHAR(120), "runoob_title" VARCHAR(400) NOT NULL, "runoob_author" VARCHAR(160) NOT NULL, "submission_date" VARCHAR(120) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id"); 父主题: 表(可选参数、操作)
  • REGEXP_INSTR REGEXP_INSTR扩展了INSTR函数的功能,支持搜索字符串的正则表达式模式。DSC可迁移含有2到6个参数的REGEXP_INSTR。 sub_expr参数(参数#7)在Oracle中可用,但不支持迁移。如果输入脚本包含sub_expr,DSC会将其记录为错误。 支持将return_option设为0,不支持其他值。 支持将match_param设为“i”(匹配不区分大小写)和“c”(匹配区分大小写),不支持其他值。 1 2 3 4 5 6 7 8 9 REGEXP_INSTR( string, pattern, [start_position,] [nth_appearance,] [return_option,] [match_param,] [sub_expr] )
  • REGEXP_SUBSTR REGEXP_SUBSTR通过支持搜索字符串的正则表达式模式来扩展SUBSTR函数的功能。可迁移含有2到5个参数的REGEXP_SUBSTR。 sub_expr参数(参数#6)在Oracle中可用,但不支持迁移。如果输入脚本包含sub_expr,则DSC会将其记录为错误。 支持将match_param设为“i”(匹配不区分大小写)和“c”(匹配区分大小写),不支持其他值。 1 2 3 4 5 6 7 8 REGEXP_SUBSTR( string, pattern, [start_position,] [nth_appearance,] [match_param,] [sub_expr] )
  • VALUES(单语句多行值插入) INSERT使用 VALUES语法的语句可以插入多行,以逗号分隔。 输入示例 1 INSERT INTO exmp_tb1 (tb1_name,tb1_sex,tb1_address,tb1_number) VALUES('David','male','NewYork','01015827875'),('Rachel','female','NewYork','01015827749'),('Monica','female','NewYork','010158996743'); 输出示例 1 2 3 INSERT INTO "public"."exmp_tb1" ("tb1_name","tb1_sex","tb1_address","tb1_number") VALUES ('David','male','NewYork','01015827875'); INSERT INTO "public"."exmp_tb1" ("tb1_name","tb1_sex","tb1_address","tb1_number") VALUES ('Rachel','female','NewYork','01015827749'); INSERT INTO "public"."exmp_tb1" ("tb1_name","tb1_sex","tb1_address","tb1_number") VALUES ('Monica','female','NewYork','010158996743'); 父主题: INSERT
  • CHECKSUM 在MySQL中,CHECKSUM表示对所有的行维护实时校验和。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该关键字删除。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8), PRIMARY KEY(`dataType1`) ) CHECKSUM=1; ALTER TABLE runoob_alter_test CHECKSUM 0; ALTER TABLE runoob_alter_test CHECKSUM=0; ALTER TABLE runoob_alter_test CHECKSUM 1; ALTER TABLE runoob_alter_test CHECKSUM=1; 输出示例 1 2 3 4 5 6 7 8 9 10 CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" REAL, "datatype3" DOUBLE PRECISION, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); 父主题: 表(可选参数、操作)
  • PARTITION 当插入到分区表中时,可以控制哪些分区和子分区接受新行。 输入示例 1 2 3 4 5 INSERT INTO employees PARTITION(p3) VALUES (19, 'Frank1', 'Williams', 1, 2); INSERT INTO employees PARTITION(p0) VALUES (4, 'Frank1', 'Williams', 1, 2); INSERT INTO employees PARTITION(p1) VALUES (9, 'Frank1', 'Williams', 1, 2); INSERT INTO employees PARTITION(p2) VALUES (10, 'Frank1', 'Williams', 1, 2); INSERT INTO employees PARTITION(p2) VALUES (11, 'Frank1', 'Williams', 1, 2); 输出示例 1 2 3 4 5 INSERT INTO "public"."employees" VALUES (19,'Frank1','Williams',1,2); INSERT INTO "public"."employees" VALUES (4,'Frank1','Williams',1,2); INSERT INTO "public"."employees" VALUES (9,'Frank1','Williams',1,2); INSERT INTO "public"."employees" VALUES (10,'Frank1','Williams',1,2); INSERT INTO "public"."employees" VALUES (11,'Frank1','Williams',1,2); 父主题: INSERT
  • 操作步骤 以gds_user用户登录安装GDS的数据服务器。 请根据启动GDS的方式,选择停止GDS的方式。 若用户使用“gds”命令启动GDS,请使用以下方式停止GDS。 执行如下命令,查询GDS进程号。 ps -ef|grep gds 示例:其中GDS进程号为128954。 ps -ef|grep gds gds_user 128954 1 0 15:03 ? 00:00:00 gds -d /input_data/ -p 192.168.0.90:5000 -l /log/gds_log.txt -D gds_user 129003 118723 0 15:04 pts/0 00:00:00 grep gds 使用“kill”命令,停止GDS。其中128954为上一步骤中查询出的GDS进程号。 kill -9 128954
  • SET CHARACTER DSC工具迁移时会将MySQL SET CHARACTER SET语句迁移为SET SESSION NAMES。字符集对照如下表。 表1 字符集对照表 MySQL CHARACTER SET GaussDB(DWS) SESSION NAMES ASCII SQL_ASCII BIG5 BIG5 CP1250 WIN1250 CP1251 WIN1251 CP1256 WIN1256 CP1257 WIN1257 CP932 SJIS EUCJPMS EUC_JP EUCKR EUC_KR GB2312 GB18030 GBK GBK GREEK ISO_8859_7 HEBREW ISO_8859_8 KOI8R KOI8R KOI8U KOI8U LATIN1 LATIN1 LATIN2 LATIN2 LATIN5 LATIN5 LATIN7 LATIN7 SJIS SJIS SWE7 UTF8 TIS620 WIN874 UTF8 UTF8 UTF8MB4 UTF8 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 SET CHARACTER SET 'ASCII'; SET CHARACTER SET 'BIG5'; SET CHARACTER SET 'CP1250'; SET CHARACTER SET 'CP1251'; SET CHARACTER SET 'CP1256'; SET CHARACTER SET 'CP1257'; SET CHARACTER SET 'CP932'; SET CHARACTER SET 'EUCJPMS'; SET CHARACTER SET 'EUCKR'; SET CHARACTER SET 'GB2312'; SET CHARACTER SET 'GBK'; SET CHARACTER SET 'GREEK'; SET CHARACTER SET 'HEBREW'; SET CHARACTER SET 'KOI8R'; SET CHARACTER SET 'KOI8U'; SET CHARACTER SET 'LATIN1'; SET CHARACTER SET 'LATIN2'; SET CHARACTER SET 'LATIN5'; SET CHARACTER SET 'LATIN7'; SET CHARACTER SET 'SJIS'; SET CHARACTER SET 'SWE7'; SET CHARACTER SET 'TIS620'; SET CHARACTER SET 'UTF8'; SET CHARACTER SET 'UTF8MB4'; ##mysql中不支持 SET CHARACTER SET 'UCS2'; ##mysql中不支持SET CHARACTER SET 'UTF16'; ##mysql中不支持SET CHARACTER SET 'UTF16LE'; ##mysql中不支持SET CHARACTER SET 'UTF32'; 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 SET SESSION NAMES 'SQL_ASCII'; SET SESSION NAMES 'BIG5'; SET SESSION NAMES 'WIN1250'; SET SESSION NAMES 'WIN1251'; SET SESSION NAMES 'WIN1256'; SET SESSION NAMES 'WIN1257'; SET SESSION NAMES 'SJIS'; SET SESSION NAMES 'EUC_JP'; SET SESSION NAMES 'EUC_KR'; SET SESSION NAMES 'GB18030'; SET SESSION NAMES 'GBK'; SET SESSION NAMES 'ISO_8859_7'; SET SESSION NAMES 'ISO_8859_8'; SET SESSION NAMES 'KOI8R'; SET SESSION NAMES 'KOI8U'; SET SESSION NAMES 'LATIN1'; SET SESSION NAMES 'LATIN2'; SET SESSION NAMES 'LATIN5'; SET SESSION NAMES 'LATIN7'; SET SESSION NAMES 'SJIS'; SET SESSION NAMES 'UTF8'; SET SESSION NAMES 'WIN874'; SET SESSION NAMES 'UTF8'; SET SESSION NAMES 'UTF8'; --mysql中不支持 SET CHARACTER SET 'UCS2'; --mysql中不支持SET CHARACTER SET 'UTF16'; --mysql中不支持SET CHARACTER SET 'UTF16LE'; --mysql中不支持SET CHARACTER SET 'UTF32'; 父主题: 数据库管理
  • 查看执行计划和开销 执行计划显示如何对指代SQL语句的表格进行扫描,分为次序扫描和索引扫描。 SQL语句执行成本为预估的查询时间(查询的语句成本单位是随机的,通常情况下检查对象为磁盘页)。 查看SQL查询的计划和成本,可通过以下方式: 在“SQL终端”中输入查询或使用已有查询,单击工具栏的来查看解释计划。 若要查看使用了Analyze的解释计划,单击查询按钮,选择“包含ANALYZE结果”。然后再次单击查询。 “执行计划”默认在底部的新页签以树形图样式显示。显示支持树形样式和文本样式。 树形执行计划和Visual Explain中显示的数据可能会有所不同,因为二者执行的参数不同。 下表展示了使用和未使用Analyze解释计划时所选择的参数和显示的列: 表1 解释计划选项 解释计划类型 参数 列 未选择“包含ANALYZE结果”(默认值) Verbose、Costs Node type、startup cost、total cost、rows、width、additional Info 选择“包含ANALYZE结果” Analyze、Verbose、Costs、Buffers、Timing Node type、startup cost、total cost、rows、width、Actual startup time、Actual total time、Actual Rows、Actual loops、Additional Info Additional Info列包括谓词信息(过滤谓词和hash条件)、分布键、输出信息以及节点类型信息。 树形样式将节点划分为16个类型。在树形样式中,每个节点都将以相应类型的图标开头。下表列举了节点类别及相应图标。 表2 节点类别和图标 节点类别 图标 Aggregate Group Aggregate Function Hash Hash Join Nested Loop Nested Loop Join Modify Table Partition Iterator Row Adapter Seq Scan on Set Operator Sort Stream Union Unknown 将鼠标悬停在突出显示的单元格上,可以识别负载最重、开销最大、速度最慢的节点。只有树形样式支持单元格突出显示。 若选择了多个查询,则仅针对最后一个查询显示使用/未使用Analyze的解释计划。 每次执行一个执行计划,该计划都会在新页签中打开。 如果丢失连接但对象浏览器中依然保持数据库的连接,会弹出“连接错误”对话框,显示以下内容: “是”:重建连接,获取查询计划及开销。 “否”:断开对象浏览器中的数据库连接。 “执行计划”窗口中的工具栏菜单选项如下: 工具栏菜单 图标 描述 树形样式 此图标用于以树形样式查看解释计划。 文本样式 此图标用于以文本样式查看解释计划。 复制 此图标用于将所选内容从结果窗口复制到剪贴板,支持快捷键Ctrl+C。 保存 此图标用于以文本样式保存解释计划。 有关刷新、SQL预览和搜索栏的具体信息,请参见执行SQL查询。 刷新之后会重新执行Explain/Analyze查询并刷新当前页签显示的计划内容。 结果显示在“消息”页签中。 父主题: SQL终端管理
  • LONG RAW CREATE TABLE不支持“Data type LONG RAW”,需要用Bytea来替换Long Raw数据类型。 输入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE TABLE SAD.WORKFLOWDEFS ( ID NUMBER(*,0), WF_NAME VARCHAR2(200), WF_DEFINITION LONG RAW, WF_VERSION NUMBER(*,0), WF_PUBLISH CHAR(1), WF_MAINFLOW CHAR(1), WF_APP_NAME VARCHAR2(20), CREATED_BY NUMBER, CREATION_DATE DATE, LAST_UPDATED_BY NUMBER, LAST_UPDATE_DATE DATE, WFDESC VARCHAR2(2000) ); 输出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CREATE TABLE sad.workflowdefs ( id NUMBER (38, 0), wf_name VARCHAR2 (200), wf_definition BYTEA, wf_version NUMBER (38, 0), wf_publish CHAR(1), wf_mainflow CHAR(1), wf_app_name VARCHAR2 (20), created_by NUMBER, creation_date DATE, last_updated_by NUMBER, last_update_date DATE, wfdesc VARCHAR2 (2000) ); 父主题: Oracle语法迁移
  • 图形化查看执行计划和开销 Visual Explain计划从扩展JSON格式中获取信息,以图形化方式显示SQL查询。该功能有助于优化查询以增强查询和服务器性能及分析数据库所用的查询路径,并找出最拥挤,开销最高和运行最慢的节点。 图形化执行计划展示了SQL语句所引用的表是如何被扫描的(普通顺序扫描和索引扫描)。 SQL语句的执行开销取决于其运行时长(可使用任意开销单位度量,但是通常以磁盘中每页的抓取数计算。) Costliest:“Self Cost”最高的计划节点。 Heaviest: 输出行数最大的计划节点被认为是最拥挤的计划节点。 Slowest:所需执行时间最长的计划节点。 按照以下步骤以图表形式查看所需SQL查询的计划和成本: 在“SQL终端”页签输入查询或使用现有查询,然后单击工具栏中的 。 显示“可视化计划分析”窗口。 如果在获取执行计划和开销的过程中丢失连接,请参见查看执行计划和开销获取关于重新连接选项的具体信息。 1 - “一般信息”:显示查询详情。 2 - “可视化解释计划”:以图形化方式显示所有节点,如开销最高、最拥挤的和最慢的计划节点。单击每个计划节点可查看节点详情。 3 - “属性 - 一般”:以毫秒为单位提供查询的执行时间。 4 - “属性 - 所有节点”:提供所有节点信息。 字段名 说明 Node Name 显示节点名称。 Analysis 显示各节点的分析信息。 RowsOutput 显示计划节点输出的行数。 RowsOutput Deviation (%) 显示预估的输出行数和计划节点实际的输出行数之间的偏差百分比。 Execution Time (ms) 显示查询在计划节点上的执行时间。 Contribution (%) 显示查询在计划节点上的执行时间占整个查询执行时间的百分比。 Self Cost 显示在计划节点上执行查询的“Total Cost”,即为所有子节点的总开销。 Total Cost 显示在计划节点上执行查询所消耗的总成本。 5 - “属性 - 执行计划”:显示所有节点上的执行信息。 列名 说明 节点名称 节点名称 实体名称 对象名称 开销 计划节点执行时间 行 计划节点输出行数 循环 每个节点执行的循环数 宽度 计划节点输出行的平均宽度估算值(以字节为单位) 实际行数 计划节点输出行数的估算值 实际时间 计划节点的实际执行时间 6 - “计划节点 - 一般”:显示各节点信息。 行名 描述 Output 显示计划节点返回的字段信息。 Analysis 显示开销最大、最慢和最拥挤的计划节点分析信息。 RowsOutput Deviation (%) 显示预估的输出行数和计划节点的实际输出行之间的偏差百分比。 Row Width (bytes) 显示预估的计划节点输出行的平均宽度(单位:字节)。 Plan Output Rows 显示计划节点输出的行数。 Actual Output Rows 显示预估的计划节点输出行数。 Actual Startup Time 计划节点生成第一条记录所耗费的执行时间。 Actual Total Time 显示计划节点的实际执行时间。 Actual Loops 显示该节点执行的迭代数。 Startup Cost 显示计划节点输出第一条记录所耗费的时间。 Total Cost 显示查询在计划节点上的执行时间。 Is Column Store 表示表的存储方式(列或行存储)。 Shared Hit Blocks 显示缓存命中的共享块数量。 Shared Read Blocks 显示从缓存读取的共享块数量。 Shared Dirtied Blocks 显示缓存中弄脏的共享块数量。 Shared Written Blocks 显示缓存写入的共享块数量。 Local Hit Blocks 显示缓存命中的局部块数量。 Local Read Blocks 显示从缓存读取的局部块数量。 Local Dirtied Blocks 显示缓存中弄脏的局部块数量。 Local Written Blocks 显示缓存写入的局部块数量。 Temp Read Blocks 显示从缓存读取的临时块数量。 Temp Written Blocks 显示缓存写入的临时块数量。 I/O Read Time (ms) 显示该节点执行任意I/O读操作的耗时。 I/O Write Time (ms) 显示该节点执行任意I/O写操作的耗时。 Node Type 显示计划节点的类型。 Parent Relationship 显示与父节点的关系。 Inner Node Name 子节点名称 Node/s 无需输入,将从属性中移除。 根据计划节点类型可以显示其他信息。举例如下: 计划节点 其他 Partitioned CStore Scan 表名、表别名和模式名 Vector Sort 排序键 Vector Hash Aggregate 分组键 Vector Has Join Join类型和Hash条件 Vector Streaming 分布键和Spawn On 7 - “计划节点 - DN详情”:为每个节点提供详细的DN信息。只有在从DN收集数据时,“DN详情”才可用。 有关复制和搜索工具栏选项的说明,请参阅查看数据。 父主题: SQL终端管理
  • LOW_PRIORITY MySQL REPLACE支持使用LOW_PRIORITY ,DSC工具将对其进行转换。 输入 1 2 3 4 5 6 # LOW_PRIORITY 低优先级 Replace LOW_PRIORITY INTO exmp_tb2 VALUES(1, '128.23', 'nice', '2018-10-11 19:00:00'); Replace LOW_PRIORITY INTO exmp_tb2 VALUES(2, DEFAULT, 'nice', '2018-12-14 19:00:00' ); Replace LOW_PRIORITY INTO exmp_tb2 VALUES(3, DEFAULT, 'nice', DEFAULT); Replace LOW_PRIORITY INTO exmp_tb2 (tb2_id, tb2_price) VALUES(5, DEFAULT); Replace LOW_PRIORITY INTO exmp_tb2 (tb2_id, tb2_price, tb2_note) VALUES(4, DEFAULT, DEFAULT); 输出 1 2 3 4 5 6 -- LOW_PRIORITY 低优先级 INSERT INTO "public"."exmp_tb2" VALUES (1,'128.23','nice','2018-10-11 19:00:00'); INSERT INTO "public"."exmp_tb2" VALUES (2,DEFAULT,'nice','2018-12-14 19:00:00'); INSERT INTO "public"."exmp_tb2" VALUES (3,DEFAULT,'nice',DEFAULT); INSERT INTO "public"."exmp_tb2" ("tb2_id","tb2_price") VALUES (5,DEFAULT); INSERT INTO "public"."exmp_tb2" ("tb2_id","tb2_price","tb2_note") VALUES (4,DEFAULT,DEFAULT); 父主题: REPLACE
  • ROLLUP MySQL中的group by column with rollup需要转换为GaussDB(DWS)中的group by rollup (column); 输入示例 1 2 3 select id,product_id,count(1) from czb_account.equity_account_log where id in (6957343,6957397,6957519,6957541,6957719) group by 1, 2 with rollup; 输出示例 1 2 3 4 5 6 7 8 9 10 SELECT id, product_id, count(1) FROM czb_account.equity_account_log WHERE id IN (6957343, 6957397, 6957519, 6957541, 6957719) GROUP BY ROLLUP(1, 2); 父主题: SELECT
  • 概述 本章主要介绍关于DSC使用过程中相关的内容,包括DSC工具的安装,工具配置,DSC工具的迁移流程等内容。 请务必使用最新的补丁更新操作系统和相关软件,以防漏洞和其他安全问题。 为确保安全性,DSC会对其创建的文件和文件夹进行访问控制。要访问这些文件和文件夹,用户必须拥有所需权限。例如,用户需要权限600/400访问目标文件和日志文件,需要权限700访问目标文件夹和日志文件夹。此外,该工具不在日志中保存敏感数据,以确保数据安全。 --input-folder中指定的文件或文件夹不得具有GROUP和OTHERS的写权限。 出于安全考虑,如果输入文件/文件夹具有写入权限,则该工具不会执行。 不得使用拥有root权限的用户在Linux中安装和执行DSC。 DSC.jar文件中提供的umask值是系统设置值,与文件权限相关。建议用户不要修改此值。修改此值将影响文件权限。 DSC是一个单机应用程序,无需与任何网络或数据库连接即可运行。它可以在与任何网络隔离的任何机器上运行。 父主题: 使用DSC
共100000条