今天还原oracle 11 G到oracle 10G上,首先出现了版本不匹配的问题。
此问题使用 http://hundage.blog.51cto.com/3779401/1285465 中的解决方法可以解决。
解决头文件验证失败的问题后,执行还原命令总是提示用户不存在。
在运行对话框中输入 cmd > sqlplus /nolog >conn sys/manager as sysdba; >conn user/password;返回的结果是已连接。
就想着是不是创建用户出现了问题,就使用oracle em(http://ip:1158/em)去创建表空间、用户。
结果em登录出现了unknown host specified “java.lang.Exception: Exception in sending Request :: null”的问题,em 出现不能用的问题,我就选择避开,使用命令行的方式进行数据还原。
操作步骤如下:
--创建表空间
CREATE SMALLFILE TABLESPACE "test_data_CW" DATAFILE 'D:\ORACLE\PRODUCT\ORADATA\ORCL\test_data_cw' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
CREATE SMALLFILE TABLESPACE "test_data_BLOB" DATAFILE 'D:\ORACLE\PRODUCT\ORADATA\ORCL\test_data_blob' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
--创建用户
CREATE USER "test_data" PROFILE "DEFAULT" IDENTIFIED BY "test_data" DEFAULT TABLESPACE "test_data_CW" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK
GRANT "CONNECT" TO "test_data"
--授权
GRANT ALTER ANY INDEX TO "test_data" WITH ADMIN OPTION
GRANT ALTER ANY PROCEDURE TO "test_data" WITH ADMIN OPTION
GRANT ALTER ANY TABLE TO "test_data" WITH ADMIN OPTION
GRANT CREATE ANY INDEX TO "test_data" WITH ADMIN OPTION
GRANT CREATE ANY TABLE TO "test_data" WITH ADMIN OPTION
GRANT CREATE ANY VIEW TO "test_data" WITH ADMIN OPTION
GRANT CREATE PROCEDURE TO "test_data" WITH ADMIN OPTION
GRANT DROP ANY INDEX TO "test_data" WITH ADMIN OPTION
GRANT DROP ANY PROCEDURE TO "test_data" WITH ADMIN OPTION
GRANT DROP ANY TABLE TO "test_data" WITH ADMIN OPTION
GRANT DROP ANY VIEW TO "test_data" WITH ADMIN OPTION
--修改限额
ALTER USER "test_data" QUOTA UNLIMITED ON "test_data_BLOB" QUOTA UNLIMITED ON "test_data_CW"
然后执行
imp test/test@orcl fromuser=testA touser=test_data full=y file='d:\oracle\backup\testA.dmp' ignore=y log='d:\oracle\backup\testAlog.log'不成功,提示ORA-01435。
上网查找这个问题还是用户不存在造成的。我到'D:\ORACLE\PRODUCT\ORADATA\ORCL'找我创建的test_data_CW.DBF文件,文件存在。
纳闷了怎么还是提示用户不存在呢,于是采用如下命令删除了表空间:
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES
使用 DROP USER test_data; 删除了我创建的用户。
重新执行上面的创建命令,再进行还原还是存在这个问题。
后来执行 select name from v$database; 查询当前数据
select instance_name from v$instance;查询当前数据库实例
发现数据库和数据库实例均不是我还原时用的orcl。
进入到服务面板,找到oracle相关的服务OracleServiceOrcl和listener,重新启动服务。
总是不成功,后来发现还存在另外一个监听。
再后来就重启了机器。
这一次决定em 的方式创建用户,解决unknown host specified这个错误,后来通过百度得到的解决方法是修改时区。具体做法如下:
① 修改 $ORACLE_HOME\10.2.0\db_1\KEVIN_orcl\sysman\config\emd.properties(其中KEVIN_orcl是我本机上的目录名称:servername_sid,若是自定义的$ORACLE_HOME请自行更改) 【也可以到oracle的安装目录下直接搜索emd.properties】
② 用记事本打开emd.properties,其中的agentTZRegion缺省是GMT,改为你所在的时区即可,例如:
agentTZRegion=Asia/Shanghai
重启机器或者OracleDBConsole<SID>服务
此时使用 http://ip:1158/em登录可以正常使用了,我就使用em创建表空间>用户>授权>执行还原命令。
这样就成功把oracle11G还原成oracle10G了。