利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。
1. 简单导出数据(Export)和导入数据(Import)
Oracle支持三种类型的输出:
(1)表方式(T方式),将指定表的数据导出。
(2)用户方式(U方式),将指定用户的所有对象及数据导出。
(3)全库方式(Full方式),将数据库中的所有对象导出。
数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。
通过输入 EXP 命令和用户名/口令,您可以
在用户 / 口令之后的命令:
实例: EXP SCOTT/TIGER
或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”
的运行方式。要指定参数,您可以使用关键字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明(默认) 关键字 说明(默认)
--------------------------------------------------------------------------
USERID 用户名/口令 FULL 导出整个文件 (N)
BUFFER 数据缓冲区的大小 OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP) TABLES 表名列表
COMPRESS 导入一个范围 (Y) RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y) INCTYPE 增量导出类型
INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)
ROWS 导出数据行 (Y) PARFILE 参数文件名
CONSTRAINTS 导出限制 (Y) CONSISTENT 交叉表一致性
LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)
DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
FILESIZE 各转储文件的最大尺寸
QUERY 选定导出表子集的子句
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TABLESPACES 将传输的表空间列表
在没有警告的情况下成功终止导出。
1. 简单导出数据(Export)和导入数据(Import)
Oracle支持三种类型的输出:
(1)表方式(T方式),将指定表的数据导出。
(2)用户方式(U方式),将指定用户的所有对象及数据导出。
(3)全库方式(Full方式),将数据库中的所有对象导出。
数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。
通过输入 EXP 命令和用户名/口令,您可以
在用户 / 口令之后的命令:
实例: EXP SCOTT/TIGER
或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”
的运行方式。要指定参数,您可以使用关键字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明(默认) 关键字 说明(默认)
--------------------------------------------------------------------------
USERID 用户名/口令 FULL 导出整个文件 (N)
BUFFER 数据缓冲区的大小 OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP) TABLES 表名列表
COMPRESS 导入一个范围 (Y) RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y) INCTYPE 增量导出类型
INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)
ROWS 导出数据行 (Y) PARFILE 参数文件名
CONSTRAINTS 导出限制 (Y) CONSISTENT 交叉表一致性
LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)
DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
FILESIZE 各转储文件的最大尺寸
QUERY 选定导出表子集的子句
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TABLESPACES 将传输的表空间列表
在没有警告的情况下成功终止导出。
exp userid=<username>/<password> file=<filename.dmp> rows=n
penitent(只取一瓢) 加星了
赶紧开贴散分吧
未知命令开始"EXP system..." -- 其余行忽略。
SQL> exp -help;
未知命令"exp -help" -- 其余行忽略。
SQL>
以下是一个备份用的BAT,使用会更简单,用法
exp_any 本地服务名 应导出用户名 日期
输出文件在H:\DATA_BAK中,可以自己修改路径。该BAT假设数据库SYSTEM用户的密码是MANAGER
exp_any.bat
@echo off
echo service name: %1
echo database name: %2
echo date: %3
EXP USERID=SYSTEM/MANAGER@%1 OWNER=(%2) FILE=(H:\DATA_BAK\%2a.%3,H:\DATA_BAK\%2b.%3,H:\DATA_BAK\%2c.%3,H:\DATA_BAK\%2d.%3,H:\DATA_BAK\%2e.%3,H:\DATA_BAK\%2f.%3,H:\DATA_BAK\%2g.%3,H:\DATA_BAK\%2h.%3) FILESIZE=1500M DIRECT=Y compress=Y RECORDLENGTH=64000 LOG=H:\DATA_BAK\%2%3.LOG
类似的是导入程序,可用于恢复:
imp_any.bat
@echo off
echo service name: %1
echo database name: %2
echo date: %3
imp system/manager@%1 fromuser=%2 touser=%2 file=(h:\data_bak\%2a.%3,h:\data_bak\%2b.%3,h:\data_bak\%2c.%3,h:\data_bak\%2d.%3,h:\data_bak\%2e.%3,h:\data_bak\%2f.%3,h:\data_bak\%2g.%3,h:\data_bak\%2h.%3) commit=Y ANALYZE=N ignore=y FEEDBACK=2000 log=h:\imp%3.log这个BAT可以让你用的更方便,找台装了ORACLE客户端的机器试试吧,已经有好多人用过了。我也是高手推荐我用的。
我也是从别人那里
最好自己有个相关的可行性测试
而不是理论上可行
当然exp/imp对于上百G,甚至TB的数据,是无能为力的,但你要想想。
如果真是这么大的数据库,还会让楼主这样的连exp/imp都不知道的人来复制吗?
exp/imp对于小的数据库,绝对是可以保证的,如果说你对完整性有怀疑,那你有怎么相信oracle数据库???
当然任何一个方案都有其可靠性的衡量,但应当结合具体的应用来考察。
如果是一个要求实时进行复制的企业级环境,那自然应该强调自动化和可靠性,特别是复制后数据的完整性,这方面QUEST公司的SHAREPLEX做得不错。但是,对于一个普通的情况下,比如只是数据的日常备份,乃至于是一次性的数据库移植,如果过多的考虑可靠性,就有点杀鸡用牛刀了。这种情况下,往往可以由手工来保证数据的完整性,比如EXP/IMP在出错时都会有相应的提示,如果失败了,重新复制一次好了。千万不要吓着suoduan (suoduan) 了,弄得他连EXP/IMP(ORACLE公司正品原装)都不敢用。如果说可行性测试,我所提供的BAT是用作我们多个开发环境的日常数据备份的,不考虑T级数据量,应当已经用了几年了吧,已经绝不止是理论而已了。而在这里回复的人,据我看来也都是有相当多的使用经历的人吧。
的colone database的办法。
而且是方法是有点类似standby,
是通过archive log来前滚另一个instance。
当然listener。ora和tnsmane。ora的配置有些不同