note/tech/备份的常用命令.md
2025-11-19 10:16:05 +08:00

78 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 备份的常用命令
## 前言
linux服务器经常需要备份数据。下面介绍一些常用的备份命令。
在介绍常用命令之前,先介绍一下备份的基本要点。
首先讲一个备份原则3-2-1原则即三份数据两种存储介质一份异地网络。
其次会讲一下文件备份的常用命令。
最后讲一下数据库备份的常用命令。
## 备份原则
这里只讲3-2-1原则即三份数据两种存储介质一份异地网络。
1. 要保持至少三份数据备份,包括一份原始数据和两份备份副本。这可以有效防止因硬件故障、数据损坏或人为错误导致数据丢失。
2. 原始数据。不多概述。但要求原始数据的服务器要做RAID阵列或其他高可用方案以防止单点故障。
3. 第一份备份存储在同一台服务器的不同硬盘或RAID阵列、外接硬盘、U盘等其他存储介质上。这可以防止硬盘损坏或服务器故障导致数据丢失同时也能提高数据恢复的速度。
4. 第二份备份存储在异地、云存储服务上例如在另一个机房的服务器上。原则上有距离要求至少超过100公里这可以防止因地震、火灾或其他自然灾害导致数据丢失。
## 文件备份的常用命令
### rsync
rsync是一个开源的远程数据同步工具可以用来同步本地文件和目录到远程主机。
### rclone
rclone是一个开源的跨平台命令行工具可以用来同步本地文件和目录到远程云存储服务。
### borg
borg是一个开源的备份工具可以用来备份文件系统、数据库、磁盘等。它使用了一种叫“增量式备份”的方法只备份文件或目录的变化而不是完整的备份。
### 其他常用命令
- tar用来打包、压缩文件。
- cp用来复制文件。
- scp用来远程拷贝文件。
## 数据库备份的常用命令
### postgres
postgres提供了pg_dump命令用来备份数据库。
- pg_dump用来备份数据库。
- pg_dumpall用来备份所有数据库。
- pg_restore用来恢复数据库。
### mysql
mysql提供了mysqldump命令用来备份数据库。
- mysqldump用来备份数据库。
- mysqldumpall用来备份所有数据库。
- mysql用来恢复数据库 `mysql -u root -p database_name < backup_file.sql`
### oracle
这个太专业需要有database管理员的帮助。
## 备份周期
备份分为全量备份和增量备份。
### 全量备份
全量备份是指备份整个数据库或文件系统。全量备份的周期一般为每周或每月一次。
### 增量备份
增量备份是指备份数据库或文件系统的变化,只备份新增、修改或删除的数据。增量备份的周期一般为每天或每小时一次。
## 举例
1. 全量备份文件系统:
- rsync -avz /data/ /backup/data/
- rclone copy /data remote:backup/data
- borg create /backup/data::`date +%Y-%m-%d-%H%M%S` /data
2. 全量备份数据库:
- mysqldump -u root -p database_name > backup_file.sql
- pg_dumpall > backup_file.sql
3. 增量备份文件系统:
- rsync -avz --delete /data/ /backup/data/
- rclone copy /data remote:backup/data
- borg create /backup/data::`date +%Y-%m-%d-%H%M%S` /data
4. 增量备份数据库:
- mysqldump -u root -p database_name --no-data > backup_file.sql
- pg_dump -U postgres -f backup_file.sql -b -t table_name -n schema_name
-