认知Oracle各种Name
来源:互联网 发布:2016网络流行语字母 编辑:程序博客网 时间:2024/06/05 14:24
一. db_name
1. 概念
db_name是一个数据库的唯一标识,最大长度为8位。如果一台机器上安装了多台数据库,那么每一个数据库都有一个数据库名。数据库在安装或者创建完成后,参数DB_NAME写入参数文件中。
[oracle@centos6 dbs]$ cd $ORACLE_HOME/dbs[oracle@centos6 dbs]$ cat init.oradb_name='ORCL'memory_target=1G
对于rac和standby,db_name是一致的。
查看db_name:
SQL> show parameter db_name NAME TYPE VALUE------------------------------------ ----------- ------------------------------db_name string ORCLSQL> select name from v$database;NAME---------ORCL
2. 作用
a. the name specified in the CREATE DATABASE statement
b. 控制文件。oracle启动的时候,如果参数文件中的db_name和控制文件中记录的db_name不一致,则无法启动。 ora-01103。所以修改db_name的时候,应同时修改控制文件中的db_name
dump控制文件:
DUMP OF CONTROL FILES, Seq # 5276 = 0x149c V10 STYLE FILE HEADER: Compatibility Vsn = 186646528=0xb200000 Db ID=1449842719=0x566ad81f, Db Name='ORCL' Activation ID=0=0x0 Control Seq=5276=0x149c, File size=600=0x258 File Number=0, Blksiz=16384, File Type=1 CONTROL
改变参数文件(将ORCL改为orcl1),验证:
注:将ORCL改为小写的orcl时,启动并不会报错,可能oracle这里不校验大小写。
SQL> startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initORCL.ora';ORACLE instance started.Total System Global Area 751595520 bytesFixed Size 2257032 bytesVariable Size 490737528 bytesDatabase Buffers 255852544 bytesRedo Buffers 2748416 bytesORA-01103: database name 'ORCL' in control file is not 'ORCL1'
同样的,如果控制文件损坏或丢失的时候,会使用CREATE CONTROLFILE的命令来重建控制文件,这时候也需要用到DB_NAME。
c. 数据库安装文件目录
[oracle@centos6 dbs]$ cd /u01/app/oracle/oradata/db_name #数据文件、控制文件、日志文件的路径对于单实例数据库,默认DB_NAME是与SID和Instance_name一致的,当然也可以不一致,路径通常在创建数据库DBCA的时候确定,以后也基本不会再修改。
二. instance_name
实例名指的是相应某个数据库操作的数据库管理系统的名称,同时也叫SID。实例名是由instance_name决定的,如果这个参数不被指定,那么实例名由用户的环境变量ORACLE_SID决定,
数据库实例名用于与外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。例如,要去连接一个数据库服务器,必须知道其数据库实例名,只知道数据库名是没用的。与数据库名不同,实例名在数据库创建之后是可以被修改的。数据库名与实例名可以相同也可以不用。一般数据库名与实例名是一对一的,但rac是例外,属于一个数据库名对应多个实例名。
查看instance_name:
SQL> show parameter instance_nameNAME TYPE VALUE------------------------------------ ----------- ------------------------------instance_name string prodSQL> select instance_name from v$instance;INSTANCE_NAME----------------ORCL
三. ORACLE_SID
instance_name是oracle数据库的参数,可以在参数文件中查到,而ORACLE_SID是操作系统的环境变量,与ORACLE_BASE,ORACLE_HOME用法相同。在操作系统中想要得到实例名,就必须要使用ORACLE_SID,且ORACLE_SID的值必须与instance_name的值一致。
[oracle@centos6 ~]$ echo $ORACLE_SIDORCL
四. global_name与db_domain
1. 概念和联系
使用数据库名(db_name)对数据库进行唯一标识,这种表示对单个数据库是足够的,但是在分布式系统中,这种命名方式可能会给数据库的管理造成一定的负担。因为各个数据库的名字可能一样。为了解决这种情况,引入了db_domain的概念,这样数据库标识就由db_domain和db_name共同决定,从而避免数据库重名的情况。db_name+db_domain即是global_name。
db_domain(数据库域名):定义一个数据库所在的域,该'域'名的定义与互联网中的域没有任何关系,只是数据库管理员为了更好地管理分布式 数据库而根据实际情况决定的。也可以将其等同于互联网的域。
global_name(全局数据库域名):对一个数据库(oracle database)的唯一标识,oracle建议用此种方法来标识数据库。该值是在创建数据库时决定的,缺省值为db_name.db_domain,以后对这两个值的修改不影响global_name的值,如果要修改global_name的值,只能使用alter database rename global_name to的命令,然后修改相应的参数。
2. 查询数据库域名
SQL> show parameter db_domainNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_domain string us.oracle.com也可以从参数文件中查看
3. 查询global_name
SQL> select * from global_name;GLOBAL_NAME--------------------------------------------------------------------------------ORCL.US.ORACLE.COM
4. 用户
db_link:当global_names参数设置为true时,使用DATABASE LINK时,db_link的名称必须与被连接数据库的global_name一致。
五. service name(数据库服务名)
在oracle8i之前,用SID来表示数据库的一个实例,但是在oracle的并行环境中,一个数据库对应多个实例,这样就需要多网络服务名,设置繁琐,为了便于并行环境中的设置,引入了service name的概念。该参数对应一个数据库,而不是一个实例。
service name缺省值为db_name.db_domain,即等于global_name,当db_domain为空时,数据库服务名与数据名一样。一个数据库可以对应多个service name,以便实现更灵活的配置,与SID没有直接关系,即serviced_name与SID不必一致。
从oracle8i开始的网络组建,数据库与客户端连接的主机字符串使用的是数据库服务名,之前使用的是SID
查询数据库服务名:
SQL> show parameter serviceNAME TYPE VALUE------------------------------------ ----------- ------------------------------service_names string ORCL.us.oracle.com
用处:
LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sale-server)(PORT=1521)) (ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=sales.us.example.com) (ORACLE_HOME=/oracle11g) (SID_NAME=sales)) (SID_DESC= (SID_NAME=plsextproc) (ORACLE_HOME=/oracle11g) (PROGRAM=extproc)))监听中的global_dbname必须与service name一致。否则就算启动了静态监听,也注册不了服务、
六. net_service_name(网络服务名)
又可以称为数据库别名(database alias)。是客户端程序访问数据库时所需要,屏蔽了客户端如何连接到服务器端的细节,实现了数据库位置透明的特性。网络服务名被记录在tnsnames.ora中。
net_service_name=(DESCRIPTION= (ADDRESS=...) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))
- 认知Oracle各种Name
- oracle中各种“name”
- Oracle中各种“name”
- oracle的各种name(总结自warehouse)
- ActiveDriectory中的各种Name
- 认知神经心理学(各种生理心理效应)
- 认知
- 认知
- 认知
- 认知
- 认知
- 认知
- 认知
- 认知
- Change Oracle Service Name
- 各种要有认知的常识、技巧(updating~~)
- Oracle中Service Name、Database name、Instance Name的区别
- Oracle中Service Name、Database name、Instance Name的区别
- 关于Linux静态库和动态库的分析
- jvm类加载器
- 小飞鱼软件 通达OA工作流超时自动结束程序
- Ubuntu 生成文件列表 .txt目录
- [001-Makefile-笔记] Makefile简介
- 认知Oracle各种Name
- 单文档多视图切换的解决办法
- 字符编码笔记:ASCII,Unicode和UTF-8
- SpringBoot专题1----springboot与mybatis的完美融合
- 知乎的链接
- php获取当前页面完整URL地址
- 11月英语总结
- springboot + mybatis
- 验证CUDA是否安装成功且与Visual Studio集成