This is an original planning guide. It is not a vendor manual, an official standard, or legal advice. Example addresses use documentation ranges. Review every command before you paste it.
A setting is one line with a previous value
Configuration is the file or the catalog that tells the engine how much memory to use, who may connect, and where it listens. The MySQL and PostgreSQL tuners on this site draft numbers. A draft is not your file. Your file is the one on the host, and the previous copy is the rollback.
One setting. Memory, connections, and the listen address are three stories. The listen address in the lab is localhost. A draft that listens on every interface is a draft you edit. The audit guide is where you read a whole file. This page is where you change one line.
Some settings apply on reload. Some apply on restart. The engine's own documentation, for the version you run, says which. A restart of a database people are using is a window with a warning, not a surprise at the end of a ticket. The second session is already open before you reload.
The number has to fit the machine. A buffer pool larger than the memory the host has is a number from someone else's server. Write the host's memory next to the setting. If you do not know the memory, you are not ready to tune.
One lab file, one line, one reload
Copy the lab config to a name you can put back. Change one setting you can explain, such as a log destination or a connection limit that is still high enough for you. Reload or restart the way that version requires, with a second connection already open.
Prove the new value is the one the engine reports, not only the one in the file. A file the engine did not read is a file in the wrong path. Write the path in the ticket.
If the tuner suggested a pile of lines, keep one and delete the rest from this window. You can adopt the next line next week, after this one has been quiet.
Passwords do not go in the ticket and do not go in a world-readable config if the engine lets you keep them elsewhere. prompt-for-this in a generated file is a reminder to replace, not a password to keep.
# Lab config. Review before you reload.
# Copy the file first. Change one setting.
# Listen on 127.0.0.1 until a firewall story exists.
# A draft that binds every address is edited first.
# prompt-for-this is not a password.
# Second session stays open across the reload.
A change you can finish
The canary is one production instance after the lab value is the value the engine reports. The rest of a tuner draft waits.
Rollback is the previous file, which you copied, and the reload you already know how to do.
- Record the version, the host memory, and the config path.
- Copy the file.
- Change one setting. Delete any listen-on-every-address line.
- Reload with a second session open.
- Read the value back from the engine.
- Leave the rest of the draft unused.
- Write the rollback path in the ticket.
Mistakes that outlive the command
database configuration fails in the same few ways. Each one looks finished on the day you type it. The list is here so the ticket can forbid them before the window, not so you can recognise them in an incident review.
- Pasting a whole tuner draft.
- A memory number larger than the host.
- Listening on every address because the lab felt easier.
- Reloading from the only session.
- Editing the wrong file and declaring success.
- A password written into the config and the ticket.
- Restarting production to see whether a lab idea was right.
- No previous file.
- Two settings, so a failure has no cause.
- Skipping the value the engine actually reports.
Decisions to write down before the window
One decision for database configuration: The version and the config path are written. Host memory is next to any memory setting. The previous file is copied. One setting changed. The lab listens on localhost. A second session stayed open. The engine reports the new value. prompt-for-this was replaced or removed, not kept as a password. The audit guide owns a full-file review. This page owns one line. Rollback is the copied file. The canary is one instance. And the performance guide owns the statement. This page owns the setting.
The hour you stop
Write the database name, the host, and the clock time before you change anything for database configuration. If this database is serving people and you do not have a copy, this hour is a plan. A plan you can read tomorrow is a success. A change you cannot undo is not.
Use a lab or a restored copy. The rows you read are rows you are allowed to hold. You do not point a client at a database, a cluster, or an account you do not administer. The tools on this site run in the browser. They do not log in, and they do not scan.
prompt-for-this is a reminder that a secret is missing. It is not a password, a token, or a key you save. The real secret stays in the password store. If a connection string, a log, or a ticket still contains a live secret, stop and rotate it. Then delete the copy.
One change. A config line, an index, a grant, and a restore do not share a window. If two things move and the outcome is wrong, you will not know which one did it. The rollback is the previous file or the backup you already tested.
A second person reads the scope aloud: which host, which database, which account. If they cannot find it in the ticket, the ticket is not ready. Silence is not agreement.
The lab listens on localhost. 127.0.0.1 is the address you bind until a firewall story exists. example.com is not your host. A generated file that listens on every address is a file you edit before it runs.
Do not run a statement you cannot undo. A delete or a drop without a backup and a where-clause you have read is the mistake this page is here to prevent. Read the statement. Count the rows it will touch. Then decide.
Keep the previous config and the previous dump. A generator draft is not the previous file. The previous file is what you put back if the new one is wrong. You practised the reload with a second session open when the change can lock you out.
If a step fails twice, stop. The failure is the result. Adding a command from a forum beside a half-applied config produces a database nobody can explain. Rebuild the lab from the copy you kept.
When the checks pass, the next database waits until someone else can repeat the proof from the notes. database configuration is done for this window when the proof is written, not when the client printed a prompt.
This page is a planning guide. It is not a vendor manual, not an official standard, and not legal advice. If an auditor must see the decision, they see the ticket and the evidence, not this paragraph.
Hand the finished note to the neighbouring guide that owns the next step, and leave this database alone until that guide has its own window.
Configuration checks before the next setting
Confirm this before you call the change done: The version is in the ticket. The config path is the one the engine read. The previous file restores. Only one value changed. The engine reports that value. Nothing listens on every address. No password is in the ticket. The second session survived the reload. Host memory is written beside any memory change. The unused draft lines are not in the file. A second person read the one line. Production still has the old file, unless this was the planned canary. The hostname in the prompt matches the hostname in the ticket for database configuration. The result line includes the time and the person, not only the command. You can point at the rollback value without searching a chat history. And done is a sentence a second person can repeat: the proof for database configuration happened, and the next host is not started early. If one of those fails, stop.
Tools for this guide
These tools run in the browser on this site. They do not log into your machines.
Related pillar guides
Guides in this cluster
These supporting pages belong to this pillar.
- How-To: InnoDB Buffer Pool Sizing
- Explainer: PostgreSQL Memory Settings Explained
- How-To: PostgreSQL Autovacuum Tuning
- How-To: PostgreSQL WAL and Checkpoint Tuning
- How-To: SQL Server Memory Configuration
- How-To: SQL Server MAXDOP and Parallelism
- Checklist: SQL Server tempdb Best Practices
- Explainer: Oracle Memory Management (SGA and PGA)
- How-To: MongoDB WiredTiger Cache Tuning
- Explainer: Redis Eviction Policies Explained
- Explainer: How Many Database Connections Is Too Many?
- How-To: Connection Pooling with PgBouncer and ProxySQL
- How-To: Linux Tuning for Database Servers
- How-To: Tuning Managed Cloud Databases