¡iÁÉ}ºô¡ÐIT§Þ³N³ø¹D¡j§Ú̪¾¹D¡ASYBASE¡@SQL Server¥Î¨Æ°È¡]Transaction¡^¨Ó¸òÂܩҦ³¼Æ¾Ú®wªºÅܤơC¨Æ°È¬OSQL¡@Serverªº¤u§@³æ¤¸¡C¤@Өưȥ]§t¤@±ø©Î¦h±ø§@¬°¾ãÅé°õ¦æªºT-SQL»y¥y¡C¨CӼƾڮw³£¦³¦Û¤vªº¨Æ°È¤é»x¡]Transaction¡@Log¡^¡A§Y¨t²Îªí¡]Syslogs¡^¡C¨Æ°È¤é»x¦Û°Ê°O¿ý¨CӥΤáµo¥Xªº¨CӨưȡC¤é»x¹ï©ó¼Æ¾Ú®wªº¼Æ¾Ú¦w¥þ©Ê¡B§¹¾ã©Ê¦ÜÃö«n¡A§Ú̶i¦æ¼Æ¾Ú®w¶}µo©MºûÅ@¥²¶·¼ôª¾¤é»xªº¬ÛÃöª¾ÃÑ¡C
¤@¡BSYBASE¡@SQL Server ¦p¦ó°O¿ý©MŪ¨ú¤é»x¸ê°T
SYBASE¡@SQL Server¬O¥ý°OLogªº¾÷¨î¡C¨C·í¥Î¤á°õ¦æ±N×§ï¼Æ¾Ú®wªº»y¥y®É¡ASQL¡@Server´N·|¦Û°Ê¦a§âÅܤƼg¤J¤é»x¡C¤@±ø»y¥y©Ò²£¥Íªº©Ò¦³ÅܤƳ£³Q°O¿ý¨ì¤é»x«á¡A¥¦Ì´N³Q¼g¨ì¼Æ¾Ú¶¦b½w½Ä°Ïªº«þ¨©ùØ¡C¸Ó¼Æ¾Ú¶«O¦s¦b½w½Ä°Ï¤¤¡Aª½¨ì§Oªº¼Æ¾Ú¶»Ýn¸Ó°O¾ÐÅé®É¡A¸Ó¼Æ¾Ú¶¤~³Q¼g¨ìºÏ¤ù¤W¡CY¨Æ°È¤¤ªº¬Y±ø»y¥y¨S¯à§¹¦¨¡ASQL¡@Server±N¦^ºu¨Æ°È²£¥Íªº©Ò¦³ÅܤơC³o¼Ë´N«OÃÒ¤F¾ãӼƾڮw¨t²Îªº¤@P©Ê©M§¹¾ã©Ê¡C
¤G¡B¤é»x³]³Æ
Log©M¼Æ¾Ú®wªºData¤@¼Ë¡A»Ýn¦s©ñ¦b¼Æ¾Ú®w³]³Æ¤W¡A¥i¥H±NLog©MData¦s©ñ¦b¦P¤@³]³Æ¤W¡A¤]¥i¥H¤À¶}¦s©ñ¡C¤@¯ë¨Ó»¡¡AÀ³¸Ó±N¤@ӼƾڮwªºData©MLog¦s©ñ¦b¤£¦Pªº¼Æ¾Ú®w³]³Æ¤W¡C³o¼Ë°µ¦³¦p¤U¦n³B¡G¤@¬O¥i¥H³æ¿W¦a³Æ¥÷’ÁBackup’¨ưȤé»x¡F¤G¬O¨¾¤î¼Æ¾Ú®w·¸º¡¡F¤T¬O¥i¥H¬Ý¨ìLogªºªÅ¶¡¨Ï¥Î±¡ªp¡C
©Ò«ØLog³]³Æªº¤j¤p¡A¨S¦³¤Q¤Àºë½Tªº¤èªk¨Ó½T©w¡C¤@¯ë¨Ó»¡¡A¹ï©ó·s«Øªº¼Æ¾Ú®w¡ALogªº¤j¤pÀ³¬°¼Æ¾Ú®w¤j¤pªº30%¥ª¥k¡CLogªº¤j¤pÁÙ¨ú¨M©ó¼Æ¾Ú®wק諸ÀWÁcµ{«×¡C¦pªG¼Æ¾Ú®w×§ïÀWÁc¡A«hLogªº¼Wªø¤Q¤À¨³³t¡C©Ò¥H»¡LogªÅ¶¡¤j¤p¨Ì¿à©ó¥Î¤á¬O¦p¦ó¨Ï¥Î¼Æ¾Ú®wªº¡C¦¹¥~¡AÁÙ¦³¨ä¥L¦]¯À¼vÅTLog¤j¤p¡A§ÚÌÀ³¸Ó®Ú¾Ú¹ê»Ú¾Þ§@±¡ªp¦ôpLog¤j¤p¡A¨Ã¶¡¹j¤@¬q®É¶¡´N¹ïLog¶i¦æ³Æ¥÷©M²M°£¡C
¤T¡B¤é»xªº²M°£
ÀHµÛ¼Æ¾Ú®wªº¨Ï¥Î¡A¼Æ¾Ú®wªºLog¬O¤£Â_¼Wªøªº¡A¥²¶·¦b¥¦¦ûº¡ªÅ¶¡¤§«e±N¥¦Ì²M°£±¼¡C²M°£Log¦³¨âºØ¤èªk¡G
1.¦Û°Ê²M°£ªk
¶}©ñ¼Æ¾Ú®w¿ï¶µ Trunc Log on Chkpt¡A¨Ï¼Æ¾Ú®w¨t²Î¨C¹j¤@¬q®É¶¡¦Û°Ê²M°£Log¡C¦¹¤èªkªºÀuÂI¬OµL¶·¤H¤u¤z¹w¡A¥ÑSQL¡@Server¦Û°Ê°õ¦æ¡A¨Ã¥B¤@¯ë¤£·|¥X²{Log·¸º¡ªº±¡ªp¡F¯ÊÂI¬O¥u²M°£Log¦Ó¤£°µ³Æ¥÷¡C
2.¤â°Ê²M°£ªk
°õ¦æ©R¥O"dump transaction"¨Ó²M°£Log¡C¥H¤U¨â±ø©R¥O³£¥i¥H²M°£¤é»x¡G
dump transaction with truncate_only
dump transaction with no_log
³q±`§R°£¨Æ°È¤é»x¤¤¤£¬¡ÅDªº³¡¤À¥i¨Ï¥Î"dump transaction with trancate_only"©R¥O¡A³o±ø©R¥O¼g¶i¨Æ°È¤é»x®É¡AÁÙn°µ¥²nªº¨Öµo©ÊÀˬd¡CSYBASE´£¨Ñ"dump transaction with no_log"¨Ó³B²z¬Y¨Ç«D±`ºò¢ªº±¡ªp¡A¨Ï¥Î³o±ø©R¥O¦³«Ü¤jªº¦MÀI©Ê¡ASQL¡@Server·|¼u¥X¤@±øÄµ§i¸ê°T¡C¬°¤F¾¨¶q½T«O¼Æ¾Ú®wªº¤@P©Ê¡A§AÀ³±N¥¦§@¬°"³Ì«á¤@©Û"¡C
¥H¤W¨âºØ¤èªk¥u¬O²M°£¤é»x¡A¦Ó¤£°µ¤é»x³Æ¥÷¡AY·Q³Æ¥÷¤é»x¡AÀ³°õ¦æ"dump transaction database_name to dumpdevice"©R¥O¡C
¥|¡BºÞ²zÃe¤jªº¨Æ°È
¦³¨Ç¾Þ§@·|¤j§å¶q¦a×§ï¼Æ¾Ú¡A¦p¤j¶q¼Æ¾Úªº×§ï¡]Update¡^¡B§R°£¤@Óªíªº©Ò¦³¼Æ¾Ú¡]Delete¡^¡B¤j¶q¼Æ¾Úªº´¡¤J¡]Insert¡^¡A³o¼Ë·|¨ÏLog¼Wªø³t«×«Ü§Ö¡A¦³·¸º¡ªº¦MÀI¡C¤U±µ§ªÌµ¹¤j®a¤¶²Ð¤@¤U¦p¦ó©î¤À¤j¨Æ°È¡A¥HÁ×§K¤é»xªº·¸º¡¡C
¨Ò¦p°õ¦æ"update tab_a set col_a=0"©R¥O®É¡AYªítab_a«Ü¤j¡A«h¦¹Update°Ê§@¦b¥¼§¹¦¨¤§«e´N¥i¯à¨ÏLog·¸º¡¡A¤Þ°_1105¿ù»~¡]Log Full¡^¡A¦Ó¥B°õ¦æ³oºØ¤jªº¨Æ°È©Ò²£¥Íªº¿W¦ûÂê¡]Exclusive Table Lock¡^¡A·|ªý¤î¨ä¥L¥Î¤á¦b°õ¦æUpdate¾Þ§@´Á¶¡×§ï³oÓªí¡A³o´N¦³¥i¯à¤Þ°_¦ºÂê¡C¬°Á×§K³o¨Ç±¡ªpµo¥Í¡A§ÚÌ¥i¥H§â³oÓ¤jªº¨Æ°È¤À¦¨´XÓ¤pªº¨Æ°È¡A¨Ã°õ¦æ"dump transaction"°Ê§@¡C
¤W¨Ò¤¤ªº±¡ªp´N¥i¥H¤À¦¨¨âөΦhÓ¤pªº¨Æ°È¡G
update tab_a set col_a=0 where col_b>x
go
dump transaction database_name with truncate_only
go
update tab_a set col_a=0 where col_b <=x
go
dump transaction database_name with truncate_only
go
³o¼Ë¡A¤@Ó¤jªº¨Æ°È´N³Q¤À¦¨¨âÓ¸û¤pªº¨Æ°È¡C
«ö·Ó¤Wz¤èªk¥i¥H®Ú¾Ú»Ýn¥ô·N©î¤À¤jªº¨Æ°È¡CY³oӨưȻÝn³Æ¥÷¨ì¤¶½è¤W¡A«h¤£¥Î"with truncate_only"¿ï¶µ¡CY°õ¦æ"dump transaction with truncate_only"©R¥O¡AÀ³¸Ó¥ý°õ¦æ"dump database"¡C¥H¦¹Ãþ±À¡A§ÚÌ¥i¥H¹ïªí§R°£¡Bªí´¡¤Jµ¥¤j¨Æ°È°µ¬ÛÀ³ªº©î¤À¡C
¡]³d¥ô½s¿è¡G¿c¥üªL¡^