我正在管理一个相当大的数据库,该数据库的复杂性和设计都来自单个应用程序数据库。现在有一个计划添加第五个应用程序,它带有自己的架构和特定数据。我一直在研究SSO解决方案,但这并不是我所追求的。我的目标是拥有一个客户注册,登录和授权点。
理想情况下,每个应用程序都会请求身份验证并获得多个应用程序的授权,然后应用程序将连接到相应的数据库以进行操作。我没有处理这种程度分离的第一手经验,因为一个数据库多年来一直在完美地搅拌。任何最佳实践论文将不胜感激:)
我会设想一个维护共享数据的核心数据库 - 客户/公司/产品
核心表和主键 - 如果每个“应用程序”数据库中都有一个较小的复制表,则维护参照完整性。有哪些方法可以在各种数据库之间共享密钥并确保参照完整性?
复制 - 目前有两个订阅者从生产数据库中提取数据,然后将数据批量分配到DW解决方案进行报告。我是否会走上一条可能导致沮丧的道路?
数据完整性 - 我如何确保例如: DATABASE_X.PREFERENCES.USER_ID =始终引用a = CORE_DATABASE.USERS.USER_ID
报告 - 我将跨越什么类型的障碍来将数据从多个数据库复制/转换为一个报告数据库?
白皮书 - 有人可以在实践中找到对此策略的良好推荐吗?
由于
答案 0 :(得分:1)
给你一些网址。横向扩展实现可能会有很大差异,以满足要求,但希望这些可以帮助您。
http://blogs.msdn.com/b/sqlcat/archive/2008/06/12/sql-server-scale-out.aspx
这是2005年的中心,但非常好 http://msdn.microsoft.com/en-us/library/aa479364.aspx#scaloutsql_topic4
这是一个很好的报告解决方案...... http://msdn.microsoft.com/en-us/library/ms345584.aspx
答案 1 :(得分:0)
答案 2 :(得分:0)
您是否考虑过使用RAC?您可以拥有多个物理数据库但只有一个逻辑数据库。这将解决您的所有完整性问题。而且您可以为节目预留节点。
答案 3 :(得分:0)
不要忘记拥有单独的应用程序并通过webservice(esque)请求链接登录/关闭功能。我已经看到以这种方式分离计费/用户注册系统。虽然规模非常大,但这可能不是一个好主意。