比如SQLServer中的备份策略,Mysql中的sqldump、Oracle中的exp或者rman,db2的tsm备份等等。所有这些数据库的备份,按照正常一般企业的现有条件,大都是一天一备为主,备份时间一般都是选在晚上,在没有双机的条件下,这几种主要的数据库如果真发生服务器故障或者数据库不可逆的故障时,在恢复数据时,如何保证数据恢复的完整性? 因为平时我们备份也是把c盘的数据库数据备份到d盘或者其他盘。如果服务器坏了即使备份也没有用。各位仁兄有什么好的备份方法吗? 平时你们单位都是怎么实现数据库备份的?
你说的双机热备如果指数据的话,可以通过基于数据库日志实现读写分离,数据库可以同时读,但写只能写一边,只要其中任何一边出现问题,就可以切换至另一边,以保障数据正常访问。像DB2 HADR,Oracle Dataguard都可以实现数据热备。
回答你第二个问题,数据备份是要实现数据隔离的,起到数据保护作用。而贵方设计的数据备份在同台机器上,是不符合数据备份要求,你需要把你的数据备份至其他机器上,这也就是建设独立的数据备份平台很有必要。我行是建设了独立的集中数据备份平台,对数据进行了隔离,并且备份了数据与日志,而不像贵方只备份了数据,没有备份日志,这样一旦数据出现逻辑错误,只能恢复至备份时间点,如果备份日志,就能避免你说的这些问题,可以恢复任何一个时间点,只是RTO长一点。
针对逻辑错误或者操作失误,除了备份还真的没有什么特别好的办法。CDP也不见得100%保证数据一致性,而且对系统性能和存储空间也由不小影响。
针对软硬件故障导致数据库不可用,有较多办法,最常见的例如双机热备,或者Dataguard、Logshipping、GoldenGate这种整库实时同步。