更新动态设置
Neo4j 企业版支持在运行时更改某些配置设置,无需重新启动服务。
运行时对配置的更改不会持久化。为了避免在重新启动 Neo4j 时丢失更改,请确保也更新 neo4j.conf。 在集群环境中, |
发现动态设置
使用 SHOW SETTINGS
发现哪些配置值可以动态更新,或查阅 配置设置参考。
示例 1. 发现动态设置
SHOW SETTINGS
YIELD name, isDynamic
WHERE isDynamic
RETURN name
+----------------------------------------------------------------+ | name | +----------------------------------------------------------------+ | "db.checkpoint.iops.limit" | | "db.format" | | "db.lock.acquisition.timeout" | | "db.logs.query.annotation_data_as_json_enabled" | | "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_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.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_group" | | "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(设置, 值)
返回值
成功时不返回任何内容。
异常
未知或无效的设置名称。 |
该设置不是动态的,无法在运行时更改。 |
无效的设置值。 |
以下示例显示了如何动态启用查询日志记录。
示例 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', '')