| 本帖最后由 xiaozhao2010 于 2010-09-25 09:46 编辑
 1、安装VMware server 1.0.7虚拟机
 2、安装Redhat Enterprise Linux 5.4操作系统
 Active主机:
 hostname:dbservera.example.com
 网卡1:Eth0:10.66.101.25/24
 网卡2:Eth1:10.0.0.1/24
 Standby备机:
 hostname:dbserverb.example.com
 网卡1:Eth0:10.66.101.26/24
 网卡2:Eth1:10.0.0.2/24
 Virtual IP:10.66.101.11/24
 注意事项:
 1、 关闭防火墙
 2、 Selinux改为“允许”
 3、 Active主机和standby备机的IP地址设置如上,Eth0网卡自定义VMnet8 NAT模式,网关和DNS设置为10.66.101.1,VMnet8的IP地址设置为:10.66.101.1/24, Eth1网卡hostonly模式。
 4、 HA的虚拟IP为10.66.101.11/24
 5、 添加一块容量为30G的SCSI硬盘,不预分配空间
 3、添加共享磁盘(模拟磁盘阵列使用)
 在VMWare server的安装目录中找到“vmware-vdiskmanager.exe”文件,然后拷贝到“D:\Virtual Machines\sharedisk”,打开“CMD”
 进入到D:\Virtual Machines\sharedisk,然后运行如下命令
 D:\Virtual Machines\sharedisk>vmware-vdiskmanager.exe   -c -s 10Gb -a lsilogic -t 2 sharedisk.vmdk
 再把创建的共享磁盘添加到dbservera中,接口为SCSI 1:1,在dbservera目录中找到后缀为VMX的文件添加如下两行:
 disk.locking = "FALSE"
 scsi1.SharedBus = "Virtual"
 启动dbservera,分区fdisk /dev/sdb,格式化/dev/sdb1为ext3文件系统,临时试挂载
 [root@dbservera ~]# mount -t ext3 /dev/sdb1 /mnt/
 如一切正常,那么关闭dbservera,再将此共享磁盘添加到dbserverb中,方法和dbservera一样,但是不要分区格式化了,直接挂载即可。
 4、关闭不必要的服务
 chkconfig --list | grep cups
 chkconfig --list | grep sendmail
 chkconfig --list | grep bluetooth
 chkconfig --level 2345 cups off
 chkconfig --level 2345 sendmail off
 chkconfig --level 2345 bluetooth off
 5、安装HA
 安装编译软件:
 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel  --nogpgcheck
 # pwd
 /oradisk/libnet
 # ./configure
 # make&&make install
 # pwd
 /oradisk/heartbeat-2.0.8
 # ./ConfigureMe configure --disable-swig --disable-snmp-subagent
 # groupadd -g 694 haclient
 # useradd -u 694 -g haclient hacluster
 # make && make install
 # cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d/
 # cp ldirectord/ldirectord.cf /etc/ha.d/
 # cat ha.cf | grep -v "#"
 logfile        /var/log/ha-log
 logfacility        local0
 keepalive 2
 deadtime 30
 warntime 10
 initdead 120
 udpport        694
 ucast eth0 10.66.101.26
 auto_failback on
 node        dbservera.example.com
 node        dbserverb.example.com
 ping 10.66.101.1
 respawn hacluster /usr/lib/heartbeat/ipfail
 # chmod 600 authkeys
 # cat authkeys |grep -v "#"
 auth 1
 1 crc
 # cat haresources |grep -v "#"
 dbservera.example.com IPaddr::10.66.101.11/24/eth0 Filesystem::/dev/sdb1::/u02::ext3  oracle
 # ln -s /etc/init.d/heartbeat /etc/rc.d/rc0.d/K05heartbeat
 # ln -s /etc/init.d/heartbeat /etc/rc.d/rc3.d/S75heartbeat
 # ln -s /etc/init.d/heartbeat /etc/rc.d/rc5.d/S75heartbeat
 # ln -s /etc/init.d/heartbeat /etc/rc.d/rc6.d/K05heartbeat
 # cat /etc/hosts
 # Do not remove the following line, or various programs
 # that require network functionality will fail.
 127.0.0.1        localhost.localdomain localhost
 ::1                localhost6.localdomain6 localhost6
 10.66.101.25        dbservera.example.com        dbservera
 10.66.101.26        dbserverb.example.com        dbserverb
 10.0.0.1                priv1
 10.0.0.2        priv2
 1 :硬件要求
 (1) Mem> 922M,swap>1026M
 [root@server TrueType]# cat /proc/meminfo | grep Total
 MemTotal:       949796 kB
 HighTotal:       44992 kB
 LowTotal:       904804 kB
 SwapTotal:     2048276 kB
 VmallocTotal:   114680 kB
 HugePages_Total:     0
 (2) /tmp> 400M
 [root@server TrueType]# df -h
 文件系统              容量  已用 可用 已用% 挂载点
 /dev/sda2             9.5G  2.4G  6.7G  26% /
 /dev/sdb1              20G  173M   19G   1% /u02
 /dev/sda1              99M   12M   83M  12% /boot
 tmpfs                 464M     0  464M   0% /dev/shm
 /dev/hdc              2.8G  2.8G     0 100% /media/cdrom
 /dev/sda5             572M   17M  526M   4% /tmp
 2 :软件要求
 [root@server TrueType]# rpm -q  glibc-2.5-42  gcc-4.1.2-46.el5  make-3.81-3.el5  binutils-2.17.50.0.6-12.el5 libaio-0.3.106-3.2 openmotif-2.3.1-2.el5  setarch-2.0-1.1
 glibc-2.5-42
 gcc-4.1.2-46.el5
 make-3.81-3.el5
 binutils-2.17.50.0.6-12.el5
 libaio-0.3.106-3.2
 openmotif-2.3.1-2.el5
 setarch-2.0-1.1
 3:解决安装过程中及isqlplus 字体乱码问题
 # mkdir -p /usr/share/fonts/zh_CN/TrueType
 # cd /usr/share/fonts/zh_CN/TrueType
 # cp ../../chinese/TrueType/uming.ttf ./zysong.ttf
 4:配置IP 与主机名对应关系
 # vim /etc/sysconfig/i18n //修改OS 字符集
 LANG="zh_CN.gb2312"
 # hostname
 # vim /etc/sysconfig/network
 # ifconfig eth0
 # vim /etc/sysconfig/network-scripts/ifcfg-eth0
 # vim /etc/hosts //修改IP 地址和主机名对应关系(可选项)
 5 配置Linux 内核参数
 查看现有内核参数,不得低于下述值
 # /sbin/sysctl -a | grep shm
 kernel.shmmni = 4096
 kernel.shmall = 2097152
 kernel.shmmax = 536870912   Half the size of physical memory (in bytes)
 # /sbin/sysctl -a | grep sem
 kernel.sem = 250 32000 100 128
 # /sbin/sysctl -a | grep file-max
 fs.file-max = 65536
 # /sbin/sysctl -a | grep ip_local_port_range
 net.ipv4.ip_local_port_range = 1024 65000
 # /sbin/sysctl -a | grep mem
 net.core.rmem_default = 262144
 net.core.wmem_default = 262144
 net.core.rmem_max = 262144
 net.core.wmem_max = 262144
 假设查看到内核参数低于上述值,修改方式如下
 # vim /etc/sysctl.conf
 kernel.shmall = 268435456
 kernel.sem = 250 32000 100 128
 net.ipv4.ip_local_port_range = 1024 65000
 net.core.rmem_default = 1048576
 net.core.wmem_default = 262144
 net.core.rmem_max = 1048576
 net.core.wmem_max = 262144
 # sysctl  -p
 6 创建oracle 组和用户
 # groupadd oinstall
 # groupadd dba
 # useradd -m -g oinstall -G dba oracle
 # id oracle
 uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
 # passwd oracle //修改oracle 用户密码
 7 创建oracle 文件系统和目录
 # mkdir -p /u01/app/oracle  /u02/
 # chown -R oracle:oinstall /u01  /u02/
 # chmod -R 775 /u01  /u02/
 8 设置shell 限制
 oracle 建议对每个Linux 账户可以使用的进程数和打开的文件数设置限制
 # vim /etc/security/limits.conf //在最后加上如下4 行
 oracle soft nproc 2047
 oracle hard nproc 16384
 oracle soft nofile 1024
 oracle hard nofile 65536
 # vim /etc/pam.d/login //在最后加上如下1 行
 session required /lib/security/pam_limits.so
 9 设置环境变量(完成后重新登录生效)
 # vim /home/oracle/.bash_profile
 # User specific environment and startup programs
 umask 022
 LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib
 ORACLE_BASE=/u01/app/oracle
 ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
 ORACLE_SID=standby
 LD_LIBRARY_PATH=$ORACLE_HOME/jdk/fre/lib/i386:$ORACLE_HOME/jdk/jre/lib/i386/server:$ORaCLE_HOME/rdbms/lib:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
 PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
 NLS_LANG=American_America.ZHS16GBK
 export PATH LD_LIBRARY_PATH ORACLE_BASE ORACLE_HOME ORACLE_SID NLS_LANG
 10 解压安装包
 将oracle 安装包copy 到/oradisk 下
 # cd /oradisk/
 # unzip oracle10g01_10.2.0.1.0_database_linux32.zip
 # chown -R oracle:oinstall /oradisk
 # chmod -R 755 /oradisk/
 11 注销后以oracle 用户登录开始安装
 $ cd /oradisk/database/
 $ ./runInstaller
 12、升级oracle10g到10.2.0.4
 $ pwd
 /oradisk/Disk1
 $ ./runInstaller
 13、DBCA创建数据库
 # mkdir /u02/oradata/
 # chown -R oracle:oinstall /u02
 # chmod -R 755 /u02
 $ dbca
 14、创建listener.ora
 $ netmgr
 15、创建tnsnames.ora
 $ lsnrctl start
 15、在客户端测试
 C:\>sqlplus sys/oracle@sky as sysdba
 SQL> select * from v$version;
 BANNER
 -------------------------------------------------------
 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
 PL/SQL Release 10.2.0.4.0 - Production
 CORE    10.2.0.4.0      Production
 TNS for Linux: Version 10.2.0.4.0 - Production
 NLSRTL Version 10.2.0.4.0 – Production
 16、在dbserverb上安装数据库软件并升级
 17、在dbservera编写oracle脚本
 # pwd
 /etc/init.d
 # cat oracle
 #!/bin/bash
 #chkconfig: 2345 75 05
 #description: oracle
 ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
 export ORACLE_HOME
 if [ ! -f $ORACLE_HOME/bin/dbstart ]
 then
 echo "ORACLE cannot start"
 exit
 fi
 case "$1" in
 'start')
 echo "Starting Oracle Database..."
 su - oracle -c "$ORACLE_HOME/bin/dbstart"
 #    su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
 ;;
 'stop')
 echo "Stoping Oracle Database"
 #    su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
 su - oracle -c "$ORACLE_HOME/bin/dbshut"
 ;;
 esac
 # chmod 755 /etc/init.d/oracle
 # cat /etc/oratab |grep -v "#"
 standby:/u01/app/oracle/product/10.2.0/db_1:Y
 # cd /u01/app/oracle/product/10.2.0/db_1/bin/
 # vim dbstart
 将第88行改成ORACLE_HOME_LISTNER=$ORACLE_HOME
 # vim dbshut
 将第77行改成ORACLE_HOME_LISTNER=$ORACLE_HOME
 重启heartbeat软件看资源是否运行
 18、在dbservera上拷贝如下文件到dbserverb
 # scp -r  /u01/app/oracle/admin/  oracle@10.0.0.2:/u01/app/oracle/
 #scp -r /u01/app/oracle/product/10.2.0/db_1/dbs/  oracle@10.0.0.2:/u01/app/oracle/product/10.2.0/db_1/
 # scp /u01/app/oracle/product/10.2.0/db_1/bin/dbstart oracle@10.0.0.2:/u01/app/oracle/product/10.2.0/db_1/bin /u01/app/oracle/product/10.2.0/db_1/bin/dbshut oracle@10.0.0.2:/u01/app/oracle/product/10.2.0/db_1/bin
 # scp /etc/init.d/oracle root@10.0.0.2:/etc/init.d/
 # scp /etc/oratab oracle@10.0.0.2:/etc/oratab
 启动数据库远程登陆测试
 
 |