You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
450 lines
17 KiB
450 lines
17 KiB
# TiDB Configuration.
|
|
|
|
# TiDB server host.
|
|
host = "0.0.0.0"
|
|
|
|
# tidb server advertise IP.
|
|
advertise-address = ""
|
|
|
|
# TiDB server port.
|
|
port = 4000
|
|
|
|
# Registered store name, [tikv, mocktikv]
|
|
store = "mocktikv"
|
|
|
|
# TiDB storage path.
|
|
path = "/tmp/tidb"
|
|
|
|
# The socket file to use for connection.
|
|
socket = ""
|
|
|
|
# Run ddl worker on this tidb-server.
|
|
run-ddl = true
|
|
|
|
# Schema lease duration, very dangerous to change only if you know what you do.
|
|
lease = "45s"
|
|
|
|
# When create table, split a separated region for it. It is recommended to
|
|
# turn off this option if there will be a large number of tables created.
|
|
split-table = true
|
|
|
|
# The limit of concurrent executed sessions.
|
|
token-limit = 1000
|
|
|
|
# The maximum memory available for a single SQL statement. Default: 1GB
|
|
mem-quota-query = 1073741824
|
|
|
|
# Controls whether to enable the temporary storage for some operators when a single SQL statement exceeds the memory quota specified by mem-quota-query.
|
|
oom-use-tmp-storage = true
|
|
|
|
# Specifies the temporary storage path for some operators when a single SQL statement exceeds the memory quota specified by mem-quota-query.
|
|
# It defaults to a generated directory in `<TMPDIR>/<os/user.Current().Uid>_tidb/` if it is unset.
|
|
# It only takes effect when `oom-use-tmp-storage` is `true`.
|
|
# tmp-storage-path = "/tmp/<os/user.Current().Uid>_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storage"
|
|
|
|
# Specifies the maximum use of temporary storage (bytes) for all active queries when `oom-use-tmp-storage` is enabled.
|
|
# If the `tmp-storage-quota` exceeds the capacity of the temporary storage directory, tidb-server would return an error and exit.
|
|
# The default value of tmp-storage-quota is under 0 which means tidb-server wouldn't check the capacity.
|
|
tmp-storage-quota = -1
|
|
|
|
# Specifies what operation TiDB performs when a single SQL statement exceeds the memory quota specified by mem-quota-query and cannot be spilled over to disk.
|
|
# Valid options: ["log", "cancel"]
|
|
oom-action = "log"
|
|
|
|
# Enable batch commit for the DMLs.
|
|
enable-batch-dml = false
|
|
|
|
# Set system variable 'lower_case_table_names'
|
|
lower-case-table-names = 2
|
|
|
|
# Make "kill query" behavior compatible with MySQL. It's not recommend to
|
|
# turn on this option when TiDB server is behind a proxy.
|
|
compatible-kill-query = false
|
|
|
|
# Make SIGTERM wait N seconds before starting the shutdown procedure. This is designed for when TiDB is behind a proxy/load balancer.
|
|
# The health check will fail immediately but the server will not start shutting down until the time has elapsed.
|
|
graceful-wait-before-shutdown = 0
|
|
|
|
# check mb4 value in utf8 is used to control whether to check the mb4 characters when the charset is utf8.
|
|
check-mb4-value-in-utf8 = true
|
|
|
|
# treat-old-version-utf8-as-utf8mb4 use for upgrade compatibility. Set to true will treat old version table/column UTF8 charset as UTF8MB4.
|
|
treat-old-version-utf8-as-utf8mb4 = true
|
|
|
|
# max-index-length is used to deal with compatibility issues from v3.0.7 and previous version upgrades. It can only be in [3072, 3072*4].
|
|
max-index-length = 3072
|
|
|
|
# enable-table-lock is used to control table lock feature. Default is false, indicate the table lock feature is disabled.
|
|
enable-table-lock = false
|
|
|
|
# delay-clean-table-lock is used to control the time (Milliseconds) of delay before unlock the table in the abnormal situation.
|
|
delay-clean-table-lock = 0
|
|
|
|
# Maximum number of the splitting region, which is used by the split region statement.
|
|
split-region-max-num = 1000
|
|
|
|
# alter-primary-key is used to control alter primary key feature. Default is false, indicate the alter primary key feature is disabled.
|
|
# If it is true, we can add the primary key by "alter table". However, if a table already exists before the switch is turned true and the data type of its primary key column is an integer,
|
|
# the primary key cannot be dropped.
|
|
alter-primary-key = false
|
|
|
|
# server-version is used to change the version string of TiDB in the following scenarios:
|
|
# 1. the server version returned by builtin-function `VERSION()`.
|
|
# 2. the server version filled in handshake packets of MySQL Connection Protocol, see https://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::Handshake for more details.
|
|
# if server-version = "", the default value(original TiDB version string) is used.
|
|
server-version = ""
|
|
|
|
# repair mode is used to repair the broken table meta in TiKV in extreme cases.
|
|
repair-mode = false
|
|
|
|
# Repair table list is used to list the tables in repair mode with the format like ["db.table",].
|
|
# In repair mode, repairing table which is not in repair list will get wrong database or wrong table error.
|
|
repair-table-list = []
|
|
|
|
# The maximum permitted number of simultaneous client connections. When the value is 0, the number of connections is unlimited.
|
|
max-server-connections = 0
|
|
|
|
# Whether new collations are enabled, as indicated by its name, this configuration entry take effect ONLY when a TiDB cluster bootstraps for the first time.
|
|
new_collations_enabled_on_first_bootstrap = false
|
|
|
|
# Don't register information of this TiDB to etcd, so this instance of TiDB won't appear in the services like dashboard.
|
|
# This option is useful when you want to embed TiDB into your service(i.e. use TiDB as a library).
|
|
# *If you want to start a TiDB service, NEVER enable this.*
|
|
skip-register-to-dashboard = false
|
|
|
|
# When enabled, usage data (for example, instance versions) will be reported to PingCAP periodically for user experience analytics.
|
|
# If this config is set to `false` on all TiDB servers, telemetry will be always disabled regardless of the value of the global variable `tidb_enable_telemetry`.
|
|
# See PingCAP privacy policy for details: https://pingcap.com/en/privacy-policy/
|
|
enable-telemetry = true
|
|
|
|
[log]
|
|
# Log level: debug, info, warn, error, fatal.
|
|
level = "info"
|
|
|
|
# Log format, one of json, text, console.
|
|
format = "text"
|
|
|
|
# Enable automatic timestamps in log output, if not set, it will be defaulted to true.
|
|
# enable-timestamp = true
|
|
|
|
# Enable annotating logs with the full stack error message, if not set, it will be defaulted to false.
|
|
# enable-error-stack = false
|
|
|
|
# Whether to enable slow query log.
|
|
enable-slow-log = true
|
|
|
|
# Stores slow query log into separated files.
|
|
slow-query-file = "tidb-slow.log"
|
|
|
|
# Queries with execution time greater than this value will be logged. (Milliseconds)
|
|
slow-threshold = 300
|
|
|
|
# record-plan-in-slow-log is used to enable record query plan in slow log.
|
|
# 0 is disable. 1 is enable.
|
|
record-plan-in-slow-log = 1
|
|
|
|
# Queries with internal result greater than this value will be logged.
|
|
expensive-threshold = 10000
|
|
|
|
# Maximum query length recorded in log.
|
|
query-log-max-len = 4096
|
|
|
|
# File logging.
|
|
[log.file]
|
|
# Log file name.
|
|
filename = ""
|
|
|
|
# Max log file size in MB (upper limit to 4096MB).
|
|
max-size = 300
|
|
|
|
# Max log file keep days. No clean up by default.
|
|
max-days = 0
|
|
|
|
# Maximum number of old log files to retain. No clean up by default.
|
|
max-backups = 0
|
|
|
|
[security]
|
|
# Path of file that contains list of trusted SSL CAs for connection with mysql client.
|
|
ssl-ca = ""
|
|
|
|
# Path of file that contains X509 certificate in PEM format for connection with mysql client.
|
|
ssl-cert = ""
|
|
|
|
# Path of file that contains X509 key in PEM format for connection with mysql client.
|
|
ssl-key = ""
|
|
|
|
# Path of file that contains list of trusted SSL CAs for connection with cluster components.
|
|
cluster-ssl-ca = ""
|
|
|
|
# Path of file that contains X509 certificate in PEM format for connection with cluster components.
|
|
cluster-ssl-cert = ""
|
|
|
|
# Path of file that contains X509 key in PEM format for connection with cluster components.
|
|
cluster-ssl-key = ""
|
|
|
|
[status]
|
|
# If enable status report HTTP service.
|
|
report-status = true
|
|
|
|
# TiDB status host.
|
|
status-host = "0.0.0.0"
|
|
|
|
## status-host is the HTTP address for reporting the internal status of a TiDB server, for example:
|
|
## API for prometheus: http://${status-host}:${status_port}/metrics
|
|
## API for pprof: http://${status-host}:${status_port}/debug/pprof
|
|
# TiDB status port.
|
|
status-port = 10080
|
|
|
|
# Prometheus pushgateway address, leaves it empty will disable push to pushgateway.
|
|
metrics-addr = ""
|
|
|
|
# Prometheus client push interval in second, set \"0\" to disable push to pushgateway.
|
|
metrics-interval = 15
|
|
|
|
# Record statements qps by database name if it is enabled.
|
|
record-db-qps = false
|
|
|
|
[performance]
|
|
# Max CPUs to use, 0 use number of CPUs in the machine.
|
|
max-procs = 0
|
|
|
|
# Max memory size to use, 0 use the total usable memory in the machine.
|
|
max-memory = 0
|
|
|
|
# Memory size quota for tidb server, 0 means unlimited
|
|
server-memory-quota = 0
|
|
|
|
# The alarm threshold when memory usage of the tidb-server exceeds. The valid value range is greater than or equal to 0
|
|
# and less than or equal to 1. The default value is 0.8.
|
|
# If this configuration is set to 0 or 1, it'll disable the alarm.
|
|
# Otherwise, related information will be recorded in the directory `tmp-storage-path/record`.
|
|
# Note: If the configuration `server-memory-quota` is set and larger than 0, the alarm threshold will be
|
|
# `memory-usage-alarm-ratio * server-memory-quota`; otherwise, it'll be `memory-usage-alarm-ratio * system memory size`.
|
|
memory-usage-alarm-ratio = 0.8
|
|
|
|
# StmtCountLimit limits the max count of statement inside a transaction.
|
|
stmt-count-limit = 5000
|
|
|
|
# Set keep alive option for tcp connection.
|
|
tcp-keep-alive = true
|
|
|
|
# Whether support cartesian product.
|
|
cross-join = true
|
|
|
|
# Stats lease duration, which influences the time of analyze and stats load.
|
|
stats-lease = "3s"
|
|
|
|
# Run auto analyze worker on this tidb-server.
|
|
run-auto-analyze = true
|
|
|
|
# Probability to use the query feedback to update stats, 0.0 or 1.0 for always false/true.
|
|
feedback-probability = 0.0
|
|
|
|
# The max number of query feedback that cache in memory.
|
|
query-feedback-limit = 512
|
|
|
|
# Pseudo stats will be used if the ratio between the modify count and
|
|
# row count in statistics of a table is greater than it.
|
|
pseudo-estimate-ratio = 0.8
|
|
|
|
# Force the priority of all statements in a specified priority.
|
|
# The value could be "NO_PRIORITY", "LOW_PRIORITY", "HIGH_PRIORITY" or "DELAYED".
|
|
force-priority = "NO_PRIORITY"
|
|
|
|
# Bind info lease duration, which influences the duration of loading bind info and handling invalid bind.
|
|
bind-info-lease = "3s"
|
|
|
|
# Whether support pushing down aggregation with distinct to cop task
|
|
distinct-agg-push-down = false
|
|
|
|
# The limitation of the size in byte for the entries in one transaction.
|
|
# If using TiKV as the storage, the entry represents a key/value pair.
|
|
# NOTE: If binlog is enabled with Kafka (e.g. arbiter cluster),
|
|
# this value should be less than 1073741824(1G) because this is the maximum size that can be handled by Kafka.
|
|
# If binlog is disabled or binlog is enabled without Kafka, this value should be less than 10737418240(10G).
|
|
txn-total-size-limit = 104857600
|
|
|
|
# The max number of running concurrency two phase committer request for an SQL.
|
|
committer-concurrency = 16
|
|
|
|
# max lifetime of transaction ttl manager.
|
|
max-txn-ttl = 600000
|
|
|
|
# The Go GC trigger factor, you can get more information about it at https://golang.org/pkg/runtime.
|
|
# If you encounter OOM when executing large query, you can decrease this value to trigger GC earlier.
|
|
# If you find the CPU used by GC is too high or GC is too frequent and impact your business you can increase this value.
|
|
gogc = 100
|
|
|
|
[proxy-protocol]
|
|
# PROXY protocol acceptable client networks.
|
|
# Empty string means disable PROXY protocol, * means all networks.
|
|
networks = ""
|
|
|
|
# PROXY protocol header read timeout, unit is second
|
|
header-timeout = 5
|
|
|
|
[prepared-plan-cache]
|
|
enabled = false
|
|
capacity = 100
|
|
memory-guard-ratio = 0.1
|
|
|
|
[opentracing]
|
|
# Enable opentracing.
|
|
enable = false
|
|
|
|
# Whether to enable the rpc metrics.
|
|
rpc-metrics = false
|
|
|
|
[opentracing.sampler]
|
|
# Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote
|
|
type = "const"
|
|
|
|
# Param is a value passed to the sampler.
|
|
# Valid values for Param field are:
|
|
# - for "const" sampler, 0 or 1 for always false/true respectively
|
|
# - for "probabilistic" sampler, a probability between 0 and 1
|
|
# - for "rateLimiting" sampler, the number of spans per second
|
|
# - for "remote" sampler, param is the same as for "probabilistic"
|
|
# and indicates the initial sampling rate before the actual one
|
|
# is received from the mothership
|
|
param = 1.0
|
|
|
|
# SamplingServerURL is the address of jaeger-agent's HTTP sampling server
|
|
sampling-server-url = ""
|
|
|
|
# MaxOperations is the maximum number of operations that the sampler
|
|
# will keep track of. If an operation is not tracked, a default probabilistic
|
|
# sampler will be used rather than the per operation specific sampler.
|
|
max-operations = 0
|
|
|
|
# SamplingRefreshInterval controls how often the remotely controlled sampler will poll
|
|
# jaeger-agent for the appropriate sampling strategy.
|
|
sampling-refresh-interval = 0
|
|
|
|
[opentracing.reporter]
|
|
# QueueSize controls how many spans the reporter can keep in memory before it starts dropping
|
|
# new spans. The queue is continuously drained by a background go-routine, as fast as spans
|
|
# can be sent out of process.
|
|
queue-size = 0
|
|
|
|
# BufferFlushInterval controls how often the buffer is force-flushed, even if it's not full.
|
|
# It is generally not useful, as it only matters for very low traffic services.
|
|
buffer-flush-interval = 0
|
|
|
|
# LogSpans, when true, enables LoggingReporter that runs in parallel with the main reporter
|
|
# and logs all submitted spans. Main Configuration.Logger must be initialized in the code
|
|
# for this option to have any effect.
|
|
log-spans = false
|
|
|
|
# LocalAgentHostPort instructs reporter to send spans to jaeger-agent at this address
|
|
local-agent-host-port = ""
|
|
|
|
[tikv-client]
|
|
# Max gRPC connections that will be established with each tikv-server.
|
|
grpc-connection-count = 4
|
|
|
|
# After a duration of this time in seconds if the client doesn't see any activity it pings
|
|
# the server to see if the transport is still alive.
|
|
grpc-keepalive-time = 10
|
|
|
|
# After having pinged for keepalive check, the client waits for a duration of Timeout in seconds
|
|
# and if no activity is seen even after that the connection is closed.
|
|
grpc-keepalive-timeout = 3
|
|
|
|
# Max time for commit command, must be twice bigger than raft election timeout.
|
|
commit-timeout = "41s"
|
|
|
|
# Max batch size in gRPC.
|
|
max-batch-size = 128
|
|
# Overload threshold of TiKV.
|
|
overload-threshold = 200
|
|
# Max batch wait time in nanosecond to avoid waiting too long. 0 means disable this feature.
|
|
max-batch-wait-time = 0
|
|
# Batch wait size, to avoid waiting too long.
|
|
batch-wait-size = 8
|
|
|
|
# Enable chunk encoded data for coprocessor requests.
|
|
enable-chunk-rpc = true
|
|
|
|
# If a Region has not been accessed for more than the given duration (in seconds), it
|
|
# will be reloaded from the PD.
|
|
region-cache-ttl = 600
|
|
|
|
# store-limit is used to restrain TiDB from sending request to some stores which is up to the limit.
|
|
# If a store has been up to the limit, it will return error for the successive request in same store.
|
|
# default 0 means shutting off store limit.
|
|
store-limit = 0
|
|
|
|
# store-liveness-timeout is used to control timeout for store liveness after sending request failed.
|
|
store-liveness-timeout = "5s"
|
|
|
|
[tikv-client.copr-cache]
|
|
# Whether to enable the copr cache. The copr cache saves the result from TiKV Coprocessor in the memory and
|
|
# reuses the result when corresponding data in TiKV is unchanged, on a region basis.
|
|
enable = false
|
|
|
|
# The capacity in MB of the cache.
|
|
capacity-mb = 1000.0
|
|
|
|
# Only cache small requests. Zero means no limits for requests.
|
|
admission-max-ranges = 500
|
|
# Only cache requests whose result set is small.
|
|
admission-max-result-mb = 10.0
|
|
# Only cache requests takes notable time to process.
|
|
admission-min-process-ms = 5
|
|
|
|
[binlog]
|
|
# enable to write binlog.
|
|
# NOTE: If binlog is enabled with Kafka (e.g. arbiter cluster),
|
|
# txn-total-size-limit should be less than 1073741824(1G) because this is the maximum size that can be handled by Kafka.
|
|
enable = false
|
|
|
|
# WriteTimeout specifies how long it will wait for writing binlog to pump.
|
|
write-timeout = "15s"
|
|
|
|
# If IgnoreError is true, when writing binlog meets error, TiDB would stop writing binlog,
|
|
# but still provide service.
|
|
ignore-error = false
|
|
|
|
# use socket file to write binlog, for compatible with kafka version tidb-binlog.
|
|
binlog-socket = ""
|
|
|
|
# the strategy for sending binlog to pump, value can be "range" or "hash" now.
|
|
strategy = "range"
|
|
|
|
[pessimistic-txn]
|
|
# enable pessimistic transaction.
|
|
enable = true
|
|
|
|
# max retry count for a statement in a pessimistic transaction.
|
|
max-retry-count = 256
|
|
|
|
[stmt-summary]
|
|
# enable statement summary.
|
|
enable = true
|
|
|
|
# enable statement summary for TiDB internal query, default is false.
|
|
enable-internal-query = false
|
|
|
|
# max number of statements kept in memory.
|
|
max-stmt-count = 200
|
|
|
|
# max length of displayed normalized sql and sample sql.
|
|
max-sql-length = 4096
|
|
|
|
# the refresh interval of statement summary, it's counted in seconds.
|
|
refresh-interval = 1800
|
|
|
|
# the maximum history size of statement summary.
|
|
history-size = 24
|
|
|
|
# experimental section controls the features that are still experimental: their semantics,
|
|
# interfaces are subject to change, using these features in the production environment is not recommended.
|
|
[experimental]
|
|
# enable creating expression index.
|
|
allow-expression-index = false
|
|
|
|
# server level isolation read by engines and labels
|
|
[isolation-read]
|
|
# engines means allow the tidb server read data from which types of engines. options: "tikv", "tiflash", "tidb".
|
|
engines = ["tikv", "tiflash", "tidb"]
|
|
|