`

oracle数据库使用exp/imp和expdp/impdp备份还原数据库

 
阅读更多

create tablespace C_MAIN DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\main.dbf' SIZE 1024M

一.exp/imp备份还原
可使用plsql进行这种oracle数据库的备份和还原。也可以使用cmd的命令行方式进行备份还原。
操作步骤大致有:
打开cmd窗口,切换到d:\oracle10\product\10.1.0\db_1\bin\(oracle安装目录下的可执行文件的文件夹目录)。
调用命令:

备份:
exp user/pass@database file=F:\dump\20120521.dmp owner=(user) 
log=F:\dump\user-exp.log

还原
imp newuser/pass@databasefile=F:\dump\20120521.dmp  fromuser=user touser=newuser log=F:\dump\user-imp.log

二.使用expdp、impdp备份还原

登录linux系统,sqlplus "/as sysdba"进入sql命令行,

2.1查看目录:
SQL>select * from dba_directories;
2.2、指定dump_dir目录:(目录维护命令:)
SQL>create directory dump_dir as '/oracle/backup';// 建立
Drop directory dump_dir;//删除
2.3、为用户对该目录操作授权:
SQL>grant read,write on directory dump_dir to user_name;
2.4进行命令操作:
备份:
expdp user/pass DIRECTORY = dump_dir DUMPFILE=user.dmp SCHEMAS=user logfile=user-expdp.log  version=10.2.0.1.0 (需要导入机器的version:用于将高版本导出导入到低版本oracle数据库)
还原:
impdp newuser/pass  DIRECTORY=dump_dir DUMPFILE=user.dmp REMAP_SCHEMA=user:newuser logfile=user-impdp.log table_exists_action=replace

REMAP_SCHEMA参数是:源scheme:目标scheme.

三、遇到的问题:
3.1processing object type scheme_export/table/statistics/table_statistics。执行到这里出现假死,停在这个画面很长时间
可以加一个参数EXCLUDE=TABLE_STATISTICS。我是放着过了段时间回来执行完了。
3.2ORA-39213: Metadata processing is not available 解决方法:
SQL> execute dbms_metadata_util.load_stylesheets; 
==========================================================
网上资料参考:

可参考资料 http://www.cnblogs.com/lanzi/archive/2011/01/06/1927731.html impdp和expdp的参数都很详细


a. 创建到服务端的dblink 
create database link link_name connect to username identified by password using 'connect_string' ;//username和password是server端的 
b.conn / as sysdba 
create or replace directory dir as 'directory'; 
grant read,write on directory dir to username; 

c.expdp username/password directory=dir network_link=link_name ... //这里的username用创建dblink的那个用户,directory也是目标数据库创建的  

4.如果想不生成dmp文件而直接导入一个数据库,原理和2类似,直接使用impdp带network_link ,这样可以直接impdp,而绕过了expdp的步骤

以及文章:
http://tech.it168.com/db/o/2007-03-14/200703140943314.shtml



引用

要了解impdp,请先了解导出,我之前作过导出的笔记:oracle
10g数据泵之expdp。这两个笔记也许只对程序员有用,通常用于把正式区的数据导入到测试区,对数据库管理员也许帮助不大,他们使用这些工具大多是用于数据备份。

impdp可以将数据加载到整个数据库、特定的方案(也就是用户)、特定的表空间或者特定的表,也可以将表空间传输到数据库。impdp支持网络模式操作,即从另一个数据库加载数据。

使用impdp导入数据
1.指定转储文件(存放导出数据的文件)存放的目录
SQL>connect sys/password as sysdba;
SQL>create directory dump_dir as ‘d:\dump’;
2.使用impdp命令
开始-->运行-->cmd
impdp username/password parameter1[,parameter2,….]
其中,username表示用户名;password表示用户密码;parameter1和parameter2表示参数。参数的类型有近40个,可以使用命令impdp help=y查看所有参数和参数的含义。下面介绍一些对导入数据库和表需要的常用参数,它们的含义和在expdp中的含义完全相同。

content :指定导入的内容。语法格式:content={all| data_only|metadate_only}。其中all表示导入对象定义及其数据,data_only表示只导入对象数据,metadate_only表示只导入对象定义。默认为all

directory:指定转储文件和日志文件所在的默认位置(也就是保存数据的文件位置)。语法格式:directory=direcotry_object。direcotry_object 是create directory语句创建的目录对象。

dumpfile:指定转储文件的名称。语法格式:dumpfile=[ direcotry_object:]file_name[,….]。direcotry_object默认为上面directory参数指定的目录对 象。file_name默认名称是expdat.dmp。如果导入文件过大,可以指定多个文件名,如 direcotry_object:mydb_%U.dmp。”%U”是一个占位符,使用这种方式不会出现同名的文件。

logfile:指定日志文件的名称。语法格式:logfile=[ direcotry_object:]file_name。direcotry_object默认为directory参数指定的目录对象。file_name日志文件,默认名称是export.log。

exclude:导入时要排除的对象。语法格式: exclude=object_type[:name_clause][,….]。object_type表示对象类型,如table、view、 index、function、preocedure,name_clause表示使用SQL语句,指定对象名的筛选条件,如table:”like ‘emp%’”表示排除emp开始的任何表。

include:导入时要包含的对象。语法格式:include =object_type[:name_clause][,….]。object_type和name_clause含义同exclude参数解释一样。include和exclude不可以同时使用。当一个对象被包含时,所有相关对象也被包含。

network_link:指定网格导入时的数据库链接名。语法格式:network_link=database_link。database_link表示远程数据库链接名。

query:指定导入数据的where条件。语法格式:query=[schema.][table_name:]query_clause。其中 schema表示方案名,也就是用户名,table_name表示表名,query_clause表示条件子句,即where子句。

tables:指定导入表。语法格式:tables=[schema.]table_name[,….]。schema表示方案名,table_name表示表名

full:指定是否将整个数据库导入。语法格式:full={y|n}。y表示执行数据库导入,n表不执行。默认为n。

parfile:指定导入参数文件名。把impdp命令所需的参数写在一个文件中,执行impdp命令时指定这个文件,而不用指定各种参数

导入实例
顺便把expdp命令也写进来,以方便对比。为了不和上一篇导出笔记重复,这里以导入远程数据库的数据到本地数据库为例。
导出远程数据库

1.估算转储文件大小
如果数据库很大,这个过程也许会执行很久。在导出数据库之前,最好先估算一下转储文件(导出到的文件)的大小,以便确定合适filesize参数值,和确定是否有足够的磁盘空间。使用语法:
expdp username/password@234DB full=y  estimate_only=y  nologfile=y;
其中estimate_only=y表示只估算转储文件的占的磁盘空间,不执行导出操作;@234DB表示远程数据库,它是在tnsnames.ora文件中定义的。

2.导出数据库
expdp username/password@234DB directory=dump_dir dumpfile=mydb_%U.dmp logfile=mydb.log filesize=200m full=y
其中dump_dir表示导出文件的目录,由于这里是导出远程数据库,所以这个目录是在远程机子中的;%U是一个占位符,表示01~99的两位数,这时执行会创建如MYDB_21.DMP之类的文件

3.导入整个数据库
impdp username/password directory=dump_dir dumpfile=mydb_%U.dmp full=y;
其中dump_dir表示入出文件的目录,这里要把远程导出的文件拷贝到本地机子上

导入远程表
1.导出表
expdp username/password@234DB  directory=dump_dir dumpfile=mytable.dmp tables=schemas.emp
其中schemas表示方案(即用户),emp表示远程数据库名。使用这种方式转储文件将保存在远程服务器的操作系统中。如果要把转储文件保存到本地机子,使用以下语法:
expdp username/password  directory=dump_dir dumpfile=mytable.dmp tables=schemas.emp network_link=to234db
其中username/password分别是本机数据库用户名和密码,to234db是本地数据库指向远程数据库的database link。这种方式可以把数据保存到本机中,但是会产生网络流量。

2.导入表
impdp username/password directory=dump_dir dumpfile=mytable.dmp tables=schemas.emp
其中schemas要和远程用户名相同,也就是说如果本地没有这个用户,要先创建用户,格式如:
grant connect,resource to schemas identified by password。emp是要导入的表,如果本地schemas方案已经存在要导入的表,可以指定tables_exists_action参数,使用格 式是tables_exists_action={skip|append|truncate|replace}这四个参数值分别表示忽略这个表、把记录 追加到该表后面、先删除表数据再追加记录和使用新表替代已经存在的表。

come from:http://blog.sina.com.cn/s/blog_5016113a0100an7p.html




 

分享到:
评论

相关推荐

    exp,imp 与 expdp,impdp 对比 及使用中的一些优化事项.doc

    oracle exp,imp 与 expdp,impdp 对比 及使用中的一些优化事项

    Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令

    Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令

    ORACLE EXPDPIMPDP 参数详解

    oralce详细导入导出参数解释,详细解释了与imp,exp的区别

    ORACLE数据泵impdp与expdp

    在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项; EXP和IMP是客户段工具程序,它们既可以在...

    Oracle12C备份恢复培训整体内容.docx

    逻辑备份--exp/imp、expdp/impdp 物理备份--rman 2.具体介绍: 2.1 逻辑备份: 2.1.1 Oracle逻辑备份的概念: 逻辑备份就是创建数据库对象的逻辑拷贝并存入一个二进制转储文件:.dmp文件 这些记录的导出与其物理...

    impdp / expdp or imp/exp

    Oracle 数据库备份 Oracle数据库备份 命令 的参数解释

    Linux:Oracle导出导入数据泵(EXPDP,IMPDP)

    expdp/impdp和exp/imp的区别 exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。 expdp和impdp是服务端的工具程序,他们只能在Oracle服务端使用,不能在客户端使用。 imp只适用于exp导出的...

    第8课 数据备份恢复及数据迁移.pdf

    理备份 – 冷备份 – 热备份 � 逻辑备份 – exp/imp – expdp/impdp racle的恢复 � 实例恢复 � 介质恢

    oracle备份与恢复

    将数据库中的用户对象导出到一个二进制文件中,逻辑备份使用导入导出工具:EXPDP/IMPDP或EXP/IMP,由于将数据库对象导出到操作系统二进制文件中,或由二进制文件中把数据导入到数据库中。逻辑备份可以作为备份的补充...

    Oracle 12c-备份恢复学习实践手册合集

    Oracle 12c 闪回技术 Flashback Database.pdf Oracle 12c 闪回技术 Oracle Flashback技术.pdf Oracle 12c 管理UNDO.pdf Oracle 12c 数据库备份和恢复概述.pdf Oracle 12c 用户管理的...Oracle 12c EXP和IMP指令详解.pdf

    Oracle数据库导入导出详细操作

    oracle 数据库expdp 和impdp 详细操作说明 针对imp、exp 做简要说明

    Oracle 数据泵详解

    在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项: 1)EXP和IMP是客户端工具程序,它们既...

    Centos7.6下oracle impdp导入和expdp导出.docx

    Centos7.6下oracle impdp导入和expdp导出,

    oracle数据迁移.docx

    文档是关于oracle 数据迁移方面的 ,说明了 传统迁移工具 exp/imp 与 数据泵 expdp/impdp 的 区别 ,以及 数据泵 重要参数解释 。并举例说明了 数据泵的 迁移实例 。

    oracle 导入导出命令详解

    oracle数据库导入导出命令imp exp impdp expdp的使用详解,很有用!

    Oracle数据导出导入简介

    介绍了oracle数据库中使用exp,expdp,imp,impdp导出导入数据主方法,适合刚接触oracle数据的同学了解下。共同学习。

    图解Oracle数据库小版本升级过程

    如果是从10.1.0.1.0 升级到10.2.0.4.0或者从oracle 10g升级到11g就叫大版本升级,在这种情况下通常是先将当前数据库通过EXPDP(exp)或者RMAN做全备份,升级数据库软件,然后再用IMPDP(imp)或者RMAN恢复到新的数据库。...

    Oracle11g客户端安装包.zip

    Windows环境使用exp,imp,expdp,impdp,sqldur2等导入导出数据命令的时候,需要安装Oracle11g客户端环境

    oracle数据库备份恢复

    该文档详细的整合了oracle数据库备份,恢复的指令操作,并进行了详细的描述

Global site tag (gtag.js) - Google Analytics