DBAtlas · 数据库运维图谱

执行逻辑备份(dump)

Oracle

expdp system/password DIRECTORY=dpump_dir \
  SCHEMAS=hr DUMPFILE=hr_%U.dmp LOGFILE=hr_exp.log PARALLEL=4

使用 Data Pump。必须事先通过 CREATE DIRECTORY 定义 DIRECTORY 对象。物理备份请使用 RMAN。

PostgreSQL

pg_dump -U postgres -h localhost -Fc -f db.dump mydb
# -Fc = compressed custom format (restored with pg_restore)

-Fc 支持灵活恢复(选择性表/并行)。整个集群(包括角色)使用 pg_dumpall。

MySQL

mysqldump -u root -p --single-transaction \
  --routines --triggers --events mydb > db.sql

--single-transaction 可在 InnoDB 上获得无锁的一致性备份。大数据量的并行方案:mydumper/myloader 或 MySQL Shell util.dumpInstance()/dumpSchemas()(mysqlpump 已在 8.0.34 中弃用,并在 8.4 中移除)。

SQL Server

BACKUP DATABASE [MyDB]
TO DISK = N'C:\backup\MyDB_full.bak'
WITH COMPRESSION, CHECKSUM, INIT;

INIT 会覆盖现有文件;追加使用 NOINIT。日志备份使用 BACKUP LOG(FULL 恢复模式下)。

MongoDB

mongodump --uri="mongodb://localhost:27017" \
  --archive=db.archive.gz --gzip --db=mydb

在分片集群上,为保证一致性,应在停止 balancer 后通过 mongos 执行。

Redis

BGSAVE
# Takes an RDB snapshot in the background (dump.rdb).
# Non-blocking copy: redis-cli --rdb /backup/dump.rdb

BGSAVE 通过 fork 在后台运行;SAVE 会阻塞服务器(生产环境勿用)。启用 AOF 时丢失的数据更少。

在 DBAtlas 中打开 →