啊还是MySql方便呐

首先imp和exp可以到数据库服务器上运行或者在客户端上运行,建议直接把dmp文件scp或者rz到服务器上导(无需担心客户端版本是否对应),如果安装Oracle时没有配置PATH,那你还得跑oracle安装目录/bin中运行

导出

按表导出:

exp file=文件名.dmp tables=(数据库名.表名1,数据库名.表名2)

按用户导出:

exp file=文件名.dmp owner=(用户名1,用户名2)

导入

导入的可能出现奇怪问题可能就比较多,比如用vs code来打开一个dmp,可以看到头部长这样

TEXPORT:V10.01.00
USPARKLE

其中V10.01.00是数据库的版本号,如果导出的服务版本比将导入的版本要高那肯定是导不进的,可以把运行imp显示的版本号复制过来改掉,但注意像10.0.1.0.0需要去掉两个点变成10.01.00

第二行的第一个字母,D是需要dba权限的用户才能导入的,U则可以使用普通用户导入

后面的SPARKLE是用户名,后面会用到

Ctrl + F (mac下是Cmd + F)查找TABLE可以看到导出了的表名

导入到与导入数据库的目标用户名同名的库中:

imp file=文件名.dmp fromuser=dmp中导出的用户名 touser=导入数据库的目标用户名 tables=(表名1,表名2) ignore=Y

其中ignore=Y可以跳过警告的提示继续导入