ORACLE 数据库导入导出

平常经常需要对ORACLE数据库进行迁移或备份,这里总结一下ORACLE数据库导入和导出的命令。
LINUX进入oracle账号 su oracle

windows则进入CMD


1.数据库导出命令exp

1.1.导出一个完整数据库

C:\Users\Administrator>exp test/test@orcl buffer=64000 file=D:\\data\\test.dmp log=D:/data/test.log owner=TEST
Export: Release 11.2.0.1.0 - Production on 星期一 1月 29 22:57:15 2018
copyright (c) 1982,2009,Oracle and/or its affiliates.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Produc
tion
With the Partitioning,OLAP,Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
服务器使用 AL32UTF8 字符集 (可能的字符集转换)
即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 TEST 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 TEST 的对象类型定义
即将导出 TEST 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 TEST 的表通过常规路径...
. . 正在导出表                            USER导出了           4 行
. . 正在导出表                           USER2导出了           4 行
. 正在导出同义词
. 正在导出视图
. 正在导出存储过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图,功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
成功终止导出,没有出现警告。
1.2. 导出数据库定义而不导出数据
C:\Users\Administrator>exp test/test@orcl buffer=64000 file=D:\\data\\test.dmp log=D:/data/test.log owner=TEST rows=n
Export: Release 11.2.0.1.0 - Production on 星期一 1月 29 23:58:37 2018

copyright (c) 1982,Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Produc
tion
With the Partitioning,Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
服务器使用 AL32UTF8 字符集 (可能的字符集转换)
注: 将不导出表数据 (行)

即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 TEST 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 TEST 的对象类型定义
即将导出 TEST 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 TEST 的表通过常规路径...
. . 正在导出表                            USER
. . 正在导出表                           USER2
. 正在导出同义词
. 正在导出视图
. 正在导出存储过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图,没有出现警告。
1.3. 导出一个或一组指定用户所属的全部表、索引和其他对象
C:\Users\Administrator>exp test/test@orcl buffer=64000 file=D:\\data\\test.dmp log=D:/data/test.log owner=(TEST,TEST2) rows=n
1.4 导出一个或多个指定表

C:\Users\Administrator>exp test/test@orcl buffer=64000 file=D:\\data\\test.dmp log=D:/data/test.log tables=user
C:\Users\Administrator>exp test/test@orcl buffer=64000 file=D:\\data\\test.dmp log=D:/data/test.log tables=(user,user2)
1.5 估计导出文件的大小

全部表总字节数:
SELECT sum(bytes) 
FROM dba_segments 
WHERE segment_type = 'TABLE';

TEST用户所属表的总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'TEST'
AND segment_type = 'TABLE';
1.6 通过查询语句导出子表
C:\Users\Administrator>exp test/test@orcl buffer=64000 file=D:\\data\\test.dmp log=D:/data/test.log query='where user_id="1" and username="11"' tables=user
UNIX系统:

[oracle@DB~]$exp test/test@orcl buffer=64000 file=D:\\data\\test.dmp log=D:/data/test.log query=\'where user_id=\"1\" and username=\"11\"\' tables=user
1.7. 增量导出
(1)“完全”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=test.dmp
(2) “增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=test.dmp
(3) “累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
exp system/manager inctype=cumulative file=test.dmp

2.数据库导入命令imp

2.1导入一个完整数据库

imp test/test@orcl file=D:\\data\\test.dmp log=D:/data/imp.log full=y ignore=y
2.2. 导入一个或一组指定用户所属的全部表、索引和其他对象
imp test/test@orcl file=D:\\data\\test.dmp log=D:/data/imp.log full=y ignore=y fromuser=user1
imp test/test@orcl file=D:\\data\\test.dmp log=D:/data/imp.log full=y ignore=y fromuser=(user1,user2,user3,user4)
2.3 一个用户所属的数据导入另一个用户

imp test/test@orcl file=D:\\data\\test.dmp log=D:/data/imp.log full=y ignore=y fromuser=user1 touser=user2
imp test/test@orcl file=D:\\data\\test.dmp log=D:/data/imp.log full=y ignore=y fromuser=(user1,user2) touser=(user3,user4)
2.4 导入一个或多个表
imp test/test@orcl file=D:\\data\\test.dmp log=D:/data/imp.log ignore=y fromuser=test TABLES=user
imp test/test@orcl file=D:\\data\\test.dmp log=D:/data/imp.log ignore=y fromuser=test TABLES=(user,user2)

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...