千家信息网

oracle unknown host specified 解决方案

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,今天还原oracle 11 G到oracle 10G上,首先出现了版本不匹配的问题。此问题使用 http://hundage.blog.51cto.com/3779401/1285465 中的解决方法
千家信息网最后更新 2024年11月20日oracle unknown host specified 解决方案

今天还原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服务

此时使用 http://ip:1158/em登录可以正常使用了,我就使用em创建表空间>用户>授权>执行还原命令。

这样就成功把oracle11G还原成oracle10G了。


0