Oracle的导出导入
### Oracle的导出导入知识点详解 #### 一、Oracle数据库导出(Export) 在Oracle数据库管理中,数据的备份与恢复是一项重要的工作。其中,**导出(Export)**是备份的重要手段之一,用于将数据库中的数据或者元数据导出到特定格式的文件中,以便后续的数据迁移、备份或恢复等操作。 ##### 命令格式: ```shell exp [username/password[@service]] [参数] ``` ##### 常用参数说明: - **file**: 指定导出文件的路径及名称。 - **full=y**: 表示导出整个数据库。 - **owner**: 指定要导出的用户或用户列表。 - **tables**: 指定要导出的表或表列表。 - **query**: 指定导出时的查询条件。 - **compress=y**: 启用压缩功能,减少文件大小。 ##### 示例解析: 1. **导出整个数据库:** ```shell exp system/manager@TEST file=d:\daochu.dmp full=y ``` - **解释**:使用`system`用户登录名为`manager`的数据库实例`TEST`,并将整个数据库导出至`D:\daochu.dmp`文件。 2. **导出指定用户的数据:** ```shell exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys) ``` - **解释**:导出`system`和`sys`用户的全部数据至`D:\daochu.dmp`文件。 3. **导出指定表:** ```shell exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) ``` - **解释**:仅导出`table1`和`table2`两张表的数据至`D:\daochu.dmp`文件。 4. **导出表中满足特定条件的数据:** ```shell exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\"where filed1 like '00%'\" ``` - **解释**:导出`table1`表中`filed1`字段值以`00`开头的所有记录至`D:\daochu.dmp`文件。 #### 二、Oracle数据库导入(Import) 与导出相对应的是**导入(Import)**,它是将之前导出的数据文件重新加载到数据库的过程。 ##### 命令格式: ```shell imp [username/password[@service]] [参数] ``` ##### 常用参数说明: - **file**: 指定导入文件的路径及名称。 - **full=y**: 导入整个数据库。 - **ignore=y**: 忽略错误继续导入。 - **fromuser**: 指定数据源的用户名。 - **touser**: 指定目标用户名。 - **tables**: 指定要导入的表名。 - **filesize**: 设置导入文件的最大大小。 ##### 示例解析: 1. **导入整个数据库:** ```shell imp system/manager@TEST file=d:\daochu.dmp ``` - **解释**:使用`system`用户登录名为`manager`的数据库实例`TEST`,从`D:\daochu.dmp`文件导入整个数据库。 2. **忽略错误导入:** ```shell imp system/manager@TEST file=d:\daochu.dmp ignore=y ``` - **解释**:导入过程中如果遇到错误,将继续执行而不中断。 3. **指定用户导入:** ```shell imp system/manager@TEST file=tank log=tank fromuser=seapark touser=seapark_copy ``` - **解释**:将`seapark`用户的数据导入到`seapark_copy`用户中,并记录日志至`tank.log`文件。 4. **多文件导入:** ```shell imp system/manager@TEST file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck filesize=1G full=y ``` - **解释**:从多个文件`paycheck_1`至`paycheck_4`导入整个数据库,并限制每个文件的最大大小为1GB,同时记录日志至`paycheck.log`文件。 通过以上详细介绍,我们可以看到Oracle数据库的导出和导入命令具有很强的灵活性和扩展性,能够满足不同场景下的数据管理需求。熟练掌握这些命令的使用方法对于Oracle数据库管理员来说至关重要。