标签:
主机名 |
操作系统 |
处理器 |
内存 |
rac1 |
Enterprise-R5-U5-Server-x86_64-dvd(64 位) |
1 |
1024 MB |
rac2 |
Enterprise-R5-U5-Server-x86_64-dvd(64 位) |
1 |
1024 MB |
操作系统上的磁盘 |
虚拟机磁盘 |
大小(G) |
描述 |
localdisk.vmdk |
/dev/sda |
20 |
系统区 |
disk1.vmdk |
/dev/sdb |
2 |
Votingdisk |
disk2.vmdk |
/dev/sdc |
2 |
ocr |
disk3.vmdk |
/dev/sdd |
3 |
数据 |
disk4.vmdk |
/dev/sde |
2 |
归档日志 |
主机 |
db1 |
db2 |
实例名 |
+ASM1 |
+ASM2 |
Ip |
192.168.204.101 |
192.168.204.103 |
vip |
192.168.204.102 |
192.168.204.104 |
Private ip |
10.10.0.11 |
10.10.0.12 |
虚拟机版本:virtual box 4.1.14
(1) 新建à下一步
(2) 填写虚拟机名称:stdtest1,选择操作系统:Linux 版本:oracle(64bit)
(3) 下一步,内存选择1024M,下一步,文件类型VDI,动态大小
(4) 选择虚拟机位置:E:\vbox\stdtest1
(5) 设置à存储,增加虚拟光驱,选择操作系统镜像iso文件
(6) 网卡1选择host only 网卡2选择内部网络
(7) 完成
(1) 启动虚拟机stdtest1
(2) 按 Enter 键以图形模式安装
(3) 跳过介质测试并启动安装
(4) Enterprise Linux界面,单击 Next
(5) 语言选择ENGLISH
(6) 键盘选择,默认
(7) 磁盘分区,手动分区
(8) 添加分区:
文件系统类型:Swap 2048M
文件系统类型:ext3 挂载点:/ 剩余空间
(9) 引导加载程序配置:仅选择默认的 /dev/sda1,其余选项均保留未选中状态
(10) 网络配置
Eth0
IP 地址:输入“192.168.204.101”(192.168.204是根据主机给virtual box分配的地址确定的,101可以随便写)
网络掩码:输入“255.255.255.0”
Eth1
IP 地址:输入“10.10.0.11”
网络掩码:输入“255.255.255.0”
主机名 std1
Gateway:192.168.204.1
(11) 时区:上海
(12) 密码
(13) 包选择:
development libraries选上并且选择libstdc
(14) 选择next,开始安装操作系统,这步时间比较长。
(15) 点击reboot
(16) 防火墙:禁用
(17) SELINUX:禁用
(18) 不创建用户,其他的默认,完成。
(19) 系统自动重启。
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
mkdir -p /u01/oracle
chown oracle:oinstall /u01/oracle /u01
passwd oracle
New Password:
Re-enter new Password:
passwd: password successfully changed for oracle
su - oracle
vi .bash_profile
export ORACLE_SID=std1
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH
umask 022
使生效
source .bash_profile
mkdir -p $ORACLE_BASE/admin
mkdir -p $ORACLE_HOME
mkdir -p $ORA_CRS_HOME
su - root
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
修改/etc/pam.d/login
vi /etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
修改vi /etc/profile文件
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
rpm -q --qf ‘%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n‘ \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
libaio \
libgcc \
libaio-devel \
libgcc \
libstdc++-devel \
libstdc++ \
make \
numactl-devel \
sysstat \
libXp \
compat-db\
df -h
cd /media/Enterprise\ Linux\ dvd20100405/Server/
(需要把虚拟光驱挂载上,关闭操作系统,挂载虚拟光驱,重启后,root登陆图形界面)
rpm -ivh libgomp-4.4.0-6.el5.*
rpm -ivh gcc-4.1.2-48.el5.x86_64.rpm
rpm -ivh libstdc++-devel-4.1.2-48.el5.*
rpm -ivh gcc-c++-4.1.2-48.el5.x86_64.rpm
rpm -ivh libaio-devel-0.3.106-5.*
rpm -ivh numactl-devel-0.9.8-11.el5.*
rpm -ivh sysstat-7.0.2-3.el5.x86_64.rpm
rpm -ivh libXp-1.0.0-8.1.el5.*
rpm -ivh compat-db-4.2.52-5.1.*
将下面列出的行添加到 /etc/sysctl.conf。要使更改立即生效,请执行 /sbin/sysctl -p。
修改系统内核参数
vi /etc/sysctl.conf
kernel.shmall
= 2097152
kernel.shmmax = 2147483648
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
执行
chkconfig /etc/sysctl.conf
# vi /etc/hosts
127.0.0.1 localhost
192.168.204.101 std1
192.168.204.103 std1-vip
10.10.0.11 std1-priv
192.168.204.102 std2
192.168.204.104 std2-vip
10.10.0.12 std2-priv
vi /etc/rc.local
modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
每个磁盘划一个分区,输入n-p-1-10->-w
磁盘分区时不要从1开始,从10开始
rpm -ivh oracleasm-support-2.1.3-1.el5.x86_64.rpm
rpm -ivh oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm
rpm -ivh oracleasmlib-2.0.4-1.el5.x86_64.rpm
检查已安装的ASM 程序包。
# rpm -qa | grep oracleasm
oracleasm-support-2.0.3-2
oracleasm-2.6.9-42.0.0.0.1.ELsmp-2.0.3-2
oracleasmlib-2.0.2-1
(b)本环境使用asmlib创建asm,因此需要安装asm的三个包,注意选择对应操作系统核心的版本。
Run the "uname -r" command on your machine to determine your kernel version. The corresponding package has the name oracleasm-<kernel_version>.-----补充
Oracleasm下载地址:
http://www.oracle.com/technetwork/topics/linux/asmlib/index-101839.html
绑定裸设备与块设备
vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdc1
vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="raw1", OWNER="oracle", GROUP="oinstall", MODE="0775"
ACTION=="add", KERNEL=="raw2", OWNER="oracle", GROUP="oinstall", MODE="0775"
重启服务: start_udev
验证:
ls /dev/raw/ -l
重启了机器才生效。
安装依赖包
# rpm -ivh kernel-headers(上边已经安装)
# rpm -ivh kernel-devel
# rpm -ivh gcc* (上边已经安装)
# rpm -ivh
make(上边已经安装)
运行
# sh ./VBoxLinuxAdditions.run
右键复制虚拟机,(此次如果需要指定目录,需要在全局设定修改虚拟机默认位置)
vi /etc/sysconfig/network
std1改成std2
Eth0
IP 地址:输入“192.168.204.102”
网络掩码:输入“255.255.255.0”
Eth1
IP 地址:输入“10.10.0.12”
网络掩码:输入“255.255.255.0”
主机名 std2
Gateway:192.168.204.1
此处需要注意:网卡地址不能和clone的操作系统地址一样,修改bak的网卡地址,如果还是不对,直接删了网卡,重新创建两个。
ORACLE_SID=std2
在集群就绪服务 (CRS) 和 RAC 安装过程中,Oracle Universal Installer (OUI) 必须能够以 oracle 的身份将软件复制到所有 RAC 节点,而不提示输入口令。
(1) 在 std1 上执行
su - oracle
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
(2) 在 std2 上执行
su - oracle
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
(3) 在 std1 上执行
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh std2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh std2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys std2:~/.ssh/authorized_keys
(4) 在每个节点上测试连接
ssh std1 date
ssh std2 date
ssh std1-priv date
ssh std2-priv date
(1) 在虚拟机std1上创建4个虚拟硬盘:SATA创建新的虚拟硬盘,选择固定大小,大小分别为2、2、3、2(G)
(2) 进入管理à虚拟介质管理,修改4个新增加的硬盘为可共享
(3) 虚拟机std2上创建虚拟硬盘,选择使用现有的虚拟硬盘
Oracle ASM 与 Oracle 数据库紧密集成在一起,并与 Oracle 的数据管理工具套件配合工作。它可以简化数据库存储管理,并提供原始磁盘 I/O 的性能。
/etc/init.d/oracleasm configure
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 ]
/etc/init.d/oracleasm createdisk VOL1 /dev/sdd1
Marking disk "VOL1" as an ASM disk: [ OK ]
/etc/init.d/oracleasm createdisk VOL2 /dev/sde1
Marking disk "VOL2" as an ASM disk: [ OK ]
/etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [ OK ]
/etc/init.d/oracleasm listdisks
VOL1
VOL2
/etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [ OK ]
/etc/init.d/oracleasm listdisks
VOL1
VOL2
使用oracleasm删除ASM磁盘
/etc/init.d/oracleasm deletedisk VOL1
查看错误日志
less /var/log/oracleasm
清除磁盘
dd if=/dev/zero of=/dev/sdd1 bs=1M count=1024
dd if=/dev/zero of=/dev/sde1 bs=1M count=1024
(1) 将文件上传到/usr/local/soft,并解压,两个节点都需要
gunzip 10201_clusterware_linux_x86_64.cpio.gz
cpio -idmv <10201_clusterware_linux_x86_64.cpio
chown -R oracle:oinstall clusterware
(2) 修改软件版本
vi /etc/redhat-release
#CentOS release 5.5 (Final)删掉
redhat-4
(3) 需要执行xhost +(root用户)
xhost +
(4) 在装 crs 之前,建议先利用 CVU(Cluster Verification Utility)检查 CRS 的安装前环境(oracle 用户)
/usr/local/soft/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n std1,std2 -verbose
(5) 以oracle 用户身份执行
su – oracle
./runInstaller
出现提示:Has ‘rootpre.sh‘ been run by root? [y/n] (n)
在两个节点上都以root用户运行rootpre.sh
sh /usr/local/soft/clusterware/rootpre/rootpre.sh
No OraCM running
sh /usr/local/soft/clusterware/rootpre/rootpre.sh
No OraCM running
(1) 欢迎界面
(2) 指定 Inventory 目录和证书
路径:/u01/app/oracle/oraInventory
操作系统组名:oinstall
(3) 指定 Home 详细内容
名称:OraCrs10g_home
/u01/app/oracle/product/10.2.0/crs_1
(4) 特定于产品的必要条件检查
(5) 指定集群配置:单击 Add
公共节点名称:std2
专用节点名称:std2-priv
虚拟主机名称:std2-vip
(6) 指定网络接口用法
更改eth0接口类型为Public
(7) 指定 Oracle 集群注册表 (OCR) 位置
选择 External Redundancy,先不镜像 OCR
指定 OCR 位置:/dev/raw/raw1
(8) 指定表决磁盘位置
选择 External Redundancy,先不镜像表决磁盘
表决磁盘位置:/dev/raw/raw1
(9) 摘要:单击 Install
以 root 用户身份按顺序执行以下脚本(一次执行一个)。在当前脚本完成后,再继续执行下一个脚本
(1)在 std1 上执行 /u01/oracle/oraInventory/orainstRoot.sh
(2)在 std2 上执行 /u01/oracle/oraInventory/orainstRoot.sh
(3)在 std1 上执行 /u01/oracle/product/10.2.0/crs_1/root.sh
(4)修改几个文件(std2):
/u01/oracle/product/10.2.0/crs_1/bin/vipca
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—增加
/u01/oracle/product/10.2.0/crs_1/bin/srvctl
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL—增加
否则下边会报错:error while loading shared libraries: libpthread.so.0:cannot open shared object file: No such file or directory
(6) 在 std2 上执行 /u01/oracle/product/10.2.0/crs_1/root.sh
最后会出现错误,手工处理即可:
Running vipca(silent) for configuring nodeapps
Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]
(7) 修改配置
cd /u01/oracle/product/10.2.0/crs_1/bin/
./oifcfg iflist
eth0 192.168.204.0
eth1 10.10.0.0
./oifcfg setif -global eth0/192.168.204.0:public
./oifcfg setif -global eth1/10.10.0.0:cluster_interconnect
./oifcfg getif
eth0 192.168.204.0 global public
eth1 10.10.0.0 global cluster_interconnect
(8) 图形界面手工运行(std2)
/u01/oracle/product/10.2.0/crs_1/bin/vipca
点击下一步
Node name |
ip alias name |
ipaddress |
subnet mask |
std1 |
std1-vip |
192.168.204.103 |
255.255.255.0 |
Std2 |
std2-vip |
192.168.204.104 |
255.255.255.0 |
点击next,完成。
(1)将文件上传到/root,执行
#cd /u01
gunzip 10201_database_linux_x86_64.cpio.gz
cpio -idmv <10201_database_linux_x86_64.cpio
chown -R oracle:oinstall database
(2)以oracle 用户身份执行
su – oracle
cd /usr/local/soft
./runInstaller
(1) 欢迎界面
(2) 选择安装类型
选择 Enterprise Edition
(3) 指定 Home 详细内容
名称:OraDb10g_home1
路径:/u01/oracle/product/10.2.0/db_1
(4) 指定硬件集群安装模式
选择 Cluster Installation
单击 Select All
(5) 特定于产品的必要条件检查
在开始安装 checking 的时候 出现 checking network configuration requirements 是 not executed ,搜索网上没找到答案,但得到一些提示,修改 /etc/hosts文件把 ip address 由127.0.0.1 改为一个static IP address
(6) 选择只安装数据库软件
单击 install
(7) 在std1、std2上执行脚本
/u01/oracle/product/10.2.0/db_1/root.sh
/u01/oracle/product/10.2.0/db_1/root.sh
(8) 完成
必须先升级clusterware才能升级database
只需在一个节点上执行
unzip p6810189_10204_Linux-x86-64.zip
chown -R oracle:oinstall Disk1
cd /usr/oracle/soft/Disk1/
./ runInstaller
1、欢迎页面:单击 Next。
2、指定 Home 详细内容:
注意name选项的下拉框有两个选项:OraCrs10g_home和OraDb10g_home,选择OraCrs10g_home
名称:OraCrs10g_home
路径:/usr/oracle/product/10.2.0/crs_1
3、指定硬件集群安装模式:
OUI 自动选中的cluster的安装方式,并选中了所有可用的节点,next
4、特定于产品的必要条件检查:
忽略有关物理内存要求的警告。
5、摘要
无异常,单击install
6、执行结束安装脚本
在每个节点上以root用户按照下面顺序执行:
节点1
/u01/oracle/product/10.2.0/crs_1/bin/crsctl stop crs
/u01/oracle/product/10.2.0/crs_1/install/root102.sh
节点2
/u01/oracle/product/10.2.0/crs_1/bin/crsctl stop crs
/u01/oracle/product/10.2.0/crs_1/install/root102.sh
只需在一个节点上执行
./ runInstaller
1、欢迎页面:单击 Next。
2、指定 Home 详细内容:
名称:OraDb10g_home1
路径:/usr/oracle/product/10.2.0/db_1
3、填写oracle support 邮件和密码
直接忽略
4、指定硬件集群安装模式:
OUI 自动选中的cluster的安装方式,并选中了所有可用的节点,next
5、特定于产品的必要条件检查:
忽略有关物理内存要求的警告。
6、摘要
无异常,单击install
7、直接结束脚本
在两个节点 ,以root用户执行:
/u01/oracle/product/10.2.0/db_1/root.sh
/u01/oracle/product/10.2.0/db_1/root.sh
8、OK,exit
在任意节点上执行netca,这个工具同样会自动感应到集群环境。
netca
1、选择配置类型:cluster configuration,next
2、选择要配置的节点:当然select all nodes,next
3、选择配置listener configuration,next
4、选择add,next
5.、填写监听器名称,这里采用默认listener,next
6、填写监听端口,这里不采用默认端口,填写3173,next
7、是否需要其他配置,no,next
8、显示配置完成,next,finish,exit。
9、验证监听器配置成功
/u01/oracle/product/10.2.0/crs_1/bin/crs_stat -t -v
10、查看监听器配置文件
LISTENER_RAC1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 3173)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.204.101)(PORT = 3173)(IP = FIRST))
)
)
LISTENER_RAC2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 3173)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.204.102)(PORT = 3173)(IP = FIRST))
)
)
各个节点都只监听自己的public ip和vip。当某个节点故障后,故障节点的vip会转移到幸存其他节点上。这个时候这个节点上就有3个ip了:自己的public ip、vip和转移过来的故障节点的VIP。从这里可以看出,客户端需要通过vip和RAC节点通信。
(学习静态注册和动态注册)
静态注册:由于oracle的pmon进程会自动将instance的instance_name和service_name注册到1521端口,如果我们想把instance 注册到1521之外的端口,我们只能使用静态注册
由于修改默认端口,需要注册监听
SQL> alter system set local_listener=‘(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.204.101)(PORT = 3173))‘ scope=both sid=‘test1‘;
System altered.
SQL> alter system set local_listener=‘(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.204.102)(PORT = 3173))‘ scope=both sid=‘test2‘;
System altered.
SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
local_listener string (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.204.101)(PORT = 3173))
SQL> alter system register;
System altered.
在任意节点上执行dbca,这个工具同样会自动感应到集群环境。
dbca
1、肯定选择 oracle real application clusters database,next
2、选择configure automatic storage management,next
3、选择所有节点 select all,next
4、设置ASM实例的sys密码,参数文件选择pfile,next
5、ASM实例参数确认,点击close
6、确认是否创建ASM实例,点击OK确认
ASM创建完毕后,ASM实例自动启动,可以创建ASM磁盘组了。
7、create New创建磁盘组:
这里我们只创建两个磁盘组(oracle建议创建两个磁盘组:一个保存数据,一个给Flash Recovery Area使用)
DATA:选择HIGH冗余(即数据存放三份),disk选择VOL1、VOL2、VOL3
如果选择EXTERNAL,disk选择一个即可。
RECOVERY,选择external冗余(即数据只存一份),disk选择VOL4。
8、finish退出。
dbca
1、肯定选择 oracle real application clusters database,next
2、create database,next
3、选择节点 select all,next
4、选择数据库节点 general purpose,next
5、填写数据库名,实例前缀名:rac
6、配置EM,这里安装EM,默认
7、设置sys密码
8、存储选项,选择ASM
9、选择DISK GROUPS,选择DATA
10、指定数据文件位置,默认我们选择的+DATA disk group
11、配置recovery,我们启用闪回,闪回区指定为+RECOVERY disk group,闪回区大小默认2G;
不启用归档。
12、是否安装示例schema和执行定制脚本,默认不安装
13、是否配置service,我们这里暂时不配置service
可以使用 DBCA 或 srvctl 实用程序来创建数据库服务
一个很重要的服务就是TAF, TAF 中的故障切换机制使任何失败的数据库连接能够重新连接到集群中的其他节点。故障切换对用户是透明的。Oracle 在故障切换实例上重新执行查询并继续向用户显示余下的结果。
14、初始化参数设置
这里内存设置为80%,字符集选择简体中文:zhs16gbk
15、设置数据文件位置,默认
16、创建数据库,我们同时选择生成创建数据库脚本,便于学习dbca建库过程。点击finish
17、摘要信息,OK
18、首先生成创建脚本,然后创建数据库,显示创建进度。
19、创建完毕,信息确认对话框,exit
20、系统自动启动rac数据库和实例。
21、数据创建完毕后,数据库及每个节点的实例信息都会注册到crs中。
crs_stat -t -v
在实际环境中搭建时,有一点不同的就是多路径的配置,确保两个节点识别的硬盘是同一个
multipaths {
multipath {
wwid "36005076300810434700000000000001a"
alias disk1
}
multipath {
wwid "36005076300810434700000000000001b"
alias disk2
}
multipath {
wwid "36005076300810434700000000000001c"
alias disk3
}
multipath {
wwid "36005076300810434700000000000001d"
alias disk4
}
}
查看多路径设置
cat bindings
(1)Eth1网卡重新启动,自动inactive,需要设置启动active
(2)specify network interface usage这一步不识别网卡,网卡确认启动,重新执行runInstaller即可。
标签:
原文地址:http://www.cnblogs.com/huanhuanang/p/4235254.html