您的位置:首页 > 运维架构

Cannot drop a database link after changing the global_name ORA-02024 [ID 382994.1]

2011-01-23 20:52 459 查看
Cannot drop a database link after changing the global_name ORA-02024 [ID 382994.1]
Modified 22-NOV-2010 Type PROBLEM Status MODERATED
In this Document
Symptoms
Cause
Solution

Platforms: 1-914CU;

This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.

Applies to:

Oracle Server - Enterprise Edition - Version: 9.2.0.6 and later [Release: 9.2 and later ]
Information in this document applies to any platform.
***Checked for relevance on 14-Jan-2010***

Symptoms

Not able to drop a database link after changing the global_name of the database

Earlier global_name had did not have domain name attached to it. The newly added
global_name has a domain name attached to it

When trying to drop the database link after this change throws the following error

ORA-02024: database link not found

But database link is present and the query on user_db_links displays the value

Example :-

SQL> select * from global_name;

GLOBAL_NAME
---------------------------------------------------------
DB10GR2

SQL> create database link l1 connect to scott identified by tiger;

Database link created.

SQL> select db_link from user_db_links;

DB_LINK
---------------------------------------------------------
L1

SQL> alter database rename global_name to DB10GR2.WORLD;

Database altered.

SQL> select * from global_name;

GLOBAL_NAME
---------------------------------------------------------
DB10GR2.WORLD

SQL> drop database link l1;
drop database link l1
*
ERROR at line 1:
ORA-02024: database link not found

Even if the global_name is changed back to the original value, the same errors
occurs.

Cause

Initially when a database is created without domain in the global name, null will
used from domain as opposed to .world in earlier releases

Later on when the global_name is altered to contain the domain part also, this
domain remains even when the global_name is altered back a name without domain name

Example :-

SQL> select * from global_name;

GLOBAL_NAME
---------------------------------------------------------
DB10GR2

SQL> alter database rename global_name to DB10GR2.WORLD;

Database altered.

SQL> select * from global_name;

GLOBAL_NAME
---------------------------------------------------------
DB10GR2.WORLD

SQL> alter database rename global_name to DB10GR2;

Database altered.

SQL> select * from global_name;

GLOBAL_NAME
---------------------------------------------------------
DB10GR2.WORLD

The only option left to correct this is to update the base table props$

Solution

To implement the solution, please execute the following steps:

1)Take a complete consistent backup of the database

2)Execute the following:

$sqlplus /nolog
connect / as sysdba

SQL> update props$ set value$ = '<globalname without domain>' where name ='GLOBAL_DB_NAME';

SQL>commit;

3)

a) Then connect as the schema user that owns the DBLINK and try to drop it.

If you still get ORA-2024: database link not found , that means the domain name is in your cache and needs to be cleared.

b) Flush shared pool thrice and retry drop database link.
alter system flush SHARED_POOL;
alter system flush SHARED_POOL;
alter system flush SHARED_POOL;

c) If step b doesn't help, you need to bounce your database and try to drop the database link.

4)Once the database link is dropped, the global_name can be changed back to the
desired name containing domain part using the alter database rename global_name
statement





------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:62697850 DBA 超级群:63306533;
聊天 群:40132017
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐