Oracle之imp和exp语句
exp/imp命令详解
exp 导出命令
imp 导入命令
exp导出模式
full模式:导出整个数据库
user模式:导出指定的用户
table模式:导出指定的表
tablespace模式:导出表空间
exp导出参数
owner:指定要导出的用户列表
full=y:表示要导出整个数据库
tables:指定要导出的表
tablepaces:指定要导出的表空间
rows=y:表示导出表数据,否则只导出表的结构.
help=y:表示要获取帮助
indexs:指定是否导出索引
grants:表示是否导出授权
query:定查询条件,允许用户导出表的一部分数据
triggers:指定是否导出触发器
exp/imp使用方法
1 | imp username/password@connect_string param=value … |
例如:
1 | exp xcba/xcba@orcl file=C:\xcba.dmp log=C:\xcba.log owner=(xcba) |
导出备份为dmp时,需要将Oracle在注册表里的编码设置为UTF8,否则会出现中文乱码。
具体作法:将“HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1”下的“NLS_LANG”设置为“SIMPLIFIED CHINESE_CHINA.UTF8”
exp/imp导入导出方式
1. 表方式,将指定表的数据导出/导入。
导出:
导出一张或几张表:
1 | $ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 |
如果是分区表
1 | $ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1:tablespaces1,table2:tablespaces2 |
导出某张表的部分数据
1 | $ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1 query=\”where col1=\’…\’ and col2 \<…\” |
导入:
导入一张或几张表
1 | $ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 fromuser=dbuser touser=dbuser2 commit=y ignore=y |
如果是分区表
1 | $ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1:tablespaces1,table2:tablespaces2 fromuser=dbuser touser=dbuser2 commit=y ignore=y |
2. 用户方式,将指定用户的所有对象及数据导出/导入。
导出:
1 | $ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx, yy) |
只导出数据对象,不导出数据 (rows=n )
1 | $ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n |
导入:
1 | imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2 mmit=y ignore=y |
3. 全库方式,将数据库中的所有对象导出/导入
导出:
1 | $ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=y commit=y ignore=y |
导入:
1 | $ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2 |