expdp导出表结构_Oracle用exp导出部分表和expdp

Oracle使用exp导出指定表或排除某几个表导出备份

Oracle10g之后提供了expdp

和 impdp

导出导入命令,导出效率和速度较快,在本地服务器的情况下,可以使用此命令导出、导入数据,而且可以使用条件命令指定不导出某几个表。但是expdp在客户端导出的时候无法导出,通常要使用dblink

进行操作,太麻烦。那使用exp可以么?今日经过研究测试,可以使用exp命令指定导出某些表。

Expdp命令:

EXPDP

system/**** DIRECTORY=zh0520

SCHEMAS=zh20150327 DUMPFILE=_EASBAK.DMP

LOGFILE=_EASBAK.LOG

比如系统数据库里面有5000个表,每天导出备份的时候,有几个表不用导出(因为某几个附件表或者图片表太大,通常每个表的大小超过10G,导出效率低)。方法如下:

一、生成exp参数文件

sqlplus

"/as sysdba"

注:这里使用system用户也可。

SQL>set heading off

SQL>spool d:\databak\par.file

SQL>select 'tables=('||chr(10) from

dual;

--排除几张表及系统用户

SQL>select table_name||',' from dba_tables where owner in ('ZH20150526') and

table_name not in ('AAAAAA','BBBB','CCCC','DDDD');

SQL>select ')' from dual;

SQL>spool off

找到d:\databak\par.file

文件,打开,修改,将里面的sql语句删除。

Par.file文件的内容如下:

File=d:\databak\exp111.dmp

tables=(

T_BAS_ELEMENTGROUP,

T_BAS_ELEMENTPROPERTY,

T_BAS_ELEMENTTYPE

) log=d:\databak\exp111.log

执行导出:

exp

zh20150526/zh20150526@zheas250

parfile=d:\databak\par.file

成功执行!

备注:Par.file

文件的内容里面的表,可以通过PLSQL

Developer 等工具 执行语句:

select table_name||',' from dba_tables where

owner in ('ZH20150526') and table_name not in

('AAAAAA','BBBB','CCCC','DDDD');

然后复制到par.file文件里面。

导出日志文件exp111.log内容:

连接到: Oracle

Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit

Production

With the Partitioning,

OLAP, Data Mining and Real Application Testing options

已导出ZHS16GBK

字符集和AL16UTF16

NCHAR 字符集

即将导出指定的表通过常规路径...

. . 正在导出表T_BAS_ELEMENTGROUP导出了11 行

. . 正在导出表T_BAS_ELEMENTPROPERTY导出了2470 行

. . 正在导出表T_BAS_ELEMENTTYPE导出了97 行

成功终止导出,

没有出现警告。

正常exp

导出的命令产生的日志文件通常如下:

exp tea/tea@tea

buffer=409600 file=d:\databak\tea.dmp

log=d:\databak\tea.log

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 -

Production

With the Partitioning, OLAP and Data Mining options

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的用户...

. 正在导出 pre-schema 过程对象和操作

. 正在导出用户 TEA 的外部函数库名

. 导出 PUBLIC 类型同义词

. 正在导出专用类型同义词

. 正在导出用户 TEA 的对象类型定义

即将导出 TEA 的对象...

. 正在导出数据库链接

. 正在导出序号

. 正在导出簇定义

. 即将导出 TEA 的表通过常规路径...

. . 正在导出表T_BAS_ELEMENTGROUP导出了11 行

. . 正在导出表T_BAS_ELEMENTPROPERTY导出了2470 行

. . 正在导出表T_BAS_ELEMENTTYPE导出了97 行

. 正在导出同义词

. 正在导出视图

. 正在导出存储过程

. 正在导出运算符

. 正在导出引用完整性约束条件

. 正在导出触发器

. 正在导出索引类型

. 正在导出位图,

功能性索引和可扩展索引

. 正在导出后期表活动

. 正在导出实体化视图

. 正在导出快照日志

. 正在导出作业队列

. 正在导出刷新组和子组

. 正在导出维

. 正在导出 post-schema 过程对象和操作

. 正在导出统计信息

成功终止导出,

没有出现警告。

从两个exp命令对比看,后一个是完整导出数据库,前一个只是导出表和表的数据,至于数据里面的视图、触发器、索引等对象都没有导出。

IMP某个单表:

imp ttt/ttt

file=d:\databak\exp.dmp tables=(zx_qm_shop_price_lst)

IMP语句:

imp system/xxx@xxx

file=f:\1.dmp log=f:\1.log fromuser=DBUSRMKT touser=DBUSRMKT

tables=(BPRICEGROUP,BPOPGROUP,BCHECKDETAIL,GOODSBASE_TJ) IGNORE=y

rows=y INDEXES=N FEEDBACK=100000

导出表结构:

exp xjsc/xjsc@xjdb full=y

rows=n file="d:\databak\biaojiegou.dmp" buffer=40960

log="d:\databak\biaojiegou.log"

使用sqlplus定时执行某语句:

sqlplus zheas/****@zheas254

@D:\databak\oracle\gongx.sql

EXPDP命令的导出导入步骤:

1、目录

create

directory zheas254_150909 as

'D:\databak\zheas254_200150909';

查看目录:

select *

from dba_directories;

3、导出数据库

EXPDP

system/**** DIRECTORY=zh0520 SCHEMAS=zh20150327

DUMPFILE=_EASBAK.DMP LOGFILE=_EASBAK.LOG

4、建表空间和用户、授权

CREATE

TABLESPACE EAS_D_zh20150527_STANDARD DATAFILE

'D:\oracledata\EAS_D_zh20150527_STANDARD.ORA' SIZE 2048M autoextend

on;

CREATE

TABLESPACE EAS_D_zh20150527_TEMP2 DATAFILE

'D:\oracledata\EAS_D_zh20150527_TEMP2.DBF' SIZE 1024M autoextend

on;

CREATE

TABLESPACE EAS_D_zh20150527_INDEX DATAFILE

'D:\oracledata\EAS_D_zh20150527_INDEX.ORA' SIZE 1024M autoextend

on;

CREATE

TEMPORARY TABLESPACE EAS_T_zh20150527_STANDARD TEMPFILE

'D:\oracledata\EAS_T_zh20150527_STANDARD.DBF' SIZE 1024M autoextend

on;

create

user zh20150527 identified by zh20150527 default tablespace

EAS_D_zh20150527_STANDARD quota unlimited on

EAS_D_zh20150527_STANDARD temporary tablespace

EAS_T_zh20150527_STANDARD;

alter

user zh20150527 quota unlimited on

EAS_D_zh20150527_INDEX;

grant dba

to zh20150527;

5、导入数据库(注意前后数据库用户名,丛0327导入到0510)

impdp

system/kingdee DIRECTORY=zheas254_150909

DUMPFILE=_EASBAK.DMP REMAP_SCHEMA=zheas:zh20150527 REMAP_TABLESPACE=EAS_D_zheas_STANDARD:EAS_D_zh20150527_STANDARD

drop user zh20150526 cascade;

2020.11.03,oracle12C 导出和导入:

exp mgstest/*****@pdborcl rows=y

file="E:\mgs36\mgstest31.dmp" buffer=409600

log="E:\mgs36\mgstest31.log"

sqlplus system/*****@pdborcl

drop user mgstest cascade;

CREATE USER mgstest IDENTIFIED BY ***** DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP;

GRANT CONNECT,RESOURCE TO mgstest;

grant all privileges to mgstest;

imp system/*****@pdborcl

file=E:\mgs36\mgs14.dmp log=E:\mgs36\mgs14imp.log

fromuser=mgs touser=mgstest IGNORE=y rows=y

以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值