Oracle用exp导出部分表和expdp
(2016-04-28 10:22:16)
标签:
expexpdpimpimpdp |
分类: IT |
Oracle使用exp导出指定表或排除某几个表导出备份
Oracle10g之后提供了expdp 和 impdp 导出导入命令,导出效率和速度较快,在本地服务器的情况下,可以使用此命令导出、导入数据,而且可以使用条件命令指定不导出某几个表。但是expdp在客户端导出的时候无法导出,通常要使用dblink 进行操作,太麻烦。那使用exp可以么?今日经过研究测试,可以使用exp命令指定导出某些表。
Expdp命令:
EXPDP system/**** DIRECTORY=zh0520 SCHEMAS=zh20150327 DUMPFILE=_EASBAK.DMP LOGFILE=_EASBAK.LOG
一、生成exp参数文件
‘
找到d:\databak\par.file 文件,打开,修改,将里面的sql语句删除。
Par.file文件的内容如下:
File=d:\databak\exp111.dmp
tables=(
T_BAS_ELEMENTGROUP,
T_BAS_ELEMENTPROPERTY,
T_BAS_ELEMENTTYPE
)
执行导出:
exp zh20150526/zh20150526@zheas250 parfile=d:\databak\par.file
成功执行!
备注:Par.file 文件的内容里面的表,可以通过PLSQL Developer 等工具 执行语句:
select table_name||','
然后复制到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 字符集
即将导出指定的表通过常规路径...
. .
正在导出表
. .
正在导出表
. .
正在导出表
成功终止导出, 没有出现警告。
正常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 的表通过常规路径...
. .
正在导出表
. .
正在导出表
. .
正在导出表
. 正在导出同义词
. 正在导出视图
. 正在导出存储过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 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
drop user zh20150526 cascade;
2020.11.03,oracle12C 导出和导入:
exp mgstest/*****@pdborcl
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
以上