Professional Documents
Culture Documents
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g
ORACLE.COM OTN 技术网 合作伙伴 Oracle 商店 支持 (Sign In/Register for Account | Subscribe)
选择国家
下载 文档 论坛 文章 示例代码
示例代码 培训 RSS 资源
搜索网站
:Linux
DBA:
产品中心
数据库
中间件
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g
企业管理器
作者:Vincent Chan
应用技术
协作套件
学习如何在 Red Hat Enterprise Linux 3 上将单一实例数据库转换为 Oracle 真正应用程序集群 (RAC) 10g。
。
中文白皮书
更多……
内容
技术中心 概述
BI和数据仓库 第 1 步:准备安装
网格 第 2 步:将数据库移植到 ASM
第 3 步:安装集群就绪服务 (CRS) 软件
Java 开发人员
第 4 步:安装 Oracle RAC 软件
Linux 第 5 步:后续安装
.NET 开发人员 第 6 步:测试透明应用程序故障切换 (TAF)
PHP 开发人员 结论
Web 服务
Windows 本文相关
本文相关下载:
XML
用于 Linux x86 的 Oracle 数据库 10g 企业版和集群件
更多……
Oracle ASMlib 驱动程序
OTN 社区
关于 OTN
对于那些具有有限操作经验的用户而言,实施 Oracle RAC 10g 的前景令人生畏。但事情并不一定如此。
Oracle ACE
TechBlast 时事通讯
本指南将提供明确的步骤,引导您在 RHEL3 上将单一实例 Oracle 10g 数据库转换为 Oracle RAC。我将 Oracle 自动存储管理 (ASM)(一个构建到
Oracle 杂志
Oracle 数据库内核中的集成文件系统和卷管理解决方案)用于 RAC 数据库存储,因为它不但提供了存储可靠性和高性能,还简化了数据库存储管理。
网志和评论
播客
总的说来,有多种方法可以将数据库转换为 RAC。如果数据库比较小,则可以考虑在 ASM 上安装一个新的 RAC 数据库,并将当前数据库中的数据导
用户群 出/导入到 RAC 数据库。对于较大的数据库,首选的方法是使用 RMAN 将数据库文件移植到 ASM。这里所要说明的方法是一个分为两个阶段的方法:
合作伙伴白皮书 首先,将数据移植到 ASM,然后将单一实例数据库转换为 RAC。如果您是对 ASM 不了解,建议您采用此移植方法,先熟悉 ASM,然后再进一步运用
Oracle 10g 图书 ASM 和 RAC。(有关 Oracle ASM 的更多信息,请访问 Oracle ASM 产品中心或参考文档。)
更多……
本指南要求您对 RAC 体系结构有一个基本了解,对 Oracle 数据库和 Red Hat Enterprise Linux 的管理较为熟悉。有关详细信息,请参考文档。
概述
本指南分为以下步骤:
1. 准备安装
2. 将数据库移植到 ASM
3. 安装 Oracle 集群就绪服务 (CRS) 软件
4. 安装 Oracle RAC 软件
5. 后续安装
6. 测试透明应用程序故障切换 (TAF)
除非另行指定,否则应在两
两个节点上执行所有步
行所有步骤。
和 RAC 数据库环境情况介绍:
第 1 步:准 备安装
检验软件程序包版本
检验软件程序包版本。
1a.检验软件程序包版本。
安装所需的程序包。其他信息可以从文档中获得。
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 2 of 14
libgcc-ssa-3.5ssa-0.20030801.48
gcc-3.2.3-42
gcc-g77-3.2.3-42
gcc-java-3.2.3-42
gcc-ssa-3.5ssa-0.20030801.48
gcc-g77-ssa-3.5ssa-0.20030801.48
gcc-objc-ssa-3.5ssa-0.20030801.48
libgcc-3.2.3-42
gcc-c++-3.2.3-42
gcc-objc-3.2.3-42
gcc-java-ssa-3.5ssa-0.20030801.48
compat-gcc-7.3-2.96.128
检验内
检验内核参数。
1b.检验 参数。
检验以下内核参数。其他信息可以从文档中获得。
[oracle@salmon1]$ hostname
salmon1.dbsconsult.com
[oracle@salmon1]$
[oracle@salmon1]$ id
uid=500(oracle) gid=500(dba) groups=500(dba),501(oinstall)
[oracle@salmon1]$
[oracle@salmon1]$ echo $ORACLE_BASE
/u01/app/oracle
编辑 oracle 用户环境文件
1d.编辑 户环境文件。
境文件。
export PATH=$PATH:$HOME/bin
export ORACLE_SID=prod1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
umask 022
配置公共网
配置公共网络和专用网络。
1f.配置公共
[root@salmon1]# redhat-config-network
主机名 IP 地址 类型
salmon1-vip.dbsconsult.com 192.168.0.186 虚拟
salmon2-vip.dbsconsult.com 192.168.0.187 虚拟
验证主机名和配置的网络接口设备。
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 3 of 14
[root@salmon1]# hostname
salmon1.dbsconsult.com
[root@salmon1]# /sbin/ifconfig
使用 SSH 建立用户
1h.使用 建立用户等效性。
等效性。
在集群就绪服务 (CRS) 和 RAC 安装过程中,Oracle Universal Installer (OUI) 必须能够以 oracle 的身份将软件复制到所有 RAC 节点,而不提示输入
口令。在 Oracle 10g 中,可以使用 ssh 代替 rsh 完成此操作。
在每个节点上测试连接。验证当您再次运行以下命令时,系统是否不提示您输入口令。
重新创
重新创建数据库控制文件。
1j.重新 控制文件。
MAXLOGFILES
MAXLOGMEMBERS
MAXDATAFILES
MAXINSTANCES
MAXLOGHISTORY
调整数据库缓冲
1k.调 库缓冲区高速缓
高速缓存。
第 2 步:将数据
将数据库移植到 ASM
ASM 实例与数据库实例之间的同步需要 Oracle 集群同步服务 (CSS) 后台程序。要启动 ASM 实例,必须启动 CSS 后台程序。安装或升级到 Oracle
数据库 10g 时,应该已经为单节点版本配置了 CSS,并且 CSS 应在系统重新启动时自动启动。
下载 ASM RPM.
2a.下
oracleasm-support-2.0.0-1.i386.rpm
oracleasm-2.4.21-27.EL-1.0.4-2.i686.rpm(UP 内核的驱动程序)或 oracleasm-2.4.21-27.ELsmp-1.0.4-1.i686.rpm(SMP 内核的驱动程序)
oracleasmlib-2.0.0-1.i386.rpm
安装 ASM RPM。
2b.安 。
配置 ASM。
2c.配置 。
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 4 of 14
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.
创建 ASM 磁盘。
2d.创
创建 ASM init.ora。
2e.创 。
创建 ASM 口令文件。
2f.创 口令文件
[oracle@salmon1]$ cd $ORACLE_HOME/dbs
[oracle@salmon1]$ orapwd file=orapw+ASM1A password=sys entries=5
创建第一个
2g.创建第一个 ASM 实例。
SQL> startup
ORACLE instance started.
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 5 of 14
创建 ASM 实例 spfile。
2h.创 。
File created.
创建磁盘组
2i.创建磁盘组。
盘组
Diskgroup created.
Diskgroup created.
Diskgroup created.
NAME TOTAL_MB
------------------------- -------------------
DG1 36864
DG2 36864
RECOVERYDEST 73728
3 rows selected.
10 rows selected.
配置闪
配置闪回恢复
2j.配置 回恢复区。
Database altered.
System altered.
System altered.
将数据文件移植到
将数据文件移植到 ASM。
2k.将数
System altered.
System altered.
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 6 of 14
database mounted
released channel:ORA_DISK_1
database opened
RMAN> exit
TABLESPACE FILE_NAME
--------------------- -----------------------------------------
USERS +DG1/prod1/datafile/users.260.1
SYSAUX +DG1/prod1/datafile/sysaux.258.1
UNDOTBS1 +DG1/prod1/datafile/undotbs1.259.1
SYSTEM +DG1/prod1/datafile/system.257.1
2l.将临时表空间移植到 ASM。
Tablespace altered.
FILE_NAME
-------------------------------------
+DG1/prod1/tempfile/temp.264.3
将重做日志移植到 ASM。
2m.将 。
System altered.
System altered.
GROUP# MEMBER
--------------- ----------------------------------
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 7 of 14
1 /u03/oradata/prod1/redo01.log
2 /u03/oradata/prod1/redo02.log
Database altered.
System altered.
Database altered.
Database altered.
Database altered.
Database altered.
System altered.
Database altered.
GROUP# MEMBER
--------------- ----------------------------------------
1 +DG1/prod1/onlinelog/group_1.265.3
1 +DG2/prod1/onlinelog/group_1.257.1
2 +DG1/prod1/onlinelog/group_2.266.3
2 +DG2/prod1/onlinelog/group_2.258.1
从 spfile 文件创
2n.从 文件创建 pfile 文件。
文件。
File created.
添加其他控制文件。
添加其他控制文件
2o.添加其他控制文件
Database altered.
System altered.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
NAME
---------------------------------------
+DG1/cf1.dbf
+DG2/cf2.dbf
第 3 步:安装集群就绪
集群就绪服务 (CRS) 软件
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 8 of 14
CRS 要求共享原始设备或 Oracle 集群文件系统 (OCFS) 上有两个文件,即 Oracle 集群注册表 (OCR) 和 Voting Disk。这些文件必须可以由集群中的
所有节点访问。此处使用原始设备来容纳这两个文件。
文件 原始设备
原始设备 磁盘分区 文件名 大小 (MB)
安装 CRS 软件。
3b.安
1. 欢迎 - 单击“Next”。
2. 指定文件位置:
a. 名称:OraCr10g_home1
b. 路径:/u01/app/oracle/product/10.1.0/crs_1
3. 语言选择 - 英语
4. 集群配置:
a. 集群名称:crs
b. 公共节点名称:salmon1,专用节点名称:sallocal1
c. 公共节点名称:salmon2,专用节点名称:sallocal2
5. 专用互连实施:
a. 接口名称:eth0,子网:192.168.0.0,接口类型:公共
b. 接口名称:eth1,子网:10.10.10.0,接口类型:专用
6. Oracle 集群注册表:
a. 指定 OCR 位置:/u02/oradata/prod1/ocr
7. Voting Disk:
a. 输入 Voting disk 文件名称:/u02/oradata/prod1/vdisk
8. 在第一个节点上以 root 用户的身份在另一个窗口中执行 /u01/app/oracle/oraInventory/orainstRoot.sh 脚本。
9. 在第二个节点上以 root 用户的身份在开一个窗口中执行 /u01/app/oracle/oraInventory/orainstRoot.sh 脚本。
10. 在两个节点上运行 orainstRoot.sh 后单击“Continue”。
11. 摘要 - 单击“Install”
12. 在第一个节点上以 root 用户的身份在另一个窗口中执行 /u01/app/oracle/product/10.1.0/crs_1/root.sh 脚本。在该步骤完成之前,不要运行下一
个步骤。
13. 在第二个节点上以 root 用户的身份在另一个窗口中执行 /u01/app/oracle/product/10.1.0/crs_1/root.sh 脚本。
14. 在两个节点上运行 root.sh 后单击“OK”。
15. 安装结束 - 单击“Exit”。
[oracle@salmon1]$ /u01/app/oracle/product/10.1.0/crs_1/bin/olsnodes -n
salmon1 1
salmon2 2
[oracle@salmon1]$ ps -ef | egrep "css|crs|evm"
export PATH=$PATH:$HOME/bin
export ORACLE_SID=prod1a
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.1.0/crs_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
umask 022
安装 RAC 软件。
4b.安
[oracle@salmon1]$ .~/.bash_profile
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 9 of 14
[oracle@salmon1]$ /mnt/cdrom/runInstaller
1. 欢迎 - 单击“Next”。
2. 指定文件位置:
a. 名称:OraDB10g_home1
b. 路径:/u01/app/oracle/product/10.1.0/db_1
3. 指定硬件安装模式:
a. 选择“Cluster Installation”
b. 单击“Select All”
4. 选择安装模式:
a. 选择“Enterprise Edition”
5. 特定产品必要条件检查:
a. 所有检查均通过后,才可继续下一步。忽略 openmotif-2.1.30-11 警告。
6. 选择数据库配置:
a. 选择“Do not create a starter database”
7. 摘要 - 单击“Install”
8. 在第一个节点上以 root 用户的身份在另一个窗口中执行 /u01/app/oracle/product/10.1.0/db_1/root.sh 脚本。在 VIP 配置完成前,不要在第二个
节点上运行 root.sh。
9. VIPCA 欢迎 - 单击“Next”
10. VIP 配置帮助, 1 of 2:网络接口:
a. 选择“eth0”
11. VIP 配置帮助, 2 of 2:集群节点的虚拟 IP:
a. 节点名称:salmon1
b. IP 假名:salmon1-vip
c. IP 地址: 192.168.0.186
d. 子网掩码: 255.255.255.0
e. 节点名称:salmon2
f. IP 假名:salmon2-vip
g. IP 地址: 192.168.0.187
h. 子网掩码: 255.255.255.0
12. 摘要 - 单击“Finish”
13. 配置助手进度对话框 - 单击“OK”
14. 配置结果 - 单击“Exit”
15. 在第二个节点上以 root 用户的身份在另一个窗口中执行 /u01/app/oracle/product/10.1.0/db_1/root.sh 脚本。
16. 在两个节点上运行 root.sh 后单击“OK”。
17. 安装结束 - 单击“Exit”。
配置 Oracle Listener。
4c.配置 。
[oracle@salmon1]$ netca
1. Oracle 网络配置助手:真正应用集群,配置:
a. 选择“Cluster configuration”
2. Oracle 网络配置助手:TOPSNodes:
a. 单击“Select all nodes”
3. Oracle 网络配置助手:欢迎
a. 选择“Listener configuration”
4. Oracle 网络配置助手:监听程序配置,监听程序:
a. 选择“Add”
5. Oracle 网络配置助手:监听程序配置,监听程序名称:
a. 监听程序名称:LISTENER
6. Oracle 网络配置助手:监听程序配置,择协议
a. 已选协议:TCP
7. Oracle 网络配置助手:监听程序配置,TCP/IP 协议:
a. 选择“Use the standard port number of 1521”
8. Oracle 网络配置助手:监听程序配置,增加监听程序?
a. 选择“No”
9. Oracle 网络配置助手:监听程序配置完成:
a. 单击“Next”
10. Oracle 网络配置助手:欢迎
a. 选择“Naming Methods configuration”
b. 单击“Next”
11. Oracle 网络配置助手:命名方式配置:选择命名方式:
a. 选择“Local Naming”
12. Oracle 网络配置助手:命名方式配置完成:
a. 单击“Next”
13. Oracle 网络配置助手:欢迎
a. 单击“Finish”
验证服
验证服务的状态。
4d.验证
在节点 1 上:
在节点 2 上:
4e. listener.ora 文件
在节点 1 上:
LISTENER_SALMON1 =
(DESCRIPTION_LIST =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL = TCP)(HOST = salmon1-vip)(PORT = 1521))
)
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.184)(PORT = 1521))
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 10 of 14
)
)
)
SID_LIST_LISTENER_SALMON1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
(PROGRAM = extproc)
)
)
在节点 2 上:
LISTENER_SALMON2 =
(DESCRIPTION_LIST =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL = TCP)(HOST = salmon2-vip)(PORT = 1521))
)
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.185)(PORT = 1521))
)
)
)
SID_LIST_LISTENER_SALMON2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
(PROGRAM = extproc)
)
)
4f. tnsnames.ora 文件
在两个节点上:
PROD1 =
(DESCRIPTION=
(ADDRESS = (PROTOCOL = TCP)(HOST = salmon1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = salmon2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA=
(SERVICE_NAME = PROD1)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 200)
(DELAY = 5)
)
)
)
PROD1A =
(DESCRIPTION=
(ADDRESS = (PROTOCOL = TCP)(HOST = salmon1-vip)(PORT = 1521))
(CONNECT_DATA=
(SERVER = DEDICATED)
(SERVICE_NAME = PROD1)
(INSTANCE_NAME = PROD1A)
)
)
PROD1B =
(DESCRIPTION=
(ADDRESS = (PROTOCOL = TCP)(HOST = salmon2-vip)(PORT = 1521))
(CONNECT_DATA=
(SERVER = DEDICATED)
(SERVICE_NAME = PROD1)
(INSTANCE_NAME = PROD1B)
)
)
第 5 步:后 续安装
在第一个
在第一个节点上重新定位 ASM 实例文件。
5a.在第一 例文件。
[oracle@salmon1]$ cp /u01/app/oracle/product/10.1.0/dbs/orapw+ASM1A
/u01/app/oracle/product/10.1.0/db_1/dbs
[oracle@salmon1]$ cp /u01/app/oracle/product/10.1.0/dbs/spfile+ASM1A.ora
/u01/app/oracle/product/10.1.0/db_1/dbs
为第二个
5b.为第二个 ASM 实例创建 init.ora。
。
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 11 of 14
core_dump_dest=/u01/app/oracle/admin/+ASM/cdump
user_dump_dest=/u01/app/oracle/admin/+ASM/udump
instance_type=asm
large_pool_size=16M
remote_login_passwordfile=exclusive
+ASM1A.instance_number=1
+ASM1B.instance_number=2
为第二个
5c.为第二个 ASM 实例创建口令文件。
建口令文件。
创建第二个
5d.创建第二个 ASM 实例。
SQL> startup
ORACLE instance started.
File created.
在节点 1 上:
在节点 2 上:
为两个
为两个 RAC 实例创建口令文件。
5f.为两 建口令文件。
*.cluster_database_instances=2
*.cluster_database=true
*.remote_listener='LISTENERS_PROD1a€?
prod1a.thread=1
prod1a.instance_number=1
prod1a.undo_tablespace='UNDOTBS1'
prod1b.thread=2
prod1b.instance_number=2
prod1b.undo_tablespace='UNDOTBS2'
修改两
修改两个实例的 init.ora。
5h.修改 。
在节点 1 上:
在节点 2 上:
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 12 of 14
将数据
将数据库 spfile 移植到 ASM。
5i.将数 。
File created.
创建 RAC 数据词典视图。
5j.创 视图。
在节点 1 上:
为第二个
5l.为第二个 RAC 实例创建重做日志。
建重做日志。
GROUP# MEMBER
--------------- ----------------------------------------
1 +DG1/prod1/onlinelog/group_1.265.3
1 +DG2/prod1/onlinelog/group_1.257.1
2 +DG1/prod1/onlinelog/group_2.266.3
2 +DG2/prod1/onlinelog/group_2.258.1
3 +DG1/prod1/onlinelog/group_3.268.1
3 +DG2/prod1/onlinelog/group_3.259.1
4 +DG1/prod1/onlinelog/group_4.269.1
4 +DG2/prod1/onlinelog/group_4.260.1
8 rows selected.
Database altered.
为第二个
5m.为第二个 RAC 实例创建重做表空间
建重做表空间。
TABLESPACE FILE_NAME
--------------------- --------------------------------------
UNDOTBS2 +DG1/prod1/datafile/undotbs2.270.1
启动第二
启动第二个
5n.启动第二个 RAC 实例。
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 13 of 14
Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
恭喜您!您已经将单一实例数据库转换为 RAC!
第 6 步:测试透明
测试透明应
透明应用程序故障切换
用程序故障切换 (TAF)
Oracle TAF 中的故障切换机制使任何失败的数据库连接能够重新连接到集群中的其他节点。故障切换对用户是透明的。Oracle 在故障切换实例上重新执
行查询并继续向用户显示余下的结果。
使用 PROD1 服务连接第一
6a.使用 务连接第一个会
接第一个会话
个会话。
从其他会
6b.从其他会话中关闭该实例
关闭该实例。
验证该会
验证该会话是否已经
6c.验证该 是否已经完成故障切换
完成故障切换。
从第 6 步中的同一会话执行以下查询以验证该会话是否故障切换到其他实例。
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24
在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g Page 14 of 14
结论
Printer View
http://www.oracle.com/technology/global/cn/pub/articles/chan_sing2rac_install.html 2008-3-24