Troubleshooting DBMonster: Common Issues and Fixes
1. Connection failures
- Symptom: DBMonster cannot connect to source or target database.
- Likely causes: wrong host/port, incorrect credentials, network/firewall blocks, SSL/TLS mismatch.
- Fixes: verify host/port and credentials; test with psql/mysql/cli; open required ports; check SSL settings and certificates; increase client timeout.
2. Authentication errors
- Symptom: “authentication failed” or permission denied.
- Likely causes: missing user privileges, expired password, role restrictions.
- Fixes: grant necessary read/write roles; reset/rotate passwords; ensure user can LIST/DUMP/LOAD as required.
3. Slow performance or long run times
- Symptom: migration runs much slower than expected.
- Likely causes: network latency, large transactions, missing indexes on target, single-threaded configuration, resource contention on DB servers.
- Fixes: enable parallel worker threads; batch or chunk large tables; increase commit frequency to avoid huge transactions; create necessary indexes on target after load; run during low-traffic windows; monitor CPU/IO and tune instance sizes.
4. Out-of-memory or disk-space errors
- Symptom: process crashes or disk fills during operation.
- Likely causes: large temporary files, huge in-memory buffers, WAL/log growth.
- Fixes: increase available memory or disk; reduce buffer sizes; stream rather than buffer whole tables; rotate/limit logs; clean temp directories between runs.
5. Inconsistent or missing data after migration
- Symptom: row counts differ or referential integrity errors.
- Likely causes: failed transactions, skipped rows due to errors, improper ordering for foreign keys, charset/collation mismatches.
- Fixes: enable transactional integrity checks; migrate parent tables before children or disable/reenable FK checks appropriately; validate row counts and checksums (e.g., MD5 per-row); ensure consistent character sets and collations.
6. Schema incompatibilities
- Symptom: CREATE TABLE or ALTER errors on target.
- Likely causes: unsupported data types, reserved keywords, differing defaults, constraint syntax differences.
- Fixes: pre-translate schema types and defaults; use intermediate mapping rules; run schema DDL separately and adjust manually; test schema creation on a staging target.
7. Encoding and character-set corruption
- Symptom: garbled text, loss of accents or symbols.
- Likely causes: mismatched client_encoding or database collations.
- Fixes: ensure source and target encodings match (e.g., UTF-8); set client_encoding in DBMonster; convert text fields prior to load if necessary.
8. Transaction log/WAL bloat on source or target
- Symptom: WAL grows rapidly or replication lag increases.
- Likely causes: long-running transactions, too-frequent large writes.
- Fixes: commit more frequently; use snapshotting where supported; pause WAL shipping or increase retention temporarily; perform bulk loads with minimal logging if the DB supports it.
9. Tool crashes or unexpected exceptions
- Symptom: DBMonster process exits with stack trace.
- Likely causes: unhandled edge cases, null data, library mismatches.
- Fixes: collect logs and stack traces; reproduce on staging; upgrade to latest DBMonster release; check dependency versions; file an issue with reproducible steps.
10. Authentication/SSL certificate rotation issues
- Symptom: previously working connections fail after cert or password change.
- Likely causes: cached credentials, pinned certs, connection pools holding old creds.
- Fixes: restart DBMonster workers or clear pools; update stored certs/credentials; use secrets manager integrations.
Quick diagnostics checklist
- Test connectivity with DB client tools.
- Check DBMonster logs at info/debug level.
- Verify user privileges and encodings.
- Compare row counts and sample checksums.
- Run on staging with a small subset first.
When to escalate
- Persistent data loss or integrity errors.
- Reproducible crashes after latest release—collect logs, versions, and table samples before filing an issue.
If you want, I can generate a diagnostic runbook tailored to your source/target databases (e.g., Postgres→MySQL) — tell me which ones and I’ll assume sensible defaults.
Leave a Reply