2015-12-16 12 views
6

MSDN en article komutu "DBCC CHECKDB" hakkında sözdizimi bölümünde bir veritabanı onarımı gerçekleştirmek için üç yol açıklıyor:Hangi türden bir onarım seviyesi "DBCC CHECKDB (databasename, repair)"?

- REPAIR_ALLOW_DATA_LOSS 
- REPAIR_FAST 
- REPAIR_REBUILD 

Ama bir şüpheli veritabanını onarmak için nasıl arıyordu şu açıklamada bulundu ve Ben üç moddan birini görevin hangi anlayamıyorum:

DBCC CHECKDB (databaseName, onarım)

Bildirimi gerçekleştirdim ve iyi çalışıyor. Kafam karıştı, çünkü "_allow_data_loss", "_fast" veya "_rebuild" sözcüklerini tamamlamadan "onarım" parametresinin tek başına referansı yok. DBCC CHECKDB ikinci parametre olarak sadece "tamir" belirtme önceden

sayesinde

+0

Bunu da http://dba.stackexchange.com/ adresine koymaya değer! – RoKa

+1

İyi bir okuma http://www.sqlskills.com/blogs/paul/misconceptions-around-database-repair/ – Mike

+1

Uzun zamandır bir DBA olmadım, ancak bu eski Sybase kodunun bir karışımı olabilir. . Bazı durumlarda komutun kısaltılmış versiyonlarını alacağını biliyorum. Bunu çalıştırırsan, günlüğün içinde ne var? Eminim dbcc hala hata günlüğünde ortaya çıkıyor ve orada hangi komutun yürütüldüğünü ya da dbcc'in çıkışını temel aldığını gösterebilir, onarımın hangi sürümünün çalıştığını anlayabilirsiniz. – Mike

cevap

2

"repair_allow_data_loss" ile aynı olacaktır. Bunu yerel bir örnekte çalıştırdım ve SQL günlükleri bunu onaylıyor.