zoukankan      html  css  js  c++  java
  • RAC初体验(环境搭建)


    实施阶段:

    • 1.主机配置
    • 2.安装Clusterware
    • 3.安装Oracle Database
    • 4.配置Listener
    • 5.创建ASM
    • 6.创建Database

    一、主机配置

    1.网络设置

    IP地址、hosts文件

    2.RPM包

    根据官方文档确定所需软件包,检查软件包是否安装

    rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})
    '
    binutils 
    compat-db 
    compat-libstdc++ 
    liba
    

    3.创建Oracle用户、配置用户等价性

    1)创建Oracle用户和DBA组

    groupadd -g 700 dba
    useradd -u 500 -g dba oracle

    2)配置Oracle用户环境变量

    cat .bash_profile
    export ORACLE_BASE=/oracle
    export ORACLE_TERM=xtrem
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    export CRS_HOME=/oracle/product/crs
    export ORACLE_HOME=/oracle/product/database
    export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
    export PATH=$CRS_HOME/bin:$ORACLE_HOME/bin:$PATH
    export ORACLE_SID=wxxrdb1

    不同节点SID不同

    3)设置用户资源限制

    vim /etc/security/limits.conf
    #添加以下内容
    oracle    soft    memlock    5242880
    oracle    hard    memlock    5242880
    #文件句柄
    oracle    soft    nofile    65536
    oracle    hard    nofile    65536
    #进程句柄
    oralce    soft    nproc    2047
    oracle    hard    nproc    16384

    查看Oracle用户资源限制
    ulimit -a

    4)配置SSH用户等价
    Oracle允许使用两种用户等价机制——RSH和SSH.推荐ssh更安全

    cd $HOME
    mkdir .ssh
    chmod 700 .ssh
    cd .ssh
    ssh-keygen -t rsa
    ssh-keygen -t dsa
    cat *.pub > authorized_keys

    然后将所有节点authorized_keys文件合成一个,再用这个文件覆盖各个节点.ssh下同名文件

    scp authorized_key dbp:/home/oracle/.ssh/keys_dbs
    cat keys_dbs>>authorized_keys
    scp authorized_keys dbs:/home/oracle/.ssh/.

    4.OS Kernel配置

    vim /etc/sysctl.conf
    #添加以下内容保存
    kernel.shmmax=2147483648
    kernel.sem=250 32000 100 128
    fs.file-max=65536
    net.ipv4.ip_local_port_range=1024 65000
    net.core.rmem_default=262144
    net.core.wmem_default=262144
    net.core.rmem_max=262144
    net.core.wmem_max=262144

    使以上修改生效:sysctl -p

    5.配置时间同步

    1)如果存在时间服务器192.168.1.10

    vim /etc/ntp.conf
    server 192.168.1.10 prefer
    driftfile /var/lib/ntp/drift
    broadcastdelay 0.008

    2)没有外部时间同步服务器(假设选dbp)
    编辑dbp的/etc/ntp.conf

    vim /etc/ntp.conf
    server 127.127.1.0  #注意不是127.0.0.1
    fudge 127.127.1.0 stratum 11
    driftfile /var/lib/ntp/drift
    broadcastdelay 0.008

    编辑dbs的/etc/ntp.conf

    vim /etc/ntp.conf
    server 192.168.123.154 prefer
    driftfile /var/lib/ntp/drift
    broadcastdelay 0.008

    启动ntp服务:/etc/init.d/ntpd start

    6.配置hangcheck-timer模块

    模块作用:监控Linux内核运行状态,如果长时间挂起,这个模块会自动重启系统。因为使用硬件时间,所以精度更高。

    参数:hangcheck_tick、hangcheck_margin前一个参数定义多长时间检查一次,缺省值30秒,第二个模块是延迟上线,缺省值180秒。hangcheck-timer模块会根据hangcheck_tick设置定时检查内核,只要两次检查时间间隔小于hangcheck_tick+hangcheck_margin,都会认为内核运行正常,否则这个模块会自动重启系统。

    1)查看模块位置

     find /lib/modules -name "hangcheck-timer.ko"
    /lib/modules/3.0.101-63-default/kernel/drivers/char/hangcheck-timer.ko

    2)配置系统启动时自动加载模块

    vim /etc/rc.d/rc.local
    modprobe hangcheck-timer

    3)配置hangcheck-timer参数

    vim /etc/modprobe.conf
    options hangcheck-timer hangcheck_tick=IO hangcheck_margin=30

    4)确认模块加载成功

    grep Hangcheck /var/log/messages |tail -2

    7.磁盘分区

    fdisk /dev/sdb
    n
    p
    1
    +100m
    p
    2
    +100
    w

    完成所有磁盘分区后,可再另一台计算机上执行partprobe,扫描分区,最后确认两个节点识别出的分区一致。

    8.配置裸设备

    通过字符方式访问设备
    1)配置裸设备

    vim /etc/sysconfig/rawdevices
    #添加以下两行
    /dev/raw/raw1 /dev/sdb1
    /dev/raw/raw2 /dev/sdb2

    2)设置权限

    vim /etc/udev/permissions.d/50-udev.permissions
    #找到raw devices部分修改
    raw*:oracle:dba:0660
    raw/*:oracle:dba:0660

    3)确认裸设备服务自动启动,两个节点执行

    checkconfig --list rawdevices

    4)启动rawdevices服务,确认裸设备创建成功,权限正确

    #services rawdevices restart
    #cd /dev/raw
    #ll

    9.创建ASM磁盘

    使用ASMLib方法:
    1)在某个节点dbs以root身份执行:

    /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
    /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1

    2)在其他节点dbp以root身份执行

    /etc/init.d/oracleasm scandisks
    /etc/init.d/oracleasm listdisks

    二、安装Oracle Clusterware

    1.集群命名,并添加集群节点

    2.填写该节点3个网络名称

    3.定义网卡类型

    4.填写裸设备名称

    5.执行root脚本

    1)先再dbp执行脚本,注意输出结果
    2)在dbs执行脚本,注意输出结果
    3)确定CRS Stack是否启动成功

    $CRS_HOME/bin/crsctl check crs



    以下命令确认Clusterware安装成功

    #cd /$CRS_HOME/bin
    #./olsnodes
    #./crsctl check crs
    #./crs_stat -t -v

    三、安装Oracle Database

    1.只装软件不建库

    1)执行root.sh #多节点执行无先后顺序

    四、配置Listener

    netca

    1.确认Listener配置成功

    配置成功后,两台计算机上listener都会作为application resource注册到CRS中。
    crs_stat -t -v

    2.检查listener.ora文件


    五、创建ASM

    dbca
    1)选择Oracle Real Application Cluster database
    2)选择Config Automatic Storage Management
    3)配置ASM参数
    asm_diskstring=ORCL:VOL*
    4)创建磁盘组DATA,定义冗余策略External
    5)同样操作创建第二个磁盘组
    6)MOUNTED说明磁盘组已经被挂载

    六、创建数据库

    dbca
    启用EM、选择ASM存储

    创建完成后,数据库每个节点都会注册到CRS中。
    crs_stat -t -v

    七、客户端测试


    1.连接数据库

    sqlplus system/password@wxxrdb
    select instance_name from v$instance;

    2.Failover

    当用户连接到RAC环境时,实际是连接到RAC中的一个实例,如果该实例宕机,用户连接会被转移到其他健康实例,这种转换对用户是透明的,用户的select语句仍然继续返回结果集,感觉不到异常。
    1)连接到RAC
    sqlplus system/password/wxxrdb

    2)确认用户当前连接的实例
    select instance_name from v$instance;

    3)关闭wxxrdb1
    shutdown abort

    4)等待几秒后,再次执行这个语句,还是再会话1中
    select instance_name from v$instance;

    3.体验LoadBalance

    RAC会根据每个节点的负载,自动调整每个实例的连接数量,以尽量保证每个节点负载均衡。
    1)准备测试脚本
    shell脚本

    #!/bin/sh
    #Usage:test wxxrdb 4000
    count=0
    while [$count -lt $2]
    do
      count='expr $count +1'
      sqlplus -s username/password@$1 @test.sql
      seleep 1
    done
    

    sql脚本

    col "instance_name" format a20
    select instance_name from v$instance
    /

    2)执行脚本
    ./test.sh wxxrdb 1000

    3)查看每个实例连接数量
    select inst_id,count(*) from gv$session;

    4.修改归档模式


    1)LAN2划分两个50G分区,每个节点挂载一个,挂载点都是/wxxrdb1_arch
    LAN3划分两个50G分区,每个节点挂载一个,挂载点都是/wxxrdb2_arch

    2)两边编辑/etc/fstab
    dbs节点

    vim /etc/fstab
    /dev/sdc3    /wxxrdb2_arch    ext3    defaults    1 2
    /dev/sdd3    /wxxrdb1_arch    ext3    defaults    1 2

    dbp节点

    /dev/sdc2    /wxxrdb1_arch    ext3    defaults    1 2
    /dev/sdd2    /wxxrdb2_arch    ext3    defaults    1 2

    3)挂载,两个节点执行

    mount /wxxrdb1_arch
    mount /wxxrdb2_arch
    chown -R oracle:dba /wxxrdb1_arch /wxxrdb2_arch

    4)配置每个实例的归档位置

    alter system set log_archive_dest_1='location=/wxxrdb2_arch' scope=spfile sid='wxxrdb2';
    alter system set log_archive_dest_2='service=wxxrdb1' scope=spfile sid='wxxrdb2';
    alter system set log_archive_dest_1='location=/wxxrdb1_arch' scope=spfile sid='wxxrdb1';
    alter system set log_archive_dest_2='service=wxxrdb2' scope=spfile sid='wxxrdb1';
    alter system set standby_archive_dest='/wxxrdb2_arch' scope=spfile sid='wxxrdb1';
    alter system set standby_archive_dest='/wxxrdb1_arch' scope=spfile sid='wxxrdb2'

    5)修改归档模式

    alter system set cluster_databse=false scope=spfile sid='*'

    6)关闭实例

    shutdown immediate

    7)把某个实例启动到mount状态,修改数据库归档模式

    startup mount;
    alter database mount;
    alter database archivelog;
    alter system set cluster_database=true scope=spfile sid='*';

    8)重启数据库,确认归档生效
    archive log list;

    9)确认归档位置生效,每个实例上测试
    algter system switch logfile;

    确认每个节点对应归档目录下都能收到日志。

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

    远方的风景走近了,就是自己现在的生活; 现在的生活放远了,就是别人眼中的风景!
  • 相关阅读:
    Eclipse debug模式下使用16进制(Hex)查看变量值
    无线局域网中RADIUS协议原理与实现
    浏览器发送URL的编码特性
    跨域共享cookie和跨域共享session
    Nginx与Apache工作方式
    Http字段含义
    http中有关缓存相关的几个字段
    maven中用yuicompressor和closure-compiler对js、css文件进行压缩
    Mysql 忘记密码----修改Navicat的连接密码--以及--(加入安装Navicat时没设置密码)有时新建连接设置密码,连接不成功---的问题解决方法 密码忘记的解决
    RedisTemplate的各种操作(set、hash、list、string)
  • 原文地址:https://www.cnblogs.com/xiangqianzhang/p/9082943.html
Copyright © 2011-2022 走看看