| ºë±m±ÀÂË |
|
|
| ¤ÀÃþ³Ì·s±Ðµ{ |
|
| ¤ÀÃþ¼öÂI±Ðµ{ |
|
|
|
| SQL Server¹ê¥Î¾Þ§@¤p§Þ¥©¶°¦X |
|
¥]¬A¦w¸Ë®É´£¥Ü¦³±¾°_ªº¾Þ§@¡B¦¬ÁY¼Æ¾Ú®w¡BÀ£ÁY¼Æ¾Ú®w¡BÂಾ¼Æ¾Ú®wµ¹·s¥Î¤á¥H¤w¦s¦b¥Î¤áÅv¡BÀˬd³Æ¥÷¶°¡B×´_¼Æ¾Ú®wµ¥ ¡]¤@¡^±¾°_¾Þ§@ ¦b¦w¸ËSql©Îsp¸É¤Bªº®ÉÔ¨t²Î´£¥Ü¤§«e¦³±¾°_ªº¦w¸Ë¾Þ§@¡An¨D«±Ò¡A³o¸Ì©¹©¹«±ÒµL¥Î¡A¸Ñ¨M¿ìªk¡G ¨ìHKEY_LOCAL_MACHINE YSTEM\CurrentControlSet\Control ession Manager §R°£PendingFileRenameOperations ¡]¤G¡^¦¬ÁY¼Æ¾Ú®w --««Ø¯Á¤Þ DBCC REINDEX DBCC INDEXDEFRAG --¦¬ÁY¼Æ¾Ú©M¤é»x DBCC SHRINKDB DBCC SHRINKFILE ¡]¤T¡^À£ÁY¼Æ¾Ú®w dbcc shrinkdatabase(dbname) ¡]¥|¡^Âಾ¼Æ¾Ú®wµ¹·s¥Î¤á¥H¤w¦s¦b¥Î¤áÅv exec sp_change_users_login 'update_one','newname','oldname' go ¡]¤¡^Àˬd³Æ¥÷¶° RESTORE VERIFYONLY from disk='E:\dvbbs.bak' ¡]¤»¡^×´_¼Æ¾Ú®w ALTER DATABASE [dvbbs] SET SINGLE_USER GO DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK GO ALTER DATABASE [dvbbs] SET MULTI_USER GO --CHECKDB ¦³3ӰѼÆ: --REPAIR_ALLOW_DATA_LOSS --’°õ¦æ¥Ñ REPAIR_REBUILD §¹¦¨ªº©Ò¦³×´_¡A¥]¬A¹ï¦æ©M¶¶i¦æ¤À°t©M¨ú®ø¤À°t¥H§ï¥¿¤À°t¿ù»~¡Bµ²ºc¦æ©Î¶ªº¿ù»~¡A¥H¤Î§R°£¤w·lÃaªº¤å¥»¹ï¶H¡C³o¨Ç×´_¥i¯à·|¾ÉP¤@¨Ç¼Æ¾Ú¥á¥¢¡C×´_¾Þ§@¥i¥H¦b¥Î¤á¨Æ°È¤U§¹¦¨¥H¤¹³\¥Î¤á¦^ºu©Ò°µªº§ó§ï¡C¦pªG¦^ºu×´_¡A«h¼Æ¾Ú®w¤´·|§t¦³¿ù»~¡AÀ³¸Ó±q³Æ¥÷¶i¦æ«ì´_¡C¦pªG¥Ñ©ó©Ò´£¨Ñ×´_µ¥¯Åªº½t¬G¿òº|¬YÓ¿ù»~ªº×´_¡A«h±N¿òº|¥ô¦ó¨ú¨M©ó¸Ó×´_ªº×´_¡C×´_§¹¦¨«á¡A³Æ¥÷¼Æ¾Ú®w¡C --REPAIR_FAST ¶i¦æ¤pªº¡B¤£¯Ó®Éªº×´_¾Þ§@¡A¦p×´_«D»E¶°¯Á¤Þ¤¤ªºªþ¥[Áä¡C³o¨Ç×´_¥i¥H«Ü§Ö§¹¦¨¡A¨Ã¥B¤£·|¦³¥á¥¢¼Æ¾Úªº¦MÀI¡C --REPAIR_REBUILD °õ¦æ¥Ñ REPAIR_FAST §¹¦¨ªº©Ò¦³×´_¡A¥]¬A»Ýn¸ûªø®É¶¡ªº×´_¡]¦p««Ø¯Á¤Þ¡^¡C°õ¦æ³o¨Ç×´_®É¤£·|¦³¥á¥¢¼Æ¾Úªº¦MÀI¡C --DBCC CHECKDB('dvbbs') with NO_INFOMSGS,PHYSICAL_ONLY SQL SERVER¤é»x²M°£ªº¨âºØ¤èªk ¦b¨Ï¥Î¹Lµ{¤¤¤j®a¸g±`¸I¨ì¼Æ¾Ú®w¤é»x«D±`¤jªº±¡ªp¡A¦b³o¸Ì¤¶²Ð¤F¨âºØ³B²z¤èªk…… ¤èªk¤@ ¤@¯ë±¡ªp¤U¡ASQL¼Æ¾Ú®wªº¦¬ÁY¨Ã¤£¯à«Ü¤jµ{«×¤W´î¤p¼Æ¾Ú®w¤j¤p¡A¨ä¥Dn§@¥Î¬O¦¬ÁY¤é»x¤j¤p¡AÀ³·í©w´Á¶i¦æ¦¹¾Þ§@¥H§K¼Æ¾Ú®w¤é»x¹L¤j 1¡B³]¸m¼Æ¾Ú®w¼Ò¦¡¬°Â²³æ¼Ò¦¡¡G¥´¶}SQL¥ø·~ºÞ²z¾¹¡A¦b±±¨î¥x®Ú¥Ø¿ý¤¤¨Ì¦¸ÂI¶}Microsoft SQL Server-->SQL Server²Õ-->ÂùÀ»¥´¶}§AªºªA°È¾¹-->ÂùÀ»¥´¶}¼Æ¾Ú®w¥Ø¿ý-->¿ï¾Ü§Aªº¼Æ¾Ú®w¦WºÙ¡]¦p½×¾Â¼Æ¾Ú®wForum¡^-->µM«áÂIÀ»¥kÁä¿ï¾ÜÄÝ©Ê-->¿ï¾Ü¿ï¶µ-->¦b¬G»ÙÁÙ쪺¼Ò¦¡¤¤¿ï¾Ü“²³æ”¡AµM«á«ö½T©w«O¦s 2¡B¦b·í«e¼Æ¾Ú®w¤WÂI¥kÁä¡A¬Ý©Ò¦³¥ô°È¤¤ªº¦¬ÁY¼Æ¾Ú®w¡A¤@¯ë¸Ì±ªºÀq»{³]¸m¤£¥Î½Õ¾ã¡Aª½±µÂI½T©w 3¡B¦¬ÁY¼Æ¾Ú®w§¹¦¨«á¡A«ØÄ³±N±zªº¼Æ¾Ú®wÄݩʫ·s³]¸m¬°¼Ð·Ç¼Ò¦¡¡A¾Þ§@¤èªk¦P²Ä¤@ÂI¡A¦]¬°¤é»x¦b¤@¨Ç²§±`±¡ªp¤U©¹©¹¬O«ì´_¼Æ¾Ú®wªº«n¨Ì¾Ú ¤èªk¤G SET NOCOUNT ON DECLARE @LogicalFileName sysname, ’Â’Â’Â @MaxMinutes INT, ’Â’Â’Â @NewSize INT USE’Â’Â tablename’Â’Â’Â’Â’Â’Â -- n¾Þ§@ªº¼Æ¾Ú®w¦W SELECT’Â@LogicalFileName = 'tablename_log',’Â-- ¤é»x¤å¥ó¦W @MaxMinutes = 10,’Â’Â’Â’Â’Â’Â’Â -- Limit on time allowed to wrap log. ’Â’Â’Â @NewSize = 1’Â’Â’Â’Â’Â’Â’Â’Â’Â-- §A·Q³]©wªº¤é»x¤å¥óªº¤j¤p(M) -- Setup / initialize DECLARE @OriginalSize int SELECT @OriginalSize = size FROM sysfiles WHERE name = @LogicalFileName SELECT 'Original Size of ' + db_name() + ' LOG is ' + ’Â’Â’Â CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + ’Â’Â’Â CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB' FROM sysfiles WHERE name = @LogicalFileName CREATE TABLE DummyTrans (DummyColumn char (8000) not null) DECLARE @Counter’ INT, ’Â’Â’Â @StartTime DATETIME, ’Â’Â’Â @TruncLog’ÂVARCHAR(255) SELECT’Â@StartTime = GETDATE(), ’Â’Â’Â @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY' DBCC SHRINKFILE (@LogicalFileName, @NewSize) EXEC (@TruncLog) -- Wrap the log if necessary. WHILE’Â’Â @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired ’Â’Â AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)’ ’Â’Â AND (@OriginalSize * 8 /1024) > @NewSize’ BEGIN -- Outer loop. ’ SELECT @Counter = 0 ’ WHILE’Â((@Counter < @OriginalSize / 16) AND (@Counter < 50000)) ’Â’Â BEGIN -- update ’Â’Â’Â INSERT DummyTrans VALUES ('Fill Log')’ ’Â’Â’Â DELETE DummyTrans ’Â’Â’Â SELECT @Counter = @Counter + 1 ’Â’Â END’ ’ EXEC (@TruncLog)’ END’ SELECT 'Final Size of ' + db_name() + ' LOG is ' + ’Â’Â’Â CONVERT(VARCHAR(30),size) + ' 8K pages or ' + ’Â’Â’Â CONVERT(VARCHAR(30),(size*8/1024)) + 'MB' FROM sysfiles WHERE name = @LogicalFileName DROP TABLE DummyTrans SET NOCOUNT OFF §R°£¼Æ¾Ú®w¤¤«½Æ¼Æ¾Úªº´XÓ¤èªk ¼Æ¾Ú®wªº¨Ï¥Î¹Lµ{¤¤¥Ñ©óµ{§Ç¤è±ªº°ÝÃD¦³®ÉÔ·|¸I¨ì«½Æ¼Æ¾Ú¡A«½Æ¼Æ¾Ú¾ÉP¤F¼Æ¾Ú®w³¡¤À³]¸m¤£¯à¥¿½T³]¸m…… ¤èªk¤@ declare @max integer,@id integer declare cur_rows cursor local for select ¥D¦r¬q,count(*) from ªí¦W group by ¥D¦r¬q having count(*) > 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from ªí¦W where ¥D¦r¬q = @id fetch cur_rows into @id,@max end close cur_rows set rowcount 0 ¤èªk¤G ¦³¨âÓ·N¸q¤Wªº«½Æ°O¿ý¡A¤@¬O§¹¥þ«½Æªº°O¿ý¡A¤]§Y©Ò¦³¦r¬q§¡«½Æªº°O¿ý¡A¤G¬O³¡¤ÀÃöÁä¦r¬q«½Æªº°O¿ý¡A¤ñ¦pName¦r¬q«½Æ¡A¦Ó¨ä¥L¦r¬q¤£¤@©w«½Æ©Î³£«½Æ¥i¥H©¿²¤¡C 1¡B¹ï©ó²Ä¤@ºØ«½Æ¡A¤ñ¸û®e©ö¸Ñ¨M¡A¨Ï¥Î ’ select distinct * from tableName ´N¥i¥H±o¨ìµL«½Æ°O¿ýªºµ²ªG¶°¡C ¦pªG¸Óªí»Ýn§R°£«½Æªº°O¿ý¡]«½Æ°O¿ý«O¯d1±ø¡^¡A¥i¥H«ö¥H¤U¤èªk§R°£ ’ select distinct * into #Tmp from tableName ’ drop table tableName ’ select * into tableName from #Tmp ’ drop table #Tmp µo¥Í³oºØ«½Æªºì¦]¬Oªí³]p¤£©P²£¥Íªº¡A¼W¥[°ß¤@¯Á¤Þ¦C§Y¥i¸Ñ¨M¡C 2¡B³oÃþ«½Æ°ÝÃD³q±`n¨D«O¯d«½Æ°O¿ý¤¤ªº²Ä¤@±ø°O¿ý¡A¾Þ§@¤èªk¦p¤U ’ °²³]¦³«½Æªº¦r¬q¬°Name,Address¡An¨D±o¨ì³o¨âÓ¦r¬q°ß¤@ªºµ²ªG¶° ’ select identity(int,1,1) as autoID, * into #Tmp from tableName ’ select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID ’ select * from #Tmp where autoID in(select autoID from #tmp2) ’ ³Ì«á¤@Óselect§Y±o¨ì¤FName¡AAddress¤£«½Æªºµ²ªG¶°¡]¦ý¦h¤F¤@ÓautoID¦r¬q¡A¹ê»Ú¼g®É¥i¥H¼g¦bselect¤l¥y¤¤¬Ù¥h¦¹¦C¡^ §ó§ï¼Æ¾Ú®w¤¤ªíªº©ÒÄݥΤ᪺¨âÓ¤èªk ¤j®a¥i¯à·|¸g±`¸I¨ì¤@Ӽƾڮw³Æ¥÷ÁÙì¨ì¥t¥~¤@¥x¾÷¾¹µ²ªG¾ÉP©Ò¦³ªºªí³£¤£¯à¥´¶}¤F¡Aì¦]¬O«Øªíªº®ÉԱĥΤF·í®Éªº¼Æ¾Ú®w¥Î¤á…… --§ó§ï¬YÓªí exec sp_changeobjectowner 'tablename','dbo' --¦sÀx§ó§ï¥þ³¡ªí CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch @OldOwner as NVARCHAR(128), @NewOwner as NVARCHAR(128) AS DECLARE @Name’ as NVARCHAR(128) DECLARE @Owner’Âas NVARCHAR(128) DECLARE @OwnerName’Âas NVARCHAR(128) DECLARE curObject CURSOR FOR select 'Name'’ = name, 'Owner'’ = user_name(uid) from sysobjects where user_name(uid)=@OldOwner order by name OPEN’ÂcurObject FETCH NEXT FROM curObject INTO @Name, @Owner WHILE(@@FETCH_STATUS=0) BEGIN’Â’Â if @Owner=@OldOwner begin set @OwnerName = @OldOwner + '.' + rtrim(@Name) exec sp_changeobjectowner @OwnerName, @NewOwner end -- select @name,@NewOwner,@OldOwner FETCH NEXT FROM curObject INTO @Name, @Owner END close curObject deallocate curObject GO SQL SERVER¤¤ª½±µ´`Àô¼g¤J¼Æ¾Ú ¨S¤°»ò¦n»¡ªº¤F¡A¤j®a¦Û¤v¬Ý¡A¦³®ÉÔ¦³ÂI¥Î³B declare @i int set @i=1 while @i<30 begin ’Âinsert into test (userid) values(@i) ’Âset @i=@i+1 end µL¼Æ¾Ú®w¤é»x¤å¥ó«ì´_¼Æ¾Ú®w¤èªk¨â«h ¼Æ¾Ú®w¤é»x¤å¥óªº»~§R©Î§Oªºì¦]¤Þ°_¼Æ¾Ú®w¤é»xªº·lÃa ¤èªk¤@ 1.·s«Ø¤@Ó¦P¦Wªº¼Æ¾Ú®w 2.¦A°±±¼sql server(ª`·N¤£n¤ÀÂ÷¼Æ¾Ú®w) 3.¥Îì¼Æ¾Ú®wªº¼Æ¾Ú¤å¥óÂл\±¼³oÓ·s«Øªº¼Æ¾Ú®w 4.¦A«±Òsql server 5.¦¹®É¥´¶}¥ø·~ºÞ²z¾¹®É·|¥X²{¸mºÃ¡A¥ý¤£ºÞ¡A°õ¦æ¤U±ªº»y¥y¡]ª`·N×§ï¨ä¤¤ªº¼Æ¾Ú®w¦W) 6.§¹¦¨«á¤@¯ë´N¥i¥H³X°Ý¼Æ¾Ú®w¤¤ªº¼Æ¾Ú¤F,³o®É,¼Æ¾Ú®w¥»¨¤@¯ëÁÙn°ÝÃD,¸Ñ¨M¿ìªk¬O,§Q¥Î ¼Æ¾Ú®wªº¸}¥»³Ð«Ø¤@Ó·sªº¼Æ¾Ú®w,¨Ã±N¼Æ¾Ú¾É¶i¥h´N¦æ¤F. USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='¸mºÃªº¼Æ¾Ú®w¦W' Go sp_dboption '¸mºÃªº¼Æ¾Ú®w¦W', 'single user', 'true' Go DBCC CHECKDB('¸mºÃªº¼Æ¾Ú®w¦W') Go update sysdatabases set status =28 where name='¸mºÃªº¼Æ¾Ú®w¦W' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption '¸mºÃªº¼Æ¾Ú®w¦W', 'single user', 'false' Go ¤èªk¤G ¨Æ±¡ªº°_¦] ¬Q¤Ñ¡A¨t²ÎºÞ²zû§i¶D§Ú¡A§Ṳ́@Ó¤º³¡À³¥Î¼Æ¾Ú®w©Ò¦bªººÏ½LªÅ¶¡¤£¨¬¤F¡C§Úª`·N¨ì¼Æ¾Ú®w¨Æ¥ó¤é»x¤å¥óXXX_Data.ldf¤å¥ó¤w¸g¼Wªø¨ì¤F3GB¡A©ó¬O§Ú¨M·NÁY¤p³oÓ¤é»x¤å¥ó¡C¸g¹L¦¬ÁY¼Æ¾Ú®wµ¥¾Þ§@¥¼ªG«á¡A§Ú¥Ç¤F¤@Ó¦Û¶i¤J¦æ·~¥H¨Óªº³Ì¤j³Ì·MÄøªº¿ù»~¡G³ºµM»~§R°£¤F³oÓ¤é»x¤å¥ó¡I«á¨Ó§Ú¬Ý¨ì©Ò¦³½×¤Î¼Æ¾Ú®w«ì´_ªº¤å³¹¤W§²ÀɼìÀe©Þ÷ó廴ºí¨ý®aúP¢ä?a href="http://hackbase.com/hacker" target="_blank">¼Æ¾Ú®w¤é»x¤å¥ó¦s¦b¡A¥¦¦ÜÃö«n”¡A¬Æ¦Ü·L³n¬Æ¦Ü¦³¤@½gKB¤å³¹Á¿¦p¦ó¥u¾a¤é»x¤å¥ó«ì´_¼Æ¾Ú®wªº¡C§Ú¯u¬O¤£ª¾¹D§Ú¨º®ÉÔ¬O«ç»ò·Qªº¡H¡I ³o¤U¤lÃa¤F¡I³oӼƾڮw³s¤£¤W¤F¡A¥ø·~ºÞ²z¾¹¦b¥¦ªº®ÇÃä¼gµÛ“(¸mºÃ)”¡C¦Ó¥B³Ìn©Rªº¡A³oӼƾڮw±q¨Ó¨S¦³³Æ¥÷¤F¡C§Ú°ß¤@§ä±o¨ìªº¬O¾E²¾¥b¦~«eªº¥t¥~¤@ӼƾڮwªA°È¾¹¡AÀ³¥ÎˬO¯à¥Î¤F¡A¦ý¬O¤Ö¤F³\¦h°O¿ý¡Bªí©M¦sÀx¹Lµ{¡C¯u§Æ±æ³o¥u¬O¤@³õ¾µ¹Ú¡I ¨S¦³®ÄªGªº«ì´_¨BÆJ ªþ¥[¼Æ¾Ú®w _RamboÁ¿¹L³Q§R°£¤é»x¤å¥ó¤¤¤£¦s¦b¬¡°Ê¤é»x®É¡A¥i¥H³o»ò°µ¨Ó«ì´_¡G 1¡A¤ÀÂ÷³Q¸mºÃªº¼Æ¾Ú®w¡A¥i¥H¨Ï¥Îsp_detach_db 2¡Aªþ¥[¼Æ¾Ú®w¡A¥i¥H¨Ï¥Îsp_attach_single_file_db ¦ý¬O¡A«Ü¿ò¾Ñ¡A°õ¦æ¤§«á¡ASQL Server½èºÃ¼Æ¾Ú¤å¥ó©M¤é»x¤å¥ó¤£²Å¡A©Ò¥HµLªkªþ¥[¼Æ¾Ú®w¼Æ¾Ú¤å¥ó¡C DTS¼Æ¾Ú¾É¥X ¤£¦æ¡AµLªkŪ¨úXXX¼Æ¾Ú®w¡ADTS Wizard³ø§i»¡“ªì©l¤Æ¤W¤U¤åµo¥Í¿ù»~”¡C ºò«æ¼Ò¦¡ ©É¬õ¤½¤lÁ¿¹L¨S¦³¤é»x¥Î©ó«ì´_®É¡A¥i¥H³o»ò°µ¡G 1¡A§â¼Æ¾Ú®w³]¸m¬°emergency mode 2¡A«·s«Ø¥ß¤@Ólog¤å¥ó 3¡A§âSQL Server «·s±Ò°Ê¤@¤U 4¡A§âÀ³¥Î¼Æ¾Ú®w³]¸m¦¨³æ¥Î¤á¼Ò¦¡ 5¡A°µDBCC CHECKDB 6¡A¦pªG¨S¦³¤°»ò¤j°ÝÃD´N¥i¥H§â¼Æ¾Ú®wª¬ºA§ï¦^¥h¤F¡A°O±o§O§Ñ¤F§â¨t²Îªíªº×§ï¿ï¶µÃö±¼ §Ú¹ê½î¤F¤@¤U¡A§âÀ³¥Î¼Æ¾Ú®wªº¼Æ¾Ú¤å¥ó²¾¨«¡A«·s«Ø¥ß¤@Ó¦P¦Wªº¼Æ¾Ú®wXXX¡AµM«á°±±¼SQLªA°È¡A§âì¨Óªº¼Æ¾Ú¤å¥ó¦AÂл\¦^¨Ó¡C¤§«á¡A«ö·Ó©É¬õ¤½¤lªº¨BÆJ¨«¡C ¦ý¬O¡A¤]«Ü¿ò¾Ñ¡A°£¤F²Ä2¨B¤§¥~¡A¨ä¥L¨BÆJ°õ¦æ«D±`¦¨¥\¡C¥i±¤¡A«±ÒSQL Server¤§«á¡A³oÓÀ³¥Î¼Æ¾Ú®w¤´µM¬O¸mºÃ¡I ¤£¹L¡AÅý§ÚªY¼¢ªº¬O¡A³o»ò°µ¤§«á¡AˬO¯à°÷Select¼Æ¾Ú¤F¡AÅý§Ú¤j¥X¤@¤f®ð¡C¥u¤£¹L¡A²Õ¥ó¨Ï¥Î¼Æ¾Ú®w®É¡A³ø§i»¡¡G“µo¥Í¿ù»~¡G-2147467259,¥¼¯à¦b¼Æ¾Ú®w 'XXX' ¤¤¹B¦æ BEGIN TRANSACTION¡A¦]¬°¸Ó¼Æ¾Ú®w³B©ó°jÁ׫ì´_¼Ò¦¡¡C” ³Ì²×¦¨¥\«ì´_ªº¥þ³¡¨BÆJ ³]¸m¼Æ¾Ú®w¬°ºò«æ¼Ò¦¡ ’Â’Â’Â °±±¼SQL ServerªA°È¡F ’’’§âÀ³¥Î¼Æ¾Ú®wªº¼Æ¾Ú¤å¥óXXX_Data.mdf²¾¨«¡F ’Â’Â «·s«Ø¥ß¤@Ó¦P¦Wªº¼Æ¾Ú®wXXX¡F ’’’°±±¼SQLªA°È¡F ’Â’Â §âì¨Óªº¼Æ¾Ú¤å¥ó¦AÂл\¦^¨Ó¡F ’’¹B¦æ¥H¤U»y¥y¡A§â¸Ó¼Æ¾Ú®w³]¸m¬°ºò«æ¼Ò¦¡¡F ’ ¹B¦æ“Use Master Go sp_configure 'allow updates', 1 reconfigure with override Go” °õ¦æµ²ªG¡G DBCC °õ¦æ§¹²¦¡C¦pªG DBCC ¿é¥X¤F¿ù»~«H®§¡A½Ð»P¨t²ÎºÞ²zûÁpô¡C ¤w±N°t¸m¿ï¶µ 'allow updates' ±q 0 §ï¬° 1¡C½Ð¹B¦æ RECONFIGURE »y¥y¥H¦w¸Ë¡C ±µµÛ¹B¦æ“update sysdatabases set status = 32768 where name = 'XXX'” °õ¦æµ²ªG¡G ¡]©Ò¼vÅTªº¦æ¼Æ¬° 1 ¦æ¡^ ’Â’Â «±ÒSQL ServerªA°È¡F ’’¹B¦æ¥H¤U»y¥y¡A§âÀ³¥Î¼Æ¾Ú®w³]¸m¬°Single User¼Ò¦¡¡F ’Â’Â ¹B¦æ“sp_dboption 'XXX', 'single user', 'true'” °õ¦æµ²ªG¡G ’Â’Â ©R¥O¤w¦¨¥\§¹¦¨¡C ü’Â’Â’Â’Â °µDBCC CHECKDB¡F ’Â’Â ¹B¦æ“DBCC CHECKDB('XXX')” °õ¦æµ²ªG¡G 'XXX' ªº DBCC µ²ªG¡C 'sysobjects' ªº DBCC µ²ªG¡C ¹ï¹³ 'sysobjects' ¦³ 273 ¦æ¡A³o¨Ç¦æ¦ì©ó 5 ¶¤¤¡C 'sysindexes' ªº DBCC µ²ªG¡C ¹ï¹³ 'sysindexes' ¦³ 202 ¦æ¡A³o¨Ç¦æ¦ì©ó 7 ¶¤¤¡C 'syscolumns' ªº DBCC µ²ªG¡C ……… ü’Â’Â’Â’Â ¹B¦æ¥H¤U»y¥y§â¨t²Îªíªº×§ï¿ï¶µÃö±¼¡F ’Â’Â ¹B¦æ“sp_resetstatus "XXX" go sp_configure 'allow updates', 0 reconfigure with override Go” °õ¦æµ²ªG¡G ¦b sysdatabases ¤¤§ó·s¼Æ¾Ú®w 'XXX' ªº±ø¥Ø¤§«e¡A¼Ò¦¡ = 0¡Aª¬ºA = 28¡]ª¬ºA suspect_bit = 0¡^¡A ¨S¦³§ó·s sysdatabases ¤¤ªº¥ô¦ó¦æ¡A¦]¬°¤w¥¿½T¦a«¸m¤F¼Ò¦¡©Mª¬ºA¡C¨S¦³¿ù»~¡A¥¼¶i¦æ¥ô¦ó§ó§ï¡C DBCC °õ¦æ§¹²¦¡C¦pªG DBCC ¿é¥X¤F¿ù»~«H®§¡A½Ð»P¨t²ÎºÞ²zûÁpô¡C ¤w±N°t¸m¿ï¶µ 'allow updates' ±q 1 §ï¬° 0¡C½Ð¹B¦æ RECONFIGURE »y¥y¥H¦w¸Ë¡C ’ «·s«Ø¥ß¥t¥~¤@ӼƾڮwXXX.Lost¡F DTS¾É¥XÂQ¾É ’’¹B¦æDTS¾É¥XÂQ¾É¡F ’’½ƻs·½¿ï¾ÜEmergencyModeªº¼Æ¾Ú®wXXX¡A¾É¤J¨ìXXX.Lost¡F ’Â’Â’Â ¿ï¾Ü“¦bSQL Server¼Æ¾Ú®w¤§¶¡½Æ»s¹ï¹³©M¼Æ¾Ú”¡A¸Õ¤F¦h¦¸¡A¦n¹³¤£¦æ¡A¥u¬O½Æ»s¹L¨Ó¤F©Ò¦³ªíµ²ºc¡A¦ý¬O¨S¦³¼Æ¾Ú¡A¤]¨S¦³µø¹Ï©M¦sÀx¹Lµ{¡A¦Ó¥BDTSÂQ¾É³Ì«á³ø§i½Æ»s¥¢±Ñ¡F ’’’©ҥH³Ì«á¿ï¾Ü“±q·½¼Æ¾Ú®w½Æ»sªí©Mµø¹Ï”¡A¦ý¬O«á¨Óµo²{¡A³o¼ËÁ`¬O¥u¯à½Æ»s¤@³¡¤Àªí°O¿ý¡F ’Â’Â ©ó¬O¿ï¾Ü“¥Î¤@±ø¬d¸ß«ü©wn¶Ç¿éªº¼Æ¾Ú”¡A¯ÊþÓªí°O¿ý¡A´N¾ÉþÓ¡F ’Â’Â’Â µø¹Ï©M¦sÀx¹Lµ{¬O°õ¦æSQL»y¥y²K¥[ªº¡C ºûÅ@Sql Server¤¤ªíªº¯Á¤Þ ¦b¨Ï¥Î©M³Ð«Ø¼Æ¾Ú®w¯Á¤Þ¤¤¸g±`·|¸I¨ì¤@¨Ç°ÝÃD¡A¦b³o¸Ì¥i¥H±Ä¥Î¤@¨Ç¥tÃþªº¤èªk¸Ñ¨M… --²Ä¤@¨B¡G¬d¬Ý¬O§_»ÝnºûÅ@¡A¬d¬Ý±½ºË±K«×/Scan Density¬O§_¬°100% declare @table_id int set @table_id=object_id('ªí¦W') dbcc showcontig(@table_id) --²Ä¤G¨B:«ºcªí¯Á¤Þ dbcc dbreindex('ªí¦W',pk_¯Á¤Þ¦W,100) --«°µ²Ä¤@¨B¡A¦pµo²{±½ºË±K«×/Scan DensityÁÙ¬O¤p©ó100%«h«ºcªíªº©Ò¦³¯Á¤Þ --·¨¿þ¡G¨Ã¤£¤@©w¯à¹F100%¡C dbcc dbreindex('ªí¦W','',100) SQL Server¸É¤B¦w¸Ë±`¨£°ÝÃD ½Ö¸I¨ì°ÝÃD´N¬Ý¬Ý«£¡G¡^ ¤@¡B¸É¤B¦w¸Ë¹Lµ{¤¤±`¨£°ÝÃD ¦pªG¦b¦w¸Ë¸É¤Bªº®ÉÔ¹J¨ì¦p¤UÃþ¦ü¿ù»~¡G 1¡B¦w¸Ë¹Lµ{¤¤¥X²{“¥H«e¶i¦æªºµ{§Ç³Ð«Ø¤F±¾°_ªº¤å¥ó¾Þ§@¡A¹B¦æ¦w¸Ëµ{§Ç«e¡A¥²¶·«·s±Ò°Ê”¡A½Ð«ö·Ó¤U±¨BÆJ¸Ñ¨M¡G a¡B«±Ò¾÷¾¹¡A¦A¶i¦æ¦w¸Ë¡A¦pªGµo²{ÁÙ¦³¸Ó¿ù»~¡A½Ð«ö¤U±¨BÆJ b¡B¦b¶}©l->¹B¦æ¤¤¿é¤Jregedit c¡B¨ìHKEY_LOCAL_MACHINE YSTEM\CurrentControlSet\Control ession Manager ¦ì¸m d¡B¿ï¾Ü¤å¥ó->Ë¥X,«O¦s e¡B¦b¥kÃ䵡¤f¥kÀ»PendingFileRenameOperations¡A¿ï¾Ü§R°£¡AµM«á½T»{ f¡B«±Ò¦w¸Ë¡A°ÝÃD¸Ñ¨M ¦pªGÁÙ¦³¦P¼Ë°ÝÃD¡A½ÐÀˬd¨ä¥¦µù¥Uªí¤¤¬O§_¦³¸ÓȦs¦b¡A¦p¦³½Ð§R±¼¡C 2¡B¦b¦w¸ËSQL Server SP3¡A¦³®ÉÔ·|¥X²{¡GµL½×¥Îwindows»{ÃÒÁÙ¬O²V©M»{ÃÒ¡A³£¥X²{±K½X¿ù»~ªº±¡ªp¡A³o®É¬d¬ÝÁ{®É¥Ø¿ý¤Uªºsqlsp.out¡A·|µo²{¥H¤U´yz¡G [TCP/IP Sockets]Specified SQL server not found. [TCP/IP Sockets]ConnectionOpen (Connect()). ¨ä¹ê³o¬OSQL Server SP3ªº¤@Ó¤pbug¡A¦b¦w¸Ësp3ªº®ÉÔ¡A¨S¦³ºÊÅ¥tcp/ipºÝ¤f¡A¥i¥H«ö·Ó¥H¤U¨BÆJ¶i¦æ¡G 1¡B¥´¶}SQL server«È¤á¾¹ºôµ¸¹ê¥Î¤u¨ã©MªA°È¾¹ºôµ¸¤u¨ã¡A½T«O±Ò¥Îªº¨óij¤¤¥]§tname pipe¡A¨Ã¥B¦ì¸m¦b²Ä¤@¦ì. 2¡B½T«O[HKEY_LOCAL_MACHINE OFTWARE\Microsoft\MSSQLServer\Client\ConnectTo] "DSQUERY"="DBNETLIB". ¦pªG¨S¦³¡A½Ð¦Û¤v«Ø¥ß 3¡B°±¤îmssql. 4¡B¶i¦æ¦w¸Ë. ³o¼Ë´N¥i¥H¶i¦æ¥¿½T¦w¸Ë¤F¡C ¤G¡BSQL Server¸É¤Bª©¥»ªºÀˬd SQL Serverªº¸É¤Bª©¥»Àˬd¤£¦pWindows ¸É¤Bª©¥»Àˬdª½±µ¡A¤@Ó¨t²ÎºÞ²zû¡A¦pªG¤£ÁA¸ÑSQL Serverª©¥»¹ïÀ³ªº¸É¤B¸¹¡A¥i¯à¤]·|¹J¨ì¤@ÂI³Â·Ð¡A¦]¦¹¦b³o»¡©ú¤@¤U¡A³q¹L³o¼Ëªº¿ìªk§P§O¾÷¾¹¬O¦w¥þªº¿ìªk¡A¤£·|¹ï¨t²Î²£¥Í¥ô¦ó¼vÅT¡C 1¡B¥ÎIsql©ÎªÌSQL¬d¸ß¤ÀªR¾¹µn¿ý¨ìSQL Server¡A¦pªG¬O¥ÎIsql¡A½Ð¦bcmdµ¡¤f¿é¤Jisql -U sa,µM«á¿é¤J±K½X¡A¶i¤J¡F¦pªG¬O¥ÎSQL¬d¸ß¤ÀªR¾¹¡A½Ð±qµ{§Ç¤¤±Ò°Ê¡A¿é¤Jsa©M±K½X¡]¤]¥i¥H¥ÎwindowsÅçÃÒ¡^¡C 2¡B¦bISQL¤¤¿é¤J¡G Select @@Version¡F go ©ÎªÌSQL¬d¸ß¤ÀªR¾¹¤¤¿é¤J(¨ä¹ê¦pªG¤£·Q¿é¤J¡A¥un¥´¶}À°§UªºÃö©ó´N¥i¥H¤F:)) Select @@Version¡F µM«á«ö°õ¦æ¡F ³o®É·|ªð¦^SQLªºª©¥»«H®§¡A¦p¤U¡G Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 3) ¨ä¤¤ªº8.00.760´N¬OSQL Serverªºª©¥»©M¸É¤B¸¹¡C¹ïÀ³Ãö«Y¦p¤U¡G 8.00.194 ¡Ð——————SQL Server 2000 RTM 8.00.384 ¡Ð——————(SP1) 8.00.534 ¡Ð——————(SP2) 8.00.760 ¡Ð——————(SP3) ³o¼Ë§ÚÌ´N¯à¬Ý¨ìSQL Serverªº¥¿½Tª©¥»©M¸É¤B¸¹¤F¡C §Ṳ́]¥i¥H¥Îxp_msver¬Ý¨ì§ó¸Ô²Óªº«H®§ Sql Server¼Æ¾Ú®wªº³Æ¥÷©M«ì´_±¹¬I ³Ì±`¥Îªº¾Þ§@¡A·s¤â̬ݬ݅… ¤@¡B³Æ¥÷¼Æ¾Ú®w 1¡B¥´¶}SQL¥ø·~ºÞ²z¾¹¡A¦b±±¨î¥x®Ú¥Ø¿ý¤¤¨Ì¦¸ÂI¶}Microsoft SQL Server 2¡BSQL Server²Õ-->ÂùÀ»¥´¶}§AªºªA°È¾¹-->ÂùÀ»¥´¶}¼Æ¾Ú®w¥Ø¿ý 3¡B¿ï¾Ü§Aªº¼Æ¾Ú®w¦WºÙ¡]¦p½×¾Â¼Æ¾Ú®wForum¡^-->µM«áÂI¤W±µæ³æ¤¤ªº¤u¨ã-->¿ï¾Ü³Æ¥÷¼Æ¾Ú®w 4¡B³Æ¥÷¿ï¶µ¿ï¾Ü§¹¥þ³Æ¥÷¡A¥Øªº¤¤ªº³Æ¥÷¨ì¦pªGì¨Ó¦³¸ô®|©M¦WºÙ«h¿ï¤¤¦WºÙÂI§R°£¡AµM«áÂI²K¥[¡A¦pªGì¨Ó¨S¦³¸ô®|©M¦WºÙ«hª½±µ¿ï¾Ü²K¥[¡A±µµÛ«ü©w¸ô®|©M¤å¥ó¦W¡A«ü©w«áÂI½T©wªð¦^³Æ¥÷µ¡¤f¡A±µµÛÂI½T©w¶i¦æ³Æ¥÷ ¤G¡BÁÙì¼Æ¾Ú®w 1¡B¥´¶}SQL¥ø·~ºÞ²z¾¹¡A¦b±±¨î¥x®Ú¥Ø¿ý¤¤¨Ì¦¸ÂI¶}Microsoft SQL Server 2¡BSQL Server²Õ-->ÂùÀ»¥´¶}§AªºªA°È¾¹-->ÂI¹Ï¼ÐÄæªº·s«Ø¼Æ¾Ú®w¹Ï¼Ð¡A·s«Ø¼Æ¾Ú®wªº¦W¦r¦Û¦æ¨ú 3¡BÂIÀ»·s«Ø¦nªº¼Æ¾Ú®w¦WºÙ¡]¦p½×¾Â¼Æ¾Ú®wForum¡^-->µM«áÂI¤W±µæ³æ¤¤ªº¤u¨ã-->¿ï¾Ü«ì´_¼Æ¾Ú®w 4¡B¦b¼u¥X¨Óªºµ¡¤f¤¤ªºÁÙì¿ï¶µ¤¤¿ï¾Ü±q³]³Æ-->ÂI¿ï¾Ü³]³Æ-->ÂI²K¥[-->µM«á¿ï¾Ü§Aªº³Æ¥÷¤å¥ó¦W-->²K¥[«áÂI½T©wªð¦^¡A³o®ÉÔ³]³ÆÄæÀ³¸Ó¥X²{±zè¤~¿ï¾Üªº¼Æ¾Ú®w³Æ¥÷¤å¥ó¦W¡A³Æ¥÷¸¹Àq»{¬°1¡]¦pªG±z¹ï¦P¤@Ó¤å¥ó°µ¹L¦h¦¸³Æ¥÷¡A¥i¥HÂIÀ»³Æ¥÷¸¹®ÇÃ䪺¬d¬Ý¤º®e¡A¦b´_¿ï®Ø¤¤¿ï¾Ü³Ì·sªº¤@¦¸³Æ¥÷«áÂI½T©w¡^-->µM«áÂIÀ»¤W¤è±`³W®ÇÃ䪺¿ï¶µ«ö¶s 5¡B¦b¥X²{ªºµ¡¤f¤¤¿ï¾Ü¦b²{¦³¼Æ¾Ú®w¤W±j¨îÁÙì¡A¥H¤Î¦b«ì´_§¹¦¨ª¬ºA¤¤¿ï¾Ü¨Ï¼Æ¾Ú®w¥i¥HÄ~Äò¹B¦æ¦ýµLªkÁÙì¨ä¥¦¨Æ°È¤é»xªº¿ï¶µ¡C¦bµ¡¤fªº¤¤¶¡³¡¦ìªº±N¼Æ¾Ú®w¤å¥óÁÙ쬰³o¸Ìn«ö·Ó§ASQLªº¦w¸Ë¶i¦æ³]¸m¡]¤]¥i¥H«ü©w¦Û¤vªº¥Ø¿ý¡^¡AÅÞ¿è¤å¥ó¦W¤£»Ýn§ï°Ê¡A²¾¦Üª«²z¤å¥ó¦Wn®Ú¾Ú§A©Ò«ì´_ªº¾÷¾¹±¡ªp°µ§ï°Ê¡A¦p±zªºSQL¼Æ¾Ú®w¸Ë¦bD:\Program Files\Microsoft SQL Server\MSSQL\Data¡A¨º»ò´N«ö·Ó±z«ì´_¾÷¾¹ªº¥Ø¿ý¶i¦æ¬ÛÃö§ï°Ê§ï°Ê¡A¨Ã¥B³Ì«áªº¤å¥ó¦W³Ì¦n§ï¦¨±z·í«eªº¼Æ¾Ú®w¦W¡]¦pì¨Ó¬Obbs_data.mdf¡A²{¦bªº¼Æ¾Ú®w¬Oforum¡A´N§ï¦¨forum_data.mdf¡^¡A¤é»x©M¼Æ¾Ú¤å¥ó³£n«ö·Ó³o¼Ëªº¤è¦¡°µ¬ÛÃöªº§ï°Ê¡]¤é»xªº¤å¥ó¦W¬O*_log.ldfµ²§Àªº¡^¡A³o¸Ìªº«ì´_¥Ø¿ý±z¥i¥H¦Û¥Ñ³]¸m¡A«e´£¬O¸Ó¥Ø¿ý¥²¶·¦s¦b¡]¦p±z¥i¥H«ü©wd: qldata\bbs_data.mdf©ÎªÌd: qldata\bbs_log.ldf¡^¡A§_«h«ì´_±N³ø¿ù 6¡B×§ï§¹¦¨«á¡AÂIÀ»¤U±ªº½T©w¶i¦æ«ì´_¡A³o®É·|¥X²{¤@Ó¶i«×±ø¡A´£¥Ü«ì´_ªº¶i«×¡A«ì´_§¹¦¨«á¨t²Î·|¦Û°Ê´£¥Ü¦¨¥\¡A¦p¤¤¶¡´£¥Ü³ø¿ù¡A½Ð°O¿ý¤U¬ÛÃöªº¿ù»~¤º®e¨Ã¸ß°Ý¹ïSQL¾Þ§@¤ñ¸û¼ô±xªº¤Hû¡A¤@¯ëªº¿ù»~µL«D¬O¥Ø¿ý¿ù»~©ÎªÌ¤å¥ó¦W«½Æ©ÎªÌ¤å¥ó¦W¿ù»~©ÎªÌªÅ¶¡¤£°÷©ÎªÌ¼Æ¾Ú®w¥¿¦b¨Ï¥Î¤¤ªº¿ù»~¡A¼Æ¾Ú®w¥¿¦b¨Ï¥Îªº¿ù»~±z¥i¥H¹Á¸ÕÃö³¬©Ò¦³Ãö©óSQLµ¡¤fµM«á«·s¥´¶}¶i¦æ«ì´_¾Þ§@¡A¦pªGÁÙ´£¥Ü¥¿¦b¨Ï¥Îªº¿ù»~¥i¥H±NSQLªA°È°±¤îµM«á«°_¬Ý¬Ý¡A¦Ü©ó¤Wz¨ä¥¦ªº¿ù»~¤@¯ë³£¯à«ö·Ó¿ù»~¤º®e°µ¬ÛÀ³§ï°Ê«á§Y¥i«ì´_ ¤T¡B¦¬ÁY¼Æ¾Ú®w ¤@¯ë±¡ªp¤U¡ASQL¼Æ¾Ú®wªº¦¬ÁY¨Ã¤£¯à«Ü¤jµ{«×¤W´î¤p¼Æ¾Ú®w¤j¤p¡A¨ä¥Dn§@¥Î¬O¦¬ÁY¤é»x¤j¤p¡AÀ³·í©w´Á¶i¦æ¦¹¾Þ§@¥H§K¼Æ¾Ú®w¤é»x¹L¤j 1¡B³]¸m¼Æ¾Ú®w¼Ò¦¡¬°Â²³æ¼Ò¦¡¡G¥´¶}SQL¥ø·~ºÞ²z¾¹¡A¦b±±¨î¥x®Ú¥Ø¿ý¤¤¨Ì¦¸ÂI¶}Microsoft SQL Server-->SQL Server²Õ-->ÂùÀ»¥´¶}§AªºªA°È¾¹-->ÂùÀ»¥´¶}¼Æ¾Ú®w¥Ø¿ý-->¿ï¾Ü§Aªº¼Æ¾Ú®w¦WºÙ¡]¦p½×¾Â¼Æ¾Ú®wForum¡^-->µM«áÂIÀ»¥kÁä¿ï¾ÜÄÝ©Ê-->¿ï¾Ü¿ï¶µ-->¦b¬G»ÙÁÙ쪺¼Ò¦¡¤¤¿ï¾Ü“²³æ”¡AµM«á«ö½T©w«O¦s 2¡B¦b·í«e¼Æ¾Ú®w¤WÂI¥kÁä¡A¬Ý©Ò¦³¥ô°È¤¤ªº¦¬ÁY¼Æ¾Ú®w¡A¤@¯ë¸Ì±ªºÀq»{³]¸m¤£¥Î½Õ¾ã¡Aª½±µÂI½T©w 3¡B¦¬ÁY¼Æ¾Ú®w§¹¦¨«á¡A«ØÄ³±N±zªº¼Æ¾Ú®wÄݩʫ·s³]¸m¬°¼Ð·Ç¼Ò¦¡¡A¾Þ§@¤èªk¦P²Ä¤@ÂI¡A¦]¬°¤é»x¦b¤@¨Ç²§±`±¡ªp¤U©¹©¹¬O«ì´_¼Æ¾Ú®wªº«n¨Ì¾Ú ¥|¡B³]©w¨C¤é¦Û°Ê³Æ¥÷¼Æ¾Ú®w ±j¯P«ØÄ³¦³±ø¥óªº¥Î¤á¶i¦æ¦¹¾Þ§@¡I 1¡B¥´¶}¥ø·~ºÞ²z¾¹¡A¦b±±¨î¥x®Ú¥Ø¿ý¤¤¨Ì¦¸ÂI¶}Microsoft SQL Server-->SQL Server²Õ-->ÂùÀ»¥´¶}§AªºªA°È¾¹ 2¡BµM«áÂI¤W±µæ³æ¤¤ªº¤u¨ã-->¿ï¾Ü¼Æ¾Ú®wºûÅ@p¹º¾¹ 3¡B¤U¤@¨B¿ï¾Ün¶i¦æ¦Û°Ê³Æ¥÷ªº¼Æ¾Ú-->¤U¤@¨B§ó·s¼Æ¾ÚÀu¤Æ«H®§¡A³o¸Ì¤@¯ë¤£¥Î°µ¿ï¾Ü-->¤U¤@¨BÀˬd¼Æ¾Ú§¹¾ã©Ê¡A¤]¤@¯ë¤£¿ï¾Ü 4¡B¤U¤@¨B«ü©w¼Æ¾Ú®wºûÅ@p¹º¡AÀq»{ªº¬O1©P³Æ¥÷¤@¦¸¡AÂIÀ»§ó§ï¿ï¾Ü¨C¤Ñ³Æ¥÷«áÂI½T©w 5¡B¤U¤@¨B«ü©w³Æ¥÷ªººÏ½L¥Ø¿ý¡A¿ï¾Ü«ü©w¥Ø¿ý¡A¦p±z¥i¥H¦bD½L·s«Ø¤@ӥؿý¦p¡Gd:\databak¡AµM«á¦b³o¸Ì¿ï¾Ü¨Ï¥Î¦¹¥Ø¿ý¡A¦pªG±zªº¼Æ¾Ú®w¤ñ¸û¦h³Ì¦n¿ï¾Ü¬°¨CӼƾڮw«Ø¥ß¤l¥Ø¿ý¡AµM«á¿ï¾Ü§R°£¦©ó¦h¤Ö¤Ñ«eªº³Æ¥÷¡A¤@¯ë³]©w4¡Ð7¤Ñ¡A³o¬Ý±zªº¨ãÅ鳯¥÷n¨D¡A³Æ¥÷¤å¥óÂX®i¦W¤@¯ë³£¬Obak´N¥ÎÀq»{ªº 6¡B¤U¤@¨B«ü©w¨Æ°È¤é»x³Æ¥÷p¹º¡A¬Ý±zªº»Ýn°µ¿ï¾Ü-->¤U¤@¨Bn¥Í¦¨ªº³øªí¡A¤@¯ë¤£°µ¿ï¾Ü-->¤U¤@¨BºûÅ@p¹º¾ú¥v°O¿ý¡A³Ì¦n¥ÎÀq»{ªº¿ï¶µ-->¤U¤@¨B§¹¦¨ 7¡B§¹¦¨«á¨t²Î«Ü¥i¯à·|´£¥ÜSql Server AgentªA°È¥¼±Ò°Ê¡A¥ýÂI½T©w§¹¦¨p¹º³]©w¡AµM«á§ä¨ì®à±³Ì¥kÃ䪬ºAÄæ¤¤ªºSQLºñ¦â¹Ï¼Ð¡AÂùÀ»ÂI¶}¡A¦bªA°È¤¤¿ï¾ÜSql Server Agent¡AµM«áÂIÀ»¹B¦æ½bÀY¡A¿ï¤W¤U¤èªº·í±Ò°ÊOS®É¦Û°Ê±Ò°ÊªA°È 8¡B³oÓ®ÉԼƾڮwp¹º¤w¸g¦¨¥\ªº¹B¦æ¤F¡A¥L±N«ö·Ó±z¤W±ªº³]¸m¶i¦æ¦Û°Ê³Æ¥÷ ×§ïp¹º¡G 1¡B¥´¶}¥ø·~ºÞ²z¾¹¡A¦b±±¨î¥x®Ú¥Ø¿ý¤¤¨Ì¦¸ÂI¶}Microsoft SQL Server-->SQL Server²Õ-->ÂùÀ»¥´¶}§AªºªA°È¾¹-->ºÞ²z-->¼Æ¾Ú®wºûÅ@p¹º-->¥´¶}«á¥i¬Ý¨ì§A³]©wªºp¹º¡A¥i¥H¶i¦æ×§ï©ÎªÌ§R°£¾Þ§@ ¤¡B¼Æ¾ÚªºÂಾ¡]·s«Ø¼Æ¾Ú®w©ÎÂಾªA°È¾¹¡^ ¤@¯ë±¡ªp¤U¡A³Ì¦n¨Ï¥Î³Æ¥÷©MÁÙì¾Þ§@¨Ó¶i¦æÂಾ¼Æ¾Ú¡A¦b¯S®í±¡ªp¤U¡A¥i¥H¥Î¾É¤J¾É¥Xªº¤è¦¡¶i¦æÂಾ¡A³o¸Ì¤¶²Ðªº´N¬O¾É¤J¾É¥X¤è¦¡¡A¾É¤J¾É¥X¤è¦¡Âಾ¼Æ¾Ú¤@Ó§@¥Î´N¬O¥i¥H¦b¦¬ÁY¼Æ¾Ú®wµL®Äªº±¡ªp¤U¥Î¨Ó´î¤p¡]¦¬ÁY¡^¼Æ¾Ú®wªº¤j¤p¡A¥»¾Þ§@Àq»{¬°±z¹ïSQLªº¾Þ§@¦³¤@©wªºÁA¸Ñ¡A¦pªG¹ï¨ä¤¤ªº³¡¤À¾Þ§@¤£²z¸Ñ¡A¥i¥H«t¸ß°Êºô¬ÛÃö¤Hû©ÎªÌ¬d¸ßºô¤W¸ê®Æ 1¡B±Nì¼Æ¾Ú®wªº©Ò¦³ªí¡B¦sÀx¹Lµ{¾É¥X¦¨¤@ÓSQL¤å¥ó¡A¾É¥Xªº®ÉÔª`·N¦b¿ï¶µ¤¤¿ï¾Ü½s¼g¯Á¤Þ¸}¥»©M½s¼g¥DÁä¡B¥~Áä¡BÀq»{È©MÀˬd¬ù§ô¸}¥»¿ï¶µ 2¡B·s«Ø¼Æ¾Ú®w¡A¹ï·s«Ø¼Æ¾Ú®w°õ¦æ²Ä¤@¨B¤¤©Ò«Ø¥ßªºSQL¤å¥ó 3¡B¥ÎSQLªº¾É¤J¾É¥X¤è¦¡¡A¹ï·s¼Æ¾Ú®w¾É¤Jì¼Æ¾Ú®w¤¤ªº©Ò¦³ªí¤º®e §Q¥Î¼Æ¾Ú®w¤é»x«ì´_¼Æ¾Ú¨ì®É¶¡ÂIªº¾Þ§@ ¥Ñ©ó¤£¥¿±`ªº¼Æ¾Ú¥á¥¢¡A¦Ó¤S¤£·Q¨Ï¥Î³Æ¥÷¼Æ¾ÚÁÙì¡A¥unì¨Ó¦³³Æ¥÷¥B·í«e¤é»x«O¦s§¹¦n¡A¥i¥H±Ä¥Î³oÓ¤èªk¸Õ¸Õ¡A»¡¤£©w¥i®¾¦^·l¥¢…… 1¡A¦pªG»~¾Þ§@¤§«e¦s¦b¤@Ó¥þ®w³Æ¥÷¡]©Î¤w¦³¦hÓ®t²§³Æ¥÷©Î¼W¶q³Æ¥÷¡^¡Aº¥ýn°µªº¨Æ´N¬O¶i ¶i¦æ¤@¦¸¤é»x³Æ¥÷¡]¦pªG¬°¤F¤£Åý¤é»x¤å¥óÅܤj¦Ó¸mtrunc. log on chkpt.¿ï¶µ¬°1¨º§A´N¦ºÂ¼¤F¡^ ’ backup log dbName to disk='fileName' 2¡A«ì´_¤@Ó¥þ®w³Æ¥÷¡Aª`·N»Ýn¨Ï¥Îwith norecovery¡A¦pªGÁÙ¦³¨ä¥L®t²§©Î¼W¶q³Æ¥÷¡A«h³vÓ«ì ´_ ’ restore database dbName from disk='fileName' with norecovery 3¡A«ì´_³Ì«á¤@Ó¤é»x³Æ¥÷§Yè°µªº¤é»x³Æ¥÷¡A«ü©w«ì´_®É¶¡ÂI¨ì»~¾Þ§@¤§«eªº®É¨è ’ restore log dbName from disk='fileName' ’ with stopat='date_time' ¥H¤W³o¨Ç¾Þ§@³£¥i¥H¦bSQL SERVER¥ø·~ºÞ²z¾¹¸Ì§¹¦¨¡AÃø«×¤£¤j¡C¡C¡C ·íµM¡A¦pªG»~¾Þ§@¬O¤@¨Ç¤£°O¤é»xªº¾Þ§@¤ñ¦ptruncate table¡Aselect intoµ¥¾Þ§@¡A¨º»ò¬OµLªk§Q ¥Î¤Wz¤èªk¨Ó«ì´_¼Æ¾Úªº... SQL Server2000¼Æ¾Ú®w¤å¥ó·lÃa®É¦p¦ó«ì´_ ¥X²{³o¼Ëªº°ÝÃD¬O¤ñ¸ûÄY«ªº¤F¡A¯à§_×´_¥u¯à¬Ý§Aªº¹B®ð…… SQL Server2000¤¤¡A¦pªG¼Æ¾Ú®w¤å¥ó¡]«D¨t²Î¼Æ¾Ú®w¤å¥ó¡^¹J¨ì¿ù»~ªº®ÉÔ¡A¶È¾A¥Î©ó«Dmaster,msdbªº¼Æ¾Ú®w¡C »¡©ú¦p¤U¡G 1 «Ø¤@Ó´ú¸Õ¼Æ¾Ú®wtest(¼Æ¾Ú®wÃþ«¬¬°§¹¥þ) 2 «Ø¤@Óªí¡A´¡¤JÂI°O¿ý create table a(c1 varchar(2)) go insert into a values('aa') go insert into a values('bb') go 3 §@§¹¥þ³Æ¥÷¡A¨ì¤å¥ótest_1.bak 4 ¦b§@¤@ÂI×§ï insert into a values('cc') go create table b(c1 int) go insert into b values(1) go insert into b values(2) go 5 shutdown ¼Æ¾Ú®wªA°È¾¹ 6 ¥Îultraedit½s¿è¼Æ¾Ú®w¤å¥ótest_data.mdf,ÀH«K×§ïÂI¦r¸`¤º®e,¬Û·í©ó¼Æ¾Ú®w¾D¨ìP©Rªº·lÃa¡C 7 ±Ò°Ê¼Æ¾Ú®w¡A¨Ã¥B¹B¦æ¥ø·~ºÞ²z¾¹¡AÂI¶}¼Æ¾Ú®w¡A¬Ý¨ìtestÅܦ¨¦Ç¦â¡A¦Ó¥BÅã¥Ü¸mºÃ¡C 8 ¹B¦æisql -SLocalhost -Usa -P 1> backup log test TO DISK='D:Program FilesMicrosoft SQL ServerMSSQLBACKUP est_2.bak' WITH NO_TRUNCATE 2>go ¤w³B²z 2 ¶¡A³o¨Ç¶ÄÝ©ó¼Æ¾Ú®w 'test' ªº¤å¥ó 'TEST_Log'¡]¦ì©ó¤å¥ó 1 ¤W¡^¡C BACKUP LOG ¾Þ§@¦¨¥\¦a³B²z¤F 2 ¶¡Aªá¶O¤F 0.111 ¬í¡]0.087 MB/¬í¡^¡C 9 ¶i¦æ«ì´_³Ì¦Ñªº§¹¥þ³Æ¥÷ 1> RESTORE DATABASE test FROM DISK='D:Program FilesMicrosoft SQL ServerMSSQL BACKUP est_1.bak' WITH NORECOVERY 2> go ¤w³B²z 96 ¶¡A³o¨Ç¶ÄÝ©ó¼Æ¾Ú®w 'test' ªº¤å¥ó 'TEST_Data'¡]¦ì©ó¤å¥ó 1 ¤W¡^¡C ¤w³B²z 1 ¶¡A³o¨Ç¶ÄÝ©ó¼Æ¾Ú®w 'test' ªº¤å¥ó 'TEST_Log'¡]¦ì©ó¤å¥ó 1 ¤W¡^¡C RESTORE DATABASE ¾Þ§@¦¨¥\¦a³B²z¤F 97 ¶¡Aªá¶O¤F 0.107 ¬í¡]7.368 MB/¬í¡^¡C 10 «ì´_³Ìªñªº¤é»x 1> RESTORE LOG test FROM DISK='D:Program FilesMicrosoft SQL ServerMSSQLBACKU P est_2.bak' WITH RECOVERY 2> go ¤w³B²z 2 ¶¡A³o¨Ç¶ÄÝ©ó¼Æ¾Ú®w 'test' ªº¤å¥ó 'TEST_Log'¡]¦ì©ó¤å¥ó 1 ¤W¡^¡C RESTORE LOG ¾Þ§@¦¨¥\¦a³B²z¤F 2 ¶¡Aªá¶O¤F 0.056 ¬í¡]0.173 MB/¬í¡^¡C ¦sÀx¹Lµ{½s¼g¸gÅç©MÀu¤Æ±¹¬I ¸gÅ礧½Í¡A¬Ý¬Ý…… ¤@¡B¾A¦XŪªÌ¹ï¹³¡G¼Æ¾Ú®w¶}µoµ{§Çû¡A¼Æ¾Ú®wªº¼Æ¾Ú¶q«Ü¦h¡A¯A¤Î¨ì¹ïSP¡]¦sÀx¹Lµ{¡^ªºÀu¤Æªº¶µ¥Ø¶}µo¤Hû¡A¹ï¼Æ¾Ú®w¦³¿@«p¿³½ìªº¤H¡C ¡@ ¡@¡@¤G¡B¤¶²Ð¡G¦b¼Æ¾Ú®wªº¶}µo¹Lµ{¤¤¡A¸g±`·|¹J¨ì½ÆÂøªº·~°ÈÅÞ¿è©M¹ï¼Æ¾Ú®wªº¾Þ§@¡A³oÓ®ÉÔ´N·|¥ÎSP¨Ó«Ê¸Ë¼Æ¾Ú®w¾Þ§@¡C¦pªG¶µ¥ØªºSP¸û¦h¡A®Ñ¼g¤S¨S¦³¤@©wªº³W½d¡A±N·|¼vÅT¥H«áªº¨t²ÎºûÅ@§xÃø©M¤jSPÅÞ¿èªºÃø¥H²z¸Ñ¡A¥t¥~¦pªG¼Æ¾Ú®wªº¼Æ¾Ú¶q¤j©ÎªÌ¶µ¥Ø¹ïSPªº©Ê¯àn¨D«Ü¡A´N·|¹J¨ìÀu¤Æªº°ÝÃD¡A§_«h³t«×¦³¥i¯à«ÜºC¡A¸g¹L¿Ë¨¸gÅç¡A¤@Ó¸g¹LÀu¤Æ¹LªºSPn¤ñ¤@өʯà®tªºSPªº®Ä²v¬Æ¦Ü°ª´X¦Ê¿¡C ¡@ ¡@¡@¤T¡B¤º®e¡G ¡@ ¡@¡@1¡B¶}µo¤Hû¦pªG¥Î¨ì¨ä¥L®wªºTable©ÎView¡A°È¥²¦b·í«e®w¤¤«Ø¥ßView¨Ó¹ê²{¸ó®w¾Þ§@¡A³Ì¦n¤£nª½±µ¨Ï¥Î“databse.dbo.table_name”¡A¦]¬°sp_depends¤£¯àÅã¥Ü¥X¸ÓSP©Ò¨Ï¥Îªº¸ó®wtable©Îview¡A¤£¤è«K®ÕÅç¡C¡@¡@ ¡@¡@2¡B¶}µo¤Hû¦b´£¥æSP«e¡A¥²¶·¤w¸g¨Ï¥Îset showplan on¤ÀªR¹L¬d¸ßp¹º¡A°µ¹L¦Û¨ªº¬d¸ßÀu¤ÆÀˬd¡C ¡@ ¡@¡@3¡B°ªµ{§Ç¹B¦æ®Ä²v¡AÀu¤ÆÀ³¥Îµ{§Ç¡A¦bSP½s¼g¹Lµ{¤¤À³¸Óª`·N¥H¤U´XÂI¡G ¡@¡@ ¡@¡@a)SQLªº¨Ï¥Î³W½d¡G ¡@¡@¡@i.¡@ºÉ¶qÁ×§K¤j¨Æ°È¾Þ§@¡A·V¥Îholdlock¤l¥y¡A´£°ª¨t²Î¨Ãµo¯à¤O¡C ¡@¡@¡@ii.¡@ºÉ¶qÁ×§K¤ÏÂгX°Ý¦P¤@±i©Î´X±iªí¡A¤×¨ä¬O¼Æ¾Ú¶q¸û¤jªºªí¡A¥i¥H¦Ò¼{¥ý®Ú¾Ú±ø¥ó´£¨ú¼Æ¾Ú¨ìÁ{®Éªí¤¤¡AµM«á¦A°µ³s±µ¡C ¡@¡@¡@iii.¡@ºÉ¶qÁ×§K¨Ï¥Î´å¼Ð¡A¦]¬°´å¼Ðªº®Ä²v¸û®t¡A¦pªG´å¼Ð¾Þ§@ªº¼Æ¾Ú¶W¹L1¸U¦æ¡A¨º»ò´NÀ³¸Ó§ï¼g¡F¦pªG¨Ï¥Î¤F´å¼Ð¡A´NnºÉ¶qÁ×§K¦b´å¼Ð´`Àô¤¤¦A¶i¦æªí³s±µªº¾Þ§@¡C ¡@¡@¡@iv.¡@ª`·Nwhere¦r¥y¼gªk¡A¥²¶·¦Ò¼{»y¥y¶¶§Ç¡AÀ³¸Ó®Ú¾Ú¯Á¤Þ¶¶§Ç¡B½d³ò¤j¤p¨Ó½T©w±ø¥ó¤l¥yªº«e«á¶¶§Ç¡AºÉ¥i¯àªºÅý¦r¬q¶¶§Ç»P¯Á¤Þ¶¶§Ç¬Û¤@P¡A½d³ò±q¤j¨ì¤p¡C ¡@¡@¡@v.¡@¤£n¦bwhere¤l¥y¤¤ªº“=”¥ªÃä¶i¦æ¨ç¼Æ¡Bºâ³N¹Bºâ©Î¨ä¥Lªí¹F¦¡¹Bºâ¡A§_«h¨t²Î±N¥i¯àµLªk¥¿½T¨Ï¥Î¯Á¤Þ¡C ¡@¡@¡@vi.¡@ºÉ¶q¨Ï¥Îexists¥N´Àselect count(1)¨Ó§PÂ_¬O§_¦s¦b°O¿ý¡Acount¨ç¼Æ¥u¦³¦b²Îpªí¤¤©Ò¦³¦æ¼Æ®É¨Ï¥Î¡A¦Ó¥Bcount(1)¤ñcount(*)§ó¦³®Ä²v¡C ¡@¡@¡@vii.¡@ºÉ¶q¨Ï¥Î“>=”¡A¤£n¨Ï¥Î“>”¡C ¡@¡@¡@viii.¡@ª`·N¤@¨Çor¤l¥y©Munion¤l¥y¤§¶¡ªº´À´« ¡@¡@¡@ix.¡@ª`·Nªí¤§¶¡³s±µªº¼Æ¾ÚÃþ«¬¡AÁ×§K¤£¦PÃþ«¬¼Æ¾Ú¤§¶¡ªº³s±µ¡C ¡@¡@¡@x.¡@ª`·N¦sÀx¹Lµ{¤¤°Ñ¼Æ©M¼Æ¾ÚÃþ«¬ªºÃö«Y¡C ¡@¡@¡@xi.¡@ª`·Ninsert¡Bupdate¾Þ§@ªº¼Æ¾Ú¶q¡A¨¾¤î»P¨ä¥LÀ³¥Î½Ä¬ð¡C¦pªG¼Æ¾Ú¶q¶W¹L200Ӽƾڶ±¡]400k¡^¡A¨º»ò¨t²Î±N·|¶i¦æÂê¤É¯Å¡A¶¯ÅÂê·|¤É¯Å¦¨ªí¯ÅÂê¡C ¡@¡@ ¡@¡@b)¯Á¤Þªº¨Ï¥Î³W½d¡G ¡@¡@¡@i.¡@¯Á¤Þªº³Ð«Øn»PÀ³¥Îµ²¦X¦Ò¼{¡A«ØÄ³¤jªºOLTPªí¤£n¶W¹L6Ó¯Á¤Þ¡C ¡@¡@¡@ii.¡@ºÉ¥i¯àªº¨Ï¥Î¯Á¤Þ¦r¬q§@¬°¬d¸ß±ø¥ó¡A¤×¨ä¬O»EÁL¯Á¤Þ¡A¥²n®É¥i¥H³q¹Lindex index_name¨Ó±j¨î«ü©w¯Á¤Þ ¡@¡@¡@iii.¡@Á×§K¹ï¤jªí¬d¸ß®É¶i¦ætable scan¡A¥²n®É¦Ò¼{·s«Ø¯Á¤Þ¡C ¡@¡@¡@iv.¡@¦b¨Ï¥Î¯Á¤Þ¦r¬q§@¬°±ø¥ó®É¡A¦pªG¸Ó¯Á¤Þ¬OÁp¦X¯Á¤Þ¡A¨º»ò¥²¶·¨Ï¥Î¨ì¸Ó¯Á¤Þ¤¤ªº²Ä¤@Ó¦r¬q§@¬°±ø¥ó®É¤~¯à«OÃÒ¨t²Î¨Ï¥Î¸Ó¯Á¤Þ¡A§_«h¸Ó¯Á¤Þ±N¤£·|³Q¨Ï¥Î¡C ¡@¡@¡@v.¡@nª`·N¯Á¤ÞªººûÅ@¡A¶g´Á©Ê««Ø¯Á¤Þ¡A«·s½sͦsÀx¹Lµ{¡C¡@¡@ ¡@¡@c)tempdbªº¨Ï¥Î³W½d¡G ¡@¡@¡@i.¡@ºÉ¶qÁ×§K¨Ï¥Îdistinct¡Border by¡Bgroup by¡Bhaving¡Bjoin¡Bcumpute¡A¦]¬°³o¨Ç»y¥y·|¥[«tempdbªºt¾á¡C ¡@¡@¡@ii.¡@Á×§KÀWÁc³Ð«Ø©M§R°£Á{®Éªí¡A´î¤Ö¨t²Îªí¸ê·½ªº®ø¯Ó¡C ¡@¡@¡@iii.¡@¦b·s«ØÁ{®Éªí®É¡A¦pªG¤@¦¸©Ê´¡¤J¼Æ¾Ú¶q«Ü¤j¡A¨º»ò¥i¥H¨Ï¥Îselect into¥N´Àcreate table¡AÁ×§Klog¡A´£°ª³t«×¡F¦pªG¼Æ¾Ú¶q¤£¤j¡A¬°¤F½w©M¨t²Îªíªº¸ê·½¡A«ØÄ³¥ýcreate table¡AµM«áinsert¡C ¡@¡@¡@iv.¡@¦pªGÁ{®Éªíªº¼Æ¾Ú¶q¸û¤j¡A»Ýn«Ø¥ß¯Á¤Þ¡A¨º»òÀ³¸Ó±N³Ð«ØÁ{®Éªí©M«Ø¥ß¯Á¤Þªº¹Lµ{©ñ¦b³æ¿W¤@Ó¤l¦sÀx¹Lµ{¤¤¡A³o¼Ë¤~¯à«OÃÒ¨t²Î¯à°÷«Ü¦nªº¨Ï¥Î¨ì¸ÓÁ{®Éªíªº¯Á¤Þ¡C ¡@¡@¡@ v.¡@¦pªG¨Ï¥Î¨ì¤FÁ{®Éªí¡A¦b¦sÀx¹Lµ{ªº³Ì«á°È¥²±N©Ò¦³ªºÁ{®ÉªíÅ㦡§R°£¡A¥ýtruncate table¡AµM«ádrop table¡A³o¼Ë¥i¥HÁ×§K¨t²Îªíªº¸ûªø®É¶¡Âê©w¡C ¡@¡@¡@ vi.¡@·V¥Î¤jªºÁ{®Éªí»P¨ä¥L¤jªíªº³s±µ¬d¸ß©M×§ï¡A´î§C¨t²Îªít¾á¡A¦]¬°³oºØ¾Þ§@·|¦b¤@±ø»y¥y¤¤¦h¦¸¨Ï¥Îtempdbªº¨t²Îªí¡C¡@¡@ ¡@¡@d)¦X²zªººâªk¨Ï¥Î¡G ¡@¡@ ¡@¡@®Ú¾Ú¤W±¤w´£¨ìªºSQLÀu¤Æ§Þ³N©MASE Tuning¤â¥U¤¤ªºSQLÀu¤Æ¤º®e,µ²¦X¹ê»ÚÀ³¥Î,±Ä¥Î¦hºØºâªk¶i¦æ¤ñ¸û,¥HÀò±o®ø¯Ó¸ê·½³Ì¤Ö¡B®Ä²v³Ì°ªªº¤èªk¡C¨ãÅé¥i¥ÎASE½ÕÀu©R¥O¡Gset statistics io on, set statistics time on , set showplan on µ¥ Âà¦Û¡Ghttp://www.5iuu.com/blogview.asp?logID=2146
|
|
|