文章目录
- 一、基础知识
- 1. Export &Import Utilities
- 2、Exp/lmp Utility Overview Exp/mp实用程序概述
- 3、Before Your Use Of Exp/lmp 在您使用Exp/lmp之前
- 4、Methods to invoke Exp/lmp 调用Exp/lmp的方法
- 5、Import Utility for Recovery 用于恢复的导入实用程序
- 二、基础操作
- 1、InvokingExport 调用导出
- 2、Invoking Import 调用导入
Export and Import Utilities Export和Import介绍
目标:
- 了解“导出”和“导入”实用程序的用法
- 了解导出和导入概念和结构
- 掌握执行简单的导出和导入操作
- 列出使用导出和导入的指南
一、基础知识
1. Export &Import Utilities
- dmp文件格式是Oracle特有的一种二进制文件格式
两个工具在ORACLE_HOME下的bin目录下(注意:11g版本之后的不在使用此工具)
2、Exp/lmp Utility Overview Exp/mp实用程序概述
您可以使用这些实用程序执行以下操作:
- 存档历史数据
- 保存表定义以防止出现用户错误失败
- 在计算机和数据库之间或在不同版本的甲骨文服务器之间移动数据
- 在数据库之间传输表空间
3、Before Your Use Of Exp/lmp 在您使用Exp/lmp之前
- 在开始使用“导出”之前,请确保注意以下项目 (在以下各节中有详细说明):
- 运行catexp.sql或catalogsql脚本
- 确保有足够的磁盘或磁带存储空间来写入导出文件
- 验证您具有所需的访问权限
- 要使用导出,您必须对甲骨文数据库拥有CREATE SESSION特权。若要导出其他用户拥有的表,必须启用EXP_FULL_DATABASE角色。此角色授予所有DBA。如果您没有包含在EXP_FULL_DATABASE角色中的系统特权就不能导出包含在另一个用户的模式中的对象。
- 要使用导入,您需要特权CREATE SESSION登录到甲骨文数据库服务器。此特权属于在数据库创建期间建立的CONNECT角色。
- 即使没有创建导出文件,也可以执行导入。但是,如果导出文件不是由您创建的,则只有在您具有IMP_FULL_DATABASE角色时才能导入该文件。
4、Methods to invoke Exp/lmp 调用Exp/lmp的方法
- 命令行界面
- 交互式对话
- 参数文件
- 甲骨文企业管理器
5、Import Utility for Recovery 用于恢复的导入实用程序
- 创建表定义
- 从有效的导出文件中提取数据
- 从完整或累计导出文件导入
- 从用户错误故障中恢复
二、基础操作
1、InvokingExport 调用导出
语法:
exp keyword = (value, value2,...,valuen)
举例说明:
exp hr/hr TABLES=employees,departments
rows=y file=exp1.dmp
这是一个 Oracle 数据库导出(export)命令,使用
exp
工具将用户hr
的employees
和departments
表导出到一个数据文件中。让我解释一下这个命令的各个部分:
exp
: 这是 Oracle 数据库导出工具的命令行命令。
hr/hr
: 这是用户名和密码的组合,表示你正在使用hr
用户登录到数据库。第一个hr
是用户名,第二个hr
是密码。
TABLES=employees,departments
: 这指定了要导出的表的列表,即employees
和departments
表。在导出时,这些表的数据和结构将被包含在导出文件中。
rows=y
: 这表示导出时将包括表中的所有行数据。如果没有指定rows=y
,则默认情况下只导出表结构而不导出数据。
file=exp1.dmp
: 这指定了导出文件的名称为exp1.dmp
。导出文件通常是一个包含了导出数据和结构的二进制文件。综合起来,这个导出命令的目的是将
hr
用户的employees
和departments
表导出到一个名为
exp1.dmp
的文件中,包括表结构和数据。
exp system/manager OWNER=hr direct=y file=expdat.dmp
这是一个 Oracle 数据库导出(export)命令,使用
exp
工具将hr
用户的相关对象导出到一个数据文件中。让我解释一下这个命令的各个部分:
exp
: 这是 Oracle 数据库导出工具的命令行命令。
system/manager
: 这是用户名和密码的组合,表示你正在使用system
用户以密码manager
登录到数据库。system
用户是 Oracle 数据库的管理员用户之一。
OWNER=hr
: 这指定了要导出的对象的所有者是hr
用户。在这个命令中,你正在导出hr
用户拥有的所有对象,包括表、视图等。
direct=y
: 这表示使用直接路径导出。当direct
设置为y
时,数据将直接从数据库文件读取,并且不经过 SQL*Net 网络层。这可以提高导出的性能。
file=expdat.dmp
: 这指定了导出文件的名称为expdat.dmp
。导出文件通常是一个包含了导出数据和结构的二进制文件。综合起来,这个导出命令的目的是以
system
用户身份登录到 Oracle 数据库,将hr
用户的相关对象以直接路径导出到一个名为expdat.dmp
的文件中。
exp \'username/password AS SYSDBA\'
TRANSPORT_TABLESPACE=y
TABLESPACES=ts_emp
log=ts_emp.log
这是一个 Oracle 数据库导出(export)命令,使用
exp
工具将指定表空间 (ts_emp
)的相关信息导出。以下是这个命令的解释:
exp
: 这是 Oracle 数据库导出工具的命令行命令。
'username/password AS SYSDBA'
: 这是登录到数据库的用户名和密码。AS SYSDBA
表示以 SYSDBA 权限登录。在这里,你需要替换'username/password'
为实际的用户名和密码。
TRANSPORT_TABLESPACE=y
: 这指定了要进行表空间传输。表空间传输是一种将表空间及其相关对象导出并在另一个数据库中导入的方法。
TABLESPACES=ts_emp
: 这指定了要导出的表空间的名称,即ts_emp
。
log=ts_emp.log
: 这指定了导出操作的日志文件的名称为ts_emp.log
。日志文件记录了导出操作的详细信息,可用于排查问题。综合起来,这个导出命令的目的是以 SYSDBA 权限登录到数据库,将表空间
ts_emp
及其相关对象导出,并将导出操作的详细信息记录到日志文件ts_emp.log
中。这个导出文件可以用于在另一个数据库中导入相同的表空间及其对象。请确保替换'username/password'
为实际的数据库用户名和密码。
2、Invoking Import 调用导入
语法:
imp keyword = value or keyword = value,value2,... value n
举例说明:
imp hr/hr TABLES=employees,departments rows=y file=exp1.dmp
这是一个 Oracle 数据库导入(import)命令,使用
imp
工具将从先前导出的exp1.dmp
文件中恢复(导入)hr
用户的employees
和departments
表。以下是这个命令的解释:
imp
: 这是 Oracle 数据库导入工具的命令行命令。
hr/hr
: 这是用户名和密码的组合,表示你正在使用hr
用户登录到数据库。第一个hr
是用户名,第二个hr
是密码。
TABLES=employees,departments
: 这指定了要导入的表的列表,即employees
和departments
表。在导入时,这些表的数据和结构将从导入文件中还原。
rows=y
: 这表示导入时将包括表中的所有行数据。如果没有指定rows=y
,则默认情况下只导入表结构而不导入数据。
file=exp1.dmp
: 这指定了导入文件的名称为exp1.dmp
。导入文件通常是一个包含了导出数据和结构的二进制文件。综合起来,这个导入命令的目的是使用
hr
用户登录到数据库,从exp1.dmp
文件中导入employees
和departments
表的数据和结构。这样可以将先前导出的表的内容还原到数据库中。
imp system/manager FROMUSER=hr file=exp2.dmp
这是一个 Oracle 数据库导入(import)命令,使用
imp
工具从exp2.dmp
文件中恢复(导入)hr
用户的相关对象。以下是这个命令的解释:
imp
: 这是 Oracle 数据库导入工具的命令行命令。
system/manager
: 这是用户名和密码的组合,表示你正在使用system
用户以密码manager
登录到数据库。system
用户是 Oracle 数据库的管理员用户之一。
FROMUSER=hr
: 这指定了导入的对象的所有者是hr
用户。在这个命令中,你正在导入hr
用户拥有的相关对象,包括表、视图等。
file=exp2.dmp
: 这指定了导入文件的名称为exp2.dmp
。导入文件通常是一个包含了导出数据和结构的二进制文件。综合起来,这个导入命令的目的是以
system
用户身份登录到数据库,从exp2.dmp
文件中导入hr
用户的相关对象的数据和结构。这可以将先前导出的hr
用户的内容还原到数据库中。请注意,在实际应用中,请确保system
用户拥有足够的权限来执行导入操作。
imp \'username/password AS SYSDBA\'
TRANSPORT_TABLESPACE=y
TABLESPACES=ts_employees
imp
: 这是 Oracle 数据库导入工具的命令行命令。
'username/password AS SYSDBA'
: 这是登录到数据库的用户名和密码。AS SYSDBA
表示以 SYSDBA 角色登录。在这里,你需要替换'username/password'
为实际的用户名和密码。
TRANSPORT_TABLESPACE=y
: 这指定了要进行表空间传输。表空间传输是一种将表空间及其相关对象导入到数据库中的方法。
TABLESPACES=ts_employees
: 这指定了要导入的表空间的名称,即ts_employees
。这个导入命令的目的是以 SYSDBA 角色登录到数据库,然后将
ts_employees
表空间及其相关对象的数据和结构从先前导出的文件中导入。请确保替换'username/password'
为实际的数据库用户名和密码,并注意导入操作可能需要高级权限,尤其是使用 SYSDBA 角色的情况。
- 为特定用户导入选定表
imp system/pass FILE=dba,dmp FROMUSER=scott TABLES=(emp,dept)
- 导入其他用户导出的表
imp system/pass FILE=blake,dmp FROMUSER=blake TOUSER=scott \
TABLES=(unit,manager)
imp system/pass FILE=blake,dmp FROMUSER=blake TOUSER=scott \
TABLES=(*)
- 使用分区级导入导入会话
imp scott/tiger TABLES= (emp pl,emp:p3) FILE=sctl.dmp ROWS=y
- 使用模式匹配导入各种表
imp system/pass FROMUSER=scott FILE=scott.dmp TABLES=(%d%,b%s)
完结散花
Oracle学习系列到此结束!!!