DBAtlas · 数据库运维图谱

列出非默认设置

Oracle

SELECT name, value, isdefault
FROM v$parameter
WHERE isdefault = 'FALSE'
ORDER BY name;

v$parameter 中 isdefault = 'FALSE' 的行显示与默认值不同(显式设置)的参数。

PostgreSQL

SELECT name, setting, unit, source
FROM pg_settings
WHERE source NOT IN ('default', 'override')
ORDER BY name;

如果 pg_settings.source 不是 'default' 和 'override',说明该设置已被配置文件、命令行或会话修改。

MySQL

SHOW GLOBAL VARIABLES;
-- MySQL does not automatically compare variables with defaults; with performance_schema
-- you can see the source of each setting:
SELECT VARIABLE_NAME, VARIABLE_SOURCE, VARIABLE_VALUE
FROM performance_schema.variables_info
WHERE VARIABLE_SOURCE <> 'COMPILED';

SHOW GLOBAL VARIABLES 返回所有设置;它不会直接显示与默认值的差异。performance_schema.variables_info 的 VARIABLE_SOURCE 列显示除编译默认值以外的变更来源(文件、命令行、动态)。

SQL Server

SELECT name, value, value_in_use, is_dynamic, is_advanced
FROM sys.configurations
WHERE value <> value_in_use
ORDER BY name;
-- value <> value_in_use: changes not yet RECONFIGUREd or awaiting a restart (is_dynamic = 0).

sys.configurations 返回服务器设置;如果 value 与 value_in_use 不同,说明存在尚未通过 RECONFIGURE 应用(或等待重启)的变更。sys.configurations 不存储默认值(minimum/maximum 只是允许范围);要查看与默认值的差异,需将值与文档中的默认值进行比较。

MongoDB

db.adminCommand({ getCmdLineOpts: 1 })
// The 'parsed' field shows settings explicitly provided (configuration file/command line) beyond the defaults.

getCmdLineOpts 命令的 'parsed' 部分只列出显式指定(非默认)的设置。

Redis

CONFIG GET *
# Redis lists all settings but does not compare them with defaults.
# To see differences, compare the output with the default redis.conf values for your version.

CONFIG GET * 返回所有运行中的设置;它没有内置与默认值的对比,因此需将输出与相应版本的默认 redis.conf 值进行比较。

Elasticsearch

GET _cluster/settings
// Returns only explicitly set persistent and transient settings.
// For everything including defaults: GET _cluster/settings?include_defaults=true&flat_settings=true

_cluster/settings 返回非默认(persistent/transient)的集群设置;使用 include_defaults=true 时也会显示默认值以便比较。

在 DBAtlas 中打开 →