如何将备份的oracle数据库还原到指定用户下。

浪子不回头ぞ 提交于 2020-01-16 15:35:40

上一文章 oracle11g数据库--创建表空间,创建用户,用户授权并指定表空间。我们已经建好了指定的新用户pdmis。

接下来我们需要将备份好的数据库,还原至新用户pdmis下。

想要还原,我们需要将备份好的dmp文件。拷贝至目标服务器下(此处为D:\oraclebf\PDMIS\PDMIS.DMP)

出现上面问题是因为要传的文件太大造成的,我可以将本分文件通过压缩文件压缩后再传压缩文件(5.15g的备份文件被压缩为515m)

传到目标服务器后,再进行文件解压缩。保存至对应的路径下(此处为D:\oraclebf\PDMIS\PDMIS.DMP)

这些准备工作完成后,我们可以通过IMP命令进行数据库还原工作。

cmd(管理员模式)--输入一下命令(备份、还原无需进入sqlplus命令,注意!!!)

imp/exp 用户名/密码@service_name或oracle_sid  file=D:\导如(出)文件名称.dmp  full=y ignore=y

full=y ( 全库导出): 导出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 这些系统用户之外的所有用户的数据

ignore=y 表示忽略创建错误(比如有重复的表,就不再导入),继续后面的操作

 

根据实际需求,我们的还原命令如下:

imp pdmis/pdmis@orcl file=d:\oraclebf\PDMIS\PDMIS.DMP log=d:\oraclebf\PDMIS\PDMIS.log full=y

log=d:\oraclebf\PDMIS\PDMIS.log(创建错误日志,默认和备份文件放在同一目录下。)

 

执行语句

 

 

数据库还原完成,但遇到错误报告。技术人员验证数据库后,有表和视图的丢失怎么办?

我们需要删除用户(此步骤一定要慎重!!!因为有的用户下会连着好多数据库,避免数据丢失。

在确定用户下只有一个数据库时,并且此数据库为我们刚才恢复的数据库后才能删除)

drop user pdmis cascade;                                          删除用户   **

drop tablespace pdmis_temp including contents
and datafiles cascade constraint;                               删除临时表空间

drop tablespace pdmis_data including contents
and datafiles cascade constraint;                               删除表空间

执行以上命令后,重启服务器。

通过oracle的 dbca工具新建实例。
1)打开dbca--下一步

2)创建数据库--下一步

3)默认选一般用途或事务处理--下一步

4)输入全局数据库名和实例名--下一步(此步骤可以继续使用之前的orcl全局数据库,sid为我们需要增加的实例名)

5)默认选择--下一步

6)输入密码--下一步

7)默认选择--下一步

8)默认--下一步

9)内存--调整为60%

    字符集--选择默认--ZHS16GBK

10)对以上设置的确认--下一步

11)创建数据库--生成数据库创建脚本--完成

点击确定

确定

等待生成数据库

安装完成--口令管理--将sys、system设置密码

                                 将scott解锁设置密码

 

完成后再去全局数据下创建表空间

 

临时表空间,创建用户,为用户授予权限。

 

先用tnsping pdmis_test通不通

 

再执行imp命令进行备份的还原。

imp pdmis/pdmis@pdmis_test file=d:\oraclebf\PDMIS\PDMIS.DMP log=d:\oraclebf\PDMIS\PDMIS.log full=y

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!