Oracle 10g RAC 教程
第一部分 Oracle10g RAC数据库简介
在硬件级别上,RAC 集中的各节点共享三种功能:
1.对共享磁盘存储的访问
2.与专用网络的连接
3.对公共网络的访问。
共享磁盘存储
Oracle RAC 依赖于一个共享磁盘体系结构。数据库文件、联机重做日志和数据库的控制文件必须都能为集中的每个节点所访问。共享磁盘还存储 Oracle Cluster Registry 和 Voting Disk(稍后讨论)。配置共享存储有多种方法,包括直接连接磁盘(通常是使用铜缆或光纤的 SCSI)、存储区域网 (SAN) 和网络连接存储 (NAS)。
专用网络
每个集节点通过专用高速网络连接到所有其他节点,这种专用高速网络也称为集互联或高速互联 (HSI)。 Oracle 的 Cache Fusion 技术使用这种网络将每个主机的物理内存 (RAM) 有效地组合成一个高速缓存。 Oracle Cache Fusion 通过在专用网络上传输某个 Oracle 实例高速缓存中存储的数据允许其他任何实例访问这些数据。它还通过在集节点中传输锁定和其他同步信息保持数据完整性和高速缓存一致性。
专用网络通常是用千兆以太网构建的,但是对于高容量的环境,很多厂商提供了专门为 Oracle RAC 设计的低延迟、高带宽的专有解决方案。 Linux 还提供一种将多个物理 NIC 绑定为一个虚拟 NIC 的方法(此处不涉及)来增加带宽和提高可用性。
公共网络
为维持高可用性,为每个集节点分配了一个虚拟 IP 地址 (VIP)。如果主机发生故障,则可以将故障节点的 IP 地址重新分配给一个可用节点,从而允许应用程序通过相同的 IP 地址继续访问数据库。
Oracle 集就绪服务(CRS)
Oracle RAC 10g 引进了 Oracle 集就绪服务 (CRS) —一组用于集环境的与平台无关的系统服务。在 RAC 和 Oracle 并行服务器先前版本中,Oracle 依靠厂商提供的集管理软件来提供这些服务。虽
然 CRS 与厂商供应的集件协同工作,但 Oracle RAC 10g 所需组件只是 CRS。实际上,必须在安装 RAC 之前安装 CRS。
Oracle RAC 软件
Oracle RAC 10g 软件是 RAC 数据库的核心,每个集节点上都必须安装。幸运的是,Oracle Universal Installer (OUI) 可以完成在每个节点上安装 RAC 软件的大部分工作。
您只需在一个节点上安装 RAC — OUI 会完成其余的工作。
Oracle 自动存储管理 (ASM)
ASM 是 Oracle 数据库 10g 中的一个新特性,它以一种与平台无关的方式提供文件系统服务、逻辑容量管理器和软件 RAID。Oracle ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除“热点”。它还支持直接和异步的 I/O,并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口)。
Oracle ASM 不是通用的文件系统,只能用于 Oracle 数据文件、重做日志、控制文件和 RMAN 快速恢复区。ASM 中的文件既可以由数据库自动创建和命名(使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名。由于操作系统无法访问 ASM 中存储的文件,因此对使用 ASM 文件的数据库执行备
份和恢复操作的唯一途径就是使用恢复管理器(RMAN)。
ASM 作为单独的 Oracle 实例实施,只有它在运行时其他数据库才能访问它。ASM 需要的内存不多:对大部分系统来说只需 64MB。在 Oracle RAC 环境中,ASM 实例必须运行在每个集节点上。
第二部分安装Redhat AS 4.7
本文档实例安装在联想R630G7服务器上,双网卡、每个节点通过光纤交换机连接FC
盘阵。安装过程中最好把连接节点和盘阵的光纤拔下;或者如果不拔下光纤,安装过程中分区时只选择本机硬盘,不要选择盘阵。
假设服务器全新安装redhat,并且服务器为oracle专用。
1.最小化安装系统
设定主机名分别为core01,core02
oracle登录命令不启动防火墙及sElinux
2.设定本地yum库及安装oracle必要软件
#yum install binutils compat-db control-center compat-libstdc++* gnome-libs elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel libXp make openmotif sysstat unixODBC unixODBC-devel ttfonts-zh_CN
3.设定多路径访问硬盘
# vi /f
defaults {
user_friendly_names yes
}
devnode_blacklist {
devnode "sda$"
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^cciss!c[0-9]d[0-9]*"
}
devices {
device {
vendor                  "NETAPP"
product                "LUN"
path_grouping_policy    group_by_prio
path_grouping_policy    failover
getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
prio_callout            "/sbin/mpath_prio_netapp /dev/%n"
hardware_handler        "0"
path_checker            readsector0
features                "1 queue_if_no_path"
path_checker            directio
rr_weight              uniform
rr_min_io              128
failback                immediate
}
}
# modprobe dm-multipath
# modprobe dm-round-robin
# chkconfig multipathd on
# multipath -v2
# service multipathd start
# dmsetup ls --target multipath
第三部分针对Oracle配置redhat
Linux 软件现已安装完毕,现在需要针对 Oracle 对其进行配置。
3.1 验证系统要求
要验证系统是否满足 Oracle 10g 数据库的最低要求,以 root 用户身份登录并运行以下命令。
要查看可用 RAM 和交换空间大小,运行以下命令:
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
例如:
# grep MemTotal /proc/meminfo
MemTotal:512236 kB
# grep SwapTotal /proc/meminfo
SwapTotal:1574360 kB
所需最小 RAM 为 512MB,而所需最小交换空间为 1GB。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。
Oracle 10g 软件还需要 2.5GB 的可用磁盘空间,而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。
3.2 内核参数
1.内核参数
在/f中编辑:
kernel.shmall = 6442450944
kernel.shmmax = 25769803776
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
然后用执行/sbin/sysctl -p
2.hangcheck-timer设置
RAC节点间通过CSS来判断通信状态,因此需要设定定时器来触发判断。该定时器就是linux内核自带的hangcheck-timer。
具体操作:
在/etc/rc.local中加入(数值以具体情况而定,以下是默认值)
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
表示,每隔30秒检查一下节点状态,如果180秒内仍没有反应,则重启该节点。这也就是说,检查的间隔最长为30+180秒,如果超过这个时间,则系统重启。
Tip:如果系统尚不稳定,可将数值设置的大一些,这样可以有充分的时间来修复系统,否则系统会进入循环重启状态。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。