|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
目前的方案是用mysqlbinlog工具,增加一个Flashback参数,输出结果为一个新的binlog文件――姑且叫做flashbacklog,这个flashbacklog顺序执行,可制定某张表和执行到哪个pos,来实现数据库的闪回。serverSql-server里能够挪用基于IDispatch的COM组件
有乐趣的能够本人往查SQL匡助里的sp_OACreate、sp_OAMethod、sp_OADestroy等存储历程的用法。
上面是我在一个短信报警的小项目里的一些sql代码,报警信息经由过程各种软件拔出到sql-server里,然后经由过程触发器挪用组件,并发送短信到指定手机上往,完成主动报警功效。
//测试数据库的触发器
ALTERTRIGGERmessage_Trigger1
ONdbo.message
FORINSERT/*,UPDATE,DELETE*/
AS
/*IFUPDATE(column_name)...*/
begin
declare@PhoneNumnvarchar(50)
declare@Contentnvarchar(140)
declare@MessageIdnvarchar(70)
declare@indexint
declare@hrint
declare@objectint
select@PhoneNum=phone_num,@Content=Content,@MessageId=message_idfrominserted
select@index=1
/*挪用COM发送短信*/
begin
EXEC@hr=sp_OACreate{26850DDA-862C-44FF-9232-282937F2CA4B},@objectOUT
if@hr=0
begin
exec@hr=sp_OAMethod@object,SendMsg,NULL,@Content,@PhoneNum,@index,@MessageId
execsp_OADestroy@object
end
end
end
这里的代码能够说是没有成绩,可是也能够说是有很年夜的成绩。
关头就在于组件的SendMsg办法,为何呢?我能够举出几个我实践碰着的成绩来做详细申明。
最次要有2点
第1:此COM组件是不是为历程内组件,组件外部代码是不是充足健壮
第2:创立组件和烧毁组件及组件办法要尽最年夜大概的疾速
我对上述两点做一个申明
假如COM组件为历程内组件的话,意味着此组件被sql-server加载,假如此代码不敷强健,那末,因为组件自己招致的挂起,溃散,会间接影响到全部sql-server,那末情形长短常严峻的,这类毛病,产生一次就足以要了你的小命,假如刚好在客户的脸上爆炸的话……
办理的办法只要如许:起首包管你的组件代码充足健壮,健壮到不克不及再健壮为止。另有就是只管让组件不如果历程内的,假如已是DLL了,那末就交给COM+Catalog来办理。如许就办理了由于组件溃散挂起招致sql-server发生成绩。
其次,要让你的组件的创立、办法挪用、烧毁都快到不克不及再快,要快到几近刹时就完成。不然假如俄然有海量数据出去,你的触发器来不及反应,那你的数据便可能被回滚失落,并且这些数据很主要,那你就等着被Fire吧L5555~~~~~
假如非要用这类办法的话,那末就要完成我下面提到的2点,而且最好启用COM+工具池。假如办法必要很长工夫才干前往,而且没法优化了,那末就把这些办法移进来,把这些举措在别的的程序里做,让COM办法立即前往。
总而言之,言而总之,在体系集成的时分假如几个开辟厂商没有商议好接口,而且都接纳SQL-SERVER数据库,那末关于此类数据的操纵,仿佛用如许的办法就是最好的弥补。
团体以为有点剑走偏锋的感到,固然很厉害,可是不免伤到本人
Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用 |
|