### Oracle数据库导入导出知识点详解 #### 一、Oracle数据库导入导出概述 Oracle数据库导入导出是数据库管理员经常使用的工具之一,它主要用于备份数据库、迁移数据或在不同环境中复制数据库结构与数据。通过导入导出操作,可以方便地管理数据库,确保数据的安全性和可移植性。 #### 二、Oracle导入导出命令详解 Oracle提供了两种主要的工具来完成导入导出任务:`exp` 和 `imp` 命令(早期版本)以及 `expdp` 和 `impdp`(现代版本)。这里主要讲解使用较广泛的`exp`和`imp`命令。 ##### 导出命令 `exp` 导出命令用于将数据库中的数据和对象备份到一个或多个DMP文件中。导出模式主要有三种:用户模式、表模式和全库模式。 **1. 用户模式导出** 用于导出指定用户的全部数据和对象。例如: ``` exp userid=system/manager owner=username1 file=expfile.dmp ``` - `userid`: 指定以哪个用户身份进行操作。 - `owner`: 指定需要导出哪个用户的对象。 - `file`: 指定导出文件的路径及名称。 **2. 表模式导出** 用于导出指定用户的部分表数据和对象。例如: ``` exp icdmain/icdrows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=exp_icdmain_csd_yyyymmdd.dmp log=exp_icdmain_csd_yyyymmdd.log tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo ``` - `icdmain/icdrows=y`: 指定用户和是否包含行数据。 - `indexes=n`: 是否包含索引。 - `compress=n`: 是否压缩。 - `buffer`: 缓冲区大小。 - `feedback`: 显示进度的记录数。 - `volsize`: 单个转储文件的最大大小。 - `file`: 导出文件路径及名称。 - `log`: 日志文件路径及名称。 - `tables`: 需要导出的表列表。 **3. 全库模式导出** 用于导出整个数据库的所有数据和对象。例如: ``` exp icdmain/icdrows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y file=exp_fulldb_yyyymmdd.dmp log=exp_fulldb_yyyymmdd.log ``` - `full=y`: 导出整个数据库。 **注意事项**: - 使用全库模式时,必须具有`SYSDBA`权限。 - 使用增量导出时,需要设置`inctype=incremental`。 ##### 导入命令 `imp` 导入命令用于将DMP文件中的数据恢复到数据库中。 **1. 用户模式导入** 用于将指定用户的对象导入到另一个用户下。例如: ``` imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp ``` - `fromuser`: 指定源用户的名称。 - `touser`: 指定目标用户的名称。 - `ignore`: 忽略导入过程中出现的对象冲突。 **2. 表模式导入** 用于将特定表的数据导入到指定用户下。与用户模式类似,但需要指定具体的表。 **3. 全库模式导入** 用于将DMP文件中的所有数据导入到当前数据库中。 #### 三、注意事项 - 在进行导入导出操作前,请确保有足够的磁盘空间。 - 在使用增量导出时,需要注意`full`和`inctype`参数的正确设置。 - 如果使用的是磁带设备进行导入导出,需要确认设备可用,并且能够正常读写。 - 进行全库导出时,最好在非业务高峰期执行,以减少对生产环境的影响。 - 导入导出操作可能会消耗大量的系统资源,因此建议在备用服务器上进行操作。 - 导入导出过程中产生的日志文件非常重要,应妥善保存,以便于后续的故障排查。 以上就是关于Oracle数据库导入导出的基本知识点介绍,对于初次接触Oracle数据库的学员来说,理解这些基本概念是非常重要的。希望本文能帮助大家更好地掌握Oracle数据库的备份与恢复技能。
exp userid=system/manager owner=username1 file=expfile.dmp
imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp
ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。
数据库逻辑备份方法
ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。
表模式
备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。
若备份到本地文件,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_csd_yyyymmdd.dmp
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。
用户模式
备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_yyyymmdd.dmp
log=exp_icdmain_yyyymmdd.log
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_yyyymmdd.log
注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。
完全模式
备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y
file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。增量备份
命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y inctype=incremental
file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
注:关于增量备份必须满足下列条件:
1. 只对完整数据库备份有效,且第一次需要full=y参数,以后需要inctype=incremental参数。
2. 用户必须有EXP_FULL_DATABASE的系统角色。
3. 话务量较小时方可采用数据库备份。
4. 如果磁盘有空间,建议备份到磁盘,然后再备份到磁带。
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助