exp命令导出数据库
1. oracle exp命令如何批量导出在数据库中开头为XX的所有表
oracle exp命令批量导出数据库的方法:
1 假如数据库名为:TEST 、,用户名system 密码manager 导出到D:/chu.dmp中
exp system/manager@TEST file=d:/chu.dmp full=y
如果要导出指定的表,方法如下:
假如要导出数据库中的表'CHA%'导出
exp aichannel/aichannel@TESTDB2 file= d:/data/newsmgnt.dmp owner=(PRO) tables=(PRO.CHA%
)
2. Oracle中EXP命令可以在交互环境下导出数据库中的数据,请问什么是交互环境,什么是非交互环境
交互呢就是需要你根据命令提示,一步步操作。
比如你单独执行exp命令,它会提示你输入用户名。。密码。。之类的,这个就是交互了。
而非交互呢,就是你一次性写好了语句,直接执行即可。
比如:exp system/manager@TestDB file=E:/sampleDB.dmp full=y
直接导出你想要的结果。。。
3. oracle导出导入数据库的命令是在哪里执行的。
exp可以在客户端执行也可以在服务器端执行,
在客户端执行需要先安装有oracle的客户端,这样才会有exp.exe存在,配制好tns,在cmd命令行下直接执行即可。
在服务器端执行也是在cmd命令行下直接执行即可。
如果是linux系统,就是以oracle用户登录,在控制台下执行。
建议在服务器端执行exp,备份速度快。
4. oracle导出数据库
oracle导出数据库用exp语句。
步骤:
一、win键+R键,输入cmd,打开命令提示符。
二、然后根据实际情况选择不同的exp语句。
exp语句详解:
1. 获取帮助
exp help=y
2. 导出一个完整数据库
exp system/manager file=bible_db log=dible_db full=y
3. 导出数据库定义而不导出数据
exp system/manager file=bible_db log=dible_db full=y rows=n
4. 导出一个或一组指定用户所属的全部表、索引和其他对象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:seapark.syn
SELECT 'Create public synonym '||synonym_name
||' for '||table_owner||'.'||table_name||';'
FROM dba_synonyms
WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF
5. 导出一个或多个指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seapark.tank
exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)
6. 估计导出文件的大小
全部表总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE segment_type = 'TABLE';
seapark用户所属表的总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE';
seapark用户下的aquatic_animal表的字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE'
AND segment_name = 'AQUATIC_ANIMAL';
7. 导出表数据的子集(oracle8i以上)
NT系统:
exp system/manager query='Where salad_type='FRUIT'' tables=amy.salad_type
file=fruit log=fruit
UNIX系统:
exp system/manager query="Where salad_type='FRUIT'" tables=amy.salad_type
file=fruit log=fruit
8. 用多个文件分割一个导出文件
exp system/manager
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G tables=hr.paycheck
9. 使用参数文件
exp system/manager parfile=bible_tables.par
bible_tables.par参数文件:
#Export the sample tables used for the Oracle8i Database Administrator's Bible.
file=bible_tables
log=bible_tables
tables=(
amy.artist
amy.books
seapark.checkup
seapark.items
)
10. 增量导出
“完全”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=990702.dmp
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=990702.dmp
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
exp system/manager inctype=cumulative file=990702.dmp
5. Oracle 数据库导出 exp命令,报错:
那就要针对情况具体分析,一般可参考如下方法:
1. 获取帮助
exp help=y
2. 导出一个完整数据库
exp system/manager file=bible_db log=dible_db full=y
3. 导出数据库定义而不导出数据
exp system/manager file=bible_db log=dible_db full=y rows=n
4. 导出一个或一组指定用户所属的全部表、索引和其他对象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:\seapark.syn
SELECT 'Create public synonym '||synonym_name||' for'||table_owner||'.'||table_name||';' FROM dba_synonyms WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF
5. 导出一个或多个指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seapark.tank
exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)
6. 估计导出文件的大小
全部表总字节数:
SELECT sum(bytes) FROM dba_segments WHERE segment_type = 'TABLE';
seapark用户所属表的总字节数:
SELECT sum(bytes) FROM dba_segments WHERE owner = 'SEAPARK' AND segment_type = 'TABLE';
seapark用户下的aquatic_animal表的字节数:
SELECT sum(bytes) FROM dba_segments WHERE owner = 'SEAPARK' AND segment_type = 'TABLE' AND segment_name = 'AQUATIC_ANIMAL';
7. 导出表数据的子集(oracle8i以上)
NT系统:
exp system/manager query='Where salad_type='FRUIT'' tables=amy.salad_type file=fruit log=fruit
UNIX系统:
exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amy.salad_type file=fruit log=fruit
8. 用多个文件分割一个导出文件
exp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck, filesize=1G tables=hr.paycheck
9. 使用参数文件
exp system/manager parfile=bible_tables.par
bible_tables.par参数文件:
#Export the sample tables used for the Oracle8i Database Administrator's Bible.
file=bible_tables
log=bible_tables
tables=(
amy.artist
amy.books
seapark.checkup
seapark.items
)
10. 增量导出
“完全”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=990702.dmp
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=990702.dmp
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
exp system/manager inctype=cumulative file=990702.dmp
6. 用exp从oracle中导出的文件,在另一个数据库导入时报错:
头部验证失败是由于版本号不同所致,经试验可以通过如下方法进行修改:用notepad++工具打开dmp文件,可以看到头部信息
--TEXPORT:V11.01.00,即为源数据库的版本号,将其修改为目的数据库的版本号,如本机的版本号为10.02.01,再次进行导入操作尝试。
导入不成功也有可能是因为数据库用户不对造成的。
7. EXP 命令导出数据时对数据库性能影响大吗
、执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行。
2、EXP.EXE与IMP.EXE文件被用来执行导入导出
例子:内
1 将数据库TEST完全导容出,用户名system 密码manager 导出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\chu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\chu.dmp tables=(table1,table2)
8. 如何用exp导出oracle数据库并压缩
1. 它是一个可执行的文件 存放目录/ORACLE_HOME/bin
exp导出工具将数据库中数据备份压缩成一个版二进制系统权文件. 它有三种模式:
a. 用户模式:导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
2. 导出工具exp交互式命令行方式的使用的例子
$exp test/test123@appd
Enter array fetch buffer size: 4096 > 回车
Export file: expdat.dmp > m.dmp 生成导出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回车wQeLin
Compress extents (yes/no): yes > 回车
9. oracle数据库用exp命令能否导出规定时间内所有表中新增的数据。
可以的。
exp支持条复件导制出QUERY 属性可以支持你的想法。
exp system/manager@TestDB file=E:/sampleDB.dmp tables=(tableA) query=' where creatime<=sysdate-7'
导出表tableA7天前创建的表数据。
如果有时间条件的话.你的表里面最好有个时间字段给你做为条件哈。