旧服务器Win SERVER2003数据库用的是Oracle10,安装在D盘根目录下:D:\app\...。
单位新购了一台服务器,Win SERVER2008R2,安装了Oracle和客户端,现在想把旧服务器的Oracle全部备份到新服务器上去,提前在旧服务器上做了以下操作:
1.将数据库以传统方式导出为***.dmp的文件;
2.将数据库以数据调出的方式把数据库表都调出为***.ldr的大堆文件;
3.直接复制出了D:\app 文件夹;现在新服务器到位了,Oracle也安装好了,可怎么也导入不了数据:
1.首先数据导入出错,提示:
IMP-00017: 由于 ORACLE 错误 1917, 以下语句失败:
 "GRANT EXECUTE ON "ZL_PATI_CHECK_EXECUTE" TO "ZL_项目维护员""
IMP-00003: 遇到 ORACLE 错误 1917
ORA-01917: 用户或角色 'ZL_项目维护员' 不存在
IMP-00017: 由于 ORACLE 错误 1917, 以下语句失败:
 "GRANT EXECUTE ON "ZL_PATICARDCHECK" TO "ZL_管理员""
IMP-00003: 遇到 ORACLE 错误 1917
ORA-01917: 用户或角色 'ZL_管理员' 不存在
IMP-00017: 由于 ORACLE 错误 1917, 以下语句失败:
 "GRANT EXECUTE ON "ZL_PATICARDCHECK" TO "ZL_收款员""



IMP-00017: 由于 ORACLE 错误 942, 以下语句失败:
 "ALTER TABLE "保险参数" ADD CONSTRAINT "保险参数_FK_险类" FOREIGN KEY ("险类"
 "", "中心") REFERENCES "保险中心目录" ("险类", "序号") ON DELETE CASCADE ENA"
 "BLE NOVALIDATE"
IMP-00003: 遇到 ORACLE 错误 942
ORA-00942: 表或视图不存在
IMP-00017: 由于 ORACLE 错误 942, 以下语句失败:
 "ALTER TABLE "保险费用档" ADD CONSTRAINT "保险费用档_FK_险类" FOREIGN KEY (""
 "险类", "中心") REFERENCES "保险中心目录" ("险类", "序号") ON DELETE CASCADE"
 " ENABLE NOVALIDATE"
IMP-00003: 遇到 ORACLE 错误 942
ORA-00942: 表或视图不存在
IMP-00017: 由于 ORACLE 错误 942, 以下语句失败:
 "ALTER TABLE "保险年龄段" ADD CONSTRAINT "保险年龄段_FK_险类" FOREIGN KEY (""
 "险类", "中心") REFERENCES "保险中心目录" ("险类", "序号") ON DELETE CASCADE"
 " ENABLE NOVALIDATE"2.将D:\app整个目录复制到新服务器的Oracle安装目录也不行,连接都连接不上;现在是旧服务器的数据库怎么也还原不到新服务器上,把D:\app整个目录复制过去也不行。
请问各位朋友,我哪一步做错了?应该怎么完整还原Oracle数据库?
谢谢大家了,发愁了好久了。

解决方案 »

  1.   

    上面是报用户不存在啊,你导入之前要先把用户建好,另一种方式就是你新服务器上的oracle的安装路径跟旧服务器的一模一样,然后直接拷贝旧服务器的oradata目录过去
      

  2.   


    您好,可以把旧服务器上的Oracle数据目录直接拷贝过去就行?好像确实新服务器的安装路径和旧的不一样,新的安装到E盘了。旧的在D盘
      

  3.   

    完整的操作步骤就是新服务器上安装跟旧服务器上oracle的安装目录一样,然后在新服务器上新建一个跟你要恢复的数据库服务名一样的实例,然后把旧服务器上oradata目录拷贝到新服务器上,顺便把密码文件也拷贝过去,然后启动试试看
      

  4.   

    exp 导出的文件,必须要先在目标库中建立原来的用户,再进行导入(imp)操作;如果感觉麻烦,可以使用 expdp 或 rman 操作,这两个省事儿;