一:安装和配置ISCSI
在两个系统上做:
1. # rpm –ivh iscsi-initiator-utils-6.2.0.871-0.10.el5.x86_64.rpm
2. # vi /etc/iscsi/iscsid.conf 添加几行:
DiscoveryAddress=192.168.2.250
SendAsyncText=yes
Continuous=yes
3. # service iscsi start
4. # iscsiadm -m discovery -t sendtargets -p 192.168.2.250 发现目标
tcp: [2] 192.168.2.250:3260,1 iqn.2001-05.com.equallogic:0-8a0906-def0bd805-7ff92d329bb4b14b-flash
tcp: [3] 192.168.2.250:3260,1 iqn.2001-05.com.equallogic:0-8a0906-3620bd805-5f792d329c34b14c-backup
tcp: [4] 192.168.2.250:3260,1 iqn.2001-05.com.equallogic:0-8a0906-db40bd805-1b092d329b64b14b-data
tcp: [5] 192.168.2.250:3260,1 iqn.2001-05.com.equallogic:0-8a0906-e370bd805-1e892d329c04b14b-ocfs2
5. # service iscsi restart 后自动login四个session ;
6. # multipath –ll 得到各session的uuid 结果如下:
backup (36090a05880bd20364cb1349c322d795f) dm-1 size=800G
ocfs (36090a05880bd70e34bb1049c322d891e) dm-2 size=525M
flash (36090a05880bdf0de4bb1b49b322df97f) dm-0 size=4.0G
data (36090a05880bd40db4bb1649b322d091b) dm-3 size=1.0T
7. # vi /etc/multipath.conf 添加如下内容:
multipaths {
multipath {
wwid 36090a05880bdf0de4bb1b49b322df97f
alias flash
}
multipath {
wwid 36090a05880bd40db4bb1649b322d091b
alias data
}
multipath {
wwid 36090a05880bd70e34bb1049c322d891e
alias ocfs
}
multipath {
wwid 36090a05880bd20364cb1349c322d795f
alias backup
}
}
8. # service multipathd restart 重启多路径服务。
# ls /dev/mapper/ 应该能看到下面块设备文件
backup control data flash ocfs
在db3上:
# vi /etc/hosts 添加以下内容;
192.168.2.203 db3
192.168.2.213 db3-vip
10.0.0.1 db3-priv
192.168.2.204 db4
192.168.2.214 db4-vip
10.0.0.2 db4-priv
在db4上:
# vi /etc/hosts 添加以下内容;
192.168.2.203 db3
192.168.2.213 db3-vip
10.0.0.1 db3-priv
192.168.2.204 db4
192.168.2.214 db4-vip
10.0.0.2 db4-priv
两个系统上都要做:
# rpm -qa binutils ,compat-db compat-libstdc++ control-center gcc gcc-c++ glibc
glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat
xscreensaver setarch glibc-devel libaio openmotif
两个系统上都做:
# vi /etc/sysctl.conf 添加:
kernel.shmall = 2097152
kernel.shmmax = 8147483648
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
# sysctl -p 生效配置
两个系统上都做:
# vi /etc/modprobe.conf添加
options hangcheck-timer hangcheck_tick=10 hangcheck_margin=30
# modprobe -v hangcheck-timer 立即生效
在 db3上:
# vi /etc/ntp.conf 编辑:
server 127.127.1.0
fudge 127.127.1.0 stratum 11
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
在 db4上:
# vi /etc/ntp.conf 编辑:
server 192.168.2.203 prefer
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
在两个系统上做:
# /etc/init.d/ntpd restart
一,创建ORACLE用户。
在两个系统上都做:
# groupadd –g 700 oinstall
# groupadd –g 600 dba
# mkdir –p /u1/oracle /ocfs /backup
#useradd –u 500 –g oinstall –G dba oracle
# passwd oracle 设置密码。
# chown –R oracle:oinstall /u1 /ocfs /backup
二.设置ORACLE环境变量。
在db3上做:
# su – oracle
# vi .bash_profile添加以下内容:
ORACLE_SID=asc1
ORACLE_BASE=/u1/oracle
ORACLE_HOMOE=$ORACLE_BASE/product/10.2.0/db_1
ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/usr/X11R6/bin
export PATH ORACLE_SID ORACLE_BASE ORACLE_HOME ORA_CRS_HOME LD_LIBRARY_PATH
umask 022
在 db4上做:
# su – oracle
# vi .bash_profile添加以下内容:
ORACLE_SID=asc2
ORACLE_BASE=/u1/oracle
ORACLE_HOMOE=$ORACLE_BASE/product/10.2.0/db_1
ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/usr/X11R6/bin
export PATH ORACLE_SID ORACLE_BASE ORACLE_HOME ORA_CRS_HOME LD_LIBRARY_PATH
umask 022
三创建ORACLE目录
以ORACLE用户在两个系统上都做:
[oracle@db3 ~]$ mkdir -p $ORACLE_BASE/admin
[oracle@db3 ~]$ mkdir -p $ORACLE_HOME
[oracle@db3 ~]$ mkdir -p $ORA_CRS_HOME
[oracle@db3 ~]$ mkdir -p /u1/oradata/asc
四 提高ORACLE用户的SHELL限制。
以ROOT用户 在两个系统上都做:
# vi /etc/security/limits.conf 添加如下内容:
Oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
# vi /etc/pam.d/login 添加如下内容:
session required /lib/security/pam_limits.so
# 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
fi
在 db3 上做:
# fdisk /dev/mapper/data
# fdisk /dev/mapper/flash
# fdisk /dev/mapper/ocfs
# fdisk /dev/mapper/backup
由于存储上的这些磁盘做了磁盘共享,所以在db4上可以看到磁盘分区的结果,无需在再分区。
在两个系统上都做:
安装完成后应看到以下包:
[root@db3 package]# rpm -qa |grep oracleasm
oracleasm-2.6.18-164.el5-2.0.5-1.el5
oracleasmlib-2.0.4-1.el5
oracleasm-support-2.1.3-1.el5
[root@db3 package]# rpm -qa |grep ocfs
ocfs2-2.6.18-164.el5-1.4.4-1.el5
ocfs2console-1.4.3-1.el5
ocfs2-tools-1.4.3-1.el5
两个系统上都做:
# vi /etc/udev/rules.d/60-raw.rules 添加如下内容:
ACTION=="add", KERNEL=="/dev/mapper/datap1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="/dev/mapper/flashp1", RUN+="/bin/raw /dev/raw/raw2 %N"
KERNEL=="raw[1-2]", WNER="oracle", GROUP="oinstall", MODE="640"
ACTION=="add", ENV{MAJOR}="253", ENV{MINOR}="2", RUN+="raw /dev/raw/raw1 %M %m"
ACTION=="add", ENV{MAJOR}="253", ENV{MINOR}="7", RUN+="raw /dev/raw/raw2 %M %m"
# raw /dev/raw/raw1 /dev/mapper/datap1
# raw /dev/raw/raw2 /dev/mapper/flash1
# ln –sf /dev/raw/raw1 /u1/oradata/asc/asmdisk1
# ln –sf /dev/raw/raw2 /u1/oradata/asc/asmdisk2
# vi /etc/rc.d/rc.local 添加:
raw /dev/raw/raw1 /dev/mapper/datap1
raw /dev/raw/raw2 /dev/mapper/flashp1
在db3,db4 上以root用户做:
[root@db4 ~]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
在 db3 上做:
[root@db4 ~]# /etc/init.d/oracleasm createdisks VOL1 /dev/mapper/datap1
[root@db4 ~]# /etc/init.d/oracleasm createdisks VOL2 /dev/mapper/flashp1
[root@db4 ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
在 db4 上做:
[root@db4 ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
在两个系统都做:(oracle用户)
# mkdir ~/.ssh
# chmod 700 ~/.ssh
# ssh-keygen –t rsa
# ssh-keygen –t dsa
在db3上做:
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized.keys
# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized.keys
# ssh db4 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized.keys
# ssh db4 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized.keys
# scp ~/.ssh/authorized.keys >> db4: ~/.ssh/authorized.keys
最后应该能两台机器ssh 时不需要提示输入密码!
两个系统上都做:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改参数为:
MTU=1500
# service network restart 即可!
一创建 ocfs配置文件:
# ocfs2console 弹出图形界面配置。
二传递配置文件到另一主机:
# ocfs2console 弹出图形界面配置。
三 配置o2cb 驱动程序
在两个系统上都做:
# /etc/init.d/o2cb unload
[root@db3 ~]# /etc/init.d/o2cb configure
Configuring the O2CB driver.
This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot. The current values will be shown in brackets ('[]'). Hitting
will abort.
Load O2CB driver on boot (y/n) [n]: y
Cluster stack backing O2CB [o2cb]:
Cluster to start on boot (Enter "none" to clear) [ocfs2]:
Specify heartbeat dead threshold (>=7) [31]: 61
Specify network idle timeout in ms (>=5000) [30000]:
Specify network keepalive delay in ms (>=1000) [2000]:
Specify network reconnect delay in ms (>=2000) [2000]:
Writing O2CB configuration: OK
Loading filesystem "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading filesystem "ocfs2_dlmfs": OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Starting O2CB cluster ocfs2: OK
应该看到以下状态:
root@db3 ocfs2]# /etc/init.d/o2cb status
Driver for "configfs": Loaded
Filesystem "configfs": Mounted
Driver for "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster ocfs2: Online
Heartbeat dead threshold = 61
Network idle timeout: 30000
Network keepalive delay: 2000
Network reconnect delay: 2000
Checking O2CB heartbeat: Not active
四格式化ocfs 文件系统
在db3上做:
# ocfs2console format 图形界面来做。
# mount –t ocfs2 -o datavolume,nointr /dev/mapper/backupp1 /backup
# mount –t ocfs2 -o datavolume,nointr /dev/mapper/ocfsp1 /ocfs
在db4上做:
# mount –t ocfs2 -o datavolume,nointr /dev/mapper/backupp1 /backup
# mount –t ocfs2 -o datavolume,nointr /dev/mapper/ocfsp1 /ocfs
在db3,db4 上都做:
# vi /etc/fstab 添加:
/dev/mapper/ocfsp1 /ocfs ocfs2 _netdev,datavolume,nointr 0 0
/dev/mapper/backupp1 /backup ocfs2 _netdev,datavolume,nointr 0 0
# mkdir –p /ocfs/clusterware
# chown -R oracle:oinstall /ocfs
在两个系统上都做:
# init 6
错误一:在第二个节点执行root.sh 时报:
/u1/crs/oracle/product/10.2.0/crs_1/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
解决方法:
[root@db4 crs_1]# vi /u1/crs/oracle/product/10.2.0/crs_1/bin/vipca
#Remove this workaround when the bug 3937317 is fixed
arch=`uname -m`
if [ "$arch" = "i686" -o "$arch" = "ia64" -o "$arch" = "x86_64" ]
then
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
fi
unset LD_ASSUME_KERNEL (该项为增加项)
#End workaround
[root@db4 crs_1]# vi /u1/crs/oracle/product/10.2.0/crs_1/bin/srvctl
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL (该项为增加项)
# sh root.sh 重新执行root.sh
错误二:# . /u1/crs/oracle/product/10.2.0/crs_1/bin/vipca 报错:
Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]
解决方法:
[root@db4 bin]# ./oifcfg setif -global eth0/192.168.2.0:public
[root@db4 bin]# ./oifcfg setif -global eth1/10.0.0.0:cluster_interconnect
[root@db4 bin]# ./oifcfg getif
eth0 192.168.2.0 global public
eth1 10.0.0.0 global cluster_interconnect
然后重新执行 . /u1/crs/oracle/product/10.2.0/crs_1/bin/vipca 配置两系统的vip .
CRS 配置正确后执行以下命令应该能看到以下结果:
[oracle@db4 db_1]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.db3.gsd application ONLINE ONLINE db3
ora.db3.ons application ONLINE ONLINE db3
ora.db3.vip application ONLINE ONLINE db3
ora.db4.gsd application ONLINE ONLINE db4
ora.db4.ons application ONLINE ONLINE db4
ora.db4.vip application ONLINE ONLINE db4
# [oracle@db4 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....c1.inst application ONLINE ONLINE db3
ora....c2.inst application ONLINE ONLINE db4
ora.asc.db application ONLINE ONLINE db3
ora....SM1.asm application ONLINE ONLINE db3
ora....B3.lsnr application ONLINE ONLINE db3
ora.db3.gsd application ONLINE ONLINE db3
ora.db3.ons application ONLINE ONLINE db3
ora.db3.vip application ONLINE ONLINE db3
ora....SM2.asm application ONLINE ONLINE db4
ora....B4.lsnr application ONLINE ONLINE db4
ora.db4.gsd application ONLINE ONLINE db4
ora.db4.ons application ONLINE ONLINE db4
ora.db4.vip application ONLINE ONLINE db4
------------升级
在两个节点上做:
# emctl stop dbconsole
# isqlplusctl stop
# lsnrctl stop
在db3 上做:
# srvctl stop instance –d asc –i asc1
# srvctl stop instance -d asc -i asc2
# srvctl stop database -d asc
# srvctl stop asm -n db3
# srvctl stop asm -n db4
# srvctl stop nodeapps -n db3
# srvctl stop nodeapps -n db4
[oracle@db3 stage]$ crs_stat –t (检查状态)
Name Type Target State Host
------------------------------------------------------------
ora....c1.inst application OFFLINE OFFLINE
ora....c2.inst application OFFLINE OFFLINE
ora....sc2.srv application OFFLINE OFFLINE
ora....scdb.cs application OFFLINE OFFLINE
ora.asc.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....B3.lsnr application OFFLINE OFFLINE
ora.db3.gsd application OFFLINE OFFLINE
ora.db3.ons application OFFLINE OFFLINE
ora.db3.vip application OFFLINE OFFLINE
ora....SM2.asm application OFFLINE OFFLINE
ora....B4.lsnr application OFFLINE OFFLINE
ora.db4.gsd application OFFLINE OFFLINE
ora.db4.ons application OFFLINE OFFLINE
ora.db4.vip application OFFLINE OFFLINE
二 停掉所有节点的CRS服务,在两个节点上都要做:
/u1/crs/oracle/product/10.2.0/crs_1/bin/crsctl stop crs
三 进入Disk1 运行:
(1) 升级CRS :
# ./runInstaller
# 选择CRS_HOME 一路NEXT下去!
(2) 升级数据库软件 由 10.2.0.1 到 10.2.0.4
.在linux1更新包目录下
$./runInstaller
在界面选择:OraDb10g_home1
.在两个节点上执行:
#/u1/app/oracle/product/10.2.0/db_1/root.sh
在两个节点上执行:
#/etc/init.d/init.crs stop
. 在db3上执行:
#/etc/init.d/init.crs start
(3) 升级数据字典。
. 在db3上升级。(手动升级方式)执行:
$ sqlplus /nolog
SQL>CONN SYS AS SYSDBA
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP NOMOUNT
SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=spfile;
SQL> SHUTDOWN
SQL> STARTUP UPGRADE
SQL> @/u1/app/oracle/product/10.2.0/db_1/rdbms/admin/catupgrd.sql
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> @/u1/app/oracle/product/10.2.0/db_1/rdbms/admin/utlrp.sql
SQL>ALTER SYSTEM SET CLUSTER_DATABASE=TRUE scope=spfile sid='*';
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
在两台节点上执行:
#/u1/app/oracle/product/crs/bin/crsctl stop crs
在db4上执行:
#/u1/app/oracle/product/crs/bin/crsctl start crs
然后执行上面脚本
10.重启两个节点的crs(两个节点)
#/etc/init.d/init.crs stop
#/etc/init.d/init.crs start
---------另外的一种升级方式:使用DBUA升级。
12. 在db3上使用dbua升级向导升级。执行:
# dbua 使用图形界面,NEXT下去。OK!
LINUX 5 +RAC 安装,升级完成!
RAC安装完成后,是一个默认的数据库配置,这些配置与实际生产环境的要求存在一定的差距,所以需要做些预设置调整。以下是针对本数据库做的预参数调整:
一 ORACLE内存参数调整:
静态参数:sga_max_size=8G
动态参数:sga_target=7728M
动态参数:open_cursors=3000
动态参数:cursor_sharing=similar
动态参数:db_keep_cache_size=300m
动态参数:db_recycle_cache_size=100m
动态参数:db_cache_advice=on
二 session参数调整:
静态参数:processes=2000
静态参数:sessions=2205
三 pga参数调整:
动态参数:workarea_size_policy=AUTO
静态参数:pga_aggregate_target=1206M
四磁盘I/O参数调整:
静态参数:sql_trace=FALSE
动态参数:timed_statistics=true
动态参数:db_file_multiblock_read_count=16
静态参数:undo_management= AUTO
动态参数:undo_retention=3600
静态参数:pre_page_sga=true
静态参数:lock_sga=true
静态参数:disk_asynch_io=true
LINUX 5 +RAC 安装,升级,性能参数调整完成!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24447726/viewspace-1807087/ ,如需转载,请注明出处,否则将追究法律责任。