这是我们为大家提供的一篇关于oracle数据库群集技术:HA高可靠性分析的相关介绍的文章,接下来就让我们一起来了解一下吧!
不论是小公司,还是拥有全球用户的大公司,后台数据库24小时可用,是至关重要的。Oracle 提供了两种高可靠性的解决方案
n Data Guard(又被称作Standby)
n RAC(Real Application Cluster)
一、RAC (Real Application Clusters)
RAC是多个单CPU机或SMP 或MPP的集群(cluster),cluster里面的服务器使用一个或多个oracle instances 与一个database联接.
SMP是指对称多处理器。大多数小型机都采用这种结构。MPP是另外一种计算机系统机构,大量信息并行处理机。
主要特点
1)database所有的data files/controfile/redo log都建立raw devices上。知道数据库在raw devices上(原是设备),可以绕过操作系统一级,直接读写磁盘,能够提供磁盘的I/O能力,提高效率,尤其是有大量I/O的时候。
2)在database方面,每个instance都有自己单独的on-line redo log file groups,因此backup和recovery是要作特殊处理。 而且在配置上比较复杂。
3)存储方面没有redundancy,因此media failure上还是需要RAID的支持。但集群都是共享一个磁盘阵列(磁盘柜),而这个磁盘阵列是厂商采用相关技术,具有高可靠性。
4)为了高可靠性和高速度,共享磁盘和计算机节点之间要求使用光线连接,而不是使用一般的局域网的网线。磁盘阵列使用光纤通道磁盘阵列。
Standby数据库
Standyby数据库克隆生产数据库,这两个数据库可以存放在不同的地域,当Production Database出现致命的不可恢复的状况时,可以短时间内起动Standy数据库,全面替代生产数据库.
RAC语Standy比较
1)数据库备份:Standby复制原始数据库,因此原始数据库有备份,而RAC只有一个数据库
2)服务器数量: RAC至少双机支持如容错、新的安全级别、负载均衡。在特大数据库和很多的用户访问的系统中,还可以增加计算机,使多个实例同时访问数据库。Standby运行时只有Primary Database提供服务。不能提供容错,、负载均衡等高级功能。
3)当机时间:RAC只要有一台服务器运行就不会当机,而Standyby数据库切换需要一定的时间
4)费用:Standby不需要数据库之外的许可证费用,而RAC的技术和实施相对复杂,花费更大。
5从硬件角度,RAC是比较高端的HA,所以一般都是选用专门厂商的Cluster, 如HP, SUN, AIX.使用相关的小型机系统。这种构建的系统非常稳定,也很安全。
二、 Standby 分析
此示例是在windows下说明的。 如果在Unix上只须作很小的相应的改动(如需要改动,文中作出相应标识)
A,standby的配置
在配置前,最好先重建控制文件,修改参数maxlogfiles为10。(默认为5)当然,这一步不是必要的,只有在你需要改变standby数据库的保护模式时才用到。这里是在最高性能模式(Max Performance Mode)。重建控制文件的具体方法可参照文章后的附录。
1,在主数据库启用归档
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 D:\oracle\ora92\RDBMS (在unix下,是路径可能为/。。。/。。。/RDBMS,这个路径是需要制定的。)
最早的概要日志序列 22
当前日志序列 24
下面几步是把Primary 数据库改为归档日志的运行方式,如果数据库已经是在归档日志下运行,则跳过这几步。
SQL> alter system set log_archive_dest_1='location=d:\oracle\arch'; (UNIX, 须改)
系统已更改。
SQL> alter system set log_archive_start=true scope=spfile;
系统已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 101784276 bytes
Fixed Size 453332 bytes
Variable Size 75497472 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 d:\oracle\arch
最早的概要日志序列 22
下一个存档日志序列 24
当前日志序列 24
2,在standby数据库创建相应的目录结构
D:\oracle\admin\my_standby\bdump
D:\oracle\admin\my_standby\cdump
D:\oracle\admin\my_standby\udump
D:\oracle\admin\my_standby\pfile
D:\arch
D:\oracle\oradata\my_standby
3,设置primary强制logging
SQL> alter database force logging;
数据库已更改。
4,关闭数据库,拷贝所有数据文件及在线重做日志到standby数据库的对应位置
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
5,创建standby控制文件并拷贝到standby数据库,并更改成和primary数据库一样的名称。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 101784276 bytes
Fixed Size 453332 bytes
Variable Size 75497472 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> alter database create standby controlfile as 'd:\oracle\oradata\my_standby\standb
y.ctl';
数据库已更改。
SQL>
6,生成初始化文件并拷贝到standby数据库
SQL> create pfile='d:\oracle\admin\my_standby\pfile\standby.ora' from spfile;
文件已创建。
SQL>