Windows中Oracle使用Doc命令完成数据的导出(EXP)/导入(IMP)
Windows中Oracle使用Doc命令完成数据的导出(EXP)/导入(IMP):
登陆系统用户:
启动cmd命令窗口,输入命令:sqlplus /nolog输入命令:conn /as sysdba
基本说明:
EXP 用户名/密码@连接字符串 GRANTS=Y TABLES=(stu) file=D:\数据文件名.DMP log=D:\日志文件名.log创建用户并授权
create user 用户名 identified by 密码;
grant connect,resource,dba to 用户名;
按用户导出
exp 用户名/密码@数据库名称 owner=用户名 file=绝对路径(D:\\test.dmp)
按用户导入
imp 用户名/密码@数据库名称 file=绝对路径(D:\\test.dmp) full=y;
导出(EXP):
1、获取导出API
exp help=y
2、导出一个完整数据库
exp username/password file=dmpfile_path log=logfile_path full=y
3、导出数据库定义而不导出数据
exp username/password file=dmpfile_path log=logfile_path full=y rows=n
4、导出一个或一组指定用户所属的全部表、索引和其他对象
exp username/password file=seapark log=seapark owner=(seapark,amy,amyc,harold)exp username/password file=seapark log=seapark owner=(seapark,amy,amyc,harold)
解决对象引用的同义词导出问题:
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。
解决方法是用以下的 SQL*Plus 命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
SET LINESIZE 128
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=(seapark.tank,amy.artist)exp username/password file=tank log=tank tables=(seapark.tank,amy.artist)
exp username/password 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、用多个文件分割一个导出文件
exp username/passwordfile=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G tables=hr.paycheck
8、使用参数文件
exp username/password parfile=bible_tables.parbible_tables.par参数文件:
注意:导出用于Oracle8i数据库管理员的经典示例表:
file=bible_tables
log=bible_tables
tables=(
amy.artist
amy.books
seapark.checkup
seapark.items
)
9、增量导出
完全增量导出(complete),即备份整个数据库exp username/password inctype=complete file=filename.dmp
增量型增量导出(incremental),即备份上一次备份后改变的数据
exp username/password inctype=incremental file=filename.dmp
累计型增量导出(cumulative),即备份上一次完全导出之后改变的数据
exp username/password inctype=cumulative file=filename.dmp
导入:
1、获取帮助
imp help=y
2、导入一个完整数据库
imp username/password file=dmpfile_path log=logfile_path full=y ignore=y
3、导入一个或一组指定用户所属的全部表、索引和其他对象
imp username/password file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)imp username/password file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
4、将一个用户所属的数据导入另一个用户
imp username/password file=tank log=tank fromuser=(seapark,amy) touser=seapark_copyimp username/password file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)
5、导入一个表
imp username/password file=tank log=tank fromuser=seapark TABLES=(a,b)
6、从多个文件导入
imp username/password file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)log=paycheck, filesize=1G full=y
7、使用参数文件
imp username/password parfile=bible_tables.parbible_tables.par参数文件:
注:导入用于Oracle8i数据库管理员的示例表
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import