您现在的位置: 万盛学电脑网 >> 程序编程 >> 数据库 >> 数据库综合 >> 正文

oracle数据库群集技术:HA高可靠性分析的相关介绍

作者:佚名    责任编辑:admin    更新时间:2022-06-22

本文导航

1、首页2、修改standby数据库初始化参数-23、控制文件的重建-3

这是我们为大家提供的一篇关于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>