Chinaunix首页 | 论坛 | 博客
  • 博客访问: 497108
  • 博文数量: 161
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1947
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-25 01:20
文章分类

全部博文(161)

文章存档

2011年(44)

2010年(47)

2009年(48)

2008年(22)

我的朋友

分类: Oracle

2010-11-12 15:25:29

.前期虚拟机共享磁盘设置

该环境在此选择lsilogic

创建共享磁盘

node1,node2 vmx虚拟机配置文件中添加

用于虚拟机打开磁盘用

scsi1.present = "TRUE"

scsi1:1.present = "TRUE"

scsi1:1.fileName = "ocr.vmdk"

scsi1:1.mode = "independent-persistent"

scsi1:2.present = "TRUE"

scsi1:2.fileName = "voting.vmdk"

scsi1:2.mode = "independent-persistent"

scsi1:3.present = "TRUE"

scsi1:3.fileName = "date.vmdk"

scsi1:3.mode = "independent-persistent"

scsi1.virtualDev = "lsilogic"

disk.locking = "false" 

diskLib.dataCacheMaxSize = "0" 

diskLib.dataCacheMaxReadAheadSize = "0" 

diskLib.DataCacheMinReadAheadSize = "0" 

diskLib.dataCachePageSize = "4096" 

diskLib.maxUnsyncedWrites = "0"

scsi1:1.deviceType = "disk"

scsi1:2.deviceType = "disk"

scsi1:3.deviceType = "disk"

将共享磁盘挂载与node1node2

二.安装centos系统及所需配置

关掉不需要的服务(测试机)

# chkconfig cups off
# chkconfig sendmail off
# chkconfig isdn off
# chkconfig smartd off
# chkconfig iptables off 

Linux补丁

rpm -Uvh setarch-2*

rpm -Uvh make-3*

rpm -Uvh glibc-2*

rpm -Uvh libaio-0*

rpm -Uvh compat-libstdc++-33-3*

*rpm -Uvh compat-gcc-34-3*

*rpm -Uvh compat-gcc-34-c++*

*rpm -Uvh gcc-4*

rpm -Uvh libXp-1*

rpm -Uvh openmotif-2*

rpm -Uvh compat-db*

修改机器名,固定IPhostnamedns,gateway,

修改机器名,ip,网关

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.19.129

NETMASK=255.255.255.0

GATEWAY=192.168.19.2

Eth1 配置同理

配置如下:

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

HWADDR=00:0C:29:E0:C2:DE

ONBOOT=yes

DHCP_HOSTNAME=node1

IPADDR=192.168.19.129

NETMASK=255.255.255.0

GATEWAY=192.168.19.2

TYPE=Ethernet

USERCTL=no

IPV6INIT=no

PEERDNS=yes

/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=none

HWADDR=00:0c:29:e0:c2:e8

TYPE=Ethernet

NETMASK=255.255.255.0

IPADDR=192.168.86.135

GATEWAY=192.168.86.2

USERCTL=no

IPV6INIT=no

PEERDNS=yes

修改主机名

#vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=node1

修改后重启生效

/etc/rc.d/init.d/network restart 

编辑/etc/hosts

# (必须要这样)

127.0.0.1 localhost

#public eth0eth0 必须指定public

192.168.19.129  node1

192.168.19.130  node2

#pri eth1

192.168.86.135  node1-priv

192.168.86.136  node2-priv

#vip

192.168.19.140  node1-vip

192.168.19.141  node2-vip

两个节点要一样,将公网放前,eth0

编辑添加/etc/sysctl.conf

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem    = 250 32000 100 128

fs.file-max   = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 1048576

net.core.rmem_max = 1048576

net.core.wmem_default = 262144

net.core.wmem_max = 262144

使配置生效:

/sbin/sysctl –p

编辑添加/etc/security/limits.conf

*                soft    nproc          2047

*                hard    nproc          16384

*                soft    nofile          1024

*                hard    nofile          65536

编辑添加/etc/pam.d/login

session    required     /lib/security/pam_limits.so

编辑/etc/selinux/config

SELINUX=disabled

安装hangcheck-timer.ko模块

Hangcheck-timer 是Linux 提供的一个内核级的IO-Fencing 模块, 这个模块会监控Linux 内核运行状态, 如果长时间挂起, 这个模块会自动重启系统。 这个模块在Linux 内核空间运行, 不会受系统负载的影响。 这个模块会使用CPU的Time Stamp Counter(TSC) 寄存器,这个寄存器的值会在每个时钟周期自动增加, 因此使用的是硬件时间,所以精度更高。

配置这个模块需要2个参数: hangcheck_tick 和 hangcheck_margin。 

hangcheck_tick用于定义多长时间检查一次,缺省值是30秒。 有可能内核本身很忙, 导致这个检查被推迟, 该模块还允许定义一个延迟上限,就是hangcheck_margin, 它的缺省值是180秒。

Hangcheck-timer 模块会根据hangcheck_tick 的设置,定时检查内核。只要2次检查的时间间隔小于 hangcheck_tick + hangchec_margin, 都会认为内核运行正常,否则就意味着运行异常,这个模块会自动重启系统。

CRS本身还有一个MissCount 参数,可以通过crsctl get css miscount 命令查看。

    当RAC结点间的心跳信息丢失时, Clusterware 必须确保在进行重构时,故障结点确实是Dead 状态,否则结点仅是临时负载过高导致心跳丢失,然后其他结点开始重构,但是结点没有重启,这样会损坏数据库。 因此MissCount 必须大于 hangcheck_tick+hangcheck_margin的和

hangcheck-timer 最初只由 Oracle 提供;不过,从内核版本 2.4.9-e.12 和更高版本开始,此模块目前包含在 Red Hat Linux 

# find /lib/modules -name "hangcheck-timer.ko"

设置并加载

配置文件

#echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modprobe.conf

手动加载hangcheck模块进行测试

oracle 负责在需要时加载hangcheck-timer模块,不必在所有启动文件(/etc/rc.local)中执行每次启动时设置hangcheck-timer内核的加载

设置系统启动自动加载模块

#echo "/sbin/modprobe hangcheck-timer" >> /etc/rc.local

(注:你不必在每次重新启动后使用 modprobe 或 insmod 手动加载 hangcheck-timer 内核模块。Oracle 将在需要时自动加载 hangcheck-timer 模块。) 

测试hangcheck-timer内核模块是否使用/etc/modprobe.conf 文件中定义的正确擦数使用modprobe命令

尽管能通过向其传递相应的参数(如 insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

确认模块加载成功

验证使用modprobe.conf 文件中的参数

modprobe hangcheck-timer

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

即:

#echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modprobe.conf

#echo "/sbin/modprobe hangcheck-timer" >> /etc/rc.local

modprobe hangcheck-timer

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

用户组账号

/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/useradd -u 501 -d /home/oracle -g "oinstall" -G "dba" -m -s /bin/bash oracle
id oracle 

账号密码

Passwd oracle

注意:uid..节点需要相同

挂载目录

mkdir -p /u01/app/oracle/product/10.2.0/db

mkdir -p /u01/app/oracle/product/10.2.0/crs

chown -R oracle:oinstall /u01

chmod -R 755 /u01

配置用户环境(rac集群中红色字体需要修改不同的SID

#vi /etc/profile

if [ $USER = "oracle" ];then

    if [ $SHELL = "/bin/ksh" ]; then

        ulimit -p 16384

        ulimit -n 65536

    else

        ulimit -u 16384 -n 65536

    fi

    umask 022

fi

#source /etc/profile

#vi /home/oracle/.bash_profile添加下列语句:

#user specific environment and startup programs

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db

export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:ORACLE_HOME/rdbms/admin

#each RAC node must have a unique ORACLE_SID.(ie. Ocr1,ocr2,..)

export ORACLE_SID=node1

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/X11R6:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NLS10=$ORACLE_HOME/nls/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

export LANG=en_US

##################################################
# Oracle Alias
##################################################
alias ls="ls -FA"
alias vi=vim
alias base='cd $ORACLE_BASE'
alias home='cd $ORACLE_HOME'
alias alert='tail -200f $ORACLE_BASE/admin/RACDB/bdump/alert_$ORACLE_SID.log'
alias tnsnames='vi $ORACLE_HOME/network/admin/tnsnames.ora'
alias listener='vi $ORACLE_HOME/network/admin/listener.ora' 

设计共享磁盘

磁盘

容量

用途

分区

Sdb

100M

OCR

Sdb1

Sdc

100M

VOTE 

Sdc1

sdd

1G

暂无

Sdd1

sde

3G

DATE

Sde1

Sde

3G

RECO

Sde2

 

配置raw设备+ASM(Linux下,asm的对象是分区,不是disk)

Redhat5之前系统通过etc/sysconfig/rawdevices ()

Redhat5之后取消,通过udev规则进行配置

node1

进行格式化

Sdb 100M ocr  /sdb1

Sdc 100M voting /sdc1

在格式化的时候,在另一个节点要重启系统,如果另一个节点无法识别,在clusterware安装节点2执行root.sh会报错误

vi /etc/udev/rules.d/60-raw.rules 这个文件。

格式化磁盘fdisk /sdn

ACTION=="add", KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N" 

重启服务

Start_udev

查看

Ls -lrt /dev/raw

Raw -aq

[root@localhost dev]# raw -aq

/dev/raw/raw1:  bound to major 8, minor 17

ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m" 

同理对sdc1进行同样操作

最终配置为:

ACTION=="add", KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"

ACTION=="add", KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"

配置为raw设备,以字符方式访问设备,读写设备不需要缓冲区

设置raw设备用户和权限

oracle oinstall 640

ACTION=="add", KERNEL=="raw[1-2]", OWNER="oracle", GROUP="oinstall", MODE="660"

重启服务及查询

Start_udev

ls -lrt /dev/raw

Raw -aq

在格式化的时候,重启另一个节点node2

ASM 设置

Sdd 1G

Sde1 3G

Sde2 3G

Asm所需包

oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm

oracleasm-2.6.18-92.el5xen-2.0.5-1.el5.i686.rpm

oracleasmlib-2.0.4-1.el5.i386.rpm

oracleasm-support-2.1.3-1.el5.i386.rpm

Rpm -ivh *rpm --nodeps --force

在两个节点上正常安装

运行/etc/init.d/oracleasm configure

Answeroracledbayy

node1

#oracleasm createdisk VOL1 /dev/sde1 

#oracleasm createdisk VOL2 /dev/sde2

#oracleasm scandisks

#oracleasm listdisks

node2进行识别

#oracleasm scandisks

#oracleasm listdisks

/****节点一结束,通过虚拟机,create节点2*****/

修改hostname
node1改成node2
[root@node1 ~]# hostname node2
[root@node1 ~]# vi /etc/sysconfig/network
这样重启之后机器名称就会变成node2了。

[]#/etc/rc.d/init.d/network restart 


修改机器名,固定IPhostnamedns,gateway,

/etc/sysconfig/network-script/ifcfg-eth0

/etc/sysconfig/network-script/ifcfg-eth1

修改机器名,ip,网关

#vi /etc/sysconfig/network-script/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.19.130

NETMASK=255.255.255.0

GATEWAY=192.168.19.2

/////////////////////////////////////////以上node1,node2都要做////////////////////////////////////////////////////

为用户等效配置配置ssh

Node1

Oracle用户登录

cd home

mkdir .ssh

Chmod 755 .ssh

/usr/bin/ssh-keygen -t rsa     //.ssh目录下生成id_rsa.pub

/usr/bin/ssh-keygen -t dsa    //.ssh 目录下生成id_dsa.pub
                           //生成authorized_keys文件

Cat id_rsa.pub>> authorized_keys

Cat id_dsa.pub>> authorized_keys

node2

cd home

mkdir .ssh

Chmod 755 .ssh

/usr/bin/ssh-keygen -t rsa     //.ssh目录下生成id_rsa.pub

/usr/bin/ssh-keygen -t dsa    //.ssh 目录下生成id_dsa.pub
                           //生成authorized_keys文件

node1

[oracle@node1 ~]$ ssh  node2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

[oracle@node1~]$ ssh  node2 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

Chmod 644 ~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys node2:~/.ssh/
node2

chmod 644 ~/.ssh/authorized_keys 

测试连通性

Ssh node1 date

Ssh node2 date

Ssh node1-priv date

Ssh node2-priv date

/********************************配置时间同步*******************************/

节点node1ntp服务器,节点node2ntp客户端。

   Node1:vi /etc/ntp.conf

restrict 192.168.19.0 mask 255.255.255.0 nomodify

restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust 

server 127.127.1.0  

server 192.168.19.129 prefer 

fudge 127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

authenticate no

keys /etc/ntp/keys       

运行:

         chkconfig ntpd on

         /etc/init.d/ntpd restart

     Node2:vi /etc/ntp.conf

restrict 0.0.0.0 mask 0.0.0.0 nomodify

server 192.168.19.129 prefer

fudge 127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

authenticate no

keys /etc/ntp/keys          运行:

              ntpdate node1

注意: ntp服务器启动后,需要5分钟左右才能提供服务。

Note2定时执行同步时间计划:

每一分钟进行同步一次

crontab –e

*/1 * * * * /usr/sbin/ntpdate 10.10.10.138

解决虚拟机时间过快的问题:

1)vi /boot/grub/grub.conf

添加kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet clock=pit nosmp noapic nolapic

2)gui运行:

#/usr/lib/vmware-tools/bin32/vmware-toolbox

补充

Linux下修改时间

Date

Clock -w 立即写入cmos

时间同步方式二

运行下来脚本

#! /bin/bash

while true

do

/usr/bin/rdate -s 192.168.19.129    

sleep 3

done 

 

阅读(1166) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-06-05 02:08:31

大连法律咨询在线 http://www.fabowang.com 大连律师在线咨询 http://www.fabowang.com 大连法律顾问网 http://www.fabowang.com 大连律师咨询 http://www.fabowang.com