Oracle数据库包括两个部分数据库和数据库实例
olsnodes,这个命令用来显示集群点列表(grid即oracle rac的第三个安装包内的软件,可找到)
//集群名称
[grid@shdb02 ~]$ olsnodes -c
shfpdb-cluster
//集群有两个节点
[grid@shdb01 network-scripts]$ olsnodes
shdb01
shdb02
//集群的编号
[grid@fpdb02 ~]$ olsnodes -n
shdb01 1
shdb02 2
[grid@shdb02 ~]$ srvctl config asm
ASM home: /u01/app/11.2.0/grid
ASM listener: LISTENER
[grid@shdb02 ~]$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): shdb02,shfpdb01
[grid@shdb02 ~]$ srvctl status instance -d fpmai -i fpmai1,fpmai2
Instance fpmai1 is running on node shdb01
Instance fpmai2 is running on node shdb02
[grid@shdb02 ~]$ crs_stat -t|grep lsnr
ora....ER.lsnr ora....er.type ONLINE ONLINE shdb01
ora....N1.lsnr ora....er.type ONLINE ONLINE shdb02
ora....01.lsnr application ONLINE ONLINE shdb01
ora....02.lsnr application ONLINE ONLINE shdb02
[grid@shdb02 ~]$ srvctl config nodeapps -n shdb01 -a
-n <node_name> option has been deprecated.
Network exists: 1/10.128.51.0/255.255.255.0/eth0, type static
VIP exists: /shfpdb01-vip/10.128.51.23/10.128.51.0/255.255.255.0/eth0, hosting node shdb01
//查看集群的状态
[grid@shdb01 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER(节点) STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCH.dg
ONLINE ONLINE shdb01
ONLINE ONLINE shdb02
.....
ora.asm
ONLINE ONLINE shdb01 Started
ONLINE ONLINE shdb02 Started
ora.gsd
OFFLINE OFFLINE shdb01
OFFLINE OFFLINE shdb02
...
ora.registry.acfs
ONLINE ONLINE shdb01
ONLINE ONLINE shdb02
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE shdb02
ora.cvu
1 ONLINE ONLINE shdb02
ora.fp.db
1 ONLINE ONLINE shdb01 Open //已打开
2 ONLINE ONLINE shdb02 Open //已打开
ora.htc.db
1 OFFLINE OFFLINE Instance Shutdown
2 OFFLINE OFFLINE Instance Shutdown
ora.hts.db
1 ONLINE ONLINE shdb01 Open
2 ONLINE ONLINE shdb02 Open
ora.oc4j
1 ONLINE ONLINE shdb01
ora.scan1.vip
1 ONLINE ONLINE shdb02
ora.shdb01.vip
1 ONLINE ONLINE shdb01
ora.shdb02.vip
1 ONLINE ONLINE shdb02
网络层由各个节点的网络组件组成
[grid@shdb01 network-scripts]$ oifcfg iflist
eth0 10.128.51.0
eth1 10.128.53.0
eth1 169.254.0.0
[grid@shdb01 network-scripts]$ oifcfg getif
eth0 10.128.51.0 global public
eth1 10.128.53.0 global cluster_interconnect
[grid@shdb01 network-scripts]$ oifcfg getif -type public
eth0 10.128.51.0 global public
查看数据库,查看当前节点信息
[grid@shdb01 network-scripts]$ hostname
shdb01
[grid@shdb01 network-scripts]$ srvctl config database -d fp -a
Database unique name: fp
Database name: fp
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/fp/spfilefp.ora //用的是asm
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: fp
Database instances: fp1,fp2 //有两个实例
Disk Groups: DATA
Mount point paths:
Services:
Type: RAC
Database is enabled
Database is administrator managed
//解读信息,数据库名为fpmai , 他有两个数据库实例 fpmai1,fpmai2
综合以上信息,我们调研情况为
1、集群有2个节点 shdb01,shdb02
2、集群中有一个数据库名为fpmai
3、fp数据库有2个实例.
现在我们在来讲可能就比较容易理解一些oarcle数据库服务器主要有两部分组成:物理数据库和数据库管理系统
1、实例
数据库管理系统是用户和物理数据库之间的一个中间层,是软件层。这个软件层具有一定的结构,这个结构又被称为实例结构。
在启动数据库时,oracle首先要在内存中获取、划分、保留各种用途的区域,运行各种用途的后台进程,即创建一个实例(instance),
然后由该实例装载、打开数据库,最后由这个实例来访问和控制数据库的各种物理结构。
数据库至少由一个oracle实例引用,该实例由oracle系统标识符(system identity)唯一标识,用于区别此计算机上的任何其他实例。
登录某实例
[grid@shdb01 network-scripts]$ export ORACLE_SID=fp1
[grid@shdb01 network-scripts]$ echo $ORACLE_SID
fpmai1
[grid@shdb02 ~]$ srvctl status instance -d fp -i fp1
Instance fp1 is running on node shdb01 //实例fpmai1运行在shfpdb01节点
[grid@shdb02 ~]$ srvctl status instance -d fp -i fp2
Instance fp1 is running on node shdb02 //实例fpmai2运行在shfpdb02节点
[grid@shdb01 network-scripts]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu Mar 10 19:47:11 2022
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance. //已经连接到某
2、通过实例来连接、使用数据库。
在启动数据库并使用数据库的时候,实际上是连接到该数据库的实例.
所以实例是用户和数据库之间的一个中间层。(客户端---》实例---》数据库)
实例是由操作系统的内存结构和一系列进程所组成的,可以启动和关闭。
3、每个实例都要用称为SID的符号来区分
一台计算机上可以创建多个oracle数据库,当同时要使用这些数据库时,就要创建多个实例。
为了不使这些实例相互混淆,每个实例都要用称为SID的符号来区分,即创建这些数据库时填写的数据库SID。 数据库实例是用户访问数据库的中间层,是使用数据库的手段,它为用户访问数据库提供了必要的内存空间和多个工作进程,它是动态的、临时的, 简单的说,Oracle实例就是由内存空间和工作进程两部分组成。 我们只能通过实例操作数据库,
同一时间,一个实例只能打开一个数据库,也就是一个实例只能操作或管理一个数据库,但一个数据库可以被多个是实例打开。
实例可以在没有数据文件的情况下单独启动,(startup nomount)但这通常是没有意义的,
一个实例在生成期内只能装载(alter database mount)和打开(alter database open)数据库。
4、ORACLE实例有两种类型:单进程实例 和 多进程实例。
单进程ORACLE(又称单用ORACLE)是一种数据库系统,一个进程执行全部ORACLE代码。由于ORACLE部分和客户应用程序不能分别以进程执行,
所以ORACLE的代码和用户的数据库应用是单个进程执行。在单进程环境下的ORACLE 实例,仅允许一个用户可存取。例如在MS-DOS上运行ORACLE 。 多进程ORACLE实例(又称多用户ORACLE)使用多个进程来执行ORACLE的不同部分 ,对于每一个连接的用户都有一个进程。
在多进程系统中,进程分为两类:用户进程 和ORACLE进程。当一用户运行一应用程序,如PRO*C程序或一个ORACLE工具(如SQL*PLUS),为用户运行的应用建立一个用户进程。
Oracle系统的进程包括三种类型
①用户进程
②服务进程
③后台进程
5、实例名(instance_name)
数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。
例如,要去连接一个数据库服务器,就必须知道其数据库实例名。 查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter instance_name
方法三:在参数文件中查询。
6、服务名(Service_name)
该参数是oracle8i新引进的。在8i以前,我们用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。
为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name.
Db_domain,即等于Global_name。
一个数据库可以对应多Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样。
如果数据库有域名,则数据库服务名就是全局数据库名,否则,数据库服务名与数据库名相同。 查询当前数据库服务名
方法一:select value from v$parameter where name = ‘service_name’;
方法二:show parameter service_name
方法三:select instance_namefrom v$instance;
方法四:在参数文件中查询。 注意:方法三:select instance_namefrom v$instance; 的值是来自操作系统的oracle_sid,oracle_sid是操作系统的环境变量。
Oracle数据库包括两个部分数据库和数据库实例的更多相关文章
- ORACLE如何比较两个数据库的差异
ORACLE怎么比较两个数据库的差异 方法1:使用PL-SQL工具 点击 工具->比较用户对象
- .Net 中读写Oracle数据库常用两种方式
.net中连接Oracle 的两种方式:OracleClient,OleDb转载 2015年04月24日 00:00:24 10820.Net 中读写Oracle数据库常用两种方式:OracleCli ...
- oracle使用DataBase Configuration Assistant创建、删除数据库
可以使用DataBase Configuration Assistant来创建一个心得数据库.Database Configuration Assistant简称是DBCA,是创建.配置以及管理数据库 ...
- [转]oracle学习入门系列之五内存结构、数据库结构、进程
原文地址:http://www.2cto.com/database/201505/399285.html 1 Oracle数据库结构 关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大 ...
- Gartner 2018 数据库系列报告发布 巨杉数据库连续两年入选
近期,Gartner陆续发布了2018年的数据库系列报告,包括<数据库魔力象限><数据库核心能力>以及<数据库推荐报告>.其中,SequoiaDB巨杉数据库作为业界 ...
- ADOdb 支持的数据库包括哪些?
ADOdb 支持的数据库包括 MySQL, PostgreSQL,Interbase,Firebird,Informix,Oracle,MS SQL 7,Foxpro,Access,ADO,Sybas ...
- 基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)
基于Oracle的SQL优化(社区万众期待数据库优化扛鼎巨著) 崔华 编 ISBN 978-7-121-21758-6 2014年1月出版 定价:128.00元 856页 16开 编辑推荐 本土O ...
- oracle数据库使用心得之与SQL serve数据库的差异
网上对于SQL数据库的使用比较详细,但是对于Oracle的使用比较少,本文特别适合学过SQL数据库但是工程需要使用Oracle数据的编程人员查看, 时间匆忙,文章可能写得不够详细,希望有人指出错误或者 ...
- C++连接mysql数据库的两种方法
本文主要介绍了C++连接mysql数据库的两种方法,希望通过本文,能对你有所帮助,一起来看. 现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用a ...
随机推荐
- vue中使用js-cookie插件
js-cookie是一个用于处理 cookie 的简单.轻量级 JavaScript API,官方文档:https://www.npmjs.com/package/js-cookie. 一.安装 np ...
- Docker 学习之命令篇
Docker 学习之命令篇 1. docker images //镜像列表 2. docker ps –a //所有运行过的容器 3. docker ps –l 最后运行的容器 4. docker ...
- Java基础——StringBuilder的添加与反转方法
StringBuilder添加与反转方法 方法 返回对象 public StringBuilder append(任意类型) 添加任意参数数据,并返回对象本身,注意:返回的是对象本身,则调用过appe ...
- 流量回放专题-jvm-sanbox-repeater
流量回放介绍 一.前言 你是否和我一样遇到过以下的问题? 1)服务重构,一堆接口需要回归,让人头疼 2)每次迭代,都要花很多精力来进行回归测试 3)线上bug,线下复现不了 4)接口自动化用例写辛苦, ...
- MariaDB开启日志审计功能
对于MySQL.Percona.MariaDB三家都有自己的审计插件,但是MySQL的审计插件是只有企业版才有的,同时也有很多第三方的的MySQL的审计插件,而Percona和MariaDB都是GPL ...
- Android 12(S) 图形显示系统 - Surface 一点补充知识(十二)
必读: Android 12(S) 图形显示系统 - 开篇 一.前言 因为个人工作主要是Android多媒体播放的内容,在工作中查看源码或设计程序经常会遇到调用API: static inline i ...
- Spark—GraphX编程指南
Spark系列面试题 Spark面试题(一) Spark面试题(二) Spark面试题(三) Spark面试题(四) Spark面试题(五)--数据倾斜调优 Spark面试题(六)--Spark资源调 ...
- 文档类型声明<!DOCTYPE html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- Mysql之Explain关键字及常见的优化手段
Explain关键字字段描述: Explain关键字字段详情描述 id 我们写的查询语句一般都以SELECT关键字开头,比较简单的查询语句里只有一个SELECT关键字,但是下边两种情况下在一条查询语句 ...
- abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
abstract的method 不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系! native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类 ...