我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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的区别是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

HTML中name、id、class有什么区别

这篇文章主要介绍了HTML中name、id、class有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在一个页面中,有许多的控件(元素或标签)。为了更方便的操作这些标
2023-06-08

oracle schema和database的区别是什么

Oracle Schema和Oracle Database是两个不同的概念。Oracle Database是一个完整的数据库系统,它是一个独立的实体,包含了数据的存储、管理、备份恢复、安全性等功能。它可以被看作是一个物理上存在的数据库实例。
oracle schema和database的区别是什么
2024-04-09

Oracle中PFILE和SPFILE的区别是什么

PFILE(Parameter File)和SPFILE(Server Parameter File)都是Oracle数据库中用来存储数据库参数配置信息的文件,它们之间的区别在于以下几点:PFILE是文本文件,而SPFILE是二进制文件。P
Oracle中PFILE和SPFILE的区别是什么
2024-04-19

oracle中nvarchar和varchar的区别是什么

在Oracle数据库中,nvarchar和varchar之间的主要区别在于它们处理字符数据的方式不同。具体来说:varchar:存储可变长度的字符数据。varchar列在存储数据时会根据实际输入的字符长度来分配空间,因此存储数据时可能会浪费
oracle中nvarchar和varchar的区别是什么
2024-04-09

oracle中blob与clob区别是什么

oracle中blob与clob区别是:1、BLOB是用来存储二进制数据的,而CLOB是用来存储文字的;2、BLOB全称为二进制大型对象,可存储的最大大小为4G字节,而CLOB全称为字符大型对象,不支持宽度不等的字符集,可存储的最大大小为4
2023-07-10

plsql和oracle的区别是什么

PL/SQL是Oracle数据库的一种编程语言,是Oracle数据库系统中的一部分。它是一种过程化语言,用于编写存储过程、触发器、函数等数据库对象。而Oracle是一种关系型数据库管理系统,提供了数据存储和管理的功能。它支持多种编程语言,包
2023-08-30

hadoop和oracle的区别是什么

Hadoop和Oracle是两种不同的数据处理技术和工具。Hadoop是一个开源的分布式计算框架,主要用于处理大规模数据的存储和处理。它可以在多台计算机上并行运行任务,通过将数据分布到不同的节点上来提高处理速度和容量。Hadoop通常用于处
hadoop和oracle的区别是什么
2024-04-09

Oracle与MySQL的区别是什么

这篇文章主要讲解了“Oracle与MySQL的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle与MySQL的区别是什么”吧!什么是MySQL?MySQL是一个关系型数据库
2023-07-06

db2和oracle的区别是什么

DB2和Oracle是两种不同的数据库管理系统,它们有一些区别,包括以下几点:开发公司:DB2由IBM开发,而Oracle由Oracle公司开发。数据类型支持:DB2支持更多的数据类型,包括用户定义的数据类型,而Oracle则支持更多的数据
db2和oracle的区别是什么
2024-03-01

oracle中count(1)与count(*)的区别是什么

在Oracle中,COUNT(1)和COUNT(*)是用来计算行数的聚合函数,但它们之间有一些细微的区别:COUNT(1)会对每一行都计算1的个数,然后返回非空值的行数。这种方法会比较快,因为只需要检查每一行的一个值是否为非空。COUNT
oracle中count(1)与count(*)的区别是什么
2024-03-02

oracle与db2的sql区别是什么

oracle与db2的sql区别:1、oracle用“create table a as select * from b”创建类似表,db2用“create table a like b”创建类似表;2、oracle用“to_char”函数
2023-07-10

编程热搜

目录