Oracle(2-18)Export and Import Utilities

2023-12-18 08:47:47


在这里插入图片描述

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 工具将用户 hremployeesdepartments 表导出到一个数据文件中。让我解释一下这个命令的各个部分:

  • exp 这是 Oracle 数据库导出工具的命令行命令。

  • hr/hr 这是用户名和密码的组合,表示你正在使用 hr 用户登录到数据库。第一个 hr 是用户名,第二个 hr 是密码。

  • TABLES=employees,departments 这指定了要导出的表的列表,即 employeesdepartments 表。在导出时,这些表的数据和结构将被包含在导出文件中。

  • rows=y 这表示导出时将包括表中的所有行数据。如果没有指定 rows=y,则默认情况下只导出表结构而不导出数据。

  • file=exp1.dmp 这指定了导出文件的名称为 exp1.dmp。导出文件通常是一个包含了导出数据和结构的二进制文件。

综合起来,这个导出命令的目的是将 hr 用户的 employeesdepartments 表导出到一个名为
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 用户的 employeesdepartments 表。以下是这个命令的解释:

  • imp 这是 Oracle 数据库导入工具的命令行命令。

  • hr/hr 这是用户名和密码的组合,表示你正在使用 hr 用户登录到数据库。第一个 hr 是用户名,第二个 hr 是密码。

  • TABLES=employees,departments 这指定了要导入的表的列表,即 employeesdepartments 表。在导入时,这些表的数据和结构将从导入文件中还原。

  • rows=y 这表示导入时将包括表中的所有行数据。如果没有指定 rows=y,则默认情况下只导入表结构而不导入数据。

  • file=exp1.dmp 这指定了导入文件的名称为 exp1.dmp。导入文件通常是一个包含了导出数据和结构的二进制文件。

综合起来,这个导入命令的目的是使用 hr 用户登录到数据库,从 exp1.dmp 文件中导入 employeesdepartments 表的数据和结构。这样可以将先前导出的表的内容还原到数据库中。

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学习系列到此结束!!!

文章来源:https://blog.csdn.net/yushaoyyds/article/details/134956602
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。