双机热备的概念
双机热备这一概念包括了广义与狭义两种意义。
从广义上讲,双机热备(双机容错)就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务
双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。但在实际应用中,可能会出现多台服务器的情况,即服务器集群
双机热备一般情况下需要有共享的存储设备。但某些情况下也可以使用两台独立的服务器
实现双机热备,需要通过专业的集群软件或双机软件
从狭义上讲,双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过双机软件的诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
oracle双机热备份方法
一、创建Standby Database 要求
1、 Primary 与standby 数据库所在主机上的Oracle server及*作系统版本必须相同,且具有相同的补丁;
2、 primary 数据库必须为archive mode;Standby Database也必须为archive mode ;
二、创建standby数据库
1、 首先查看Primary Database的归档模式(svrmgr>archive log list)若为无归档模式,将数据库转换为自动归档方式,方法如下:
先关闭Primary Database:
svrmgr>shutdown immediate
再以mount方式启动Primary Database:
svrmgr>connect internal/passWord
svrmgr>startup mount
svrmgr>alter database archivelog
svrmgr>shutdown
2、修改init%oracle_sid%.ora 文件中的参数,加入:
log_archive_start = true # if you want automatic archiving
log_archive_dest=%ORACLE_HOME%\database\archive
log_archive_format = %ORACLE_SID%%S.%T其中log_archive_dest
是指归档日志文件存放的位置,可根据实际情况来设定,如E 盘空间较
大,可以设为:log_archive_dest=e:\oracle\database\archive
3、复制Primary Database 的init%oracle_sid%.ora 和对应的Password 文件 到 Standby Database 上的目录%oracle_home%\database;根据实际情况修改Standby Database上的对应init%oracle_sid%.ora中的参数:
log_archive_dest;
4、在Standby Database位于的主机上创建实例,实例名称同Primary Database,例如:
Oradim80 –new –sid SID_NAME –intpwd oracle –startmode auto – pfile=c:\orant\database\init%oracle_sid%.ora;
5、在Primary Database上为Standby创建Controlfile,将controlfile 拷贝至 Standby Database 的确定位置,*作如下:
svrmgr>alter database create standby controlfile as ;
6、在Primary Database上将联机日志归档,
svrmgr>alter system archive log current;
7、关闭Primary Database,
svrmgr>shutdown immediate
8、从Primary Database上将所有数据文件、日志文件、归档日志文件(不包括控制文件)拷贝至Standby Database的确定位置;
9、以nomount方式启动Standby Database:
svrmgr>startup nomount
svrmgr>alter database mount standby database[execlusive/parallel]
10、同步Standby Database:
svrmgr>recover standby database;
11、恢复Primary Database 启动状态。
三、维护standby数据库
1、 将primary数据库所产生的archive log文件定期传到standby数据库的确定位置;手工的做恢复,使standby数据库与primary数据库保持同步。
svrmgr> set autorecovery on;
svrmgr> connect internal/password;
svrmgr> startup nomount pfile=;
svrmgr> alter database mount standby database;
svrmgr> recover standby database;
svrmgr> shutdown
2、当primary 数据库失败时,将standby 数据库激活:取消(cancel)恢复执行以下*作:
svrmgr> connect internal/password;
svrmgr> startup nomount pfile=;
svrmgr> alter database mount standby database;
svrmgr>alter database activate standby database;
shutdown standby 数据库;
svrmgr>shutdown immediate
重起Standby Database;
svrmgr>startup