SP2-0642: SQL*Plus internal error state 2130, context 0:0:0
2016-10-09
没有评论
今天一个10g的客户端,连接12c的数据库,报错:
sqlplus user/passwd@10.11.22.33:1525/mysrv SQL*Plus: Release 11.1.0.6.0 – Production on Thu Jun 11 10:05:29 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. SP2-0642: SQL*Plus internal error state 2130, context 0:0:0 Unsafe to proceed
| 1 2 3 4 5 6 7 8 | sqlplus user / passwd @ 10.11.22.33 : 1525 / mysrv SQL* Plus : Release 11.1.0.6.0 – Production on Thu Jun 11 10 : 05 : 29 2009 Copyright ( c ) 1982 , 2007 , Oracle . All rights reserved . SP2 – 0642 : SQL* Plus internal error state 2130 , context 0 : 0 : 0 Unsafe to proceed |
而这个客户端连接其他12c的数据库是没有问题的。
这是因为建立的service已经是非标准的service,包含了failover type等参数。见下面的Test Case:
Test Case: ———- 1.Create a service srvctl add service -d <database-name> -s <service-name> -r “instance-name,instance-name” -P BASIC 2. Start the service srvctl start service -d rac -s <service-name> Below was service called test_srv 3.Make a connection using ezconnnect >> sqlplus scott/tiger@jcrac1-vip:1521/test_srv This will work. 4.Now modify the service SQL> select name,service_id from dba_services where name = ‘test_srv‘; NAME SERVICE_ID —————————————————————- ———- server_taf 12 SQL> execute dbms_service.modify_service (service_name => ‘test_srv‘ – , aq_ha_notifications => true – , failover_method => dbms_service.failover_method_basic – , failover_type => dbms_service.failover_type_select – , failover_retries => 180 – , failover_delay => 5 – , clb_goal => dbms_service.clb_goal_long); SQL>select name, failover_method, failover_type, failover_retries,goal, clb_goal,aq_ha_notifications from dba_services where service_id = 12 NAME METHOD TYPE RETRIES GOAL CLB_GOAL AQNOT ————— ———– ———- ——– ———- ——– —– test_srv BASIC SELECT 180 NONE LONG YES 5.Connection now fails sqlplus scott/tiger@jcrac1-vip:1521/test_srv SQL*Plus: Release 11.1.0.6.0 – Production on Thu Jun 11 10:05:29 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. SP2-0642: SQL*Plus internal error state 2130, context 0:0:0 Unsafe to proceed Enter user-name:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | Test Case : — — — — — 1.Create a service srvctl add service – d < database – name > – s < service – name > – r “instance-name,instance-name” – P BASIC 2. Start the service srvctl start service – d rac – s < service – name > Below was service called test _srv 3.Make a connection using ezconnnect >> sqlplus scott / tiger @ jcrac1 – vip : 1521 / test_srv This will work . 4.Now modify the service SQL > select name , service_id from dba_services where name = ‘test_srv‘ ; NAME SERVICE_ID — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — server _taf 12 SQL > execute dbms_service . modify_service ( service_name = > ‘test_srv‘ – , aq_ha_notifications = > true – , failover_method = > dbms_service . failover_method_basic – , failover_type = > dbms_service . failover_type_select – , failover_retries = > 180 – , failover_delay = > 5 – , clb_goal = > dbms_service . clb_goal_long ) ; SQL > select name , failover_method , failover_type , failover_retries , goal , clb_goal , aq_ha_notifications from dba_services where service_id = 12 NAME METHOD TYPE RETRIES GOAL CLB_GOAL AQNOT — — — — — — — – — — — — — – — — — — — — — — — — — — — — — — — — — — – test_srv BASIC SELECT 180 NONE LONG YES 5.Connection now fails sqlplus scott / tiger @ jcrac1 – vip : 1521 / test_srv SQL* Plus : Release 11.1.0.6.0 – Production on Thu Jun 11 10 : 05 : 29 2009 Copyright ( c ) 1982 , 2007 , Oracle . All rights reserved . SP2 – 0642 : SQL* Plus internal error state 2130 , context 0 : 0 : 0 Unsafe to proceed Enter user – name : |
该问题是Bug 8599395 : EZCONNECT ERRORS WITH SP2-0642: SQL*PLUS INTERNAL ERROR STATE 2130, CONTEXT 0:0:
解决方法:
建议升级客户端到11.2以上,或者按照bug文档中的workaround也可以:
Workaround: ———– LOCAL naming resolution works — 使用tnsnames.ora文件连接 Use standard service works — 使用标准的service,去掉failover type的参数设置 Do not put port number in the command — 使用1521默认端口,ezconnect的时候,不写端口号
| 1 2 3 4 5 | Workaround : — — — — — – LOCAL naming resolution works — 使用 tnsnames . ora文件连接 Use standard service works — 使用标准的 service,去掉 failover type的参数设置 Do not put port number in the command — 使用 1521默认端口, ezconnect的时候,不写端口号 |
相关文章
11g库shutdown导致10g库的crsd进程重启
asm如何更换ocr和votedisk到新存储
用hanganalyze解决row cache lock
发表评论 取消回复
电子邮件地址不会被公开。 必填项已用*标注
评论
姓名 *
电子邮件 *
站点
此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。
原文地址:https://oracleblog.org/working-case/sp2-0642-sqlplus-internal-error-state-2130-context-000/