Oracle rac案例讲解

rac是什么?

多个不同服务器上的实例,访问共享的数据库文件,扩展了CPU和内存,提高性能;多节点,实现了HA。

rac解决什么问题

  1. 高可用性:自动切换、负载均衡
  2. 高性能:多实例、更多连接、并发执行
  3. 高扩展:不停机扩展节点。

怎么实现的

组成

3个层级:

  1. 集群软件:集群管理,节点增删、心跳、同步;包括2个组件:表决磁盘、集群注册服务。
  2. rac数据库软件:提供数据库实例;
  3. rac数据库:共享存储,共享文件。

1.拓扑图

2.存储划分例子

现在共享存储建议ASM,仅说明用。

rac常用操作

1.启停

关闭:监听–>db–>cluster–>os

  1. 关闭监听(grid用户),阻止新的程序在连接进来
    srvctl stop listener
  2. 写脏块
    alter systerm checkpoint;(多执行几次)
  3. 关闭数据库(grid用户下) racdb指的是数据库全局唯一名。执行时间会较长,不要终止
    /u01/app/11.2.0/grid/bin/srvctl stop database -d racdb -o immediate
  4. 关闭集群件(root用户)
    /u01/app/11.2.0/grid/bin/crsctl stop cluster -all
  5. 查看资源状态
    /u01/app/11.2.0/grid/bin/crsctl status resource -t
  6. 关闭操作系统(root)
    shutdown -h now

-----------启动RAC数据库-----

cluster–>db

  1. 默认情况下,集群软件会随着操作系统的启动而启动(root)。
    检查集群资源:/u01/app/11.2.0/grid/bin/crsctl status resource -t --所有都需要是online状态
    启动集群资源:/u01/app/11.2.0/grid/bin/crsctl start cluster -all
  2. 启动数据库(grid)
    srvctl start database -d racdb
  3. 查看监听状态。默认情况下监听会随着集群软件启动(grid)。
    srvctl status listener --查看监听状态
    srvctl start listener --启动监听
  4. 登录plsql进行连接测试。

2.增删

  1. 配置OS, 和安装RAC的配置一样。Mount上共享磁盘。但是不要安装Oracle 和 grid software
  2. 设置节点间的ssh, 使用grid安装包中的脚本
  3. 在grid 用户下添加节点,主要是添加grid组件 ,会copy grid_home下的内容到新的节点
  4. 在oracle用户下添加节点,主要是添加oracle组件,会copy oracle_home下的内容到新的节点
  5. 使用DBCA添加新的instance 或者手工添加也可以 (本次dbca添加)

难点:

1.节点数据的一致性。

单实例,内存里有事务信息、锁,如果把不同节点的数据同步,避免不同节点冲突。CacheFusion,缓存融合
服务器间缓存共享。与hadoop的分布式不太一样,hdp基于分布式文件系统,在节点上基于block计算,然后合并,是真独立,不存在全局资源目录GRD的概念。rac是共享存储,还是一个文件,没有分治。

问题:

hba卡

光纤网卡

虚拟ip的作用?

安装Oracle的过程中自动生成绑定在公网网卡上,并对外提供服务(公网网卡的虚拟ip)
如果rac2失败,其虚拟ip会自动漂移到rac1的物理网卡上;客户端请求进来,rac2会返回失败的消息,让重新连接vip1进来。
如果没有vip,客户单请求进来,会直到tcp\ip连接3次尝试失败后,返回失败,体验很差。
vip是HA实现的重要手段。

到此这篇关于Oracle rac案例讲解的文章就介绍到这了,更多相关Oracle rac内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • oracle+mybatis-plus+springboot实现分页查询的实例

    今天蠢了一上午才弄出这玩意,话不多说上代码! 1.建一个配置类 package com.sie.demo.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInte

  • Oracle以逗号分隔的字符串拆分为多行数据实例详解

    前言 近期在工作中遇到某表某字段是可扩展数据内容,信息以逗号分隔生成的,现需求要根据此字段数据在其它表查询相关的内容展现出来,第一想法是切割数据,以逗号作为切割符,以下为总结的实现方法,以供大家参考.指教. 1.regexp_substr函数,通过正则来拆分字符串,函数用法为:(必须是oracle 10g+的版本才支持)  REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String, pattern, position, occurrence, modi

  • 如何使用Oracle PL/SQL 实现发送电子邮件功能(UTL_MAIL)

    大家好,我是只谈技术不剪发的 Tony 老师. 我们在开发 Oracle 数据库程序时,如果想要通过 PL/SQL 存储过程实现发送邮件的功能,大概可以使用以下三种方法: 利用 UTL_TCP程序包基于 TCP 协议发送邮件.这种方法比较原始,需要用户编写基础交换代码. 利用 UTL_SMTP 程序包基于 SMTP 协议发送邮件.这种方法比编码 TCP 操作简单很多,支持发送电子邮件的各种操作,因此使用非常广泛. 利用 UTL_MAIL 程序包发送邮件.这种方法最简单,支持常用的邮件功能,不需要

  • 通过 plsql 连接远程 Oracle数据库的方法

    方法一:通过 plsql 工具和 oracle client(不是即时客户端 instantclient) 的方式来连接 Oracle 一. 安装 oracle client,(本教程已经下载并解压) 二. 选 择 管 理 员 安 装 ,如图: 三.剩下的就是一路下一步就 OK,安装完成后在 doc 窗口执行,sqlplus 如 果 出 现 如 下 输 入 用户名 , 就 表 示 安 装 成 功 四.安装 plsql(本教程 Oracle 为 11gr2,所以 plsql 也安装了版本 11,其

  • oracle连接ODBC sqlserver数据源的详细步骤

    一. 添加数据源ODBC 1.打开数据源 或者 2.添加数据源 3.选择SQL Server 4.名称:输入ODBC数据源名称 描述:随意 服务器:输入sqlserver服务器名 5.SQLSERVER登陆用户:登录ID一般是:sa :密码:只有你知道 6.选择你连接的数据库 7.完成 8.测试一下 二.检查DG4ODBC驱动是否已经安装 方法如下: 在Oracle服务器上,cmd窗口中执行命令(dg4odbc或hsodbc) 上图代表安装了DG4ODBC驱动(如果没有安装,需自行下载安装,此处

  • Oracle存储过程案例详解

    创建简单存储过程(Hello World) 为了方便读者简单易懂,我将下面使用到的表复制给大家. 具体表中的数据,请大家自己填写 -- Create table create table EMP ( empno NUMBER(4) not null, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) ) cre

  • springboot+mybatis-plus+oracle实现逻辑删除

    最近在做一个前后端分离的小项目,需要删除用户表的用户,但是用户再别的表做了外键,所以只能做成逻辑删除,一通百度查资料后得以实现: 1.用户实体类 package com.sie.demo.entity; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.

  • Oracle之TO_DATE用法详解

    目录 TO_DATE格式(以时间:2007-11-02 13:45:25为例) 1. 日期和字符转换函数用法(to_date,to_char) 2. 字符串和时间互转 3.求某天是星期几 4. 两个日期间的天数 5. 时间为null的用法 6.月份差 7. 日期格式冲突问题 8.查询特殊条件天数 9. 查找月份 10. Next_day的用法 11.获得小时数 12.年月日的处理 13.处理月份天数不定的办法 14.找出今年的天数 15.yyyy与rrrr的区别 16.不同时区的处理 17. 5

  • Oracle rac案例讲解

    rac是什么? 多个不同服务器上的实例,访问共享的数据库文件,扩展了CPU和内存,提高性能:多节点,实现了HA. rac解决什么问题 高可用性:自动切换.负载均衡 高性能:多实例.更多连接.并发执行 高扩展:不停机扩展节点. 怎么实现的 组成 3个层级: 集群软件:集群管理,节点增删.心跳.同步:包括2个组件:表决磁盘.集群注册服务. rac数据库软件:提供数据库实例: rac数据库:共享存储,共享文件. 1.拓扑图 2.存储划分例子 现在共享存储建议ASM,仅说明用. rac常用操作 1.启停

  • Oracle Sqlplus命令登录多种方式案例讲解

    目录 Oracle Sqlplus命令登录的几种方式 1. sqlplus / as sysdba 2. sqlplus "/as sysdba" 3. sqlplus username/pwd@host/service_name 4. sqlplus /nolog Oracle Sqlplus命令登录的几种方式 sqlplus 命令语法 sqlplus [ [<option>] [{logon | /nolog}] [<start>] ] <option

  • 浅谈oracle rac和分布式数据库的区别

    1.分布式数据库是多个数据库,而rac只是一个库多个实例: 2.rac事务上没有协调的问题,而分布式数据库由于是多个库需要事务上的协调: 3.分布式数据库数据是分散存储在各个节点,但是设备一般都是廉价的设备,经常出现节点故障,不过对用户来说是透明的:.RAC是ORACLE集群,数据是共享存储,只有一份,每个节点都不存放数据.节点可以宕,但是数据不会丢失: 4.分布式数据库支持的节点多,增加节点基本为线性增加:rac支持的节点数少,增加节点性能不是线性增加: 5.Oracle最大的问题在于shar

  • [Oracle] RAC 之 - 负载均衡深入解析

    Oracle RAC提供两种方式实现负载均衡,第一种是纯技术手段,即在用户连接时,根据系统当前的负载情况决定由哪个节点处理用户请求:第二种是面向业务,人为的把应用切分成很多service,通过某个service过来的连接请求都由某个节点处理.下面来具体看看这两种手段: 纯技术手段 (面向连接的负载均衡) 1. 客户端负载均衡配置方法是在客户端tnsnames.ora文件中设置LOAD_BALANCE=YES,当客户端发起连接时,会从地址列表中随机选取一个,把连接请求随机分散给各个实例.这个技术的

  • C语言异常处理机制案例讲解

    异常处理机制:setjmp()函数与longjmp()函数 C标准库提供两个特殊的函数:setjmp() 及 longjmp(),这两个函数是结构化异常的基础,正是利用这两个函数的特性来实现异常. 所以,异常的处理过程可以描述为这样: 首先设置一个跳转点(setjmp() 函数可以实现这一功能),然后在其后的代码中任意地方调用 longjmp() 跳转回这个跳转点上,以此来实现当发生异常时,转到处理异常的程序上,在其后的介绍中将介绍如何实现. setjmp() 为跳转返回保存现场并为异常提供处理

  • PHP反射机制案例讲解

    简介 就算是类成员定义为private也可以在外部访问,不用创建类的实例也可以访问类的成员和方法. PHP自5.0版本以后添加了反射机制,它提供了一套强大的反射API,允许你在PHP运行环境中,访问和使用类.方法.属性.参数和注释等,其功能十分强大,经常用于高扩展的PHP框架,自动加载插件,自动生成文档,甚至可以用来扩展PHP语言.由于它是PHP內建的oop扩展,为语言本身自带的特性,所以不需要额外添加扩展或者配置就可以使用.更多内容见官方文档. 反射类型 PHP反射API会基于类,方法,属性,

  • c语言中enum类型的用法案例讲解

    11.10 枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量说明为整型,字符型或其它类型显然是不妥当的.为此,C语言提供了一种称为"枚举"的类型.在"枚举"类型的定义中列举出所有可能的取值,被说明为该"枚举"类型的变量取值不能超过定义的范围. 应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型. 11.10.

  • Java对文件进行基本操作案例讲解

    File文件类 java.io.File是文件和目录的重要类(JDK6及以前是唯一) 目录也使用File类进行表示 File类与操作系统无关,但会受到操作系统的权限限制 常用方法 createNewFile , delete , exists , getAbsolutePath , getName , getParent , getPath isDirectory , isFile , length , listFiles , mkdir , mkdirs File不涉及到具体的文件内容.只会涉

  • React+TypeScript进行项目构建案例讲解

        react项目构建可以很简单,但是如果是结合typescript,其实也不是很麻烦,官网也有很明确的说明.有两种办法:     1.直接构建带有typescript的react项目,我们需要增加额外的参数,模版不能使用默认的cra-template.而是使用cra-template-typescript. npx create-react-app tsreactdemo --template typescript           创建完成的成功提示与原来没有太大的区别,直接进入项目路

  • python代码实现备忘录案例讲解

    文件操作 TXT文件 读取txt文件 读取txt文件全部内容: def read_all(txt): ...: with open(txt,'r') as f: ...: return f.read() ...: read_all('test.txt') Out[23]: 'a,b,c,d\ne,f,g,h\ni,j,k,l\n' 按行读取txt文件内容 def read_line(txt): ...: line_list = [] ...: with open(txt,'r') as f: .

随机推荐