Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92243215
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-03-30 13:11:47

来源:赛迪网    作者:罗丽娜

【赛迪网-IT技术报道】在Oracle 10g中建立没有域名的DB_LINK:

记录如下:

--用alter语句这种修改方法,重启数据库,无效!

alter database rename global_name to ORCL;

--用alter语句这种修改方法,重启数据库,有效!但是不是我想要的结果,虽然域名修改后变短了,但是建立DB_LINK还有域名存在!

alter database rename global_name to ORCL.QIANGGUO.COM;

--用update语句这种修改方法,重启数据库,有效!创建DB_LINK没有域名存在!

update global_name set global_name='ORCL';

Microsoft Windows [版本 5.2.3790]

(C) 版权所有 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 19 14:22:37 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL> show parameter global_name;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

global_names boolean FALSE

SQL> show parameter global_name

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

global_names boolean FALSE

SQL> select * from global_name;

GLOBAL_NAME

--------------------------------------------------------------------------------

ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM

SQL> alter database rename global_name to ORCL;

数据库已更改。

SQL> select * from global_name; --在这里可以看到,把global_name直接修改为“ORCL”,并不起作用!

GLOBAL_NAME

--------------------------------------------------------------------------------

ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 289406976 bytes

Fixed Size 1248576 bytes

Variable Size 134218432 bytes

Database Buffers 146800640 bytes

Redo Buffers 7139328 bytes

数据库装载完毕。

数据库已经打开。

SQL> select * from global_name; ---重启数据库后,仍然不起作用,GLOBAL_NAME并没有变成我想要的“ORCL”!

GLOBAL_NAME

--------------------------------------------------------------------------------

ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM

SQL> alter database rename global_name to ORCL.QIANGGUO.COM; --如果修改为带域名的“ORCL.QIANGGUO.COM”,重启数据库将起作用,域名发生了变化!

数据库已更改。

SQL> select * from global_name;

GLOBAL_NAME

--------------------------------------------------------------------------------

ORCL.QIANGGUO.COM

SQL> alter database rename global_name to ORCL; --再次试着修改为”ORCL“,仍然不行!

数据库已更改。

SQL> select * from global_name;

GLOBAL_NAME

--------------------------------------------------------------------------------

ORCL.AHDX.COM

SQL> update global_name set global_name='ORCL'; --如果用update语句修改,重启数据库,成功!哈哈!

已更新 1 行。

SQL> select * from global_name;

GLOBAL_NAME

--------------------------------------------------------------------------------

ORCL

SQL> select * from global_name;

GLOBAL_NAME

--------------------------------------------------------------------------------

ORCL

SQL> commit;

提交完成。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 289406976 bytes

Fixed Size 1248576 bytes

Variable Size 134218432 bytes

Database Buffers 146800640 bytes

Redo Buffers 7139328 bytes

数据库装载完毕。

数据库已经打开。

SQL> select * from global_name;--如果用update语句修改,重启数据库,成功!哈哈!

GLOBAL_NAME

--------------------------------------------------------------------------------

ORCL

SQL>

分析一下:global_name视图

创建global_name视图的语句如下:

create or replace view global_name

as

select value$ from sys.props$ where name = 'GLOBAL_DB_NAME'

不能直接修改sys.props$内部表,会告诉你权限不足!

所以可以用update修改!

验证如下:

SQL> select * from global_name;

GLOBAL_NAME

--------------------------------------------------------------------------------

ORCL

SQL> select value$ from sys.props$ where name = 'GLOBAL_DB_NAME';

VALUE$

--------------------------------------------------------------------------------

ORCL

SQL>

阅读(168) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~