edwardai这篇开始说Oracle10g rac安装,过程比较多,也比较复杂,准备分几个部分来说,参考了网上一些人写的资料进行综合以及结合自己的实际出现的问题总结
一、oracle rac的简介
二、针对oracle来配置rhel5
三、从win下oracle数据迁移到rhel5下oracle
四、用户等效性设置SSH
五、ASM配置共享磁盘
oracle rac的简介
oracle10g RAC结构
下图显示了 Oracle RAC 10g 配置的主要组件。 集群中的节点通常是单独的服务器(主机), 本文中,两个节点即是两台s4800服务器。根据集群规模的大小,可以扩展到更多节点。(缺图了,会补上)
硬件
在硬件级别上,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 实例必须运行在每个集群节点上。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\@.@/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
第二部分 针对oracle配置rhel5
RHEL5 上 安装 Oracle 10.2.0.1
这两天在Red Hat Enterprise Linux 5 (RHEL5)上安装了Oracle 10g(10.2.0.1)
下载
可以从Oracle的主页上下载:
Oracle Database 10g Release 2 (10.2.0.1) Software
解压文件
解压下载好的文件:
unzip 10201_database_linux32.zip
你可以把他解压到一个目录中,例如 "db/Disk1" 或者 "database".
以root的身份完成下面的工作:
修改内核参数
增加下面的内容到文件 /etc/sysctl.conf 中:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
运行下面的命令使得内核参数生效:
/sbin/sysctl -p
增加下面的内容到文件 /etc/security/limits.conf 文件中:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
增加下面的内容到文件 /etc/pam.d/login 中:
session required /lib/security/pam_limits.so
因为SELINUX对oracle有影响,所以把secure linux设成无效,编辑文件 /etc/selinux/config :
SELINUX=disabled
当然你也可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙). 选择SELinux页面并且设为无效.
安装
这里有几种办法
方法一 光盘安装,下面是cd盘
安装下面的包:
# 从RedHat AS5 光盘1
cd /media/cdrom/Server
rpm -Uvh setarch-2*
rpm -Uvh make-3*
rpm -Uvh glibc-2*
rpm -Uvh libaio-0*
cd /
eject
# 从RedHat AS5 光盘2
cd /media/cdrom/Server
rpm -Uvh compat-libstdc++-33-3*
rpm -Uvh compat-gcc-34-3*
rpm -Uvh compat-gcc-34-c++-3*
rpm -Uvh gcc-4*
rpm -Uvh libXp-1*
cd /
eject
# 从RedHat AS5 光盘3
cd /media/cdrom/Server
rpm -Uvh openmotif-2*
rpm -Uvh compat-db-4*
cd /
eject
方法2:安装rhel5时候,将需要配置的包全部选中,最好是这样,这样为后面的安装节省很多时间
新增组和用户:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
创建Oracle的安装目录,并把权限付给oracle用户:
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /u01
因为oracle 的官方只支持到RHEL4为止,所以要修改版本说明,编辑文件 /etc/redhat-release 把Red Hat Enterprise Linux Server release 5 (Tikanga) 改成版本4,当然oracle安装完成后,要修改回来:
登录到oracle 用户并且配置环境变量(增加下面的内容到文件 .bash_profile
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$PATH:$ORACLE_HOME/bin; export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JREORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
修改/etc/hosts.conf
添加具体的ip地址,注意最好去掉那些无用的,格式就是
ip地址 主机名 localhost
特殊处理,如果没有下面这些步骤,oracle在安装时,可能出现问题
#vi /etc/inittab
把 id:5:initdefault: 修改为 id:3:initdefault 等oracle安装完成后,可以修改回来
#reboot(重启)
在文本模式下 用root登录
# startx
# xhost +
# su - oracle
$ export LANG=en_US
$ cd /tmp/10201_database_linux32/databases
$ ./runInstaller
(这里我是修改了i18n文件改成en_US.UTF-8,如果不改安装时候会出现乱码,这个可能和oracle安装自带的java的字符集缺少有关系。)
安装时要注意:在安装到最后处理sqlplus时,系统会要求切换用户root上,执行两相script.
备注:
1。为了让其他计算机能够访问,必须把下面端口打开,端口1521(用于连接数据库),端口1158(如果要用浏览器访问enterprise managment),端口5560(如果要用浏览器访问isqlplus)。你可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙). 选择防火墙页面,并且增加上面的端口。
2。如果想开机时自动启动oracle的话,还需另外配置自动启动的脚本。
启动oracle
su oracle
cd /u01/app/oracle/product/10.2.0/db_1/bin
1.调用./lsnrctl service(可以查看当前监听器服务情况)
2.调用./lsnrctl start(启动监听器),如想停用则lsnrctl stop
判断监听器服务是否好用,可以使用./tnsping ip地址.如果不能正常结束,则说明监听有问题.
3.调用./sqlplus "/as sysdba"
4.start 开启数据库.
自动启动oracle
1.修改了/etc/oratab 将N改为Y
2.在su - oracle 主目录下 编辑 vi .bash_profile
修改oracle_home
oracle_sid
3.修改/etc/rc.local
su - oracle -c 'lsnrctl start'
su - oracle -c 'dbstart'
修改ORACLE_HOME/bin下面的dbstart 修改oratab=/etc/oratab
/etc下面没有oratab文件的话
注意:
最好在安装oracle时不要创建数据库,只安装oracle基本系统。系统安装好后用$ORACLE_HOME/bin/dbca,命令创建数据库,创建数据库时我们可以选择针对数据库的各种参数如“字符集”等。
以上部分需要根据自己的不同环境进行更改设置,如有问题,欢迎大家抛砖
一、oracle rac的简介
二、针对oracle来配置rhel5
三、从win下oracle数据迁移到rhel5下oracle
四、用户等效性设置SSH
五、ASM配置共享磁盘
oracle rac的简介
oracle10g RAC结构
下图显示了 Oracle RAC 10g 配置的主要组件。 集群中的节点通常是单独的服务器(主机), 本文中,两个节点即是两台s4800服务器。根据集群规模的大小,可以扩展到更多节点。(缺图了,会补上)
硬件
在硬件级别上,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 实例必须运行在每个集群节点上。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\@.@/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
第二部分 针对oracle配置rhel5
RHEL5 上 安装 Oracle 10.2.0.1
这两天在Red Hat Enterprise Linux 5 (RHEL5)上安装了Oracle 10g(10.2.0.1)
下载
可以从Oracle的主页上下载:
Oracle Database 10g Release 2 (10.2.0.1) Software
解压文件
解压下载好的文件:
unzip 10201_database_linux32.zip
你可以把他解压到一个目录中,例如 "db/Disk1" 或者 "database".
以root的身份完成下面的工作:
修改内核参数
增加下面的内容到文件 /etc/sysctl.conf 中:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
运行下面的命令使得内核参数生效:
/sbin/sysctl -p
增加下面的内容到文件 /etc/security/limits.conf 文件中:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
增加下面的内容到文件 /etc/pam.d/login 中:
session required /lib/security/pam_limits.so
因为SELINUX对oracle有影响,所以把secure linux设成无效,编辑文件 /etc/selinux/config :
SELINUX=disabled
当然你也可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙). 选择SELinux页面并且设为无效.
安装
这里有几种办法
方法一 光盘安装,下面是cd盘
安装下面的包:
# 从RedHat AS5 光盘1
cd /media/cdrom/Server
rpm -Uvh setarch-2*
rpm -Uvh make-3*
rpm -Uvh glibc-2*
rpm -Uvh libaio-0*
cd /
eject
# 从RedHat AS5 光盘2
cd /media/cdrom/Server
rpm -Uvh compat-libstdc++-33-3*
rpm -Uvh compat-gcc-34-3*
rpm -Uvh compat-gcc-34-c++-3*
rpm -Uvh gcc-4*
rpm -Uvh libXp-1*
cd /
eject
# 从RedHat AS5 光盘3
cd /media/cdrom/Server
rpm -Uvh openmotif-2*
rpm -Uvh compat-db-4*
cd /
eject
方法2:安装rhel5时候,将需要配置的包全部选中,最好是这样,这样为后面的安装节省很多时间
新增组和用户:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
创建Oracle的安装目录,并把权限付给oracle用户:
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /u01
因为oracle 的官方只支持到RHEL4为止,所以要修改版本说明,编辑文件 /etc/redhat-release 把Red Hat Enterprise Linux Server release 5 (Tikanga) 改成版本4,当然oracle安装完成后,要修改回来:
登录到oracle 用户并且配置环境变量(增加下面的内容到文件 .bash_profile
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$PATH:$ORACLE_HOME/bin; export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JREORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
修改/etc/hosts.conf
添加具体的ip地址,注意最好去掉那些无用的,格式就是
ip地址 主机名 localhost
特殊处理,如果没有下面这些步骤,oracle在安装时,可能出现问题
#vi /etc/inittab
把 id:5:initdefault: 修改为 id:3:initdefault 等oracle安装完成后,可以修改回来
#reboot(重启)
在文本模式下 用root登录
# startx
# xhost +
# su - oracle
$ export LANG=en_US
$ cd /tmp/10201_database_linux32/databases
$ ./runInstaller
(这里我是修改了i18n文件改成en_US.UTF-8,如果不改安装时候会出现乱码,这个可能和oracle安装自带的java的字符集缺少有关系。)
安装时要注意:在安装到最后处理sqlplus时,系统会要求切换用户root上,执行两相script.
备注:
1。为了让其他计算机能够访问,必须把下面端口打开,端口1521(用于连接数据库),端口1158(如果要用浏览器访问enterprise managment),端口5560(如果要用浏览器访问isqlplus)。你可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙). 选择防火墙页面,并且增加上面的端口。
2。如果想开机时自动启动oracle的话,还需另外配置自动启动的脚本。
启动oracle
su oracle
cd /u01/app/oracle/product/10.2.0/db_1/bin
1.调用./lsnrctl service(可以查看当前监听器服务情况)
2.调用./lsnrctl start(启动监听器),如想停用则lsnrctl stop
判断监听器服务是否好用,可以使用./tnsping ip地址.如果不能正常结束,则说明监听有问题.
3.调用./sqlplus "/as sysdba"
4.start 开启数据库.
自动启动oracle
1.修改了/etc/oratab 将N改为Y
2.在su - oracle 主目录下 编辑 vi .bash_profile
修改oracle_home
oracle_sid
3.修改/etc/rc.local
su - oracle -c 'lsnrctl start'
su - oracle -c 'dbstart'
修改ORACLE_HOME/bin下面的dbstart 修改oratab=/etc/oratab
/etc下面没有oratab文件的话
注意:
最好在安装oracle时不要创建数据库,只安装oracle基本系统。系统安装好后用$ORACLE_HOME/bin/dbca,命令创建数据库,创建数据库时我们可以选择针对数据库的各种参数如“字符集”等。
以上部分需要根据自己的不同环境进行更改设置,如有问题,欢迎大家抛砖