有两台数据库服务器, 一台是作为主服务器,一台是备用服务器, 它们处于同一局域网上。(其实在同一hub上)需要将两台服务器的数据保持一致,使主服务器万一出问题时,备用服务器可以马上替代主服务器运行。
备用服务器的数据可以与主服务器有不超过1个小时的延迟。目前打算主服务器每隔半个小时生成一个offline redo log文件,然后把文件传到备份器去, 让备份服务器根据它来获得主服务器的最新数据。 不知道这样的方案是否合理? 在我试图用alter system switch logfile;来生成新的log文件时,总是等了半天没有反应,这是怎么回事?有时shutdown也是半天没反应, 而有时很快就ok了。
双机实时同步我了解还有用快照(snapshot)和复制(replication)来实现的,这两者的具体实现步骤应该怎么做?数据库拥有几十个用户和一百多个表用这两者实现不会太麻烦吧? 请各位大虾出手相助。谢谢
Re: 第一种方案我觉得不行,因为利用另外一台机器上的log来保持本机和其数据一致,好像非常困难,第二种方式,如果有100个表,好像需要每个表都要设置,因为复制和快照都是基于表的,所以,很麻烦。一般的方式是双机共用磁盘整列,但是需要添加硬件设备。
Re: 利用并行服务器和高级复制进行热备份和切换是高级的方法可以提供近乎透明的失败切换但成本和复杂程度也比较高从Oracle7.3开始就提供了热备用数据库一般情况下可以在三十分钟内对用户可用备份数据库建立在备用节点上处于永久恢复方式8i中允许主数据库实例将REDO LOG直接在备份节点上写入一个COPY
Oracle DBA Tips& Techniques这本书里有比较详细的配置和管理过程
【 在 Greenday (大头阿刁) 的大作中提到: 】
使用ops (oracle parallel server),为附加功能, 需要另外购买.
Re:【 在 mryan (davis) 的大作中提到: 】
第一种方案我觉得不行,因为利用另外一台机器上的log来保持本机和其数据一致,好像非常困难,第二种方式,如果有100个表,好像需要每个表都要设置, 因为复制和快照都是基于表的,所以,很麻烦。 一般的方式是双机共用磁盘整列,但是需要添加硬件设备。我这里这套系统本来就是共用磁盘阵列柜的,但是阵列柜出现故障, 导致无法正常运作,这种情况下双机热备完全没有意义了。目前是使用故障前的备份数据在主服务器运行的,已经停止使用出现故障的磁盘阵列柜。为了提高安全性,打算在备用服务器上作主服务器的数据镜象,数据可以有一个小时以内的延迟。(btw: 他们用的操作系统是NT4,oracle版本还是7.3,没有高级复制的向导程序。)我曾经尝试使用操作系统的定时运行功能来实现
每半小时进行增量导出/导入来实现数据同步,结果发现数据库中被修改的表极多,由于增量导出是某个表一行数据修改就导出整个表,结果每次增量导出的数据几乎是整个数据库的80%(400多M),导入一次的速度也很慢(两小时左右),所以这个方案不可行。现在想用生成offline log再传输的方式,但是对于如何定时生成log没有成功实现,谁成功生成过的请指点一下。对于复制功能,我查阅了一些文档发现其实现相当麻烦,
特别是对于我这里这种已经建立了很多表空间,有大量的表的情况几乎无法用手动完成。如果哪位大虾对已有的大量表的情况使用复制成功,也请指点一下具体实现方法。