Oracle 数据库的导入导出方式挺多样的,不管你是要整库备份、单表迁移,还是想带条件筛选,都有对应的命令可用。用起来其实也不复杂,几个参数搞定,响应也快。尤其是老项目里常用的exp/imp命令,熟练了基本闭眼敲都能用。

全库导出的命令常见,比如:

exp system/manager@TEST file=d:daochu.dmp full=y

这种适合大版本备份,或者跨环境迁移整库的场景。

按用户导出也挺实用,像只导systemsys用户:

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 的数据备份或者要搬数据,建议命令行+图形工具都熟一点,灵活应对各种需求。懒得写脚本的时候,图形化的方式也能救急。