线上无小事
分类: oracle
2019-12-13 10:44:13
对于本机安装了oracle 客户端,下述命令都可以在 dos 执行,当然 dmp 文件导出在本地。
但在实际研发时,没人愿意在本机上安装庞大的 oracle 软件,这时你需要使用 xshell/putty..
远程工具连接到 linux 进行操作,进行 linux 上 dmp 文件的导入导出(以下导入导出路径替换为 linux 路径)。
a. 将用户 system 用户表导出到指定路径 d 盘
exp system/password@sid file=d:/daochu.dmp full=y
b. 将用户 system 与 sys 用户的表导出到指定路径 d 盘
exp system/password@sid file=d:/daochu.dmp owner=(system,sys)
c. 将用户 system 中的表 table_a、table_b 导出到指定路径 d 盘
exp system/password@sid file= d:/daochu.dmp tables=(table_a,table_b)
d. 将用户 system 中的表 table1 中的字段 filed1 以"00"打头的数据导出
exp system/passwor@sid filed=d:/daochu.dmp tables=(table1) query=/" where filed1 like '00%'/"
对于压缩可以用 winzip 将 dmp 文件进行压缩,也可以在上面命令后面 加上 compress=y 来实现。
导出 dmp文件适用于大型数据库完整迁移,对迁移前后两者服务器数据库字符集要求一致,且对clob字段支持不太友好。
对于小数据的导出其实用 plsql 能做的更好,更快,导出的sql也很直观。
e. 将 d:/daochu.dmp 中的数据导入 test 数据库中。
imp system/password@sid file=d:/daochu.dmp
imp system/password@hust full=y file=d:/data/newsmgnt.dmp ignore=y
上面命令如果出现问题,假设有的表已存在,对该表可以不进行导入,后面添加 ignore=y。
f. 将 d:/daochu.dmp中的表table1 导入
imp system/passord@sid file=d:/daochu.dmp tables=(table1)
g.不同用户不同表空间的数据导入
impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp remap_schema=user1:user2 remap_tablespace=user1:user2
1.remap_user 重新映射用户,格式:
source_user1:target_user1,source_user2:target_user2
2.remap_tablespace 重新映射表空间
remap_tablespace=tbs_a:tbs_b
3.remap_schema 重新映射数据归属用户
remap_schema=a:b
4.table_exists_action 表已经存在的动作 有效关键字: (skip), append, replace 和 truncate。
5.exclude=object_grant 跳过对象授权