华为云用户手册

  • 不同日志级别类型 Data Studio.log文件中所显示的不同类型的日志级别如下: TRACE:相比DEBUG级别,TRACE级别提供更为详细的信息。 DEBUG:DEBUG级别指粒状信息事件,对调试应用程序最为有用。 INFO:INFO级别指着重显示应用进程的消息。 WARN:WARN级别指潜在的有害情况。 ERROR:ERROR级别指错误事件。 FATAL:FATAL级别指事件造成应用终止。 ALL:ALL级别指启用所有日志级别。 OFF:OFF级别指禁用所有日志级别和ALL级别相反。 如果用户输入无效的日志级别值,日志级别会设置为WARN。 如果用户未指定日志级别,日志级别会设置为WARN。
  • 日志消息描述 日志消息描述如下图所示: Data Studio.log文件大小达到最大值10000 KB时,系统会自动创建一个文件并另存为Data Studio.log.1。Data Studio.log中的日志将存储在Data Studio.log.1文件中。当Data Studio.log文件再次达到最大值,系统继续自动创建一个文件并另存为Data Studio.log.2。最新日志持续写入Data Studio.log文件。以此类推,此过程将一直持续,直到Data Studio.log.5文件达到最大值,该循环重新开始。Data Studio将删除最早的日志文件,即Data Studio.log.1。例如,Data Studio.log.5重命名为Data Studio.log.4,Data Studio.log.4重命名为Data Studio.log.3,以此类推。 如需启用服务器日志文件的性能日志记录功能,需启用配置参数log_min_messages,且设置为data/postgresql.conf配置文件中的debug1,即log_min_messages = debug1。
  • client_encoding 参数说明:设置客户端的字符编码类型。 请根据前端业务的情况确定。尽量客户端编码和服务器端编码一致,提高效率。 参数类型:USERSET 取值范围:兼容PostgreSQL所有的字符编码类型。其中UTF8表示使用数据库的字符编码类型。 使用命令locale -a查看当前系统支持的区域和相应的编码格式,并可以选择进行设置。 默认情况下,gs_initdb会根据当前的系统环境初始化此参数,通过locale命令可以查看当前的配置环境。 参数建议保持默认值,不建议通过gs_guc工具或其他方式直接在postgresql.conf文件中设置client_encoding参数,即使设置也不会生效,以保证集群内部通信编码格式一致。 默认值:UTF8 推荐值:SQL_ASCII/UTF8
  • lc_messages 参数说明:设置信息显示的语言。 可接受的值是与系统相关的;在一些系统上,这个区域范畴并不存在,不过仍然允许设置这个变量,只是不会有任何效果。同样,也有可能是所期望的语言的翻译信息不存在。在这种情况下,用户仍然能看到英文信息。 参数类型:SUSET 取值范围:字符串 使用命令locale -a查看当前系统支持的区域和相应的编码格式,并可以选择进行设置。 默认情况下,gs_initdb会根据当前的系统环境初始化此参数,通过locale命令可以查看当前的配置环境。 默认值:C
  • default_text_search_config 参数说明:设置全文检索的配置信息。 如果设置为不存在的文本搜索配置时将会报错。如果default_text_search_config对应的文本搜索配置被删除,需要重新设置default_text_search_config,否则会报设置错误。 其被文本搜索函数使用,这些函数并没有一个明确指定的配置。 当与环境相匹配的配置文件确定时,gs_initdb会选择一个与环境相对应的设置来初始化配置文件。 参数类型:USERSET 取值范围:字符串 GaussDB(DWS)支持pg_catalog.english,pg_catalog.simple两种配置。 默认值:pg_catalog.english
  • IntervalStyle 参数说明:设置区间值的显示格式。 参数类型:USERSET 取值范围:枚举型 sql_standard表示产生与SQL标准规定匹配的输出。 postgres表示产生与PostgreSQL 8.4版本相匹配的输出,当DateStyle参数被设为ISO时。 postgres_verbose表示产生与PostgreSQL 8.4版本相匹配的输出,当DateStyle参数被设为non_ISO时。 iso_8601表示产生与在ISO 8601中定义的“格式与代号”相匹配的输出。 oracle表示产生于Oracle中与numtodsinterval函数相匹配的输出结果,详细请参考numtodsinterval。 IntervalStyle参数也会影响不明确的间隔输入的说明。 默认值:postgres
  • DateStyle 参数说明:设置日期和时间值的显示格式,以及有歧义的输入值的解析规则。 这个变量包含两个独立的部分:输出格式声明(ISO、Postgres、SQL、German)和输入输出的年/月/日顺序(DMY、MDY、YMD)。这两个可以独立设置或者一起设置。关键字Euro和European等价于DMY;关键字US、NonEuro、NonEuropean等价于MDY 。 参数类型:USERSET 取值范围:字符串 默认值:ISO, MDY gs_initdb会将这个参数初始化成与lc_time一致的值。 设置建议:优先推荐使用ISO格式。Postgres、SQL和German均采用字母缩写的形式来表示时区,例如“EST、WST、CST”等。
  • 授予执行权限 此功能授予用户特定包的特定权限。特定包中定义的所有过程和函数都将被授予执行权限。 输入 1 GRANT EXECUTE ON SAD.BAS_LOOKUP_MISC_PKG TO EIP_SAD; 输出 1 2 GRANT EXECUTE ON procedure_name TO EIP_SAD; GRANT EXECUTE ON function1_name TO EIP_SAD; 此处,procedure _name和function1_name必须都属于SAD.BAS_LOOKUP_MISC_PKG。 授予包的执行权限 包的最后一次授权不会被转换。 --GRANT 输入 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 29 30 31 32 33 34 35 36 37 Below should be created as 1spec/t603.SQL CREATE OR REPLACE PACKAGE SAD.bas_dml_lookup_pkg IS FUNCTION func_name RETURN VARCHAR2; PROCEDURE data_change_logs ( pi_table_name IN VARCHAR2 , pi_table_key_columns IN VARCHAR2 , po_error_msg OUT VARCHAR2 ); END bas_dml_lookup_pkg; / GRANT EXECUTE ON SAD.bas_dml_lookup_pkg TO eip_sad; ============================== Below should be created as 2body/t603.SQL CREATE OR REPLACE PACKAGE BODY SAD.bas_dml_lookup_pkg IS g_pkg_name CONSTANT VARCHAR2(30) := 'bas_dml_ic_price_rule_pkg' ; g_func_name VARCHAR2(100); FUNCTION func_name RETURN VARCHAR2 IS l_func_name VARCHAR2(100) ; BEGIN l_func_name := g_pkg_name || '.' || g_func_name ; RETURN l_func_name ; END func_name; PROCEDURE data_change_logs ( pi_table_name IN VARCHAR2 , pi_table_key_columns IN VARCHAR2 , po_error_msg OUT VARCHAR2 ) IS BEGIN ... END data_change_logs; END bas_dml_lookup_pkg; / 输出 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 BEGIN INSERT INTO MIG_ORA_EXT.MIG_PKG_VARIABLES ( PACKAGE_NAME,SPEC_OR_BODY,VARIABLE_NAME , VARIABLE_TYPE,CONSTANT_I,DEFAULT_VALUE , RUNTIME_EXEC_I ) VALUES ( UPPER('bas_dml_lookup_pkg'), 'B', UPPER('g_pkg_name') , UPPER( 'VARCHAR2(30)' ),TRUE,'bas_dml_ic_price_rule_pkg' , FALSE ) ; INSERT INTO MIG_ORA_EXT.MIG_PKG_VARIABLES ( PACKAGE_NAME,SPEC_OR_BODY,VARIABLE_NAME , VARIABLE_TYPE,CONSTANT_I,DEFAULT_VALUE , RUNTIME_EXEC_I ) VALUES ( UPPER('bas_dml_lookup_pkg'), 'B', UPPER( 'g_func_name' ) , UPPER( 'VARCHAR2(100)' ),FALSE,NULL , FALSE ) ; END ; / CREATE OR REPLACE FUNCTION SAD.bas_dml_lookup_pkg#bas_dml_lookup_pkg#func_name RETURN VARCHAR2 PACKAGE IS MIG_PV_VAL_DUMMY_G_PKG_NAME VARCHAR2(30) := MIG_ORA_EXT.MIG_FN_GET_PKG_VARIABLE( 'SAD' ,'bas_dml_lookup_pkg' ,'g_pkg_name' )::VARCHAR2(30); MIG_PV_VAL_DUMMY_G_FUNC_NAME VARCHAR2(100) := MIG_ORA_EXT.MIG_FN_GET_PKG_VARIABLE( 'SAD' ,'bas_dml_lookup_pkg' ,'g_func_name' )::VARCHAR2(100); l_func_name VARCHAR2 ( 100 ) ; BEGIN l_func_name := MIG_PV_VAL_DUMMY_G_PKG_NAME || '.' || MIG_PV_VAL_DUMMY_G_FUNC_NAME ; MIG_ORA_EXT.MIG_FN_SET_PKG_VARIABLE ( 'SAD' ,'bas_dml_lookup_pkg' ,'g_func_name' ,MIG_PV_VAL_DUMMY_G_FUNC_NAME ) ; MIG_ORA_EXT.MIG_FN_SET_PKG_VARIABLE ( 'SAD' ,'bas_dml_lookup_pkg' ,'g_pkg_name' ,MIG_PV_VAL_DUMMY_G_PKG_NAME ) ; RETURN l_func_name ; END ; / CREATE OR REPLACE PROCEDURE SAD.bas_dml_lookup_pkg#data_change_logs ( pi_table_name IN VARCHAR2 , pi_table_key_columns IN VARCHAR2 , po_error_msg OUT VARCHAR2 ) PACKAGE IS BEGIN ... END ; / GRANT EXECUTE ON FUNCTION SAD.bas_dml_lookup_pkg#bas_dml_lookup_pkg#func_name() TO eip_sad; GRANT EXECUTE ON FUNCTION SAD.bas_dml_lookup_pkg#data_change_logs(VARCHAR2, VARCHAR2) TO eip_sad; 父主题: Oracle语法迁移
  • CONNECT BY 输入:CONNECT BY 1 2 3 4 5 6 7 8 9 SELECT id FROM city_branch start with id=roleBranchId connect by prior id=parent_id; SELECT T.BRANCH_LEVEL, t.ID FROM city_branch c WHERE (c.branch_level = '1' OR T.BRANCH_LEVEL = '2') AND (T.SIGN = '1' OR T.SIGN = '4' OR T.SIGN = '8') AND T.STATUS = '1' START WITH c.ID = I_BRANCH_ID CONNECT BY c.ID = PRIOR c.parent_id ORDER BY c.branch_level DESC ; 输出 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 WITH RECURSIVE migora_cte AS ( SELECT id ,1 AS LEVEL FROM city_branch WHERE id = roleBranchId UNION ALL SELECT mig_ora_cte_join_alias.id ,mig_ora_cte_tab_alias.LEVEL + 1 AS LEVEL FROM migora_cte mig_ora_cte_tab_alias INNER JOIN city_branch mig_ora_cte_join_alias ON mig_ora_cte_tab_alias.id = mig_ora_cte_join_alias.parent_id ) SELECT id FROM migora_cte ORDER BY LEVEL ; WITH RECURSIVE migora_cte AS ( SELECT BRANCH_LEVEL ,ID ,SIGN ,STATUS ,parent_id ,1 AS LEVEL FROM city_branch c WHERE c.ID = I_BRANCH_ID UNION ALL SELECT c.BRANCH_LEVEL ,c.ID ,c.SIGN ,c.STATUS ,c.parent_id ,mig_ora_cte_tab_alias.LEVEL + 1 AS LEVEL FROM migora_cte mig_ora_cte_tab_alias INNER JOIN city_branch c ON c.ID = mig_ora_cte_tab_alias.parent_id ) SELECT BRANCH_LEVEL ,ID FROM migora_cte c WHERE ( c.branch_level = '1' OR T.BRANCH_LEVEL = '2' ) AND( T.SIGN = '1' OR T.SIGN = '4' OR T.SIGN = '8' ) AND T.STATUS = '1' ORDER BY c.branch_level DESC ; 输入:多表CONNECT BY 说明了每个子行与父行的关系。该语法使用CONNECT BY xxx PRIOR子句定义当前行(子行)与前一行(父行)的关系。 1 2 3 4 5 6 7 8 9 10 11 12 SELECT DISTINCT a.id menuId, F.name menuName, a.status menuState, a.parent_id menuParentId, '-1' menuPrivilege, a.serialNo menuSerialNo FROM CTP_MENU a, CTP_MENU_NLS F START WITH a.serialno in (1, 2, 3) CONNECT BY a.id = PRIOR a.parent_id AND f.locale = Language AND a.id = f.id ORDER BY menuId, menuParentId; 输出 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 29 WITH RECURSIVE migora_cte AS ( SELECT pr.service_product_id , t.enabled_flag , pr.operation_id , pr.enabled_flag , pr.product_code , 1 AS LEVEL FROM asms.cppsv_operation_sort t , asms.cppsv_product_class pr WHERE level_id = 3 AND pr.operation_id = t.operation_id(+) UNION ALL SELECT pr.service_product_id , t.enabled_flag , pr.operation_id , pr.enabled_flag , pr.product_code , mig_ora_cte_tab_alias.LEVEL + 1 AS LEVEL FROM migora_cte mig_ora_cte_tab_alias , asms.cppsv_operation_sort t , asms.cppsv_product_class pr WHERE mig_ora_cte_tab_alias.service_product_id = pr.service_product_father_id AND pr.operation_id = t.operation_id(+) ) SELECT pr.service_product_id FROM migora_cte WHERE nvl( UPPER( enabled_flag ) ,'Y' ) = 'Y' AND nvl( enabled_flag ,'Y' ) = 'Y' AND pr.product_code = rec_product1.service_product_code ORDER BY LEVEL; 父主题: Oracle语法迁移
  • 聚合查询 可以通过使用GROUP BY语句配合聚合函数,构建一个聚合查询来关注数据的整体情况。 1 2 3 4 5 6 7 8 9 SELECT category, string_agg(quantity,',') FROM newproducts group by category; category | string_agg -------------+------------ toys | 80,244 books | 100 sports | 550 jewels | 200 skin care | 320 electronics | 150
  • 对结果进行排序 使用ORDER BY语句可以让查询结果按照期望的方式进行排序。 1 2 3 4 5 6 7 8 9 10 11 SELECT product_id,product_name,category,quantity FROM newproducts ORDER BY quantity DESC; product_id | product_name | category | quantity ------------+--------------+-------------+---------- 3577 | dumbbell | sports | 550 2344 | milklotion | skin care | 320 1666 | Frisbee | toys | 244 1210 | necklace | jewels | 200 1502 | earphones | electronics | 150 1700 | interface | books | 100 1601 | telescope | toys | 80 (7 rows)
  • 对结果进行筛选 通过WHERE语句对查询的结果进行过滤,找到想要查询的部分。 1 2 3 4 5 6 SELECT * FROM newproducts WHERE category='toys'; product_id | product_name | category | quantity ------------+--------------+----------+---------- 1601 | telescope | toys | 80 1666 | Frisbee | toys | 244 (2 rows)
  • 限制结果查询数量 如果需要查询只返回部分结果,可以使用LIMIT语句限制查询结果返回的记录数。 1 2 3 4 5 6 7 8 9 SELECT product_id,product_name,category,quantity FROM newproducts ORDER BY quantity DESC limit 5; product_id | product_name | category | quantity ------------+--------------+-------------+---------- 3577 | dumbbell | sports | 550 2344 | milklotion | skin care | 320 1666 | Frisbee | toys | 244 1210 | necklace | jewels | 200 1502 | earphones | electronics | 150 (5 rows)
  • PASSWORD 在MySQL中,PASSWORD表示用户密码。GaussDB(DWS)不支持该参数,DSC迁移时会将该关键字删除。 输入示例 1 2 3 4 5 6 7 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 PASSWORD 'HELLO'; 输出示例 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"); 父主题: 表(可选参数、操作)
  • 示例 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 --创建存储过程proc_staffs CREATE OR REPLACE PROCEDURE proc_staffs ( section NUMBER(6), salary_sum out NUMBER(8,2), staffs_count out INTEGER ) IS BEGIN SELECT sum(salary), count(*) INTO salary_sum, staffs_count FROM staffs where section_id = section; END; / --创建存储过程proc_return. CREATE OR REPLACE PROCEDURE proc_return AS v_num NUMBER(8,2); v_sum INTEGER; BEGIN proc_staffs(30, v_sum, v_num); --调用语句 dbms_output.put_line(v_sum||'#'||v_num); RETURN; --返回语句 END; / --调用存储过程proc_return. CALL proc_return(); --清除存储过程 DROP PROCEDURE proc_staffs; DROP PROCEDURE proc_return; --创建函数func_return. CREATE OR REPLACE FUNCTION func_return returns void language plpgsql AS $$ DECLARE v_num INTEGER := 1; BEGIN dbms_output.put_line(v_num); RETURN; --返回语句 END $$; -- 调用函数func_return CALL func_return(); 1 -- 清除函数 DROP FUNCTION func_return;
  • 显示执行进度条 查询在“SQL终端”窗口执行时,窗口会呈现进度条动态显示运行时间。 查询执行完成后,时间条消失。 时间条旁显示完成查询所用总时间。 如果您想取消查询,可在时间条旁单击“取消”。 如下图所示: “取消”按钮已从工具栏中删除。 在PL/SQL编辑器中编译/调试对象时也会显示执行进度条。 进度条中显示的时间格式如下:w时x分y秒z毫秒 在SQL终端中执行批处理时,进度条会显示查询消耗的总时间。
  • 说明 场景1 如果某数据库集群有任何本地数据要添加到template1数据库,请谨慎将gs_dump的输出恢复到一个真正的空数据库中,否则可能会因为被添加对象的定义被复制,出现错误。要创建一个无本地添加的空数据库,需从template0而非template1复制,例如: CREATE DATABASE foo WITH TEMPLATE template0; tar归档形式的文件大小不得超过8GB(tar文件格式的固有限制)。tar文档整体大小和任何其他输出格式没有限制,操作系统可能对此有要求。 由gs_dump生成的转储文件不包含优化程序用来做执行计划决定的统计数据。因此,最好从某转储文件恢复之后运行ANALYZE以确保最佳效果。转储文件不包含任何ALTER DATABASE…SET命令,这些设置由gs_dumpall转储,还有数据库用户和其他完成安装设置。 场景2 当SEQUENCE已经到达最大或最小值时,通过gs_dump来备份SEQUENCE值会因执行报错退出。可参考如下说明处理: SEQUENCE已经到达最大值,但最大值小于2^63-2 报错示例: sequence对象定义 CREATE SEQUENCE seq INCREMENT 1 MINVALUE 1 MAXVALUE 3 START WITH 1; 执行gs_dump备份 gs_dump -U dbadmin -W {password} -p 37300 postgres -t PUBLIC.seq -f backup/MPPDB_backup.sql gs_dump[port='37300'][postgres][2019-12-27 15:09:49]: The total objects number is 337. gs_dump[port='37300'][postgres][2019-12-27 15:09:49]: WARNING: get invalid xid from GTM because connection is not established gs_dump[port='37300'][postgres][2019-12-27 15:09:49]: WARNING: Failed to receive GTM rollback transaction response for aborting prepared (null). gs_dump: [port='37300'] [postgres] [archiver (db)] [2019-12-27 15:09:49] query failed: ERROR: Can not connect to gtm when getting gxid, there is a connection error. gs_dump: [port='37300'] [postgres] [archiver (db)] [2019-12-27 15:09:49] query was: RELEASE bfnextval 处理方法: 通过SQL语句连接postgres数据库,执行如下语句,修改sequence seq1的最大值。 gsql -p 37300 postgres -r -c "ALTER SEQUENCE PUBLIC.seq MAXVALUE 10;" 执行dump工具进行备份。 gs_dump -U dbadmin -W {password} -p 37300 postgres -t PUBLIC.seq -f backup/MPPDB_backup.sql gs_dump[port='37300'][postgres][2019-12-27 15:10:53]: The total objects number is 337. gs_dump[port='37300'][postgres][2019-12-27 15:10:53]: [100.00%] 337 objects have been dumped. gs_dump[port='37300'][postgres][2019-12-27 15:10:53]: dump database postgres successfully gs_dump[port='37300'][postgres][2019-12-27 15:10:53]: total time: 230 ms SEQUENCE已经到达最小值或最大值2^63-2 gs_dump不支持该场景下的SEQUENCE数值备份。 SQL端不支持SEQUENCE到达最大值2^63-2后的MAXVALUE修改,不支持SEQUENCE到达最小值后的MINVALUE修改。
  • 示例 使用gs_dump转储数据库为SQL文本文件或其它格式的操作,如下所示。 示例中“password”表示数据库用户密码,由用户自己设置;“backup/MPPDB_backup.sql”表示导出的文件,其中backup表示相对于当前目录的相对目录;“37300”表示数据库服务器端口;“postgres”表示要访问的数据库名。 导出操作时,请确保该目录存在并且当前的操作系统用户对其具有读写权限。 示例1:执行gs_dump,导出postgres数据库全量信息,导出的MPPDB_backup.sql文件格式为纯文本格式。 gs_dump -U dbadmin -W {password} -f backup/MPPDB_backup.sql -p 37300 postgres -F p gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: The total objects number is 356. gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: [100.00%] 356 objects have been dumped. gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: dump database postgres successfully gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: total time: 1274 ms 使用gsql程序从纯文本导出文件中导入数据。 示例2:执行gs_dump,导出postgres数据库全量信息,导出的MPPDB_backup.tar文件格式为tar格式。 gs_dump -U dbadmin -W {password} -f backup/MPPDB_backup.tar -p 37300 postgres -F t gs_dump[port='37300'][postgres][2018-06-27 10:02:24]: The total objects number is 1369. gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: [100.00%] 1369 objects have been dumped. gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: dump database postgres successfully gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: total time: 50086 ms 示例3:执行gs_dump,导出postgres数据库全量信息,导出的MPPDB_backup.dmp文件格式为自定义归档格式。 gs_dump -U dbadmin -W {password} -f backup/MPPDB_backup.dmp -p 37300 postgres -F c gs_dump[port='37300'][postgres][2018-06-27 10:05:40]: The total objects number is 1369. gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: [100.00%] 1369 objects have been dumped. gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: dump database postgres successfully gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: total time: 36620 ms 示例4:执行gs_dump,导出postgres数据库全量信息,导出的MPPDB_backup文件格式为目录格式。 gs_dump -U dbadmin -W {password} -f backup/MPPDB_backup -p 37300 postgres -F d gs_dump[port='37300'][postgres][2018-06-27 10:16:04]: The total objects number is 1369. gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: [100.00%] 1369 objects have been dumped. gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: dump database postgres successfully gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: total time: 33977 ms
  • 参数说明 通用参数: -f, --file=FILENAME 将输出发送至指定文件或目录。如果省略该参数,则使用标准输出。如果输出格式为(-F c/-F d/-F t)时,必须指定-f参数。如果-f的参数值含有目录,要求目录对当前用户具有读写权限。 -F, --format=c|d|t|p 选择输出格式。格式如下: p|plain:输出一个文本SQL脚本文件(默认)。 c|custom:输出一个自定义格式的归档,并且以目录形式输出,作为gs_restore输入信息。该格式是最灵活的输出格式,因为能手动选择,而且能在恢复过程中将归档项重新排序。该格式默认状态下会被压缩。 d|directory:该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和blob对象对应的数据文件。 t|tar:输出一个tar格式的归档形式,作为gs_restore输入信息。tar格式与目录格式兼容;tar格式归档形式在提取过程中会生成一个有效的目录格式归档形式。但是,tar格式不支持压缩且对于单独表有8GB的大小限制。此外,表数据项的相应排序在恢复过程中不能更改。 输出一个tar格式的归档形式,也可以作为gsql输入信息。 -v, --verbose 指定verbose模式。该选项将导致gs_dump向转储文件输出详细的对象注解和启动/停止次数,向标准错误流输出处理信息。 -V, --version 打印gs_dump版本,然后退出。 -Z, --compress=0-9 指定使用的压缩比级别。 取值范围:0~9 0表示无压缩。 1表示压缩比最小,处理速度最快。 9表示压缩比最大,处理速度最慢。 针对自定义归档格式,该选项指定单个表数据片段的压缩,默认方式是以中等级别进行压缩。对于文本输出,设置非零压缩级别将会导致整个输出文件被压缩(类似通过gzip进行压缩),默认不压缩。tar归档格式目前不支持压缩。 --lock-wait-timeout=TIMEOUT 请勿在转储刚开始时一直等待以获取共享表锁。如果无法在指定时间内锁定某个表,就选择失败。可以以任何符合SET statement_timeout的格式指定超时时间。 -?, --help 显示gs_dump命令行参数帮助,然后退出。 转储参数:
  • 背景信息 gs_dump是GaussDB(DWS)用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等)。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。 gs_dump工具在进行数据导出时,其他用户可以访问集群数据库(读或写)。 gs_dump工具支持导出完整一致的数据。例如,T1时刻启动gs_dump导出A数据库,那么导出数据结果将会是T1时刻A数据库的数据状态,T1时刻之后对A数据库的修改不会被导出。 gs_dump支持将数据库信息导出至纯文本格式的SQL脚本文件或其他归档文件中。 纯文本格式的SQL脚本文件:包含将数据库恢复为其保存时的状态所需的SQL语句。通过gsql运行该SQL脚本文件,可以恢复数据库。即使在其他主机和其他数据库产品上,只要对SQL脚本文件稍作修改,也可以用来重建数据库。 归档格式文件:包含将数据库恢复为其保存时的状态所需的数据,可以是tar格式、目录归档格式或自定义归档格式,详见表1。该导出结果必须与gs_restore配合使用来恢复数据库,gs_restore工具在导入时,系统允许用户选择需要导入的内容,甚至可以在导入之前对等待导入的内容进行排序。
  • 主要功能 gs_dump可以创建四种不同的导出文件格式,通过[-F或者--format=]选项指定,具体如表1所示。 表1 导出文件格式 格式名称 -F的参数值 说明 建议 对应导入工具 纯文本格式 p 纯文本脚本文件包含SQL语句和命令。命令可以由gsql命令行终端程序执行,用于重新创建数据库对象并加载表数据。 小型数据库,一般推荐纯文本格式。 使用gsql工具恢复数据库对象前,可根据需要使用文本编辑器编辑纯文本导出文件。 自定义归档格式 c 一种二进制文件。支持从导出文件中恢复所有或所选数据库对象。 中型或大型数据库,推荐自定义归档格式。 使用gs_restore可以选择要从自定义归档导出文件中导入相应的数据库对象。 目录归档格式 d 该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和blob对象对应的数据文件。 - tar归档格式 t tar归档文件支持从导出文件中恢复所有或所选数据库对象。tar归档格式不支持压缩且对于单独表大小应小于8GB。 - 可以使用gs_dump程序将文件压缩为纯文本或自定义归档导出文件,减少导出文件的大小。生成纯文本导出文件时,默认不压缩。生成自定义归档导出文件时,默认进行中等级别的压缩。gs_dump程序无法压缩已归档导出文件。
  • 语法 gs_dump [OPTION]... [DBNAME] “dbname”前面不需要加短或长选项。“dbname”指定要连接的数据库。 例如: 不需要-d,直接指定“dbname”。 gs_dump -p port_number postgres -f dump1.sql 或者 export PGDATABASE=postgres gs_dump -p port_number -f dump1.sql 环境变量: PGDATABASE
  • log_min_messages 参数说明:控制写到服务器日志文件中的消息级别。每个级别都包含排在它后面的所有级别中的信息。级别越低,服务器运行日志中记录的消息就越少。 当client_min_messages和log_min_messages取值相同时,其值所代表的级别不同。 参数类型:SUSET 取值范围:枚举类型,有效值有debug、debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 默认值:warning
  • LOW_PRIORITY MySQL UPDATE语句如果使用LOW_PRIORITY修饰符,则执行UPDATE延迟。 输入示例 1 2 #测试 LOW_PRIORITY 语法点 UPDATE LOW_PRIORITY employees SET department_id=2; 输出示例 1 2 --测试 LOW_PRIORITY 语法点 UPDATE "public"."employees" SET "department_id" = 2; 父主题: UPDATE
  • 原型 1 2 3 4 5 6 7 8 SQLRETURN SQLGetDiagRec(SQLSMALLINT HandleType SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *SQLState, SQLINTEGER *NativeErrorPtr, SQLCHAR *MessageText, SQLSMALLINT BufferLength SQLSMALLINT *TextLengthPtr);
  • 参数 表1 SQLGetDiagRec参数 关键字 参数说明 HandleType 句柄类型标识符,它说明诊断所要求的句柄类型。必须为下列值之一: SQL_HANDLE_ENV SQL_HANDLE_DBC SQL_HANDLE_STMT SQL_HANDLE_DESC Handle 诊断数据结构的句柄,其类型由HandleType来指出。如果HandleType是SQL_HANDLE_ENV,Handle可以是共享的或非共享的环境句柄。 RecNumber 指出应用从查找信息的状态记录。状态记录从1开始编号。 SQLState 输出参数:指向缓冲区的指针,该缓冲区存储着有关RecNumber的五字符的SQLSTATE码。 NativeErrorPtr 输出参数:指向缓冲区的指针,该缓冲区存储着本地的错误码。 MessageText 指向缓冲区的指针,该缓冲区存储着诊断信息文本串。 BufferLength MessageText的长度。 TextLengthPtr 输出参数:指向缓冲区的指针,返回MessageText中的字节总数。如果返回字节数大于BufferLength,则MessageText中的诊断信息文本被截断成BufferLength减去NULL结尾字符的长度。
  • 注意事项 SQLGetDiagRec不发布自己的诊断记录。它用下列返回值来报告它自己的执行结果: SQL_SUCCESS:函数成功返回诊断信息。 SQL_SUCCESS_WITH_INFO:*MessageText太小以致不能容纳所请求的诊断信息。没有诊断记录生成。 SQL_INVALID_HANDLE:由HandType和Handle所指出的句柄是不合法句柄。 SQL_ERROR:RecNumber小于等于0或BufferLength小于0。 如果调用ODBC函数返回SQL_ERROR或SQL_SUCCESS_WITH_INFO,可调用SQLGetDiagRec返回诊断信息值SQLSTATE,SQLSTATE值的如下表。 表2 SQLSTATE值 SQLSATATE 错误 描述 HY000 一般错误 未定义特定的SQLSTATE所产生的一个错误。 HY001 内存分配错误 驱动程序不能分配所需要的内存来支持函数的执行或完成。 HY008 取消操作 调用SQLCancel取消执行语句后,依然在StatementHandle上调用函数。 HY010 函数系列错误 在为执行中的所有数据参数或列发送数据前就调用了执行函数。 HY013 内存管理错误 不能处理函数调用,可能由当前内存条件差引起。 HYT01 连接超时 数据源响应请求之前,连接超时。 IM001 驱动程序不支持此函数 调用了StatementHandle相关的驱动程序不支持的函数
  • 参数说明 --host 待卸载节点的IP列表,支持文件和字符串两种形式: 文件形式:每一行一个IP地址,如: 192.168.2.200 192.168.2.201 字符串形式:半角逗号分隔,如: 192.168.2.200,192.168.2.201。 -U GDS用户。 --delete-user 卸载的同时,删除用户。被删除的用户不可以是root用户。 --delete-user-and-group 卸载的同时,删除用户和其所在用户组。仅当用户组只包含该待删除用户一个用户时可以删除用户组。该用户组不能是root用户组。 -V 显示版本信息。 -h, --help 显示帮助信息。
  • 示例 卸载安装部署在节点192.168.1.100、192.168.1.101上,安装用户为gds_test的,GDS文件夹及环境变量。 gds_uninstall -U gds_test --host 192.168.1.100,192.168.1.101 卸载时,同时删除用户。 gds_uninstall -U gds_test --host 192.168.1.100,192.168.1.101 --delete-user
  • COMPRESS短语 输入:COMPRESS短语 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE TABLE test_tab ( id NUMBER(10) NOT NULL, description VARCHAR2(100) NOT NULL, created_date DATE NOT NULL, created_by VARCHAR2(50) NOT NULL, updated_date DATE, updated_by VARCHAR2(50) ) NOCOMPRESS PARTITION BY RANGE (created_date) ( PARTITION test_tab_q1 VALUES LESS THAN (TO_DATE('01/04/2003', 'DD/MM/YYYY')) COMPRESS, PARTITION test_tab_q2 VALUES LESS THAN (MAXVALUE) ); 输出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 CREATE TABLE test_tab ( id NUMBER (10) NOT NULL ,description VARCHAR2 (100) NOT NULL ,created_date DATE NOT NULL ,created_by VARCHAR2 (50) NOT NULL ,updated_date DATE ,updated_by VARCHAR2 (50) ) /*NOCOMPRESS*/ PARTITION BY RANGE (created_date) ( PARTITION test_tab_q1 VALUES LESS THAN ( TO_DATE( '01/04/2003' ,'DD/MM/YYYY' ) ) /*COMPRESS*/ ,PARTITION test_tab_q2 VALUES LESS THAN (MAXVALUE) ) ; 父主题: Oracle语法迁移
共100000条