华为云用户手册

  • logical_replication_dictionary_retention_time 参数说明:GS_TXN_LSN_TIME以及数据字典相关系统表数据保留时间。 参数类型:整型 参数单位:d(天) 取值范围:[1, 3650] 默认值:365 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据实际业务需求进行设置。 设置不当的风险与影响:设置过小,会导致指定位点解码的可选区间过小;设置过大,会影响解码性能。
  • 执行预处理更新语句 预编译语句是只编译和优化一次,可以通过设置不同的参数值多次使用。由于已经预先编译好,后续使用会减少执行时间。因此,如果多次执行一条语句,请选择使用预编译语句。 前置条件是执行以上的预处理语句,customer_t1表已经批量插入数据。执行预编译SQL语句,更新数据的命令如下: 调用Connection接口的prepareStatement方法创建预编译语句对象pstmt。 1 PreparedStatement pstmt = conn.prepareStatement("UPDATE customer_t1 SET c_customer_name = ? WHERE c_customer_sk = 1"); 调用PreparedStatement接口的setString方法设置参数。 1 pstmt.setString(1, "new Data"); 调用PreparedStatement接口的executeUpdate方法执行预编译SQL语句。 1 int rowcount = pstmt.executeUpdate(); 调用PreparedStatement接口的close方法关闭预编译语句对象pstmt。 1 pstmt.close(); PrepareStatement设置绑定参数后,最终会构建成一个B报文或U报文,在下一步执行SQL语句时发给服务端。但是B报文或U报文有最大长度限制(不能超过1023MB),如果一次绑定数据过大,可能因报文过长导致异常。因此PrepareStatement设置绑定参数时需要注意评估和控制绑定数据的大小,避免出现超出报文上限要求的现象。
  • 创建和调用存储过程 GaussDB 支持通过JDBC调用存储过程,前置条件是数据库建连完成、连接对象为conn。 创建存储过程testproc如下: 1 2 3 4 5 6 7 8 9101112 //在数据库中创建如下存储过程,它带有out参数。create or replace procedure testproc ( psv_in1 in integer, psv_in2 in integer, psv_inout inout integer)asbegin psv_inout := psv_in1 + psv_in2 + psv_inout;end;/ 调用存储过程testproc如下: 调用Connection的prepareCall方法创建调用语句对象cstmt。 1 CallableStatement cstmt = conn.prepareCall("{? = CALL TESTPROC(?,?,?)}"); 调用CallableStatement的setInt方法设置参数。 123 cstmt.setInt(2, 50); cstmt.setInt(1, 20);cstmt.setInt(3, 90); 调用CallableStatement的registerOutParameter方法注册输出参数。 1 cstmt.registerOutParameter(4, Types.INTEGER); //注册out类型的参数,类型为整型。 调用CallableStatement的execute方法执行SQL语句。 1 cstmt.execute(); 调用CallableStatement的getInt方法获取out输出参数。 1 int out = cstmt.getInt(4); 调用CallableStatement的close方法关闭调用语句对象cstmt。 1 cstmt.close(); 当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。 存储过程不能和普通SQL在同一条语句中执行。 存储过程中inout类型参数必需注册出参。 很多数据库类如Connection、Statement和ResultSet都有close()方法,在使用完对象后应把它们关闭。Connection对象的关闭将间接关闭所有与它关联的Statement对象,Statement对象的关闭将间接关闭ResultSet对象。 一些JDBC驱动程序提供命名参数的方法来设置参数。命名参数的方法允许根据名称而不是顺序来设置参数,若参数有默认值,则可以不用指定参数值就可以使用此参数的默认值。即使存储过程中参数的顺序发生了变更,也不必修改应用程序。目前 GaussDB数据库 的JDBC驱动程序不支持此方法。 GaussDB数据库不支持带有输出参数的函数,也不支持存储过程和函数参数默认值。 conn.prepareCall("{? = CALL TESTPROC(?,?,?)}"),执行存储过程绑定参数时,可以按照占位符的顺序绑定参数,注册第一个参数为出参。也可以按照存储过程中的参数顺序绑定参数,注册第四个参数为出参,上述用例为此场景,注册第四个参数为出参。
  • 创建和调用存储过程(入参为复合数据类型) 以下用例展示A兼容模式下,入参为复合数据类型的存储过程创建和调用情况。前置条件是数据库建连完成、连接对象为conn。 创建存储过程test_proc如下: 1 2 3 4 5 6 7 8 910111213141516171819202122 // 在数据库创建复合数据类型。CREATE TYPE compfoo AS (f1 int, f3 text);// 在数据库中创建table类型。create type compfoo_table is table of compfoo;// 在数据库中创建如下存储过程,它带有out参数。create or replace procedure test_proc( psv_in in compfoo, table_in in compfoo_table, psv_out out compfoo, table_out out compfoo_table)asbegin psv_out := psv_in; table_out:=compfoo_table(); table_out.extend(table_in.count); for i in 1..table_in.count loop table_out(i):=table_in(i); end loop;end;/ 调用存储过程test_proc如下: 设置参数behavior_compat_options='proc_outparam_override'后,调用Connection的prepareCall方法创建调用语句对象cs。 123 Statement statement = conn.createStatement();statement.execute("set behavior_compat_options='proc_outparam_override'");CallableStatement cs = conn.prepareCall("{ CALL TEST_PROC(?,?,?,?) }"); 调用CallableStatement的set方法设置参数。 12345678 PGobject pGobject = new PGobject();pGobject.setType("public.compfoo"); // 设置复合类型名,格式为“schema.typename”。pGobject.setValue("(1,demo)"); // 绑定复合类型值,格式为“(value1,value2)”。cs.setObject(1, pGobject);pGobject = new PGobject();pGobject.setType("public.compfoo_table"); // 设置Table类型名,格式为"schema.typename"。pGobject.setValue("{\"(10,demo10)\",\"(11,demo111)\"}"); //绑定Table类型值,格式为"{\"(value1,value2)\",\"(value1,value2)\",...}"。cs.setObject(2, pGobject); 调用CallableStatement的registerOutParameter方法注册输出参数。 1234 // 注册out类型的参数,类型为复合类型,格式为“schema.typename”。cs.registerOutParameter(3, Types.STRUCT, "public.compfoo"); // 注册out类型的参数,类型为Table类型,格式为“schema.typename”。cs.registerOutParameter(4, Types.ARRAY, "public.compfoo_table"); 调用CallableStatement的execute方法执行SQL语句。 1 cs.execute(); 调用CallableStatement的getObject方法获取输出参数。 1 2 3 4 5 6 7 8 9101112 // 返回结构是自定义类型。PGobject result = (PGobject)cs.getObject(3); // 获取out参数 result.getValue(); // 获取复合类型字符串形式值。result.getArrayValue(); //获取复合类型数组形式值,以复合数据类型字段顺序排序。result.getStruct(); //获取复合类型子类型名,按创建顺序排序。result.getAttributes(); //返回自定义类型每列组成类型的对象,对于array类型和table类型返回的是PgArray,对于自定义类型,封装的是PGobject,对于其他类型数据存储方式为字符串类型。// 返回结果是Table类型。PgArray pgArray = (PgArray) cs.getObject(4);ResultSet rs = pgArray.getResultSet();while (rs.next()) { rs.getObject(2);// table类型每行的数据构建成的对象。} 如果出参的table类型组成为自定义类型,例如create type compfoo_table is table of compfoo,此时接收到的返回对象为PgArray,在通过rs.getObject(2)遍历获取到的组成对象也为PgArray,此时无法获取到组成它的compfoo类型对应的每列数据,需要通过getPGobject()获取到PgObject再操作获取。 调用CallableStatement的close方法关闭调用语句对象cs。 1 cs.close(); A兼容模式开启参数后,调用存储过程必须使用{call proc_name(?,?,?)}形式调用,调用函数必须使用{? = call func_name(?,?)}形式调用(等号左侧的“?”为函数返回值的占位符,用于注册函数返回值)。 参数behavior_compat_options='proc_outparam_override'变更后,业务需要重新建立连接,否则无法正确调用存储过程和函数。 函数和存储过程中包含复合类型时,参数的绑定与注册需要使用schema.typename形式。
  • 执行普通SQL语句 应用程序通过执行SQL语句来操作数据库,支持对XML类型数据进行SELECT、UPDATE、INSERT、DELETE等操作。 前置条件是已经连接数据库,连接对象为conn。执行普通SQL语句,创建customer_t1表的命令如下: 调用Connection接口的createStatement方法创建语句对象stmt。 1 Statement stmt = conn.createStatement(); 调用Statement接口的executeUpdate方法执行SQL语句。 1 int rc = stmt.executeUpdate("CREATE TABLE customer_t1(c_customer_sk INTEGER, c_customer_name VARCHAR(32));"); 调用Statement接口的close方法关闭语句对象stmt。 1 stmt.close(); 数据库中收到的一次执行请求(不在事务块中),如果含有多条语句,将会被打包成一个事务,事务块中不支持vacuum操作。如果其中有一个语句失败,那么整个请求都将会被回滚。 使用Statement执行多语句时应以“;”作为各语句间的分隔符,存储过程、函数、匿名块不支持多语句执行。当preferQueryMode=simple,语句执行不进行解析逻辑,此场景下无法使用";"作为多语句间的分隔符。 “/”可用作创建单个存储过程、函数、匿名块、包体的结束符。当preferQueryMode=simple,语句执行不进行解析逻辑,此场景下无法使用"/"作为结束符。 由于JDBC会对PrepareStatement中的sql语句进行缓存,可能导致内存膨胀,如果JVM内存较小,建议调整preparedStatementCacheSizeMiB或者preparedStatementCacheQueries。
  • 查看数据 使用系统表pg_tables查询数据库所有表的信息。 1 gaussdb=# SELECT * FROM pg_tables; 使用gsql的\d+命令查询表的属性。 1 gaussdb=# \d+ customer_t1; 执行如下命令查询表customer_t1的数据量。 1 gaussdb=# SELECT count(*) FROM customer_t1; 执行如下命令查询表customer_t1的所有数据。 1 gaussdb=# SELECT * FROM customer_t1; 执行如下命令只查询字段c_customer_sk的数据。 1 gaussdb=# SELECT c_customer_sk FROM customer_t1; 执行如下命令过滤字段c_customer_sk的重复数据。 1 gaussdb=# SELECT DISTINCT( c_customer_sk ) FROM customer_t1; 执行如下命令查询字段c_customer_sk为3869的所有数据。 1 gaussdb=# SELECT * FROM customer_t1 WHERE c_customer_sk = 3869; 执行如下命令按照字段c_customer_sk进行排序。 1 gaussdb=# SELECT * FROM customer_t1 ORDER BY c_customer_sk; 父主题: 创建和管理表
  • 选择分区方案 当表中的数据量很大时,应当对表进行分区,一般需要遵循以下原则: 使用具有明显区间性的字段进行分区,比如日期、区域等字段上建立分区。 分区名称应当体现分区的数据特征。例如,关键字+区间特征。 将分区上边界的分区值定义为MAXVALUE,以防可能出现的数据溢出。 表1 表的分区方式及使用场景 分区方式 描述 Range 表数据通过范围进行分区。 Interval 表数据通过范围进行分区,超出范围的会自动根据间隔创建新的分区。 List 表数据通过指定列按照具体值进行分区。 Hash 表数据通过Hash散列方式进行分区。 典型的分区表定义如下: 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 --创建Range分区表CREATE TABLE staffS_p1( staff_ID NUMBER(6) not null, FIRST_NAME VARCHAR2(20), LAST_NAME VARCHAR2(25), EMAIL VARCHAR2(25), PHONE_NUMBER VARCHAR2(20), HIRE_DATE DATE, employment_ID VARCHAR2(10), SALARY NUMBER(8,2), COMMISSION_PCT NUMBER(4,2), MANAGER_ID NUMBER(6), section_ID NUMBER(4))PARTITION BY RANGE (HIRE_DATE)( PARTITION HIRE_19950501 VALUES LESS THAN ('1995-05-01 00:00:00'), PARTITION HIRE_19950502 VALUES LESS THAN ('1995-05-02 00:00:00'), PARTITION HIRE_maxvalue VALUES LESS THAN (MAXVALUE));--创建Interval分区表,初始两个分区,插入分区范围外的数据会自动新增分区CREATE TABLE sales(prod_id NUMBER(6), cust_id NUMBER, time_id DATE, channel_id CHAR(1), promo_id NUMBER(6), quantity_sold NUMBER(3), amount_sold NUMBER(10,2))PARTITION BY RANGE (time_id)INTERVAL('1 day')( PARTITION p1 VALUES LESS THAN ('2019-02-01 00:00:00'), PARTITION p2 VALUES LESS THAN ('2019-02-02 00:00:00'));--创建List分区表CREATE TABLE test_list (col1 int, col2 int)partition by list(col1)(partition p1 values (2000),partition p2 values (3000),partition p3 values (4000),partition p4 values (5000));--创建Hash分区表CREATE TABLE test_hash (col1 int, col2 int)partition by hash(col1)(partition p1,partition p2); 更多的表分区语法信息请参见CREATE TABLE PARTITION。
  • 通过本地文件导入导出数据 在使用JAVA语言基于GaussDB进行二次开发时,可以使用CopyManager接口,通过流方式,将数据库中的数据导出到本地文件或者将本地文件导入数据库中,文件支持 CS V、TEXT等格式。 代码运行的前提条件: 根据实际情况添加gaussdbjdbc.jar包(例如用户使用IDE执行代码,则需要在本地IDE添加gaussdbjdbc.jar包)。 在数据库中创建表migration_table和migration_table_1,并在migration_table表中插入数据。 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105106107108 // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。// 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。// $ip、$port、database需要用户自行修改。import java.sql.Connection; import java.sql.DriverManager; import java.io.IOException;import java.io.FileInputStream;import java.io.FileOutputStream;import java.sql.SQLException; import com.huawei.gaussdb.jdbc.copy.CopyManager; import com.huawei.gaussdb.jdbc.core.BaseConnection; public class Copy{ public static void main(String[] args) { String urls = new String("jdbc:gaussdb://$ip:$port/database"); //数据库URL String username = System.getenv("EXAMPLE_USERNAME_ENV"); //用户名 String password = System.getenv("EXAMPLE_PASSWORD_ENV"); //密码 String tablename = new String("migration_table"); //定义表信息 String tablename1 = new String("migration_table_1"); //定义表信息 String driver = "com.huawei.gaussdb.jdbc.Driver"; Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(urls, username, password); //以非加密方式连接数据库 } catch (ClassNotFoundException e) { e.printStackTrace(System.out); } catch (SQLException e) { e.printStackTrace(System.out); } // 将SELECT * FROM migration_table查询结果导出到本地文件d:/data.txt中。 try { copyToFile(conn, "d:/data.txt", "(SELECT * FROM migration_table)"); } catch (SQLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //将d:/data.txt中的数据导入到migration_table_1中。 try { copyFromFile(conn, "d:/data.txt", tablename1); } catch (SQLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 将migration_table_1中的数据导出到本地文件d:/data1.txt中。 try { copyToFile(conn, "d:/data1.txt", tablename1); } catch (SQLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } // 使用copyIn把数据从文件中导入数据库。 public static void copyFromFile(Connection connection, String filePath, String tableName) throws SQLException, IOException { FileInputStream fileInputStream = null; try { CopyManager copyManager = new CopyManager((BaseConnection)connection); fileInputStream = new FileInputStream(filePath); copyManager.copyIn("COPY " + tableName + " FROM STDIN", fileInputStream); } finally { if (fileInputStream != null) { try { fileInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } // 使用copyOut把数据从数据库中导出到文件中。 public static void copyToFile(Connection connection, String filePath, String tableOrQuery) throws SQLException, IOException { FileOutputStream fileOutputStream = null; try { CopyManager copyManager = new CopyManager((BaseConnection)connection); fileOutputStream = new FileOutputStream(filePath); copyManager.copyOut("COPY " + tableOrQuery + " TO STDOUT", fileOutputStream); } finally { if (fileOutputStream != null) { try { fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } } 上述示例的运行结果为:本地d盘两个文件data.txt和data1.txt、数据库表migration_table_1,和数据库表migration_table数据相同。 父主题: 典型应用开发示例
  • enable_synclist_single_inst 参数说明:控制是否开启降副本降至一主零备功能。开启后降副本会降至一主零备,参数设置错误时,按默认值处理。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启降副本降至一主零备功能。 off:表示关闭降副本降至一主零备功能。 默认值:off 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。如果调整请联系华为技术支持。 设置不当的风险与影响:打开此参数时,在所有备机故障情况下,主机会自动转为本地提交方式,此时如果主机再故障,则可能产生不可恢复的影响。
  • thread_effective_time 参数说明:线程运行一轮的有效超时时间。超时说明此线程卡住,进程将自动退出。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 1200,0表示关闭线程监控能力。 默认值:20 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:不建议调整参数值大小,如果需要调整请联系华为技术支持。 设置不当的风险与影响:设置不当可能导致故障检测不准确、故障恢复不及时。
  • ddb_type 参数说明:etcd,dcc模式切换开关。 参数类型:整型 参数单位:无 取值范围:0 ~ 1 0:表示开启etcd模式。 1:表示开启dcc模式。 默认值:0 设置方式:该参数为CM参数,参数修改请参考表2中方式一进行设置,修改后需要重启cm_server才能生效。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • ddb_log_level 参数说明:设置ddb日志级别。 参数类型:字符串 参数单位:无 取值范围: “NONE”:表示关闭日志打印,不能与以下日志级别混合使用。 “RUN_ERR|RUN_WAR|RUN_INF|DEBUG_ERR|DEBUG_WAR|DEBUG_INF|TRACE|PROFILE|OPER”:表示开启日志,日志级别可以从上述字符串中选取字符串并使用竖线组合使用,不能配置空字符串。 默认值:"RUN_ERR|RUN_WAR|DEBUG_ERR|OPER|RUN_INF|PROFILE" 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • ssl_cert_expire_alert_threshold 参数说明:ssl证书过期告警时间。证书过期时间少于该时间时,上报证书即将过期告警。 参数类型:整型 参数单位:天(d) 取值范围:7 ~ 180 默认值:90 设置方式:该参数为CM参数,参数修改请参考表2中方式一进行设置,修改后需要重启cm_server才能生效。 设置建议:按照实际需要进行调整。 设置不当的风险与影响:设置过小可能会导致告警不及时。
  • ssl_cert_expire_check_interval 参数说明:ssl证书过期检测周期。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 2147483647 默认值:86400(即1天) 设置方式:该参数为CM参数,参数修改请参考表2中方式一进行设置,修改后需要重启cm_server才能生效。 设置建议:按照实际需要进行调整。 设置不当的风险与影响:设置过小会增加CPU负载,过大会导致告警不及时。
  • ddb_log_suppress_enable 参数说明:控制是否开启日志抑制功能。 参数类型:整型 参数单位:无 取值范围:0 ~ 1 0:表示关闭日志抑制功能。 1:表示开启日志抑制功能。 默认值:0 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • ddb_max_log_file_size 参数说明:单条日志最大字节数。 参数类型:字符串 参数单位:无 取值范围:该参数取值由数字部分和单位组成,数字部分取值范围为1 ~ 1000,单位为M。 默认值:"10M" 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • max_datastorage_threshold_check 参数说明:设置磁盘使用率的最大检测间隔时间。当用户手动修改只读模式参数后,会自动在指定间隔时间后开启磁盘满检测操作。 参数类型:整型 参数单位:秒(s) 取值范围:1 ~ 2592000 默认值:43200 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大会导致cm故障检测和恢复功能不及时。
  • enable_az_auto_switchover 参数说明:控制是否开启AZ自动切换功能,若开启,则表示允许cm_server自动切换AZ。否则当发生dn故障等情况时,即使当前AZ已经不再可用,也不会自动切换到其它AZ上,除非手动执行切换命令。 参数类型:整型 参数单位:无 取值范围:0 ~ 1 0:表示关闭AZ自动切换功能。 1:表示开启AZ自动切换功能。 默认值:1 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:关闭此功能可能会导致CM故障检测和恢复功能不及时。
  • cm_krb_server_keyfile 参数说明:kerberos服务端key文件所在位置,需要配置为绝对路径。该文件通常在“${GAUSSHOME}/kerberos”路径下,以keytab格式结尾,文件名与数据库运行所在用户名相同。 参数类型:字符串 参数单位:无 取值范围:服务器上kerberos服务端key文件所在位置的绝对路径。 默认值:“${GAUSSHOME}/kerberos/{UserName}.keytab”,默认值无法生效,仅作为提示。 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:该参数与上述cm_auth_method参数是配对的,当cm_auth_method参数修改为“gss”时,该参数也必须配置为正确路径,否则将影响数据库实例状态。
  • cm_server_arbitrate_delay_incrememtal_time_out 参数说明:cm_server仲裁延迟增量时长。cm_server主机断连后,仲裁启动计时开始,经过仲裁延迟时长后,将选出新的cm_server主机。其中仲裁延迟时长由仲裁延迟基础时长、节点index(server ID序号)和增量时长共同决定。公式为:仲裁延迟时长=仲裁延迟基础时长+节点index*仲裁延迟增量时长。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 2147483647 默认值:3 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小会导致cm_server断连故障假阳性,过大会导致CM故障恢复不及时。
  • enable_ssl 参数说明:ssl证书开关。 参数类型:布尔型 参数单位:无 取值范围: on:表示启用ssl证书加密通信。 off:表示不启用ssl证书加密通信。 默认值:off 设置方式:该参数为CM参数,参数修改请参考表2中方式一进行设置,修改后需要重启cm_server才能生效。 设置建议:出于安全性考虑,建议不要关闭该配置。关闭后cm将不使用加密通信,所有信息明文传播,可能带来窃听、篡改、冒充等安全风险。 设置不当的风险与影响:关闭后cm将不使用加密通信,所有信息明文传播,可能带来窃听、篡改、冒充等安全风险。
  • cmserver_self_vote_timeout 参数说明:cm_server自仲裁超时时间。只有当该参数取值大于等于cmserver_ha_heartbeat_timeout参数取值时,该参数设置才有效。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 2147483647 默认值:6 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大和过小会导致故障检测的假阴性和假阳性。
  • cm_auth_method 参数说明:CM模块端口认证方式。 参数类型:枚举类型 参数单位:无 取值范围: trust:表示未配置端口认证。 gss:表示采用kerberos端口认证。 默认值:trust 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:只有当kerberos服务端和客户端成功安装后才能修改为“gss”,否则CM模块无法正常通信,将影响数据库状态。
  • cm_server_arbitrate_delay_base_time_out 参数说明:cm_server仲裁延迟基础时长。cm_server主机断连后,仲裁启动计时开始,经过仲裁延迟时长后,将选出新的cm_server主机。其中仲裁延迟时长由仲裁延迟基础时长、节点index(server ID序号)和增量时长共同决定。公式为:仲裁延迟时长=仲裁延迟基础时长+节点index*仲裁延迟增量时长。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 2147483647 默认值:10 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小会导致cm_server断连故障假阳性,过大会导致CM故障恢复不及时。
  • backup_open 参数说明:灾备数据库实例设置,控制CM是否按照灾备数据库实例模式运行。 参数类型:整型 参数单位:无 取值范围:0 ~ 3 0:表示未搭建灾备关系。 1:表示搭建了dorado灾备关系。 2:表示搭建了流式灾备关系。 3:表示搭建了逻辑灾备关系。 默认值:0 设置方式:该参数为CM参数,参数修改请参考表2中方式一进行设置,修改后需要重启cm_server才能生效。 设置建议:非灾备数据库实例不能开启该参数。此参数为内部调用参数,不建议用户修改。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • install_type 参数说明:容灾数据库实例相关的设置,用来区分数据库实例的类型。 参数类型:整型 参数单位:无 取值范围:0 ~ 2 0:表示未搭建容灾关系的数据库实例。 1:表示基于dorado的数据库实例。 2:表示基于流式的数据库实例。 默认值:0 设置方式:该参数为CM参数,参数修改请参考表2中方式一进行设置,修改后需要重启cm_server才能生效。 设置建议:非灾备数据库实例不能开启该参数。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • cmserver_ha_status_interval 参数说明:cm_server主备同步状态信息的时间间隔。 参数类型:整型 参数单位:秒(s) 取值范围:1 ~ 2147483647 默认值:1 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大会导致cm故障检测和恢复功能不及时,设置过小会导致cpu负载变高。
  • cmserver_demote_delay_on_etcd_fault 参数说明:因为etcd不健康而导致cm_server从主降为备的时间延迟。 参数类型:整型 参数单位:秒(s) 取值范围:1 ~ 2147483647 默认值:8 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小会导致etcd故障检测的假阳性,过大会导致CM故障恢复不及时。
  • force_promote 参数说明:控制cm_server是否开启强切逻辑功能(数据库状态为Unknown的时候以丢失部分数据为代价保证数据库基本功能可用)。该参数适用于dn。 参数类型:整型 参数单位:无 取值范围:0 ~ 1 0:表示关闭强切逻辑功能。 1:表示开启强切逻辑功能。 默认值:0 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:如果用户可以接受业务(系统)发生强切导致部分数据丢失,以恢复业务为最高优先级,则可以设置为开启。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • switch_rto 参数说明:cm_server强切逻辑等待时延。在force_promote参数取值被置为1时,当数据库的某一分片处于无主状态开始计时,等待该延迟时间后开始执行强切逻辑。 参数类型:整型 参数单位:秒(s) 取值范围:60 ~ 2147483647 默认值:600 设置方式:该参数为CM参数,参数修改请参考表2中方式一、方式二进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小会导致数据库故障假阳性,过大会导致故障恢复不及时。
共100000条