База даних "підозрілі" SQL Server?


40

Що ви робите, коли у вас є база даних, яка позначена як Suspect?

Відновити з останньої резервної копії?

Порадьте, будь ласка.

Відповіді:


41

Перше - переконатися, що ви НЕ від'єднуєте цю базу даних.

Відновлення з останнього відомого хорошого резервного копіювання прекрасно. Інакше вам потрібно буде скористатися режимом ремонту EMERGENCY (я припускаю, що у вас працює SQL 2005 або новішої версії). Ось пара публікацій з Пола Рандала на цю тему. Прочитайте їх обох, перш ніж розпочати будь-які дії.

Створення, від'єднання, повторне приєднання та виправлення бази даних SUSPECT

Ремонт в режимі ЕНЕРГЕНТИЧНОГО режиму: саме, дуже остання можливість


5

Досить так.

Як правило, це означає, що файли є напівжирними або відсутніми, або помилка на диску або щось подібне (я бачив, що поганий сектор викликає це).

Мої кроки:

  • Переконайтесь, що там є всі резервні копії
  • Вимкніть SQL Server
  • chkdsk диски, які використовує SQL Server (сподіваємось, не ваш C: звичайно)

Редагувати: Я уточню свою відповідь

  • якщо дані важливі, у мене буде резервна копія
  • час простою, коли возиться з ремонтом та аварійним режимом, для мене занадто довгий

5

Я написав кілька рекомендацій щодо цього для 2 випадків бази даних підозр: коли ви втратили файл даних або файл журналу. Будь ласка, прочитайте наступне:


5
Тож ось що: обмін стеками не працює, якщо все, що ви розміщуєте, - це посилання. Що вам потрібно зробити - це узагальнити вміст у посиланнях, інакше я просто
змушусь

4

З вашого запитання, схоже, у вас є резервна копія. Відновлення БД з гарної резервної копії буде найпростішим і найшвидшим способом отримати операційну базу даних та вийти з підозрілого стану.


5
Але ви втратите дані, якщо у вас немає журналів транзакцій.
mrdenny

0

Моя перша порада; ніколи не відривайте базу даних про підозрюваних. Відновлення бази даних з оновленої резервної копії корисно. Якщо резервна копія недоступна або виникла проблема, EMERGENCYрежим може бути корисним:

Встановити базу даних в аварійний режим:

ALTER DATABASE DB_NAME SET EMERGENCY

Тепер перевірте невідповідність бази даних цьому:

DBCC CHECKDB (‘DB_NAME’)

DBCC CHECKDB Repair Вибір варіанту втрати даних є крайнім засобом. Результатом може бути втрата даних, тому я не пропоную її запускати.

Також перевірте Посилання 1 та Посилання 2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.