Oracle 数据库的导入导出方式挺多样的,不管你是要整库备份、单表迁移,还是想带条件筛选,都有对应的命令可用。用起来其实也不复杂,几个参数搞定,响应也快。尤其是老项目里常用的exp
/imp
命令,熟练了基本闭眼敲都能用。
全库导出的命令常见,比如:
exp system/manager@TEST file=d:daochu.dmp full=y
这种适合大版本备份,或者跨环境迁移整库的场景。
按用户导出也挺实用,像只导system
和sys
用户:
exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
你如果只关心某几个用户的数据,这招稳。
按表导出也不难,命令像这样:
exp aichannel/aichannel@TESTDB2 file=d:data\ewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
适合做功能模块级的数据备份,粒度更细。
加条件导出就更灵活了,比如只导filed1
以'00'
开头的数据:
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query="where filed1 like '00%'"
有点像写 SQL 语句一样,挺顺手。
导入的逻辑跟导出差不多,对应用imp
命令。全库导入:
imp system/manager@TEST file=d:daochu.dmp full=y
恢复起来方便,尤其是测试环境搭建的时候。
指定表导入和ignore=y
的组合用法也常见:
imp aichannel/aichannel@HUST file=d:data\ewsmgnt.dmp ignore=y
遇到已经存在的表不报错,继续导,蛮适合叠加数据。
图形界面党也不用慌,像PL/SQL Developer的导入导出工具就挺友好:
- Export User Objects: 整个用户的对象全导
- Import Tables: 单表还原也行
而且还能生成SQL Inserts,适合版本控制。
如果你经常折腾 Oracle 的数据备份或者要搬数据,建议命令行+图形工具都熟一点,灵活应对各种需求。懒得写脚本的时候,图形化的方式也能救急。