整理六大主流數據庫最常用的備份/恢復命令,生產環境請參考官方文檔調整參數。
# 參數說明
$user $password $host $port $charset $dbname $table $file
# 備份(單庫/全庫/單表)
mysqldump --single-transaction -l -u$user -p$password -h$host -P$port \
--default-character-set=$charset $dbname [$table] > $file
# 恢復
mysql -u$user -p$password -h$host -P$port \
--default-character-set=$charset $dbname < $file
# 參數
$user $password $instance $dbname $full_file $diff_file
# 全量備份
sqlcmd -U $user -P "$password" -S $instance -Q \
"BACKUP DATABASE $dbname TO DISK='$full_file' WITH INIT, FORMAT"
# 全量恢復
sqlcmd -U $user -P "$password" -S $instance -Q \
"RESTORE DATABASE $dbname FROM DISK='$full_file' WITH REPLACE, RECOVERY"
# 差異備份/恢復同理(WITH DIFFERENTIAL / NORECOVERY + RECOVERY)
生產環境強烈建議使用 RMAN (Recovery Manager),功能最全、性能最優,支持增量、壓縮、加密、目錄管理等高級特性。此處不展開命令行示例。
# 備份:觸發生成 RDB 快照文件
redis-cli -h $host -p $port -a $password SAVE
# 或 BGSAVE 異步備份
# 恢復:將 dump.rdb 放回配置的 dir 目錄,重啟 Redis 即可
# 參數
$host $port $dbname $backup_dir $user $password $table $restore_dir
# 備份(全庫/單表)
mongodump --host $host:$port -d $dbname -o $backup_dir -u $user -p $password [-c $table]
# 恢復
mongorestore --host $host:$port -d $dbname -u $user -p $password \
[-c $table] $restore_dir
# 參數
$host $port $user $dbname $backup_file $restore_file
# 備份
pg_dump -c -b -h $host -p $port -U "$user" $dbname > $backup_file
# 恢復
psql -h $host -p $port -U "$user" -d $dbname -f $restore_file