windows下oracle数据库备份还原操作(注:从一台服务器转移至另一台服务器)

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运维、数据迁移与性能调优。

posted @ 2018-03-22 10:58  苹果菠萝  阅读(3676)  评论(0编辑  收藏  举报