Linux5 + Rac 安装,升级,优化笔记
---------安装
一 操作系统初始化存储:
一:安装 和 配置 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.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 生效配置
四 配置 hangcheck-timer 模块
两个系统上都做:
# 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 用户并配置ORACLE
一,创建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
七 为oracleasm 和ocfs 创建磁盘分区
在 db3 上做:
# fdisk /dev/mapper/data
# fdisk /dev/mapper/flash
# fdisk /dev/mapper/ocfs
# fdisk /dev/mapper/backup
由于存储上的这些磁盘做了磁盘共享,所以在 db4 上 可以看到磁盘分区的结果,无需在再分区。
八 安装 oracleasm 包和 ocfs2 包:
在两个系统上都做:
安装完成后应看到以下包:
[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
九 为oracleasm 映射裸设备磁盘:
两个系统上都做:
# 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
十 配置 oracleasm 磁盘:
在 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 without typing an
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 互信机制
在两个系统都做:(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 时不需要提示输入密码!
!scp 时报远程session 连接错误,解决方法:
两个系统上都做:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改参数为:
MTU=1500
# service network restart 即可!
十二 配置 oracle 的集群文件系统 ocfs .
一 创建 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
without typing an answer will keep that current value. Ctrl-C
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
十四 安装ORACLE 集群件 clasterware .
错误一:在第二个节点执行 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 数据库软件:
十六 使用 DBCA 创建数据库。
# [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
Year ,OK !!!!
------------升级
一 停掉所有节点 db ,asm ,nodeapps .
在两个节点上做:
# 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 安装,升级,性能参数调整完成!
拟稿:刘明佳
2009年12月8日
上海*********公司
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14359194/viewspace-622278/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14359194/viewspace-622278/