iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle数据泵技术常用操作有哪些
  • 397
分享到

Oracle数据泵技术常用操作有哪些

2024-04-02 19:04:59 397人浏览 八月长安
摘要

这篇文章主要介绍“oracle数据泵技术常用操作有哪些”,在日常操作中,相信很多人在Oracle数据泵技术常用操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Orac

这篇文章主要介绍“oracle数据泵技术常用操作有哪些”,在日常操作中,相信很多人在Oracle数据泵技术常用操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle数据泵技术常用操作有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1. 为什么选择数据泵

数据泵是Oracle 10g开始引入的新技术,对现在来说已经不是新技术了,11g都已经结束标准支持期了。技术更新

从10g版本开始,数据泵技术跟随新版本进行不断的完善,对新版本的Oracle数据库具有更强的适应性。BUG更少

数据泵可以使用直接路径、并行等特性,对大数据量的迁移来说,具有更好的性能,可以减少大量导入导出时间。性能更好

exp/imp不能导出空表,而且由于从10g开始停止更新,后面版本引入的新对象都不支持导出,如自定义对象。功能更强

1.1. 与exp/imp的主要区别

Ø  exp/imp是客户端工具,可以在客户端使用;数据泵是服务端工具,只能在服务端使用。

Ø  exp/imp不能导出空表;数据泵可以。

Ø  exp/imp跟数据泵导出的文件不能通用。

2. 基本概念

数据泵的命令行命令是expdp/impdp,是一种数据库之间移动数据的工具。

目录(directory)是Oracle的一种对象类型,可以认为是一个指向物理存储路径的指针,用来指定数据泵导出导入文件使用的路径。

模式(schema)是一组数据库对象的集合,一般一个用户对应一个schema。

3. 基本步骤

3.1 创建目录

sql> create directory dump_dir   as '/home/oracle/dump';

dump_dir 是目录名称;可以根据实际情况自己定义,不重复即可,如果系统中已经存在,可以直接使用;

/home/oracle/dump 是操作系统物理路径;必须保证该路径真实存在,并具有足够空间存放备份文件;

3.2 授权

SQL> grant read,write on   directory dump_dir to public;

dump_dir 是上面创建得目录名称;

public 表示这个目录是公开的;也可以针对某个用户授权;

3.3 执行导入导出

$ expdp system/dbmanager directory=dump_dir   full=Y dumpfile=full_20190101.dmp logfile=full_expdp_20190101.log

$ impdp system/dbmanager directory=dump_dir dumpfile=full_20190101.dmp logfile=full_impdp_20190101.log

system 是导出命令所用的用户;

dbmanager 是system用户的密码;

dump_dir 是上面创建得目录名称;

full=Y 表示全库导出;

dumpfile/logfile 根据实际情况命名即可;该命名需要能够描述备份的内容及时间等基本信息;该命名重复的话会覆盖

4. 常用方式

4.1 expdp 导出

##导出一张表,例:

expdp system/dbmanager   directory=dump_dir   dumpfile=emp_20190101.dmp   logfile=emp_expdp_20190101.log tables=scott.emp

##导出多张表,例:

expdp system/dbmanager   directory=dump_dir   dumpfile=empdept_20190101.dmp   logfile=empdept_expdp_20190101.log tables=\(scott.emp,scott.dept\)

##导出一个用户(导出这个用户的所有对象),例:

expdp system/dbmanager   directory=dump_dir dumpfile=scott_20190101.dmp   logfile=scott_expdp_20190101.log   schemas=scott

##导出多个用户,例:

expdp system/dbmanager   directory=dump_dir dumpfile=scotthr_20190101.dmp   logfile=scotthr_expdp_20190101.log schemas=\(scott,hr\)

##导出整个数据库(sys的用户数据不会被导出),例:

expdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_expdp_20190101.log full=y

##并行导出,例:

expdp system/dbmanager   directory=dump_dir dumpfile=scott_20190101_%U.dmp logfile=scott_expdp_20190101.log schemas=scott   parallel=8

##导出用户元数据(包含表定义、存储过程、函数等等),例:

expdp system/dbmanager   directory=dump_dir dumpfile=scott_20190101.dmp   logfile=scott_expdp_20190101.log   schemas=scott content=metadata_only

##导出用户存储过程,例:

expdp system/dbmanager   directory=dump_dir dumpfile=scott_20190101.dmp   logfile=scott_expdp_20190101.log   schemas=scott include=procedure

##导出用户函数和视图,例:

expdp   system/dbmanager directory=dump_dir dumpfile=scott_20190101.dmp   logfile=scott_expdp_20190101.log   schemas=scott include=\(function,view\)

##导出一个用户,但不包括索引,例:

expdp   system/dbmanager directory=dump_dir dumpfile=scott_20190101.dmp   logfile=scott_expdp_20190101.log   schemas=scott exclude=index

4.2 impdp导入

##导入dmp文件中的所有数据,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log full=y

##导入一张表,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log tables=scott.emp

##导入多张表,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log tables=\(scott.emp,scott.dept\)

##导入一个用户,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log schemas=scott

##导入多个用户,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log schemas=\(scott,hr\)

##并行导入,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101_%U.dmp   logfile=full_impdp_20190101.log   parallel=5

##导入元数据(包含表定义、存储过程、函数等等),例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log content=metadata_only

##导入存储过程,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log include=procedure

##导入函数和视图,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log include=\(function,view\)

##导入数据,但不包括索引,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log exclude=index

##重命名表名导入,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log   remap_table=scott.emp:emp1

##重命名schema名导入,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log remap_schema=scott:tim

##重命名表空间名导入,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log remap_tablespace=users:pams

##将dmp文件的ddl语句导入到一个文件,不导入数据库,例:

impdp system/dbmanager   directory=dump_dir dumpfile=full_20190101.dmp   logfile=full_impdp_20190101.log sqlfile=import.sql

5. 常用参数

5.1 expdp参数说明

attach=[schema_name.]job_name

说明:nodefault。连接到作业,进入交互模式。

##导出模式,以下五个参数互斥:

full=[ Y | N ]

说明:导出所有数据和元数据。要执行完全导出,需要具有datapump_exp_full_database角色。

schemas=schema_name[,...]

说明:导出用户。

tables=[schema_name.]table_name[:partition_name][,...]

说明:导出表。

tablespaces=tablespace_name[,...]

说明:导出表空间。

transport_tablespaces=tablespace_name[,...]

说明:导出可移动表空间。

##过滤条件,以下三个参数互斥:

query=[schema.][table_name:]   query_clause

说明:按查询条件导出。

exclude=object_type[:name_clause][,...]

说明:排除特定的对象类型。

include=object_type[:name_clause][,...]

说明:包括特定的对象类型。

##其他参数:

directory=directory_object

说明:导出路径。

dumpfile=file_name[,...]

说明:导出的文件名。

logfile=file_name

说明:导出的日志文件名。

content=[ all |   data_only | metadata_only]

说明:指定要导出的数据。

parallel=integer

说明:并行度,该值应小于等于dmp文件数量,或可以为'dumpfile='使用替换变量'%U'。RAC环境中,并行度大于1时,注意目录应该为共享目录。

compression=[ all | data_only   | metadata_only | none ]

说明:压缩。

parfile=[directory_path]file_name

说明:指定导出参数文件名称。

filesize=integer[b|kb|mb|gb|tb]

说明:指定每个dmp文件的最大大小。如果此参数小于将要导出的数据大小,将报错ORA-39095。

5.2 impdp参数说明

attach=job_name

说明:连接到作业,进入交互模式。

导入模式,以下五个参数互斥。

full=[ Y | N ]

说明:导入dmp文件的所有数据和元数据。

schemas=schema_name[,...]

说明:导入用户。

tables=[schema_name.]table_name[:partition_name][,...]

说明:导入表。

tablespaces=tablespace_name[,...]

说明:导入表空间。

transport_tablespaces=tablespace_name[,...]

说明:导入可移动表空间。

过滤条件,以下三个参数互斥:

query=[schema.][table_name:]   query_clause

说明:按查询条件导入。

exclude=object_type[:name_clause][,...]

说明:排除特定的对象类型。

include=object_type[:name_clause][,...]

说明:包括特定的对象类型。

其他参数:

directory=directory_object

说明:导入路径。

dumpfile=file_name[,...]

说明:导入的文件名。

logfile=file_name

说明:导入的日志文件名。

content=[ all | data_only | metadata_only ]

说明:指定要导入的数据。

parallel=integer

说明:并行度,该值应小于等于dmp文件数量,或可以为'dumpfile='使用替换变量'%U'。

parfile=[directory_path]file_name

说明:指定导入参数文件名称。

REMAP_TABLE=[schema.]old_tablename[.partition]:new_tablename

说明:允许导入期间重命名表名。

REMAP_SCHEMA=source_schema:target_schema

说明:允许导入期间重命名schema名。

REMAP_TABLESPACE=source_tablespace:target_tablespace

说明:允许导入期间重命名表空间名。

SQLFILE=[directory_object:]file_name

说明:根据其他参数,将所有的 SQL DDL   写入指定的文件。

TABLE_EXISTS_ACTION=[   SKIP | APPEND | TRUNCATE | REPLACE ]

说明:default:skip(if   content=data_only is specified,then the default is append)

6. 注意事项

6.1 directory相关SQL语句:

##查看目录

select * from   dba_directories;

##创建目录

create directory dump_dir   as '/home/oracle/tmp';

##目录授权

grant read,write on   directory my_dir to public;

6.2 expdp导出

1、导数的数据库用户需要拥有对directory_object的读写权限。

2、操作系统中需要已经存在directory_object指定的路径。

3、oracle用户拥有对directory_object指定路径的读写权限。

4、system用户导出用户,会将创建用户和授予系统权限的元数据也导出,普通用户不能导出这些元数据。

6.3 impdp导入

1、expdp导出的文件不能使用imp导入,只能通过impdp导入数据库。

2、导入时遇到已存在的对象,默认会跳过这个对象,继续导入其他对象。

3、导入时应确认dmp文件和目标数据库的tablespace、schema是否对应。

4、导入dmp文件时,应确定dmp文件导出时的命令,以便顺利导入数据。

6.4 交互模式

进入交互可以操作导入导出作业。

进入交互模式的方法:

1、导入导出命令行执行期间按Ctrl + c

2、expdp attach=jobname或impdp   attach=jobnam

查看导入导出日志可以看到jobname,也可以通过查询dba_datapump_jobs找到jobname。

6.5 常见报错

系统目录未建立,报错:

ORA-39002: invalid   operation

ORA-39070: Unable to   open the log file.

ORA-29283: invalid   file operation

ORA-06512: at   "SYS.UTL_FILE", line 536

ORA-29283: invalid   file operation

impdp导入exp导出的dmp文件,报错:

ORA-39000: bad dump   file specification

ORA-39143: dump file   "/orabak/pams_20190101.dmp" may be an original export dump file

如果导出的数据库版本比导入的数据版本高,需要在导出时加上参数version=要导入的数据库版本。否则报错:

ORA-39001: invalid   argument value

ORA-39000: bad dump   file specification

ORA-31640: unable to   open dump file "/orabak/pams_20190101.dmp" for read

ORA-27037: unable to   obtain file status

到此,关于“Oracle数据泵技术常用操作有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle数据泵技术常用操作有哪些

本文链接: https://www.lsjlt.com/news/63023.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle数据泵技术常用操作有哪些
    这篇文章主要介绍“Oracle数据泵技术常用操作有哪些”,在日常操作中,相信很多人在Oracle数据泵技术常用操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Orac...
    99+
    2024-04-02
  • Oracle数据泵常用命令有哪些
    本篇内容主要讲解“Oracle数据泵常用命令有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle数据泵常用命令有哪些”吧!directory相关SQ...
    99+
    2024-04-02
  • MySQL数据库常用操作和技巧有哪些呢
    今天就跟大家聊聊有关MySQL数据库常用操作和技巧有哪些呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL数据库可以说是DBA们最常见和常用...
    99+
    2024-04-02
  • JavaScript数组常见操作技巧有哪些
    这篇文章主要介绍“JavaScript数组常见操作技巧有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript数组常见操作技巧有哪些”文章能帮助大家解决问题。一、创建数组创建数组是基...
    99+
    2023-06-29
  • Pandas数据操作及数据分析常用技术介绍
    目录DataFrame的应用数据分析统计描述缺失值处理异常值处理排序和Top-N分组聚合操作透视表和交叉表数据可视化Pandas是一个强大的数据分析工具,它提供了数据处理、清洗、转换...
    99+
    2023-05-18
    Pandas数据操作 Pandas数据分析
  • oracle技术有哪些
    oracle 技术是一套用于管理和分析数据的软件,包括 oracle 数据库、应用程序、云基础设施和中间件。它提供高性能、可靠性、成本效益、全面的工具和社区支持。 Oracle 技术 ...
    99+
    2024-04-19
    oracle
  • 大数据技术有哪些
    本篇内容介绍了“大数据技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  大数据的概念,指的是无法在一定时间内用常规软件工具对其内容...
    99+
    2023-06-02
  • Oracle数据泵常用的命令整理
    本篇内容介绍了“Oracle数据泵常用的命令整理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言expd...
    99+
    2024-04-02
  • CDN技术有哪些作用
    CDN技术的作用有:1、采用DNS负载均衡的技术,可以智能选择服务器,加快远程访问的速度;2、提供镜像服务,能解决不同运营商之间的互联问题,实现跨运营商的网络加速;3、能自动生成镜像Cache服务器,优化带宽,减轻源站点的负载;4、采用智能...
    99+
    2024-04-02
  • 数据采集技术有哪些
    数据采集技术有:1、传感器采集;2、爬虫采集;3、录入采集;4、导入采集;5、接口采集等。数据采集,是指从不同来源获取数据的过程。根据采集数据的类型数据采集可以分为不同的方式,主要方式有:传感器采集、爬虫采集、录入采集、导入采集、接口采集等...
    99+
    2023-07-10
  • Redis常用数据类型操作指令有哪些
    这篇文章将为大家详细讲解有关Redis常用数据类型操作指令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis 命令用于在 redis 服务上执行操作。要在 r...
    99+
    2024-04-02
  • Oracle数据库中有哪些操作语句
    这篇文章将为大家详细讲解有关Oracle数据库中有哪些操作语句,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、Oracle数据库操作1、创建数据库crea...
    99+
    2024-04-02
  • CSS常见技术有哪些
    这篇文章主要介绍了CSS常见技术有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS常见技术有哪些文章都会有所收获,下面我们一起来看看吧。1、介绍一下标准的 CSS 的盒...
    99+
    2024-04-02
  • Oracle数据库中的SQL优化技术有哪些
    使用索引:通过合适地创建索引,可以加快数据库查询的速度。需要根据查询的字段和条件来选择合适的索引。 优化查询语句:尽量避免使...
    99+
    2024-04-09
    Oracle SQL
  • 常见Serialize技术有哪些
    本篇内容主要讲解“常见Serialize技术有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常见Serialize技术有哪些”吧!【一、常见的在API及消息通信调的用中Serialize方案...
    99+
    2023-06-04
  • kvm常用操作有哪些
    小编给大家分享一下kvm常用操作有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!KVM (全称是 Kernel-based Virtual Machine) ...
    99+
    2023-06-28
  • FreeBSD常用操作有哪些
    这篇“FreeBSD常用操作有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“FreeBSD常用操作有哪些”文章吧。1. ...
    99+
    2023-06-27
  • php常用缓存技术有哪些
    在PHP中,常用的缓存技术有以下几种:1. 文件缓存:将数据以文件的形式存储在服务器的文件系统中。可以使用PHP的文件操作函数(如f...
    99+
    2023-08-24
    php
  • Python爬虫数据操作的技巧有哪些
    这篇文章主要讲解了“Python爬虫数据操作的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python爬虫数据操作的技巧有哪些”吧! 需求爬取某网站的项目列表页,获取其...
    99+
    2023-06-16
  • YARN常用操作有哪些
    这篇文章将为大家详细讲解有关YARN常用操作有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。YARN (Yet Another Resource Negotiator,另一种资源协调者)是一 种新的 ...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作