获取参数模板详情
更新时间:2023-10-12
接口描述
- 本接口用于获取参数模板详情。
- 本接口为v1接口。
请求结构
GET /v{version}/instance/paraTemplate/template/detail/{templateId} HTTP/1.1
Host: rds.bj.baidubce.com
Authorization: authorization string
Content-Type: application/json;charset=UTF-8
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
---|---|---|---|---|
version | Integer | 是 | URL参数 | API版本号。 |
templateId | String | 是 | URL参数 | 模板 ID。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
见如下示例
请求示例
GET http://rds.bj.baidubce.com/v1/instance/paraTemplate/template/detail/361
Host: rds.bj.baidubce.com
Content-Type: application/json;charset=UTF-8
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Date: Wed, 08 Jul 2015 03:28:11 GMT
x-bce-request-id: d8752367-38e8-45e4-b4c7-e53be3137ce5
Server: BWS
{
"success": true,
"message": {},
"status": 200,
"result": {
"id": "323",
"name": "copy1",
"dbType": "MySQL",
"dbVersion": "8.0",
"count": 35,
"desc": "",
"dynamic": false,
"createTime": "2023-09-04 12:06:08",
"updateTime": "2023-09-04 12:06:08",
"idShow": "rpt-SyvDaG",
"para": [
{
"key": "back_log",
"value": "3000",
"range": "1-65535",
"dynamic": 0,
"desc": "该参数指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。也就是说,如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。将会报:unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时。",
"attention": "",
"type": "integer",
"bestValue": "3000",
"precision": null,
"required": true
},
{
"key": "binlog_format",
"value": "ROW",
"range": "ROW",
"dynamic": 1,
"desc": "该参数指定MySQL二进制日志 (binlog) 格式:STATEMENT、ROW、MIXED\nSTATEMENT:每一条修改数据的sql会记录到binlog中。优点是并不需要记录每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题);\nROW:不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程或function或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的binlog日志;\nMIXED:STATEMENT和ROW的组合。一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。",
"attention": "1、使用DTS做增量同步,必须为ROW\n2、隔离级别是READ-COMMITTED,必须改成ROW格式,保证数据一致性\n3、修改该参数后,需将原来的长连接全部kill一遍,否则长连接还会维持原来的格式",
"type": "string",
"bestValue": "ROW",
"precision": null,
"required": true
},
{
"key": "character_set_server",
"value": "utf8",
"range": "utf8,utf8mb3,utf8mb4,latin1,gbk",
"dynamic": 1,
"desc": "该参数决定了服务器的默认编码格式,修改该参数并重启之后character_set_client、character_set_connection、character_set_database、character_set_results参数也会一起随之改变",
"attention": "",
"type": "string",
"bestValue": "utf8",
"precision": null,
"required": true
},
{
"key": "connect_timeout",
"value": "3",
"range": "2-3600",
"dynamic": 1,
"desc": "该参数表示在获取连接阶段,MySQL客户端在尝试与MySQL服务器建立连接时,等待握手的超时时间。主要是为了防止网络不佳时应用重连导致连接数涨太快,单位秒。",
"attention": "",
"type": "integer",
"bestValue": "10",
"precision": null,
"required": true
},
{
"key": "explicit_defaults_for_timestamp",
"value": "OFF",
"range": "ON,OFF",
"dynamic": 1,
"desc": "该参数控制如果一行数据中某些列被更新了,该行中的timestamp列是否自动更新:\nON:不会自动更新;\nOFF:会自动更新",
"attention": "设置为OFF,会在建表时自动给timestamp字段类型的表结构定义添加如下内容:DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP",
"type": "string",
"bestValue": "OFF",
"precision": null,
"required": true
},
{
"key": "group_concat_max_len",
"value": "65536",
"range": "4-1844674407370944921",
"dynamic": 1,
"desc": "GROUP_CONCAT函数用于将多个字符串拼接成一个字符串,该参数用来限制拼接后字符串的长度,如果超过设置值的大小将会被截断。",
"attention": "",
"type": "integer",
"bestValue": "65536",
"precision": null,
"required": true
},
{
"key": "innodb_autoinc_lock_mode",
"value": "1",
"range": "0,1,2",
"dynamic": 0,
"desc": "该参数控制在向有auto_increment 列的表插入数据时的锁相关行为,通过对它的设置可以达到性能与安全(主从的数据一致性)的平衡:\n0:tradition,所有的insert语句在开始前都要获得一个表级别的auto_inc锁,在语句结束时释放。优点是保证了基于语句复制的安全,缺点是影响并发插入性能;\n1:consecutive,对simple insert,mysql可以一次生成几个连续的值。优点是auto_inc锁在语句得到相应的值后就释放,也保证了基于语句复制的安全;\n2:interleaved,这个模式没有了auto_inc锁。优点是性能最好,缺点是同一个语句的auto_incremant值可能不连续。",
"attention": "",
"type": "string",
"bestValue": "1",
"precision": null,
"required": true
},
{
"key": "innodb_flush_log_at_trx_commit",
"value": "1",
"range": "0,1,2",
"dynamic": 1,
"desc": "该参数控制MySQL将redo刷盘机制,有0、1、2三个取值:\n0:每秒一次写日志文件,并刷盘。该方式性能优,数据安全差。mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失\n1:事务提交,写日志文件,并刷盘。该方式性能差,数据安全优。在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。\n2:事务提交,写日志文件,每秒刷盘。该方式性能中等,数据安全中等。只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。",
"attention": "1、主实例写入性能达到瓶颈,可临时设置为0或2,缓解写入压力\n2、只读实例同步延迟较大,可临时设置为0或2,环节同步延迟压力",
"type": "string",
"bestValue": "1",
"precision": null,
"required": true
},
{
"key": "innodb_flush_method",
"value": "fsync",
"range": "fsync,O_DSYNC,O_DIRECT",
"dynamic": 0,
"desc": "该参数控制 InnoDB 存储引擎在执行数据刷新操作时使用的方法,以提高数据刷新的效率和可靠性。",
"attention": "根据实际情况选择适合自己的数据刷新方式。如果您的系统中需要频繁地进行数据刷新操作,可以考虑使用 O_DIRECT 方式来提高性能。",
"type": "string",
"bestValue": "fsync",
"precision": null,
"required": true
},
{
"key": "innodb_io_capacity",
"value": "2000",
"range": "100-4294967295",
"dynamic": 1,
"desc": "该参数表示InnoDB从缓冲区刷新脏数据时,控制MySQL每秒执行的写IO量。",
"attention": "如果偶尔捕捉到刷新进程,可能是已经达到你硬盘的写IO吞吐量,或者这个值设置得太小限制了吞吐量。该值不能超过innodb_io_capacity_max大小",
"type": "integer",
"bestValue": "2000",
"precision": null,
"required": true
},
{
"key": "innodb_io_capacity_max",
"value": "4000",
"range": " 100-4294967295",
"dynamic": 1,
"desc": "在紧急情况下,控制当刷新脏数据时MySQL每秒执行的写IO量。最好的方法是测量你的存储设置的随机写吞吐量,然后给innodb_io_capacity_max设置为你的设备能达到的最大IOPS。innodb_io_capacity就设置为它的50-75%。",
"attention": "根据磁盘IOPS能力,一般建议设置:\nSAS 200\nSSD 5000\nPCI-E 10000-50000",
"type": "integer",
"bestValue": "4000",
"precision": null,
"required": true
},
{
"key": "innodb_lock_wait_timeout",
"value": "50",
"range": "1-1073741824",
"dynamic": 1,
"desc": "事务获取资源时等待的最长时间,超过这个时间还未分配到资源则会返回应用失败,能够有效避免在资源有限的情况下产生太多的锁等待。",
"attention": "1、如果innodb_rollback_on_timeout=ON,则事务回滚后会导致InnoDB回滚整个事务\n2、如果innodb_rollback_on_timeout=OFF,则事务回滚后仅灰姑娘事务超时的最后一条语句,需要显示指定回滚或提交。",
"type": "integer",
"bestValue": "50",
"precision": null,
"required": true
},
{
"key": "innodb_max_dirty_pages_pct",
"value": "75",
"range": "50-90",
"dynamic": 1,
"desc": "该参数控制Dirty Page 在 Buffer Pool 中所占的比例。当InnoDB脏页比例超过该设置值时,InnoDB会尝试刷新缓冲池数据到磁盘。",
"attention": "",
"type": "integer",
"bestValue": "75",
"precision": null,
"required": true
},
{
"key": "innodb_open_files",
"value": "2048",
"range": "10-8192",
"dynamic": 0,
"desc": "指定MySQL一次可以保持打开的InnoDB引擎.ibd文件的最大数目。此选项只针对InnoDB表打开的.ibd文件描述符,独立于open_files_limit参数。",
"attention": "1、如果表数量特别多,可适当增大该值\n2、如果使用分区表且分区较多,可适当增大该值\n3、如果设置过小,在InnoDB Crash时会影响Recovery的效率",
"type": "integer",
"bestValue": "2048",
"precision": null,
"required": true
},
{
"key": "innodb_read_io_threads",
"value": "8",
"range": "1-64",
"dynamic": 0,
"desc": "该参数控制InnoDB使用多少个后台线程处理数据页上读I/O请求。",
"attention": "",
"type": "integer",
"bestValue": "8",
"precision": null,
"required": true
},
{
"key": "innodb_write_io_threads",
"value": "8",
"range": "1-64",
"dynamic": 0,
"desc": "该参数控制InnoDB使用多少个后台线程处理数据页上写I/O请求。",
"attention": "",
"type": "integer",
"bestValue": "8",
"precision": null,
"required": true
},
{
"key": "interactive_timeout",
"value": "86400",
"range": "10-86400",
"dynamic": 1,
"desc": "该参数控制服务器关闭交互式连接前等待的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。",
"attention": "需要同时修改wait_timeout",
"type": "integer",
"bestValue": "86400",
"precision": null,
"required": true
},
{
"key": "log_bin_trust_function_creators",
"value": "OFF",
"range": "ON,OFF",
"dynamic": 1,
"desc": "该参数控制是否可以信任存储过程、函数和触发器的创建者,不会创建写入二进制日志引起不安全事件:\n0:默认值,用户不得创建或修改存储过程、函数和触发器,除非它们具有除CREATE ROUTINE或ALTER ROUTINE特权之外的SUPER权限。 设置为0还强制使用DETERMINISTIC特性或READS SQL DATA或NO SQL特性声明函数的限制;\n1:MySQL不会对创建存储函数实施这些限制。 此变量也适用于触发器的创建。 ",
"attention": "1、如果数据库没有使用主从复制,那么就可以将参数log_bin_trust_function_creators设置为1。\n2、明确指明函数的类型,明确的告知MySQL服务器这个函数不会修改数据:只有 DETERMINISTIC、NO SQL 和 READS SQL DATA 被支持。",
"type": "string",
"bestValue": "OFF",
"precision": null,
"required": true
},
{
"key": "log_slow_admin_statements",
"value": "ON",
"range": "ON,OFF",
"dynamic": 1,
"desc": "该参数控制是否将执行时间超过long_query_time的管理命令记录进慢日志。管理命令包括:ALTER TABLE,ANALYZE TABLE,CHECK TABLE, CREATE INDEX,DROP INDEX,OPTIMIZE TABLE和REPAIR TABLE。",
"attention": "",
"type": "string",
"bestValue": "ON",
"precision": null,
"required": true
},
{
"key": "long_query_time",
"value": "1.00",
"range": "0.01-31536000.00",
"dynamic": 1,
"desc": "该参数控制SQL执行超过多长时间记录到慢查询日志。单位是秒。",
"attention": "慢SQL日志中只记录大于该参数取值的SQL语句",
"type": "float",
"bestValue": "1",
"precision": 2,
"required": true
},
{
"key": "max_allowed_packet",
"value": "1073741824",
"range": "4194304-1073741824",
"dynamic": 1,
"desc": "该参数限制server接受的数据包的大小,单位:字节。",
"attention": "写入大数据时,如果默认的配置太小,插入和更新操作会因为 max_allowed_packet 参数限制,而导致失败。",
"type": "integer",
"bestValue": "1073741824",
"precision": null,
"required": true
},
{
"key": "performance_schema",
"value": "OFF",
"range": "ON,OFF",
"dynamic": 0,
"desc": "该参数用于控制是否打开Performance schema架构。MySQL Performance Schema用于监视MySQL服务器,收集数据库服务器性能参数,提供了一种在服务器运行时检查服务器的内部执行的方法。",
"attention": "打开该参数,性能会下降5%左右。",
"type": "string",
"bestValue": "OFF",
"precision": null,
"required": true
},
{
"key": "performance_schema_max_metadata_locks",
"value": "0",
"range": "-1-1000",
"dynamic": 0,
"desc": "元数据锁工具的最大数量,这个值控制元数据锁表记录的数量",
"attention": "",
"type": "integer",
"bestValue": "0",
"precision": null,
"required": true
},
{
"key": "performance_schema_max_thread_instances",
"value": "0",
"range": "-1-1000",
"dynamic": 0,
"desc": "检测线程对象的最大数量",
"attention": "",
"type": "integer",
"bestValue": "0",
"precision": null,
"required": true
},
{
"key": "read_buffer_size",
"value": "2097152",
"range": "8192-2147483647",
"dynamic": 1,
"desc": "该系统变量用于设置读取缓冲区的大小。它的作用是在执行查询操作时,将需要读取的数据放入缓冲区中进行读取,以提高读取的效率。",
"attention": "如果您的系统中经常需要进行大量的查询操作,可以适当增大该参数的值。",
"type": "integer",
"bestValue": "2097152",
"precision": null,
"required": true
},
{
"key": "slave_rows_search_algorithms",
"value": "INDEX_SCAN,HASH_SCAN",
"range": "TABLE_SCAN,INDEX_SCAN,HASH_SCAN",
"dynamic": 1,
"desc": "MySQL有这样一个问题,当表上无主键或唯一键时,那么对于在该表上做的DML,如果是以ROW模式复制,则每一个行记录前镜像在备库都可能产生一次全表扫描(或者二级索引扫描),大多数情况下,这种开销都是非常不可接受的,并且产生大量的延迟。在无主键有二级索引的情况下会比无主键无索引情况要好一些,但同样可能会造成大延迟。在MySQL 5.6中提供了一个新的参数:slave_rows_search_algorithms,可以部分解决无主键表导致的复制延迟问题,其基本思路是对于在一个ROWS EVENT中的所有前镜像收集起来,然后在一次扫描全表时,判断HASH中的每一条记录进行更新。",
"attention": "建议每张表都建立自增主键。(该参数不能为空)",
"type": "set<string>",
"bestValue": "TABLE_SCAN,INDEX_SCAN,HASH_SCAN",
"precision": null,
"required": true
},
{
"key": "sort_buffer_size",
"value": "2097152",
"range": "32768-4294967295",
"dynamic": 1,
"desc": "该系统变量用于设置排序操作时使用的缓冲区大小。",
"attention": "建议根据实际情况调整该参数的值,以达到最佳的性能表现。如果您的系统中经常需要进行大量的排序操作,可以适当增大该参数的值。",
"type": "integer",
"bestValue": "2097152",
"precision": null,
"required": true
},
{
"key": "sql_mode",
"value": "NO_ENGINE_SUBSTITUTION",
"range": "ALLOW_INVALID_DATES,ANSI_QUOTES,ERROR_FOR_DIVISION_BY_ZERO,HIGH_NOT_PRECEDENCE,IGNORE_SPACE,NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION,NO_UNSIGNED_SUBTRACTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY,PAD_CHAR_TO_FULL_LENGTH,PIPES_AS_CONCAT,REAL_AS_FLOAT,STRICT_ALL_TABLES,STRICT_TRANS_TABLES",
"dynamic": 1,
"desc": "SQL语法和校验的模式",
"attention": "1、sql_mode支持为空(均不选择即为空)\n2、数据迁移时,源库和目标库该参数设置要保持一致,否则可能会因为不兼容导致迁移失败。",
"type": "set<string>",
"bestValue": "NO_ENGINE_SUBSTITUTION",
"precision": null,
"required": false
},
{
"key": "sync_binlog",
"value": "1000",
"range": "0-4294967295",
"dynamic": 1,
"desc": "该参数控制MySQL 的二进制日志(binlog)同步到磁盘的频率:\n0:当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。(性能最优,数据安全差)\n1:每提交1个事务,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。(性能最差,数据安全性最好)\nN:每提交N个事务,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。(性能和安全性均适中)",
"attention": "可根据性能和安全性平衡后进行设置。",
"type": "integer",
"bestValue": "1000",
"precision": null,
"required": true
},
{
"key": "table_open_cache",
"value": "4096",
"range": "1-524288",
"dynamic": 1,
"desc": "表高速缓存的大小,限制所有线程可以打开的表的数量。\n当某一连接访问一个表时,如果该表已经在缓存中打开,则会直接访问缓存中的表,以加快查询速度;如果该表未被缓存,且还没达到该限制值,则会将当前的表添加进缓存并进行查询。",
"attention": "1、如果发现open_tables等于table_cache,并且opened_tables在不断增长,那么就需要增加table_open_cache的值\n2、如果show processlist显示大量opening table closing table,需要调大该值。\n3、注意:当把table_open_cache设置为过大时,如果系统处理不了那么多文件描述符open_files_limit,那么就会出现客户端连接不上的问题。",
"type": "integer",
"bestValue": "连接数*每个连接查询的表个数,可参考:\nOpen_tables / Opened_tables >= 0.85\nOpen_tables / table_open_cache <= 0.95",
"precision": null,
"required": true
},
{
"key": "thread_cache_size",
"value": "200",
"range": "0-16384",
"dynamic": 1,
"desc": "MySQL线程池中可复用的线程数量。当断开连接时:\n1、如果缓存中还有空间,那么客户端的线程将被放到缓存以响应下一个客户而不是销毁;\n2、如果线程重新被请求,那么请求将从缓存中读取;\n3、如果缓存中是空的或者是新的请求,那么这个线程将被重新创建。如果有很多新的线程,增加这个值可以改善系统性能。",
"attention": "1、短连接高并发请求,可适当增大该值\n2、如果状态值Threads_created较大,可适当增大该值",
"type": "integer",
"bestValue": "200",
"precision": null,
"required": true
},
{
"key": "thread_stack",
"value": "196608",
"range": " 131072-1073741824",
"dynamic": 0,
"desc": "该参数表示,MySQL创建一个新的连接线程时,MySQL给它分配的内存堆栈大小,以便存放客户端的请求的Query及自身的各种状态和处理信息。",
"attention": "一般情况下都能正常使用,但是当查询语句或者存储过程复杂时会报Thread stack overrun错误,此时只要修改默认配置。",
"type": "integer",
"bestValue": "262144",
"precision": null,
"required": true
},
{
"key": "time_zone",
"value": "SYSTEM",
"range": "SYSTEM,-12:00,-11:00,-10:00,-09:00,-08:00,-07:00,-06:00,-05:00,-04:00,-03:00,-02:00,-01:00,+00:00,+01:00,+02:00,+03:00,+04:00,+05:00,+05:30,+06:00,+06:30,+07:00,+08:00,+09:00,+10:00,+11:00,+12:00,+13:00",
"dynamic": 0,
"desc": "该参数用于为连接的每个客户端初始化时区,默认为system,使用system_time_zone的值:\n1、要求数据在插入和读取时对齐time_zone的设置,否则对于timestamp类型字段会导致差异;\n2、不管time_zone如何设置,timestamp类型字段的数据内容都不会变化(checksum table证明),只是显示时会随环境变量设置进行时区转换;\n3、JDBC由于存在Bug,对CST的解析存在偏差,会导致与 MySQL 因 CST 时区协商误解导致时间相差 14 或 13 小时的错觉。解决办法是设置默认time_zone=+8 =>00,避免Java的错误解析。",
"attention": "建议只在新建RDS实例进行修改,数据库使用过程中不建议修改,否则插入和读取的timestamp类型数据由于时区不一致,会造成数据错乱。",
"type": "string",
"bestValue": "SYSTEM",
"precision": null,
"required": true
},
{
"key": "transaction_isolation",
"value": "REPEATABLE-READ",
"range": "READ-UNCOMMITTED,READ-COMMITTED,REPEATABLE-READ,SERIALIZABLE",
"dynamic": 1,
"desc": "MySQL事务处理及隔离级别。",
"attention": "该参数对新连接生效,如果要改成READ-COMMITTED,需要连带修改所有从库binlog_format为ROW",
"type": "string",
"bestValue": "REPEATABLE-READ",
"precision": null,
"required": true
},
{
"key": "wait_timeout",
"value": "86400",
"range": "60-86400",
"dynamic": 1,
"desc": "该参数控制连接最大空闲时长,对于非交互式连接,类似于jdbc连接,wait_timeout的值继承自服务器端全局变量wait_timeout。对于交互式连接,类似于mysql客户单连接,wait_timeout的值继承自服务器端全局变量interactive_timeout。",
"attention": "需要同时修改interactive_timeout",
"type": "integer",
"bestValue": "86400",
"precision": null,
"required": true
}
],
"type": "user",
"property": "custom"
}
}