更新动态设置

Neo4j 企业版支持在运行时更改某些配置设置,无需重启服务。

在运行时对配置所做的更改不会被持久化。为了避免在重启 Neo4j 时丢失更改,请确保同时更新 neo4j.conf 文件。

在集群环境中,CALL dbms.setConfigValue 仅影响运行该命令的集群成员,不会传播到其他成员。如果您希望更改所有集群成员的配置设置,则必须针对每一个成员运行该过程,并更新其对应的 neo4j.conf 文件。

发现动态设置

使用 SHOW SETTINGS 来发现哪些配置值可以动态更新,或者查阅 配置设置参考

示例 1. 发现动态设置
SHOW SETTINGS
YIELD name, isDynamic
WHERE isDynamic
RETURN name
+----------------------------------------------------------------+
| name                                                           |
+----------------------------------------------------------------+
| "db.checkpoint.iops.limit"                                     |
| "db.checkpoint.throughput.limit"                               |
| "db.format"                                                    |
| "db.lock.acquisition.timeout"                                  |
| "db.logs.query.annotation_data_format"                         |
| "db.logs.query.early_raw_logging_enabled"                      |
| "db.logs.query.enabled"                                        |
| "db.logs.query.max_parameter_length"                           |
| "db.logs.query.obfuscate_errors"
| "db.logs.query.obfuscate_literals"                             |
| "db.logs.query.parameter_logging_enabled"                      |
| "db.logs.query.plan_description_enabled"                       |
| "db.logs.query.threshold"                                      |
| "db.logs.query.transaction.enabled"                            |
| "db.logs.query.transaction.threshold"                          |
| "db.memory.transaction.max"                                    |
| "db.memory.transaction.total.max"                              |
| "db.track_query_cpu_time"                                      |
| "db.transaction.bookmark_ready_timeout"                        |
| "db.transaction.concurrent.maximum"                            |
| "db.transaction.sampling.percentage"                           |
| "db.transaction.timeout"                                       |
| "db.transaction.tracing.level"                                 |
| "db.tx_log.preallocate"                                        |
| "db.tx_log.rotation.retention_policy"                          |
| "db.tx_log.rotation.size"                                      |
| "dbms.cluster.network.connect_timeout"                         |
| "dbms.cypher.render_plan_description"                          |
| "dbms.cypher.transactions.default_subquery_retry_timeout"      |
| "dbms.memory.transaction.total.max"                            |
| "dbms.routing.client_side.enforce_for_domains"                 |
| "dbms.routing.reads_on_writers_enabled"                        |
| "dbms.security.key.name"                                       |
| "dbms.security.keystore.password"                              |
| "dbms.security.keystore.path"                                  |
| "dbms.security.ldap.authentication.attribute"                  |
| "dbms.security.ldap.authentication.user_dn_template"           |
| "dbms.security.ldap.authorization.access_permitted_group"      |
| "dbms.security.ldap.authorization.group_membership_attributes" |
| "dbms.security.ldap.authorization.group_to_role_mapping"       |
| "dbms.security.ldap.authorization.nested_groups_enabled"       |
| "dbms.security.ldap.authorization.nested_groups_search_filter" |
| "dbms.security.ldap.authorization.user_search_base"            |
| "dbms.security.ldap.authorization.user_search_filter"          |
| "server.cluster.catchup.connect_randomly_to_server_tags"       |
| "server.databases.default_to_read_only"                        |
| "server.databases.read_only"                                   |
| "server.databases.writable"                                    |
| "server.memory.pagecache.flush.buffer.enabled"                 |
| "server.memory.pagecache.flush.buffer.size_in_pages"           |
| "server.memory.query_cache.per_db_cache_num_entries"           |
| "server.memory.query_cache.shared_cache_num_entries"           |
+----------------------------------------------------------------+

51 rows

更新动态设置

管理员可以在运行时更改某些配置设置,而无需重启服务。

语法

CALL dbms.setConfigValue(setting, value)

返回

成功时无返回。

异常

未知或无效的设置名称。

该设置不是动态的,无法在运行时更改。

无效的设置值。

以下示例展示了如何动态启用查询日志记录。

示例 2. 设置配置值
CALL dbms.setConfigValue('db.logs.query.enabled', 'info')

如果传入了无效值,该过程将显示相应的提示信息。

示例 3. 尝试设置无效的配置值
CALL dbms.setConfigValue('db.logs.query.enabled', 'yes')
Failed to invoke procedure `dbms.setConfigValue`: Caused by: org.neo4j.graphdb.config.InvalidSettingException: Bad value 'yes' for setting 'db.logs.query.enabled': 'yes' not one of [OFF, INFO, VERBOSE]

要将配置值重置为默认值,请将空字符串作为 value 参数传入。

示例 4. 将配置值重置为默认值
CALL dbms.setConfigValue('db.logs.query.enabled', '')
© . This site is unofficial and not affiliated with Neo4j, Inc.