1.exp和imp备份还原数据库操作命令(cmd下操作)
exp username/password@ip地址/实例名 file=磁盘:/目录/备份文件名.dmp owner=username log=磁盘:/目录/exp备份文件名.log
imp 新用户名/密码@ip地址/ip地址 file=磁盘:/备份文件名.dmp full=y log=磁盘:/imp备份文件名.log
授予新用户权限最后执行sql脚本
2.expdp和impdp备份还原数据库操作命令(cmd下操作)
2.1创建自己的备份文件expdp导出安放的逻辑目录(个人习惯)
create directory DBDIR as 'E:dbdir';(需要手动建立该文件夹)
根据select * from dba_directories;查询DBDIR映射的逻辑目录即'E:dbdir'
2.2执行expdp命令
expdp 导出的用户名/密码@ip地址/实例名 schemas=导出的用户名 dumpfile=备份文件名.dmp DIRECTORY=DBDIR(ip地址可替换为localhost,下同)
2.3创建新用户名及密码
create user 导入的用户名 identified by 密码;
2.4创建自己的impdp导入的备份文件的逻辑目录(个人习惯)
create directory DBDIR as 'E:dbdir';(手动建立文件夹,注意文章标题这是另一台服务器)
2.5授予新建的导入用户权限
如果有表空间先赋予表空间权限;
grant read,write on directory DBDIR to 导入的用户名;
grant resource,connect to 导入的用户名;
后面impdp导入命令执行完,执行sql脚本可能还需要其它权限比如创建视图权限
2.6执行impdp命令
impdp 导入的用户名/密码@ip地址/实例名 directory=DBDIR dumpfile=备份的文件名.dmp logfile=impdp备份的文件名.log remap_schema=导出时的用户名:导入的用户名
有时候这一条命令可能执行不成功,尝试执行:
impdp 导入的用户名/密码@实例名 directory=DBDIR dumpfile=备份的文名.dmp logfile=impdp备份的文件名.log remap_schema=导出时的用户名:导入的用户名
2.7最后一步执行sql脚本
3.exp/imp与expdp/impdp个人经验总结
对于小表处理效果exp/imp效果更好,当备份文件较大时推荐expdp/impdp,如果是整个数据库迁移可以用冷迁移或者热迁移,这时候迁移的注意数据库配置文件的一致性。一般imp或impdp导出操作时间都比较短,5g的dmp文件导出只需要十几分钟,但是导入的时候需要2个小时左右,而且导入的磁盘得二三十g大小容纳,最后推荐一本书《Oracle DBA 工作笔记 运维、数据迁移与性能调优》,可以学习Oracle运维、数据迁移与性能调优。