说明1.扫码1库在rac集群2.扫码2库不在rac集群3.所有读库,都不在rac集群4.每个库,都有读库,作用是读写分离,降低写库的压力和提高写库的速度
rac集群优点1.包含多个ip作用?一个挂了,自动切换为另外一个。
2.包含多个数据库-用户名即包含了很多库。
缺点由于包含了太多的库,导致某个库有问题,会影响其他库的速度。
所以,一开始是把不同的库,都放在rac集群,但是不同库会互相影响速度——后面又把扫码2库迁移出来了。
扫码1库,暂时还没有迁移出来。
同步技术OAG和OGG的区别?最大的区别是,同步数据的时候,延迟时间的区别,一个是毫秒级别的延迟(OAG),一个是秒级别的延迟(OGG)。
所以,最佳实践是,主备的时候,都是用毫秒级别技术进行同步。
有优点就有缺点,秒级别的延迟技术功能更丰富,更灵活。应用场景?迁移数据库的时候,就会停机(停旧数据库-主库的写)分钟级别,然后用秒级别同步技术去同步数据到新的数据库。之前迁移的时候,都是这么玩的。而人工exp/imp技术,只是备用技术,并没有实际使用。
应用场景1.主备同步都是用毫秒级别技术同步。2.迁移库的时候,都是用秒级别技术同步;
汇总多个交易库的数据到汇总库,也是用的秒级别同步技术。
迁移数据库为什么要迁移数据库?1.数据库硬件快要除故障了,已经预警了,需要换一个新的性能好的机器。
2.从rac集群把某个库迁移出来,因为rac集群里的数据库-用户名太多了,会互相影响速度。
架构图image.png同步技术主库到读库,用OAG。
主库-旧到主库-新,用OGG。
迁移步骤1.停机(停旧数据库-主库的写)这个时候,项目还是在运行,但是如果有新的交易,那么在分钟级别的交易是会失败的——因为不能写数据了。所以都是凌晨23点开始做工程。由于主库没有新增数据,备库也不会新增数据。
2.然后启动项目的节点连到新数据库-主库新数据库-主库新增了数据,用秒级别同步技术自动同步到备库。新库的主从节点的同步,一开始提前就准备好了。
主挂了怎么办?从能自动晋升为主吗?不能,项目里配置的数据库url(域名)都不一样。
所以,如果主挂了,都是人工切换从为主——主要是dba去操作,dba切换从为主。怎么切换?dba映射主域名到从节点。(注:或者开发修改项目里的主库url为备库url,并且重启——这种情况,需要所有项目都要修改并且重启,恢复时间小时级别,所以根本不可能使用,除非万不得已。所以,生产环境,如果是主节点挂了这种故障,一定是dba去人工切换备库为主库,并且人工解析主库域名到从库节点数据库——这样的话,是dba层面统一操作,而且是一次性操作,速度快,恢复时间是分钟级别。)
为什么要修改数据库url的格式?1.以前主库挂了,只能等待dba恢复主库。为什么不切换到备库?因为要修改项目里的数据库url为备库,然后再启动项目,而且所有项目都要重复这个步骤,没有小时级别不可能恢复正常。
2.现在,改了url的格式之后,dba就可以把域名解析映射到备库去,并且打开备库的写(正常情况下,禁止写,只能读)。应用不需要修改数据库url,也不需要重启。
备库平时禁止写,只能读。
如果主节点挂了,dba会放开写的权限。
备库和主库的关系?
备库和主库没有任何关系,唯一的关系,就是同步数据的关系,汇总库也是和扫码01/02库只有同步关系,迁移新库的时候也是只有同步关系。所以,如果主库挂了,从库是不可能自动切换为主节点的——第一,因为没有那个技术;第二,没有第三方进行仲裁——所以从节点不知道是网络原因还是主节点真的挂了。
金融行业普遍做法是
第三点是数据库主库备库的一致性。凡是做过金融系统服务的人都知道,银行数据库主库出问题了怎么办?那就是恢复主库。如果恢复不起来,就要赶紧做人工对账,然后才用备库把服务继续进行下去。青乡