
搭建RAC比较复杂,需要的硬件资源和系统软件等配置可以在网上搜索。搭建RAC完成后,选择停机迁移时间窗口,停止应用备份数据库,然后导入RAC数据库。
RAC,全称real application clusters,译为“实时应用集群”, 通俗点讲就是数据库集群它是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。
优点Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
(1)多节点负载均衡
(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化
(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统
(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统
(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本
(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。
缺点(1)相对单机,管理更复杂,要求更高
(2)在系统规划设计较差时性能甚至不如单节点
(3)可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)。
在Oracle9i之前,RAC的名称是OPS (Oracle parallel Server)。RAC 与 OPS 之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。使用Cache fusion时,RAC的各个节点的数据缓冲区通过高速、低延迟的内部网络进行数据块的传输。
所有实例和服务的状态
$ srvctl status database d orcl
Instance orcl is running on node linux
Instance orcl is running on node linux
单个实例的状态
$ srvctl status instance d orcl i orcl
Instance orcl is running on node linux
在数据库全局命名服务的状态
$ srvctl status service d orcl s orcltest
Service orcltest is running on instance(s) orcl orcl
特定节点上节点应用程序的状态
$ srvctl status nodeapps n linux
VIP is running on node: linux
GSD is running on node: linux
Listener is running on node: linux
ONS daemon is running on node: linux
ASM 实例的状态
$ srvctl status a *** n linux
ASM instance +ASM is running on node linux
列出配置的所有数据库
$ srvctl config database
orcl
显示 RAC 数据库的配置
$ srvctl config database d orcl
linux orcl /u /app/oracle/product/ /db_
linux orcl /u /app/oracle/product/ /db_
显示指定集群数据库的所有服务
$ srvctl config service d orcl
orcltest PREF: orcl orcl AVAIL:
显示节点应用程序的配置 —(VIP GSD ONS 监听器)
$ srvctl config nodeapps n linux a g s l
VIP exists : /linux vip/ / /eth :eth
GSD exists
ONS daemon exists
Listener exists
显示 ASM 实例的配置
$ srvctl config a *** n linux
+ASM /u /app/oracle/product/ /db_
集群中所有正在运行的实例
SELECT
inst_id
instance_number inst_no
instance_name inst_name
parallel
status
database_status db_status
active_state state
host_name host
FROM gv$instance
ORDER BY inst_id
INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST
orcl YES OPEN ACTIVE NORMAL rac
orcl YES OPEN ACTIVE NORMAL rac
位于磁盘组中的所有数据文件
select name from v$datafile
union
select member from v$logfile
union
select name from v$controlfile
union
select name from v$tempfile
NAME
+FLASH_RECOVERY_AREA/orcl/controlfile/current
+FLASH_RECOVERY_AREA/orcl/onlinelog/group_
+FLASH_RECOVERY_AREA/orcl/onlinelog/group_
+FLASH_RECOVERY_AREA/orcl/onlinelog/group_
+FLASH_RECOVERY_AREA/orcl/onlinelog/group_
+ORCL_DATA /orcl/controlfile/current
+ORCL_DATA /orcl/datafile/example
+ORCL_DATA /orcl/datafile/indx
+ORCL_DATA /orcl/datafile/sysaux
+ORCL_DATA /orcl/datafile/system
+ORCL_DATA /orcl/datafile/undotbs
+ORCL_DATA /orcl/datafile/undotbs
+ORCL_DATA /orcl/datafile/undotbs
+ORCL_DATA /orcl/datafile/undotbs
+ORCL_DATA /orcl/datafile/users
+ORCL_DATA /orcl/datafile/users
+ORCL_DATA /orcl/onlinelog/group_
+ORCL_DATA /orcl/onlinelog/group_
+ORCL_DATA /orcl/onlinelog/group_
+ORCL_DATA /orcl/onlinelog/group_
+ORCL_DATA /orcl/tempfile/temp
rows selected
属于 ORCL_DATA 磁盘组的所有 ASM 磁盘
SELECT path
FROM v$a *** _disk
WHERE group_number IN (select group_number
from v$a *** _diskgroup
where name = ORCL_DATA )
PATH
ORCL:VOL
ORCL:VOL
启动/停止RAC集群
确保是以 oracle UNIX 用户登录的 我们将从rac 节点运行所有命令
# su – oracle
$ hostname
Rac
停止 Oracle RAC g 环境
第一步是停止 Oracle 实例 当此实例(和相关服务)关闭后 关闭 ASM 实例 最后 关闭节点应用程序(虚拟IP GSD TNS 监听器和 ONS)
$ export ORACLE_SID=orcl
$ emctl stop dbconsole
$ srvctl stop instance d orcl i orcl
$ srvctl stop a *** n rac
$ srvctl stop nodeapps –n rac
启动 Oracle RAC g 环境
第一步是启动节点应用程序(虚拟 IP GSD TNS 监听器和 ONS) 当成功启动节点应用程序后 启动 ASM 实例 最后 启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台
$ export ORACLE_SID=orcl
$ srvctl start nodeapps n rac
$ srvctl start a *** n rac
$ srvctl start instance d orcl i orcl
$ emctl start dbconsole
使用 SRVCTL 启动/停止所有实例
启动/停止所有实例及其启用的服务 我只是觉得有意思就把此步骤作为关闭所有实例的一种方法加进来了!
$ srvctl start database d orcl
lishixinzhi/Article/program/Oracle/201311/16967
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)