麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
1327
2023-06-13
本文讲述了数据库的灾备,备份容灾数据 一致性问题
数据是企业重要的生产资料,关键数据的丢失可能会给企业致命一击,因为数据是计算机系统存在的原因和基础。数据往往是不可再生的,一旦发生数据丢失,企业就会陷入困境:客户资料、技术文件、财务账目等客户、交易、生产数据可能被破坏得面目全非。
数据丢失分为三个层次:
逻辑错误:包括软件bug、病毒攻击、数据块被破坏等。
物理破坏:包括服务器、磁盘损坏等。
自然灾害:火灾、地震等自然灾害对数据中心的摧毁等。
灾备技术:
在一个数据中心发生故障或者灾难的时候,其实数据中心可以正常运行并且对关键业务或全部业务实现接管,达到互为备份的效果。
灾备是一项综合系统工程,涉及到备份,复制,镜像等多种不同的技术,从微观上来讲,有数据库的备份,大一点,有系统的备份,再大一点,有数据中心的备份,也就是所说的两地三中心。
对于系统备份,一般有冷备份系统和热备份系统两种灾备技术
一.冷备份
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。 冷备份是将关键性文件拷贝到另外的位置的一种说法。 对于备份***信息而言,冷备份是最快和最安全的方法。
冷备份包括两种情况:
一种是除运行系统外,还安装一套与运行系统一样的备份系统,一旦运行系统出现故障,启动备份系统,将备份的业务在备份系统中恢复,用备份系统的应用系统代替原运行系统,保证业务的连续运行。
另一种是在运行系统正在运行时,备份系统也处于运行状态。虽然备份系统的应用系统不运行,但系统软件都在运行,且运行系统会每隔一定时间将业务数据的增量数据备份到备份系统。
冷备份的优点:
是非常快速的备份方法(只需拷贝文件)
容易归档(简单拷贝即可)
容易恢复到某个时间点上(只需将文件再拷贝回去)
能与归档方法相结合,作数据库“最新状态”的恢复。
低度维护,高度安全。
冷备份的缺点:
单独使用时,只能提供到“某一时间点上”的恢复。
在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
不能按表或按用户恢复。
二.热备份
热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。即热备份是系统处于正常运转状态下的备份。所以,如果你有一个冷备份而且又有热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog()方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。
热备份处于联机状态,当前应用系统通过高速通信线路将数据实时传送到备份系统,保持备份系统与当前应用系统数据的同步;也可定时在备份系统上恢复应用系统的数据。一旦发生灾难,不用追补或只需追补很少的孤立数据,备份系统可快速接替生产系统运行,恢复营业。
热备份的优点:
可在表空间或数据文件级备份,备份时间短。
备份时数据库仍可使用。
可达到秒级恢复(恢复到某一时间点上)。
可对几乎所有数据库实体作恢复。
恢复是快速的,在大多数情况下在数据库仍工作时恢复。
热备份的缺点:
不能出错,否则后果严重。
若热备份不成功,所得结果不可用于时间点的恢复。
因难于维护,所以要特别仔细小心,不允许“以失败而告终”
一致性问题一般是指数据前后之间的逻辑关系是否一致(正确和完整)。简单举例来说,比如A用户正在写数据N的时候,B用户开始读数据N,由于A用户刚写了一半,所以B用户读的数据就不是前后逻辑一致性的,这就是一致性问题的一种。
一致性问题在各个领域都存在,提的比较多的是分布式存储的一致性问题,数据库的一致性问题,以及崩溃一致性问题。
我们黑方主要涉及到的可以认为是数据备份中的一致性问题,和上面说到的一致性问题有关联性,又不完全相同。
数据备份中的一致性问题是指备份的文件及数据是否和待备份数据保持一致。主要两个因素导致:
1、由于各种cache的存在,导致实际存储在硬盘上的数据和用户实际看到的并不一致;
2、在备份过程中,数据又可能发生变化,导致前后备份的数据处于不一致状态。
对于备份中的一致性问题,黑方的解决方案按备份方式的不同而有变化:
1、对于定时备份来说:
(1)普通文件定时备份,windows系统,可以采用vss卷影的方式备份来解决一致性问题,VSS服务本身保证了在创建卷snapshot时数据是一致的。
(2)数据库文件备份,可以用数据库提供的备份接口来解决,由这些接口API来负责提供数据一致性保障;
对于没有提供接口API的,就以普通文件形式直接备份,此时是存在崩溃一致性问题的,就是备份过程中数据发生变化,但考虑到数据库自身的健壮性,一般会检查到数据不一致,从而触发回滚到上一个一致性的状态,在实际使用过程中,是可行的(不过理论上不完美)。
(3)OS系统备份,windows下也是用vss卷影的方式;linux用文件打包的方式,文件的粒度相对于整个卷来说比较小,这样可以认为是近似数据一致(理论上不完美,但实际可行)。
2、对于实时备份来说:
黑方的实时备份主要是两方面,文件cdp以及卷cdp。
两者对于一致性的处理基本方法一致,首先做完整备份,备份之前在驱动层做snapshot,然后开始备份,备份过程中如果发生数据更新,依据数据的不同会有两种处理方法:
(1)、文件cdp会将数据更新的部分先备份下来,然后更新到备份集里;
(2)、卷cdp会将数据更新的部分加上脏标志,在备份完毕后重新对脏标志的数据再次进行备份。
总结来说,黑方就是尽可能保证数据一致性,如果实在达不到,就要做到崩溃一致性。
崩溃一致性通常是指突然断电或死机崩溃时的数据所处的一致性状态,理论上任何app都应该能处理突然断电的情况,所以能做到崩溃一致性也可以满足需求。
另外有需要云服务器可以了解下风纳云fengnayun.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
上文就是小编为大家整理的数据库的灾备,备份容灾数据 一致性问题。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。