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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-23 11:17:45

作者: Peak Wong 出处: 
 
 
阅读提示:Oracle的9个_name是作者讲课时的总结。本文分别对这9个_name名配以实例的进行了深入分析。

1、db_name 数据库名

SQL> connect xys/manager as sysdba

已连接。

SQL> show user

USER 为 "SYS"

SQL> show parameter db_name

NAME TYPE VALUE

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

db_name string test1

db_name是数据库的名字,oracle本身可能是比较有用的,对我们而言没有什么太多的用处,db_name记录在controlfile,datafile_header,redo中,要想修改db_name是比较麻烦的有两种办法:1、重建controlfile,之后要求必须以reseglogs方式打开数据库;2、通过nid。另外在建库时db_name被限制为最长8个字符,尽管10g在创建时没有错误提示了,但是看看库里最多能存下几个字符就明白了,为什么即使输入超过8个字符不会报错,但是最终还是被截断了,之前我就为一个企业处理过截断db_name而引起的一些问题。

 SQL> desc v$database;

名称 是否为空? 类型

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

DBID NUMBER

NAME VARCHAR2(9)

SQL>

因此,在建库时指定恰当的db_name还是非常重要的。db_name还有一个非常重要的作用就是动态注册监听,不管是否指定了service_name,或者说service_name的值是什么,pmon都会使用db_name动态注册监听的。

SQL> host lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-12月-2007 10:1
9:36
Copyright (c) 1991, 2005, Oracle. All rights reserved.

Oracle的9个_name是作者讲课时的总结。本文分别对这9个_name名配以实例的进行了深入分析。

正在连接到(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

LISTENER 的 STATUS

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

别名 LISTENER

版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ

ction

启动日期 03-12月-2007 09:29:47

正常运行时间 0 天 0 小时 49 分 50 秒

跟踪级别 off

安全性 ON: Local OS Authentication

SNMP OFF

监听程序日志文件 e:\oracle\product\10.2.0\db_1\network\log\listener.log

监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1521)))

服务摘要..

服务 "TEST2.COM" 包含 1 个例程。

例程 "inst_test", 状态 READY, 包含此服务的 1 个处理程序...

服务 "TEST3.COM" 包含 1 个例程。

例程 "inst_test", 状态 READY, 包含此服务的 1 个处理程序...

服务 "test1.COM" 包含 1 个例程。

例程 "inst_test", 状态 READY, 包含此服务的 1 个处理程序...

服务 "test1_XPT.COM" 包含 1 个例程。

例程 "inst_test", 状态 READY, 包含此服务的 1 个处理程序...

命令执行成功

SQL> show parameter service_names

NAME TYPE VALUE

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

service_names string TEST2, TEST3

我们发现service_names的值是TEST2, TEST3,但是lsnrctl status显示的结果中包含了“

服务 "test1.COM" 包含 1 个例程。

例程 "inst_test", 状态 READY, 包含此服务的 1 个处理程序...”

2、instnace_name 实例名

SQL> show parameter instance_name

NAME TYPE VALUE

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

instance_name string inst_test

instance_name除了动态注册监听用到之外,到目前为止我没有发现其他用处,也许oracle用它来区分各个实例?不过相信仅仅通过instance_name也不能完全区分,至少也的用到sid吧,看看上面显示出来的动态注册监听中的信息,其中inst_test就是instance_name

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