db2 备份数据库和恢复数据库命令

以下是DB2数据库的备份和恢复常用命令及详细步骤:

---

### **一、备份数据库命令**

#### **1. 离线备份(数据库处于非活动状态)**
```bash
# 停用数据库连接
db2 deactivate db <数据库名>

# 执行离线备份
db2 backup db <数据库名> to '<备份目录路径>'
```
- **示例**:
  ```bash
  db2 deactivate db MYDB
  db2 backup db MYDB to '/backup/mydb_offline'
  ```

---

#### **2. 在线备份(数据库处于活动状态,需启用归档日志)**
```bash
# 确认归档日志已启用(LOGARCHMETH1 配置不为 OFF)
db2 get db cfg for <数据库名> | grep -i "LOGARCHMETH1"

# 执行在线备份
db2 backup db <数据库名> online to '<备份目录路径>' include logs
```
- **示例**:
  ```bash
  db2 backup db MYDB online to '/backup/mydb_online' include logs
  ```

---

#### **3. 增量备份(仅备份自上次全量后的变更)**
```bash
db2 backup db <数据库名> incremental delta to '<备份目录路径>'
```
- **说明**:`delta` 表示差异增量,`cumulative` 表示累积增量。

---

### **二、恢复数据库命令**

#### **1. 从备份恢复数据库**
```bash
# 进入备份文件所在目录(需指定时间戳)
cd /backup/mydb_offline

# 执行恢复命令
db2 restore db <原数据库名> from '<备份目录路径>' taken at <时间戳>
```
- **时间戳获取**:备份文件名包含时间戳(如 `20231001120000`)。
- **示例**:
  ```bash
  db2 restore db MYDB from '/backup/mydb_offline' taken at 20231001120000
  ```

---

#### **2. 恢复后前滚日志(在线备份恢复必需)**
```bash
# 前滚到日志末尾并完成恢复
db2 rollforward db <数据库名> to end of logs and complete
```
- **示例**:
  ```bash
  db2 rollforward db MYDB to end of logs and complete
  ```

---

#### **3. 覆盖现有数据库**
```bash
# 强制覆盖同名数据库
db2 restore db <原数据库名> from '<备份路径>' taken at <时间戳> replace existing
```

---

### **三、关键参数说明**
| 参数                | 说明                                                                 |
|---------------------|--------------------------------------------------------------------|
| `online`            | 在线备份(数据库可继续使用)                                       |
| `include logs`      | 包含备份

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值