关于多数据源的问题

你好,我现在有这样的需求:

1、每年年底要备份数据库。

2、日常应用中会切换要查询的库。


请问:

1、当我备份了新库后,应该怎样动态建立对应的数据源?

2、有没有办法切换一次数据源后,所有的操作都是在数据源指定的库下操作,而不需要每次用Db.use("xxx").XXX();

评论区

JFinal

2016-06-28 12:17

1:备份的数据库一般不用来在项目中使用,只作为在生产环境数据库出现问题后减少损失。所以一般不存在备份以后,再让项目切换到备份的库上去的问题。如果一定要这么做,可以在后台管理中做个 action,先调用 druidPlugin.stop()方法,然后将数据源配置指向新库,然后再调用 druidPlugin.start() 方法,这个过程建立先用一个拦截器暂停对外界的服务,也就是所谓的数据切割,防止在切割的瞬间老库中会被写入新数据
2:只要切换到的库是 mainConfig,那么就不需要用 Db.use(...) 指定了, mainConfig 的 name 值为 "main",这个在 ActiveRecordPlugin 中有常量值可以直接使用

JFinal

2016-06-28 12:19

通常来说,备份数据库的事情用 cron 调度一个进程在固定的时间进行就好,备份的数据通常不会被使用,只用来防止意外。而如果特殊情况下有切换库的需求,通常是在半夜停止服务,切割数据,人工处理

alexqun

2016-06-28 14:10

@JFinal 谢谢解惑

热门反馈

扫码入社