Oracle 数据库名、实例名、Oracle_SID
本文参考自ORACLE 数据库名、实例名、ORACLE_SID的区别,纯属读书笔记,加深记忆
在ORACLE7、8数据库中只有数据库名(db_name)和数据库实例名(instance_name)。在ORACLE8i、9i中出现了新的参数,即数据库域名(db_domain)、服务名(service_name)、以及操作系统环境变量(ORACLE_SID)。这些都存在于同一个数据库中的标识,用于区分不同数据库的参数。
1、数据库名
数据库名是用于区分数据的标识,是以二进制形式存储于数据库控制文件中的参数,在数据库安装或者创建之后不得修改,在数据库创建之后,该参数将被写入到数据库控制参数文件pfile中,其基本格式如下:
.........
db_name="orcl" #(不允许修改)
db_domain=dbcenter.toys.com
instance_name=orcl
service_names=orcl.dbcenter.toys.com
control_file=(...............
.........
注:每一个运行Oracle 8i及以上的数据库都有一个数据库名。但如果服务器程序创建了两个数据库,那么就会有两个数据库名,它们分别存储与不同的数据库控制参数文件pfile中,分别控制着对应的数据库。
2、数据库实例名
数据库实例名是用于和操作系统之间的联系,用于对外部连接时使用。在操作系统中,要取得于数据库之间的联系必须通过实例名。比如:要和某一个数据库Server进行连接,必须通过实例名,只知道数据库名是没用的,与数据库名不同的是,数据库实例名在数据库的安装或者创建之后,是可以被修改的。数据库在安装之后,对应的实例名会被写入到数据库控制参数文件pfile(格式如下代码块)中,可以通过修改这个文件,来修改Oracle数据库的实例名,当然,数据库名是不能修改的!
db_name="orcl" #(数据库名:不允许修改)
db_domain=dbcenter.toys.com
instance_name=orcl #(数据库实例名:可以修改,可以与db_name相同也可不同)
service_names=orcl.dbcenter.toys.com
control_file=(...............
.........
3、数据库名和实例名之间的关系
a、数据库名于实例名之间的关系一般是一一对应,有一个数据库名,就有一个实例名。当然,如果在服务器上创建两个数据库,那么就会有两个数据库名和两个实例名;
b、通过一个数据库名和一个实例名可以确定一个可用的数据库
重点:在oracle 8i及以上的oracle数据库安装过程中会有
左图红框的数据库安装类型,是oracl并行服务器结构,该结构下的数据库和实例不是一一对应的关系,而是一对多的关系(一个数据库对应多个实例,即同一时间一个用户只和一个用户联系,当某一实例出现故障,其他实例自动服务,以保证数据库的安全运行,这个安装模式适合用于高并发访问的情况)
4、操作系统环境变量(Oracle_SID)
在很多情况下,对于数据库实例名的描述,有些时候使用(instance_name)参数,有些时候使用Oracle_SID参数,这两个都是数据库实例名参数,但是以下是他们的区别:
a、Oracle_SID是操系统环境变量
b、instance_name是Oracle数据库配置文件参数
c、操作系统想要获得数据库实例名必须通过系统环境变量Oracle_SID,而Oracle数据库如果想获得数据库实例名,则可以通过参数文件得到。Oracle_SID此参数与ORACLE_BASE、ORACLE_HOME等用法相同。在数据库安装之后,ORACLE_SID被用于定义数据库参数文件的名称。如:$ORACLE_BASE/admin/DB_NAME/pfile/init$ORACLE_SID.ora。
定义方法:
export ORACLE_SID=orcl
注:如果在同一服务器中创建了多个数据库,则必然同时存在多个数据库实例,这时可以重复上述定义过程,以选择不同实例。还可以用
[oracle@Datacent]$ . oraenv
来切换不同的ORACLE_SID来通过操作系统来启动不同的实例(instance)
- Linux下修改系统编码的操作记录
- 微信公众平
- linq to xml复习
- web cache server方案比较:varnish、squid、nginx
- Nginx虚拟目录alias和root目录
- Nginx的https配置记录以及http强制跳转到https的方法梳理
- VPC下访问FTP的问题
- 分析车辆雨刮频次计算降雨量 大数据服务天气预报
- 干货:这里有一份小程序接入微信支付避雷指南
- Mysql占用过高CPU时的优化手段
- 服务器端加入自动运行的JS代码
- 数据中心发电机组的调试与验收要求
- mysql连接数设置操作(Too many connections)
- 做好容错才能确保服务器的不间断运行
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- django-URL转换器(四)
- 【猫狗数据集】加载保存的模型进行测试
- 【猫狗数据集】划分验证集并边训练边验证
- 【猫狗数据集】使用学习率衰减策略并边训练边测试
- 面试题系列第2篇:new String()创建几个对象?有你不知道的
- spring之整合struts2
- django-URL之include函数(五)
- springmvc之使用ModelAttribute避免不允许被修改的值更新时为空
- 【colab pytorch】使用tensorboard可视化
- django-URL别名的作用(六)
- springmvc之如何确定目标方法Pojo类型的参数?
- 【colab pytorch】使用tensorboardcolab可视化
- 实用,完整的HTTP cookie指南
- django-URL之从URL中获取关键字(七)
- springmvc之使用POJO作为参数