下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

理解Oracle数据实例和数据库,两者之间的关系

作者:小K     来源: http://www.kokojia.com点击数:3819发布时间: 2018-04-23 10:00:02

标签: Oracle数据库服务器

  本文纯属读书笔记,用于加深印象,主要是对Oracle数据库实例,数据库的理解,两者之间存在什么关系。

理解Oracle数据实例和数据库,两者之间的关系_Oracle_数据库_服务器_课课家教育
  一个数据库服务器上可以装几个数据,它们都是用sid来标志,例如oracl1,oracl2,oracl3,等等,一个数据库如oracl1中可以有多少个实例?
  数据库就是一个相片底片,实例即是相纸,一个底片可以冲多个相纸,但一张相纸最多冲一个底片。
  Oracle数据库,实际上应该是说,我们使用的是Oracle服务server。
  Oracle服务server包括两个部分:一个部分是Oracle数据库database,一个部分是数据库实例instance。
  数据库(database):物理操作系统文件或磁盘(disk)的几个。使用Oracle 10g的自动存储管理(automatic storage management,ASM)或RAW分区时,数据库可能不能作为操作系统中单独的文件,但定义仍然不变。
  实例(instance):一组Oracle后台进程/线程以及共享内存区,这些内存由同一个计算机上运行的线程/进程共享。这里可以维护易失、非持久性内容(有些可以刷新输出磁盘),就算没有磁盘存储,数据库实例也能存在,也许实例不算是世界上有用的是我,不过你完全可以把它想成是最有用的事物,这有助于对实例和数据库划清界线。
  这两个词有时可以互换使用,不过二者的概念完全不同。实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。实际上,准确地将,实例在其整个生存期中国最多能装载和打开一个数据库!
  Oracle数据库database,包括有数据库文件、控制文件、重做日志文件,都是一些物理上的文件。
  数据库实例instance,包括有数据库后台进程(PMOM、SMOM、DBWR、LGWR、CKPT等)和内存区域SGA(包括shared pool、db buffer Cache、redo log buffer等)。实例是一系列复杂的内存结构和操作系统进程。
  严格的说:一个Oracle服务,只包括一个Oracle实例和一个数据库(不考虑双机并行等这样的情况)。但是一个实例只能对应一个数据库,一个数据库有可能对应多个实例。除非使用并行Oracle服务器选项,否则每个Oracle数据库都有一个实例与之相关,一个数据库被唯一的一个实例装载。
  数据库与实例之间是1对1/n的关系,在非并行的数据库系统汇总每个Oracle数据库与预留个实例想对应;在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行,在任何情况下,每个实例都只能可以对应一个数据库。
  我们向数据库写数据或只读数据,则只能通过实例进行。
  同一时间,一个实例只能打开一个数据库,也就是一个实例只能操作或管理一个数据库;通常,同一时间,一个数据库只能被一个实例打开,但RAC情况除外。安装Oracle时,通常会安装一个实例--数据库对(当然可以装多对),而且他们的名字相同(也就是实例和数据库名字相同),他们的名字当然可以不同,不管相不相同,他们的联系时通过xxx/pflie/init.ora初始化文件联系的。因为xxx就是实例的名字,而xxx.ora中的db_name,则记录相应数据库的名字。
  下面演示启动xxx实例,挂接数据库,打开数据库,关闭数据库、卸载数据库、关闭实例的过程。
  1.为了能进行以上操作,Oracle的监听器必须首先启动,这样,我们才能有机会连接到Oracle服务器端。可以通过如下命令进行:lsnrctl start;
  2.Oracle启动,Windows下通常在服务里启动oracle,一般情况下同时启动相关实例,但也可以设置启动oracle时,不启动任何指定实例,这样oracle的启动速度相当快。
  3.设定我们需要启动的相关实例。在console窗口中,输入 set oracle_sid=xxx (Unix环境下用export命令)
  4.用/nolog方式,进入sqlplus。 在console窗口中,输入 sqlplus /nolog ,然后回车,则进入sqlplus环境。
  5.输入命令 connect sys as sysdba 回车后,提示输入口令,直接回车,则以sysdba的角色连接到oracle的空闲实例。
  6.输入命令 startup nomount 回车,则启动了xxx实例,由set oracle_sid=xxx设置。
  7.输入命令 alter database mount 回车,则将相应的数据库挂接到xxx实例。
  8.输入命令 alter database open 回车,则打开了相应数据库。
  9.输入命令 shutdown,则关闭数据库、卸载数据库、关闭实例。
  以上就是关于Oracle数据实例和数据库,两者之间的关系的阐述,相信通过学习,你一定都会了。更多的资讯尽在课课家教育,欢迎关注。

赞(15)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程