广告
返回顶部
首页 > 资讯 > 数据库 >Oracle中Database name、Instance Name、ORACLE_SID的区别是什么
  • 397
分享到

Oracle中Database name、Instance Name、ORACLE_SID的区别是什么

2024-04-02 19:04:59 397人浏览 安东尼
摘要

本篇文章为大家展示了oracle中Database name、Instance Name、ORACLE_SID的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收

本篇文章为大家展示了oracle中Database name、Instance Name、ORACLE_SID的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

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

一、数据库名

1、什么是数据库名?
        数据库名就是一个数据库的标识,就像人的身份证号一样。用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。格式如下:
DB_NAME=orcl
 
        在 创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是以 二进制型式存储的,用户无法修改控制文件的内容。假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。但是在Oracle启动时,由于参数文 件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。

2、数据库名的作用
        数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。
        有很多Oracle安装文件目录是与数据库名相关的,如:
            winnt: e:/oracle/product/10.1.0/oradata/DB_NAME/...
            Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...

        参数文件pfile:
        winnt: e:/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/...
        如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以nomount方式启动实例,然后以create controlfile命令创建控制文件,当然这个命令中也是指指DB_NAME。还有在备份或恢复数据库时,都需要用到数据库名。总之,数据库名很重要,要准确理解它的作用。

3、查询当前数据名
        方法一:select name from v$database;
        方法二:show parameter db
        方法三:查看参数文件。

4、修改数据库名
        建议:应在创建数据库时就确定好数据库名,数据库名不应作修改,因为修改数据库名是一件比较复杂的事情。那么现在就来说明一下,如何在已创建数据之后,修改数据库名。步骤如下:
        1.关闭数据库。
        2.修改数据库参数文件中的DB_NAME参数的值为新的数据库名。
        3.以NOMOUNT方式启动实例,修建控制文件(关于创建控制文件的命令语法,请参考oracle文档)

二、数据库实例名

1、什么是数据库实例名?
        实例是访问oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成的一个集合,它根本不需要一个与其相关的数据库,没有任何数据文件也可以启动实例。
        启动过程如下:
         sqlplus / as sysdba
         sql>startup nomount        #启动了一个实例,现在SGA分配了,进程在运行,除数据库所有的东西都启动了     
         sql>alter database mount  #查找以及加载控制文件(init.ora文件中指定),然后利用控制文件定位重做日志文件、数据文件、临时文件     
         sql>alter database open   #oracle将打开所有联机的数据文件及重做日志文件,供用户访问。
          大家访问oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误。
           实例名指的是用于响应某个数据库操作的数据库管理系统的名称,它同时也叫sid。实例名是由参数instance_name决定的。如果这个参数不被制定(即instance_name没有被指定任何值),那么实例的名字由该用户的环境变量ORACLE_SID(注意这里是大写)决定。
         
2、实例和数据库
        实例和数据库的区别:
        1)实例是临时的,它只在相关的进程和内存集合存在时存在,数据库是永久的,只要文件存在它就存在。
        2)一个实例在生存周期内可安装和打开单个数据库;数据库可以被很多实例安装和打开,或者一个接一个的实例安装和打开,每个实例都打开同一个数据库。
        数据库实例名用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。要去连接一个数据库服务器,就必须知道其数据库实例名,只知道数据库名是没有用的。与数据库名不同,在数据库安装或创建数据库之后,实例名可以被修改。数据库名和实例名可以相同也可以不同。一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(oracle实时应用集群)中,数据库名和实例名是一对多的关系(一个数据库对应多个实例,同一时间内用户只有一个实例相联系,当某一实例出现故障,其它实例自动服务,以保证数据库安全运行)。

3、查询当前数据库实例名
    方法一:select instance_name from v$instance;
    方法二:show parameter instance;


三、ORALCE_SID

        在实际中,对于数据库实例的标识有时使用实例名,有时使用ORACLE_SID,它们有什么区别? 
          (ORACLE_SID)
        OS<---------------->; ORACLE 数据库 <--------(Instance_name(实例名))
        上图表示实例instance_name、ORACLE_SID与数据库及操作系统之间的关系,虽然这里列出的两个参数都是数据库实例名,但是instance_name参数是ORACLE数据库的参数,此参数可以在参数文件中查到;而ORACLE_SID参数则是操作系统环境变量,与ORACLE_BASE、ORACLE_HOME用法相同,用于和操作系统交互。也就是说,在操作系统中要想得到实例名,就必须使用ORACLE_SID。切ORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误,在UNIX平台,是“ORACLE not available ” ,在winnt平台,是“TNS协议适配器错误”。

上述内容就是Oracle中Database name、Instance Name、ORACLE_SID的区别是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: Oracle中Database name、Instance Name、ORACLE_SID的区别是什么

本文链接: https://www.lsjlt.com/news/65821.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle中Database name、Instance Name、ORACLE_SID的区别是什么
    本篇文章为大家展示了Oracle中Database name、Instance Name、ORACLE_SID的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收...
    99+
    2022-10-19
  • HTML中name、id、class有什么区别
    这篇文章主要介绍了HTML中name、id、class有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在一个页面中,有许多的控件(元素或标签)。为了更方便的操作这些标...
    99+
    2023-06-08
  • html中name和value中的是什么意思
    这篇文章主要为大家展示了html中name和value中的是什么意思,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“html中name和value中的是什么意思”这...
    99+
    2022-10-19
  • oracle中{}和${}区别是什么
    这篇文章主要介绍“oracle中{}和${}区别是什么”,在日常操作中,相信很多人在oracle中{}和${}区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”orac...
    99+
    2022-10-18
  • Oracle中in和exists的区别是什么
    本篇文章给大家分享的是有关Oracle中in和exists的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、第一种情况selec&...
    99+
    2022-10-18
  • oracle中exp和imp的区别是什么
    oracle中exp和imp的区别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  exp和imp的输入都是名字和值对:exp pa...
    99+
    2022-10-18
  • oracle中ADG与DG的区别是什么
    oracle中ADG与DG的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  DG与ADG的对比:DG只能用Real...
    99+
    2022-10-18
  • MySQL和Oracle的区别是什么
    这篇文章主要介绍了MySQL和Oracle的区别是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、宏观上:1、Oracle是大型的数据...
    99+
    2022-10-18
  • plsql和oracle的区别是什么
    PL/SQL是Oracle数据库的一种编程语言,是Oracle数据库系统中的一部分。它是一种过程化语言,用于编写存储过程、触发器、函...
    99+
    2023-08-30
    oracle
  • Oracle与MySQL的区别是什么
    这篇文章主要讲解了“Oracle与MySQL的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle与MySQL的区别是什么”吧!什么是MySQLMySQL是一个关系型数据库管...
    99+
    2023-07-06
  • oracle中blob与clob区别是什么
    oracle中blob与clob区别是:1、BLOB是用来存储二进制数据的,而CLOB是用来存储文字的;2、BLOB全称为二进制大型对象,可存储的最大大小为4G字节,而CLOB全称为字符大型对象,不支持宽度不等的字符集,可存储的最大大小为4...
    99+
    2023-07-10
  • ORACLE session中SPID、PID、SID的区别是什么
    本篇内容介绍了“ORACLE session中SPID、PID、SID的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2022-10-19
  • oracle与db2的sql区别是什么
    oracle与db2的sql区别:1、oracle用“create table a as select * from b”创建类似表,db2用“create table a like b”创建类似表;2、oracle用“to_ch...
    99+
    2023-07-10
  • DM7,DM8和ORACLE中对分区split的区别是什么
    本篇内容主要讲解“DM7,DM8和ORACLE中对分区split的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“DM7,DM8和ORACLE中对分区s...
    99+
    2022-10-19
  • oracle中where与having的区别是什么
    今天就跟大家聊聊有关oracle中where与having的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.wher...
    99+
    2022-10-18
  • Oracle中Null与空字符串的区别是什么
    本篇文章为大家展示了Oracle中Null与空字符串的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。含义解释: 问:什么是NULL? ...
    99+
    2022-10-18
  • oracle交集和并集的区别是什么
    在Oracle中,交集和并集是用来操作集合的两种不同方式。 交集(INTERSECT):交集是指返回两个或多个集合中共同的元素。...
    99+
    2023-10-22
    oracle
  • Mysql、SqlServer和Oracle三者的区别是什么
    Mysql、SqlServer和Oracle三者的区别是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、MySQL优点:体积小、速度...
    99+
    2022-10-18
  • 在Oracle中session和process的区别什么
    这篇文章将为大家详细讲解有关在Oracle中session和process的区别什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。对应元数据表v$resou...
    99+
    2022-10-19
  • mysql插入mybatis时和oracle的区别是什么
    本篇内容介绍了“mysql插入mybatis时和oracle的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作