zoukankan      html  css  js  c++  java
  • Oracle数据库学习笔记_数据库名、实例名以及SID的定义及区别

    接下来了解并区分一下数据库名(DB_NAME)、实例名(Instance_name)、以及操作系统环境变量(ORACLE_SID)

    在ORACLE7、8数据库中只有数据库名zhi(db_name)和数据库实例名(instance_name)。在ORACLE8i、9i中出现了新的参数,即数据库域名(db_domain)、服务名(service_name)、以及操作系统环境变量(ORACLE_SID)。这些都存在于同一个数据库中的标识,用于区分不同数据库的参数。

     一、数据库名(db_name)

    也就是在使用Database Configuration Assistant创建数据库实例时,填写的‘全局数据库名 tongying’,如下图:


    数据库名是用于区分数据的内部标识,是以二进制方式存储于数据库控制文件中的参数,在数据安装或创建之后将不得修改。数据库安装完成后,该参数被写入数据库参数文件pfile中,格式如下:
    [code:1:1aaf156970]
    .........
    db_name="orcl" #(不允许修改)
    db_domain=dbcenter.toys.com
    instance_name=orcl
    service_names=orcl.dbcenter.toys.com
    control_file=(...............
    .........
    [/code:1:1aaf156970]
    在每一个运行的ORACLE8i数据库中都有一个数据库名(db_name),如果一个服务器程序中创建了两个数据库,则有两个数据库名。其控制参数据分属在不同的pfile中控制着相关的数据库。

    二、数据库实例名(instance_name)

    在使用Database Configuration Assistant创建数据库实例时,数据库名设置为tongying后,实例名和SID都会自动默认为何数据库名相同。

     数据库实例名则用于和操作系统之间的联系,用于对外部连接时使用。在操作系统中要取得与数据库之间的交互,必须使用数据库实例名。例如,要和某一个数据库server连接,就必须知道其数据库实例名,只知道数据库名是没有用的,与数据库名不同,在数据安装或创建数据库之后,实例名可以被修改。数据库安装完成后,该实例名被写入数据库参数文件pfile中,格式如下:

    [code:1:1aaf156970]
    db_name="orcl" #(不允许修改)
    db_domain=dbcenter.toys.com
    instance_name=orcl #(可以修改,可以与db_name相同也可不同)
    service_names=orcl.dbcenter.toys.com
    control_file=(...............
    .........
    [/code:1:1aaf156970]
    数据库名与实例名之间的关系。
    数据库名与实例名之间的关系一般是一一对应关系,有一个数据库名就有一个实例名,如果在一个服务器中创建两个数据库,则有两个数据库名,两个数据库实例名,用两个标识确定一个数据库,用户和实例相连接。
    但在8i、9i的并行服务器结构中,数据库与实例之间不存在一一对应关系,而是一对多关系,(一个数据库对应多个实例,同一时间内用户只一个实例相联系,当某一实例出现故障,其它实例自动服务,以保证数据库安全运行。)
    三、操作系统环境变量(ORACLE_SID)

    在实际中,对于数据库实例名的描述有时使用实例名(instance_name)参数,有时使用ORACLE_SID(System Identifier,系统标识符)参数。这两个都是数据库实例名,它们有什么区别呢?(经常弄混)
    [code:1:1aaf156970]
    (ORACLE_SID)
    OS<----------------> ORACLE 数据库 <--------(Instance_name(实例名))
    [/code:1:1aaf156970]
    上图表示实例名instance_name、ORACLE_SID与数据库及操作系统之间的关系,虽然这里列出的两个参数都是数据库实例名,但instance_name参数是ORACLE数据库的参数,此参数可以在参数文件中查询到,而ORACLE_SID参数则是操作系统环境变量。
    操作系统环境变量ORACLE_SID用于和操作系统交互。也就是说,在操作系统中要想得到实例名,就必须使用ORACLE_SID。此参数与ORACLE_BASE、ORACLE_HOME等用法相同。在数据库安装之后,ORACLE_SID被用于定义数据库参数文件的名称。如:
    $ORACLE_BASE/admin/DB_NAME/pfile/init$ORACLE_SID.ora。
    定义方法:
    [code:1:1aaf156970]
    export ORACLE_SID=orcl
    [/code:1:1aaf156970]
    如果在同一服务器中创建了多个数据库,则必然同时存在多个数据库实例,这时可以重复上述定义过程,以选择不同实例。
    还可以用
    [code:1:1aaf156970]
    [oracle@Datacent]$ . oraenv
    [/code:1:1aaf156970]
    来切换不同的ORACLE_SID来通过操作系统来启动不同的实例(instance)

    D:appxiaotongproduct12.1.0dbhome_1

     

  • 相关阅读:
    self 和 super 关键字
    NSString类
    函数和对象方法的区别
    求两个数是否互质及最大公约数
    TJU Problem 1644 Reverse Text
    TJU Problem 2520 Quicksum
    TJU Problem 2101 Bullseye
    TJU Problem 2548 Celebrity jeopardy
    poj 2586 Y2K Accounting Bug
    poj 2109 Power of Cryptography
  • 原文地址:https://www.cnblogs.com/tongying/p/13158784.html
Copyright © 2011-2022 走看看