三、数据库软件安装
确认数据库软件安装目录与CRS安装目录不同.
数据库安装条件检查
选择仅安装软件,完成后再利用DBCA配置各节点的ASM实例和创建共享数据库.
指定操作系统组权限:
数据库管理员组: dba
数据库操作员组: oinstall
ASM管理员组: oinstall
安装完成, 需要在集群每个节点以root用户运行如下脚本:
/u01/app/oracle/product/11.1.0/db_1/root.sh
运行完脚本点击OK完成数据库软件安装.
节点rac01运行脚本输出:
[root@rac01 db_1]# ./root.sh
Running Oracle 11g root.sh script…
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.1.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin …
Copying oraenv to /usr/local/bin …
Copying coraenv to /usr/local/bin …
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
四、利用NETCA配置TNS监听器进程
[oracle@rac01 bin] netca &
五、利用DBCA创建RAC数据库
[oracle@rac01 bin] dbca &
Step 2: 选择所有节点
Step 3: 选择数据库类型: 数据仓库,一般用途或事务处理, 定制
Step 4: 指定集群数据库名称和SID前缀
Step 5: 配置RAC是否使用EM或Grid控制
Step 6: 指定数据库用户密码:SYS, SYSTEM, DBSNMP和SYSMAN
Step 7: 指定数据库使用存储,这里选择ASM
Step 8: 指定ASM实例参数, 创建ASM实例和磁盘组(若未创建TNS监听器, 会提示自动创建).
Step 9: 指定数据库文件位置(Step 8中创建的磁盘组DATA1)
Step 10: 数据库恢复选项配置(Step 8中创建的磁盘组RECOV1)
Step 11: 数据库内容选项
Step 12: 初始化参数设定
Step 13: 安全性设置(默认)
Step 14: 自动维护任务设置(默认)
Step 15: 数据库存储配置

客户端tnsnames.ora:
wind =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vrac01)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = vrac02)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wind)
(FAILOVER_MODE =
(TYPE = select)
(METHOD = basic)
(RETRIES = 180)
(DELAY = 5)
)
)
)
LOAD_BALANCE = yes表示负载平衡, 客户端请求连接时, 将在上面两个地址中随机选择一个
TYPE: FAILOVER类型.
SESSION: 表示当一个连接好的会话的实例发生故障,系统会自动将会话切换到其他可用的实例,前台应用无须再度发起连接,但会话正在执行的SQL需要重新执行.
SELECT: 表示在会话实例发生故障时保存SELECT语句的状态.
NONE: 默认为NONE, 禁用FAILOVER功能.
METHOD = BASIC表示初始连接一个节点, 另一个选项是PRECONNECT表示初始连接所有节点.
四、检查RAC状态
$srvctl config database -d wind
rac01 wind1 /u01/app/oracle/product/11.1.0/db_1
rac02 wind2 /u01/app/oracle/product/11.1.0/db_1
$srvctl status database -d wind
Instance wind1 is running on node rac01
Instance wind2 is running on node rac02
SQL> select * from v$active_instances;
INST_NUMBER INST_NAME
———– —————————————-
1 rac01:wind1
2 rac02:wind2