show parameter db_name NAME TYPE VALUE ---- -------- ------------ db_name string test1 db_name是数据库的名字,oracle本身可能" />
龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

简介Oracle的9个_name(1)

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
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本身可能

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

精彩图集

赞助商链接