DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。物理备份还原是
对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。例如使
用 RMAN 工具进行的备份还原。物理备份还原请参考《DM8 备份与还原》。逻辑备份还原是
对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp 和
dimp 进行的备份还原。逻辑备份还原正是本书所要介绍的内容。
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实
现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机
方式是指数据库服务器正常运行过程中进行的备份和还原。dexp 和 dimp 是 DM 数据库自带
的工具,只要安装了 DM 数据库,就可以在安装目录/dmdbms/bin 中找到。
### 达梦数据库导入导出知识点详解
#### 一、达梦数据库备份与恢复概述
达梦数据库(DM)提供了一套完整的数据保护方案,主要包括两种类型的备份与恢复:物理备份与逻辑备份。
1. **物理备份**:
- **定义**:针对数据库操作系统层面的物理文件(如数据文件、控制文件、重做日志文件等)进行的备份。
- **工具**:通常使用RMAN等工具来实现。
- **特点**:适合于数据库级别的完整备份,能够提供快速的数据恢复能力,但操作较为复杂且可能需要停机操作。
2. **逻辑备份**:
- **定义**:针对数据库逻辑组件(如表、视图、存储过程等)进行的备份。
- **工具**:使用`dexp`(逻辑导出)和`dimp`(逻辑导入)工具。
- **特点**:操作简单灵活,适合于特定数据库对象的备份与恢复,可以在联机状态下执行。
#### 二、`dexp`逻辑导出工具
`dexp`是一款用于达梦数据库的逻辑导出工具,它可以帮助用户将数据库中的数据和元数据导出到指定的文件中。
1. **使用场景**:
- **数据迁移**:将数据从一个数据库迁移到另一个数据库。
- **数据备份**:定期备份重要的数据和元数据。
- **数据分析**:导出数据以供进一步分析使用。
2. **基本语法**:
```
dexp [参数] [数据库连接信息]
```
3. **参数详解**:
- **特殊参数**:
- `OWNER=`:指定要导出的对象的所有者。
- `TABLES=`:指定要导出的表名列表。
- `SCHEMAS=`:指定要导出的模式名称。
- `FULL`:全量导出,导出所有模式和数据。
- **普通参数**:
- `FILE=`:指定导出文件的名称。
- `LOGFILE=`:指定日志文件的名称。
- `PARALLEL=`:指定并行导出线程的数量。
- `RECORDSIZE=`:指定记录大小。
- `BUFFER=`:指定缓冲区大小。
- `DIRECT`:启用直接路径导出。
- `FEEDBACK=`:每导出一定数量的行后显示进度。
- `COMPRESS`:启用压缩。
- `STATISTICS`:导出统计信息。
- `INDEXES`:导出索引。
- `CONSTRAINTS`:导出约束。
- `GRANTS`:导出权限。
- `PROCEDURES`:导出存储过程。
- `TRIGGERS`:导出触发器。
- `SEQUENCES`:导出序列。
- `TYPES`:导出类型。
- `VIEWS`:导出视图。
- `MATERIALIZED VIEWS`:导出物化视图。
- `SYNONYMS`:导出同义词。
- `JOBS`:导出作业。
- `OBJECTS`:导出对象。
4. **示例**:
- 导出指定用户的表数据:
```
dexp USER/PASSWORD FILE=export.dmp OWNER=user1,user2 TABLES=table1,table2
```
- 全量导出数据库:
```
dexp USER/PASSWORD FILE=full_export.dmp FULL
```
#### 三、`dimp`逻辑导入工具
`dimp`是达梦数据库的逻辑导入工具,用于将之前通过`dexp`导出的数据和元数据重新导入到数据库中。
1. **使用场景**:
- **数据恢复**:将备份的数据恢复到数据库。
- **数据迁移**:将数据从一个数据库迁移到另一个数据库。
2. **基本语法**:
```
dimp [参数] [数据库连接信息]
```
3. **参数详解**:
- **特殊参数**:
- `OWNER=`:指定要导入的对象的所有者。
- `TABLES=`:指定要导入的表名列表。
- `SCHEMAS=`:指定要导入的模式名称。
- `FULL`:全量导入,导入所有模式和数据。
- **普通参数**:
- `FILE=`:指定导入文件的名称。
- `LOGFILE=`:指定日志文件的名称。
- `PARALLEL=`:指定并行导入线程的数量。
- `RECORDSIZE=`:指定记录大小。
- `BUFFER=`:指定缓冲区大小。
- `DIRECT`:启用直接路径导入。
- `FEEDBACK=`:每导入一定数量的行后显示进度。
- `REPLACE`:替换现有对象。
- `COMMIT`:指定提交次数。
- `STATISTICS`:导入统计信息。
- `INDEXES`:导入索引。
- `CONSTRAINTS`:导入约束。
- `GRANTS`:导入权限。
- `PROCEDURES`:导入存储过程。
- `TRIGGERS`:导入触发器。
- `SEQUENCES`:导入序列。
- `TYPES`:导入类型。
- `VIEWS`:导入视图。
- `MATERIALIZED VIEWS`:导入物化视图。
- `SYNONYMS`:导入同义词。
- `JOBS`:导入作业。
- `OBJECTS`:导入对象。
4. **示例**:
- 导入指定用户的表数据:
```
dimp USER/PASSWORD FILE=import.dmp OWNER=user1,user2 TABLES=table1,table2
```
- 全量导入数据库:
```
dimp USER/PASSWORD FILE=full_import.dmp FULL
```
通过以上内容,我们可以看到`dexp`和`dimp`作为达梦数据库的重要工具,在数据备份与恢复方面提供了丰富的功能和灵活性。无论是简单的数据备份还是复杂的跨数据库迁移,这两个工具都能够满足需求。在实际应用中,根据具体的业务需求选择合适的参数组合,可以极大地提高工作效率并确保数据的安全性。