Oracle相关概念

Oracle相关概念

数据库名、实例名、数据库域名、全局数据库名、服务名

一、数据库名

(一)、 什么是数据库名

数据库名~ 一个数据库的标识 ~ 用参数db_name表示

一机器多全数据库 ~ 每一个数据库一个数据库名

数据库安装或者创建完成后 ~ 参数db_name被写入参数文件

db_name=myorcl


创建数据库时应考虑好数据库名 ~ 创建完后,数据库名不宜修改~修改很麻烦

因为,数据库名还会~写入控制文件中,~ 控制文件二进制型式存储的~ 用户无法更改控制文件的内容

假设用户修改了参数文件的db_name ~ 但oracle启动时,由于参数文件中的db_name与控制文件的数据库名不一致~

导致数据库启动失败,~返回ora-01103错误


(二)、 数据库名的作用

数据库名 ~在安装数据库 、 创建新的数据库、 创建数据库控制文件、 修改数据结构、 备份与恢复数据时~

都需要用到

很多oracle安装文件目录~ 与数据库名相关 如:

winnt: d:/oracle/product/10.1.0/admin/db_name/...

unix: /home/app/oracle/product/10.1.0/oradata/db_name/...

pfile:

winnt: d:/oracle/product/10.1.0/admin/db_name/pfile/ini.ora

unix: /home/app/oracle/product/10.1.0/admin/db_name/pfile/init$ORACLE_SID.ora

跟踪文件目录:

winnt: /home/app/oracle/product/10.1.0/admin/db_name/bdump/...

另外, 在创建数据时~ create database 命令中 ~ 数据库名也要与参数文件中 db_name一致 ~否则将产生错误

同样,修改数据库结构语句~alter database, 也要指出要修改的 数据库名称

如果控制文件损坏或丢失, ~ 数据库将不能加载~ 重建控制文件~

方法是以nomount方式启动实例~ 然后以create controlfile 命令创建控制文件,~当然命令中也是指db_name

备份或恢复数据库时, 都要用到数据库名 ~ 数据库名很重要


1. 查询当前数据库名


2. 修改数据库名



二、 数据库实例名

(一)、 什么是数据库实例名

数据库实例名 ~ 用于和操作系统进行联系的标识 ~

数据库和操作系统之间的交互 ~ 用的是数据库实例名

实例名也被写入参数文件 ~ 参数instance_name ~

在winnt平台~ 实例名同时也被写入注册表。

数据库名和实例名可以相同也可以不同。

一般情况~ 数据库名 和实例名 是一对一的关系 ~

如果,在oracle并行服务器架构(即oracle实时应用集群),~ 数据库名和实例名是一对多的关系


1. 查询当前数据名


2. 数据库实例名 与oracle_sid

虽然两者都表示oracle实例,但两者是有区别的。

instance_name 是oracle数据库参数~ oracle_sid是操作系统的环境变量。

oracle_sid 用于与操作系统交互 ~ 也就是说, 从操作系统角度 访问实例名 ~必须通过oracle_sid。

在winnt平台, ~oracle_sid 还需存在于注册表中。

oracle_sid 必须与instance_name的值一致~ 否则将收到一个错误
在unix平台, 是“oracle not available” ~ 在winnt平台, 是“tns: 协议适配器错误”


(二)、 数据库实例名与网络连接



三、数据库域名

(一)、什么是数据库域名



四、全局数据库名

全局数据库名 = 数据库名+数据库域名, 如前述福建节点的全局数据库名是:oradb.fj.jtyz


五、数据库服务名

数据库服务名,~参数名是service_name。

如果数据库有域名,则数据库服务名 ~ 就是全局数据库名 ~

否则~ 数据库服务名与 数据库名相同


1. 查询当前数据库服务名


2. 数据库服务名与网络连接

从oracle8i开始,~oracle 网络组件、 数据库与客户端的连接主机串~使用数据库服务名~
之前用的是 oracle_sid, 即数据库实例名。


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页