zoukankan      html  css  js  c++  java
  • 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命令
    使用JS实现前端缓存
    git放弃本地修改 强制更新
    java list
    Jquery获取select 控件的change事件时选中的值
    如何将Js代码封装成Jquery插件
    如何获取Iframe的页面控件的值
    简单的百度地图点击获取当前地理坐标
    使用Ajax上传图片到服务器(不刷新页面)
    在微信浏览器中如何让他自动关闭当前页面回到会话框js
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/6593494.html
Copyright © 2011-2022 走看看