English 中文(简体)
a. 实际时间、结构驱动系统的特殊处理
原标题:Exception handling in a real time, SQL-Server driven system

我在www.NET Winforms(仅处理查询和显示结果)上建立了报告观众。

这与一个报告数据库有关。 然而,以上只是一个小小小小小小小小小小小小小小小小小段,从另一个数据库获取数据。 它希望:

监测系统的状态变化(例如相对增长)=和;活动记录在服务器数据库(称为该数据库A)中,作为交易=和交易; 这起火使一个触发者将同一事件写进报告数据库。

我不肯定这两个数据库之间的差别,可能根据不同的目标加以调整,或者这两个数据库可能有一些财政或甚至政治原因。

无论如何,有与会者提到,报告数据库“在交易上依赖”主要数据库。 这意味着什么? 报告数据库完全取决于A数据库的交易? 这使我想到一些问题:

1) How could I handle the situation that the reporting database has no disk space, but database A is still firing triggers to the reporting database? Would it be good to queue 2) Linked to the above, would it work if I queue the triggers and their data not able to fire into the reporting db (not sure how, but conceptually...)? Even then, this makes the system not real time.

是否有其他危险/问题例外地在像此这样的机构处理?

增 编

问题回答

这种依赖性实际上在生产中非常坏。 触发和更新(校外)数据库肯定会被射杀。 但更重要的是供应问题。 依赖A数据库的复印件现在与B数据库的可用性挂钩,因为如果B数据库无法使用,那么触发器便不做工作,就会失败,而申请将打击错误。 现在,数据库B的中间商正在使用数据库A进行应用。

这个问题有许多办法,最简单的办法是从数据库A中的一份出版物中进行交易复制,并订阅数据库B。 从交易角度看,这两个数据库被捆绑起来,使依赖A数据库的应用得以在B数据库无法使用或只是缓慢的情况下向前推进。

如果系统必须是实时的,那么触发系统是唯一的方法。 请注意,触发因素完全是同步的——报告数据库的运作必须成功完成,否则触发因素就会失败,而且由于交易数据库的启动,因此你很可能无法在交易数据库上运作,原始表格上的陈述将失败,可能或不会被抓住,但交易数据库中表格的变更不会发生。

这一设想有正当理由,但的确在报告数据库中形成了对交易数据库的依赖,因为如果报告数据库倒塌,交易数据库实际上就变得只读或更糟。

这并不是你想要的。

如果贵国的数据库结构相同,你可以研究复制情况。 通常,在我考虑建立一个报告数据库时,我会想到的是,有些结构不同,可优化报告,而不仅是出于业绩原因被孤立的另一份数据(罚款,但基本上只是向问题扔下硬件,以阻止报告用户伤害交易使用者)。





相关问题
Export tables from SQL Server to be imported to Oracle 10g

I m trying to export some tables from SQL Server 2005 and then create those tables and populate them in Oracle. I have about 10 tables, varying from 4 columns up to 25. I m not using any constraints/...

SQL server: Can NT accounts be mapped to SQL server accounts

In our database we have an SQL server account that has the correct roles to access some of the databases. We are now switching to windows authentication and I was wondering if we can create a NT user ...

SQL Server 2000, ADO 2.8, VB6

How to determine if a Transaction is active i.e. before issuing Begin Transaction I want to ensure that no previous transaction are open.. the platform is VB6, MS-SQL Server 2000 and ADO 2.8

热门标签