Sql database suspect что делать
Перейти к содержимому

Sql database suspect что делать

Устранение неполадок в базах данных доступности AlwaysOn в состоянии Восстановление в ожидании или подозрительном состоянии в SQL Server

В этой статье описываются ошибки и ограничения базы данных доступности в Microsoft SQL Server, которая находится в состоянии или состоянии, и как восстановить базу данных до полной функциональности в группе Recovery Pending Suspect доступности.

Оригинальная версия продукта: SQL Server 2012 г.
Исходный номер КБ: 2857849

Сводка

Предположим, что база данных доступности, определяемая в группе доступности AlwaysOn, переходит в состояние или состояние Recovery Pending Suspect в SQL Server. Если это происходит в основной реплике группы доступности, это влияет на доступность базы данных. В этой ситуации вы не можете получить доступ к базе данных через клиентские приложения. Кроме того, нельзя удалять или удалять базу данных из группы доступности.

Например, предположим, SQL Server запущен, а база данных доступности настроена на Recovery Pending состояние или Suspect состояние. При запросе динамических представлений управления (DMV) в основной реплике с помощью следующего сценария SQL базы данных может быть отчитаться в состоянии или в следующем NOT_HEALTHY RECOVERY_PENDING SUSPECT состоянии:

Снимок экрана результата выполнения для скрипта для проверки состояния базы данных и синхронизации.

Кроме того, эта база данных может быть в состоянии Not Synchronizing /Recovery Pending или Suspect в SQL Server Management Studio.

Снимок экрана базы данных, которая находится в состоянии Not Synchronizing /Recovery Pending.

Если база данных определена в группе доступности, ее нельзя отохить или восстановить. Поэтому необходимо предпринять определенные действия для восстановления базы данных и ее возврата к производственному использованию.

Дополнительные сведения

В следующем контенте обсуждаются ошибки и ограничения базы данных доступности, которая находится в состоянии Восстановления, ожидающих восстановления в различных ситуациях.

Состояние базы данных предотвращает восстановление базы данных

Чтобы восстановить базу данных с параметром, SQL выполнить следующий RECOVERY сценарий.

При запуске этого сценария вы получаете следующее сообщение об ошибке, так как база данных определяется в группе доступности:

Msg 3104, Level 16, State 1, Line 1
RESTORE не может работать на базе данных DatabaseName, так как она настроена для зеркального зеркального доступа к базе данных или присоединилась к группе доступности. Если вы собираетесь восстановить базу данных, используйте ALTER DATABASE, чтобы удалить зеркальное отражение или удалить базу данных из группы доступности.

Msg 3013, Level 16, State 1, Line 1
ВОССТАНОВЛЕНИЕ БАЗЫ данных завершается ненормально.

Состояние базы данных предотвращает удаление базы данных

Вы пытаетесь выполнить следующий сценарий SQL, чтобы отбросить базу данных:

При запуске этого сценария вы получаете следующее сообщение об ошибке, так как база данных определяется в группе доступности:

Msg 3752, Level 16, State 1, Line 1
В настоящее время имя базы данных присоединяется к группе доступности. Прежде чем удалить базу данных, ее необходимо удалить из группы доступности.

Состояние базы данных предотвращает удаление базы данных из группы доступности

Для удаления базы данных из группы доступности SQL следующий сценарий.

При попытке запуска этого скрипта вы получаете следующее сообщение об ошибке, так как база данных доступности принадлежит основной реплике:

Msg 35240, Level 16, State 14, Line 1
Имя базы данных не может быть соединено с группой availabilityGroupName или отсоединяется от нее. Эта операция не поддерживается в основной реплике группы доступности.

Из-за этого сообщения об ошибке может возникнуть принуждение к сбойу в базе данных. После сбой базы данных реплика, которой принадлежит ожидаемая база данных восстановления, будет в второстепенной роли. В этой ситуации вы пытаетесь выполнить следующий сценарий SQL, чтобы удалить базу данных из группы доступности на вторичной реплике:

Однако удалить базу данных из группы доступности по-прежнему нельзя, и вы получите следующее сообщение об ошибке, так как база данных по-прежнему находится в состоянии Recovery Pending:

Msg 921, Level 16, State 112, Line 1
Имя базы данных базы данных еще не восстановлено. Подождите и попробуйте еще раз.

Разрешение, когда база данных находится в второстепенной роли

Чтобы устранить эту проблему, примите следующие общие действия:

  • Удалите из группы доступности реплику, в которой размещена поврежденная база данных, когда база данных находится во второстепенной роли.
  • Устранение любых проблем, влияющих на систему и которые могли привести к сбою базы данных.
  • Восстановление реплики в группе доступности.

Чтобы выполнить эти действия, подключите новую первичную реплику, а затем запустите сценарий SQL, чтобы удалить реплику, в которой размещена база данных о несостоялась ALTER AVAILABILITY GROUP доступности. Для этого выполните указанные ниже действия.

Эти действия предполагают, что в основной реплике сначала размещена поврежденная база данных. Поэтому для перехода реплики, на которой размещена поврежденная база данных, необходимо сначала перейти на второстепенную роль.

Подключение серверу, который работает SQL Server и на который размещена вторичная реплика.

Запустите следующий SQL:

Запустите следующий SQL, чтобы удалить реплику, в которой размещена поврежденная база данных из группы доступности:

Устранение любых проблем на сервере, на SQL Server и которые могут привести к сбою базы данных.

Добавьте реплику обратно в группу доступности.

Разрешение, когда основная реплика является единственной репликой в группе доступности

Если основная реплика содержит поврежденную базу данных и является единственной рабочей репликой в группе доступности, группа доступности должна быть отброшена. После того как группа доступности будет отброшена, база данных может быть восстановлена из резервного копирования, а для восстановления баз данных и возобновления производства могут быть применены другие усилия по аварийному восстановлению.

Чтобы отказаться от группы доступности, используйте следующий сценарий SQL:

На этом этапе можно попытаться восстановить проблемную базу данных. Или вы можете восстановить базу данных из последней известной копии резервного копирования.

Разрешение при падении группы доступности

При падении группы доступности ресурс слушателя также отброшен и прерывается подключение приложений к базам данных доступности.

Чтобы свести к минимуму время простоя приложения, используйте один из следующих методов, чтобы поддерживать подключение приложений через слушателя и отказаться от группы доступности:

Метод 1. Связать слушателя с новой группой доступности (роль) в Failover Cluster Manager

Этот метод позволяет поддерживать слушателя при сбросе и повторном создании группы доступности

На примере SQL Server, к которому подключений руководит существующий слушатель группы доступности, создайте новую, пустую группу доступности. Чтобы упростить этот процесс, используйте команду Transact-SQL для создания группы доступности, у которой нет вторичной реплики или базы данных:

Запустите диспетчер кластера failover и нажмите кнопку Роли в левой области. В области, в которую перечислены роли, выберите исходную группу доступности.

На нижней середине области в вкладке Ресурсы щелкните правой кнопкой мыши ресурс группы доступности и нажмите кнопку Свойства. Щелкните вкладку Зависимостей, удалите зависимость для слушателя и нажмите кнопку ОК.

Снимок экрана вкладки Зависимостей групп доступности.

В соответствии с ресурсами щелкните правой кнопкой мыши слушатель, нажмите кнопку Дополнительные действия, а затем нажмите Кнопку Назначить другую роль.

В диалоговом окне Назначение источника роли выберите новую группу доступности и нажмите кнопку ОК.

Снимок экрана диалоговое окно Назначение источника роли, показывая добавленную новую группу доступности.

В области Ролей выберите новую группу доступности. На нижней середине области в вкладке Ресурсы теперь необходимо увидеть новую группу доступности и ресурс слушателя. Щелкните правой кнопкой мыши новый ресурс группы доступности и нажмите кнопку Свойства.

Щелкните вкладку Зависимостей, выберите ресурс слушателя из выпадаемого окна и нажмите кнопку ОК.

Снимок экрана новой вкладки Зависимостей групп доступности.

В SQL Server Management Studio используйте Object Explorer для подключения к экземпляру SQL Server, в котором размещена основная реплика новой группы доступности. Щелкните AlwaysOn с высокой доступностью, щелкните новую группу доступности и нажмите кнопку Слушатели группы доступности. Вы должны найти слушателя.

Щелкните правой кнопкой мыши слушателя, щелкните Свойства, введите соответствующий номер порта для слушателя, а затем нажмите кнопку ОК.

Снимок экрана свойств слушателя группы доступности, показывающий конфигурацию слушателя.

Это позволяет приложениям, которые используют прослушиватель, по-прежнему использовать его для подключения к экземпляру SQL Server, в который без перерыва размещены производственные базы данных. Оригинальная группа доступности теперь может быть полностью удалена и повторно создана. Или базы данных и реплики могут быть добавлены в новую группу доступности.

При повторном создании исходной группы доступности следует переназначить слушателя на роль группы доступности, настроить зависимость между новым ресурсом группы доступности и слушателем, а затем переназначить порт слушателю. Для этого выполните следующие действия:

  1. Запустите диспетчер кластера failover и нажмите кнопку Роли в левой области. В области, в котором перечислены роли, щелкните новую группу доступности, в которую размещен слушатель.
  2. В нижней средней области в вкладке Ресурсы щелкните правой кнопкой мыши слушателя, нажмите кнопку Дополнительные действия и нажмите кнопку Назначить другую роль. В диалоговом окне выберите группу повторно созданной доступности и нажмите кнопку ОК.
  3. В области "Роли" щелкните группу повторно созданной доступности. В нижней средней области, на вкладке Ресурсы, теперь следует увидеть группу повторно созданной доступности и ресурс слушателя. Щелкните правой кнопкой мыши повторно созданный групповой ресурс доступности и нажмите кнопку Свойства.
  4. Щелкните вкладку Зависимостей, выберите ресурс слушателя из выпадаемого окна и нажмите кнопку ОК.
  5. В SQL Server Management Studio используйте Object Explorer для подключения к экземпляру SQL Server, в котором размещена основная реплика вновь созданной группы доступности. Щелкните AlwaysOn с высокой доступностью, щелкните новую группу доступности и нажмите кнопку Слушатели группы доступности. Вы должны найти слушателя.
  6. Щелкните правой кнопкой мыши слушателя, щелкните Свойства, введите соответствующий номер порта для слушателя, а затем нажмите кнопку ОК.

Метод 2. Связать слушателя с существующим экземпляром SQL Server failover Clustered Instance (SQLFCI)

Если вы размещены в группе доступности в кластерной экземпляре SQL Server failover (SQLFCI), можно связать кластерный ресурс слушателя с кластерной группой ресурсов SQLFCI во время падения и повторного создания группы доступности.

Запустите диспетчер кластера failover и нажмите кнопку Роли в левой области.

В области, в которую перечислены роли, выберите исходную группу доступности.

В нижней средней области на вкладке Ресурсы щелкните правой кнопкой мыши ресурс группы доступности и нажмите кнопку Свойства.

Щелкните вкладку Зависимостей, удалите зависимость для слушателя и нажмите кнопку ОК.

В нижней средней области в вкладке Ресурсы щелкните правой кнопкой мыши слушателя, нажмите кнопку Дополнительные действия и нажмите кнопку Назначить другую роль.

В диалоговом окне Назначение ресурса роли щелкните экземпляр SQL Server FCI и нажмите кнопку ОК.

Снимок экрана диалоговое окно Назначение ресурса роли.

В области Ролей выберите группу SQLFCI. В нижней средней области, на вкладке Ресурсы, теперь необходимо увидеть новый ресурс слушателя.

Это позволяет приложениям, которые используют прослушиватель, по-прежнему использовать его для подключения к экземпляру SQL Server, в котором без перерыва размещены производственные базы данных. Оригинальная группа доступности теперь может быть удалена и повторно создана. Или базы данных и реплики могут быть добавлены в новую группу доступности.

После повторного создания группы доступности перенанаменуем слушателя на роль группы доступности. Затем установите зависимость между новым ресурсом группы доступности и слушателем и перенастройка порта для слушателя:

  1. Запустите диспетчер кластера failover и нажмите кнопку Роли в левой области.
  2. В области, на которую перечислены роли, щелкните исходную роль SQLFCI.
  3. В нижней средней области в вкладке Ресурсы щелкните правой кнопкой мыши слушателя, нажмите кнопку Дополнительные действия и нажмите кнопку Назначить другую роль.
  4. В диалоговом окне щелкните вновь созданную группу доступности и нажмите кнопку ОК.
  5. В области Ролей выберите новую группу доступности.
  6. На вкладке Ресурсы следует увидеть новую группу доступности и ресурс слушателя. Щелкните правой кнопкой мыши новый ресурс группы доступности и нажмите кнопку Свойства.
  7. Щелкните вкладку Зависимостей, выберите ресурс слушателя из выпадаемого окна и нажмите кнопку ОК.
  8. В SQL Server Management Studio используйте Object Explorer для подключения к экземпляру SQL Server, в котором размещена основная реплика новой группы доступности.
  9. Щелкните AlwaysOn с высокой доступностью, щелкните новую группу доступности и нажмите кнопку Слушатели группы доступности. Вы должны найти слушателя.
  10. Щелкните правой кнопкой мыши слушателя, щелкните Свойства, введите соответствующий номер порта для слушателя, а затем нажмите кнопку ОК.

Метод 3. Падение группы доступности, а затем повторное создание группы доступности и слушателя с тем же именем слушателя

Этот метод приведет к небольшому отключению приложений, подключенных в настоящее время, так как группа доступности и слушатель будут отброшены, а затем повторно созданы:

Отбросить группу доступности.

Это также отпадет от слушателя.

Немедленно создайте новую группу доступности, которая включает определение слушателя, на том же сервере, на котором размещены производственные базы данных.

Например, предположим, что ваш прослушиватель группы доступности является aglisten. В следующем заявлении Transact-SQL создается группа доступности без первичной или вторичной базы данных, но также создается прослушиватель с именем aglisten. Приложения могут использовать этот прослушиватель для подключения.

Восстановление поврежденной базы данных. Затем добавьте его и вторичную реплику обратно в группу доступности.

Исправление поврежденной базы данных MS SQL (режим Suspect Mode)

Что делать, если БД MS SQL ушла в режим Suspect Mode?

Бывают ситуации, когда база данных MS SQL внезапно переключается в режим «Suspect Mode». Перевести базу в нормальный режим без починка базы, не представляется возможным. DBCC checkdb также не запускается если база данных находится в этом режиме. Что делать? Следуйте следующим инструкциям.

Прежде всего следует перевести БД в режим EMERGENCY:

Затем выполните тестирование базы данных:

ТОП ПРОДАЖ 1С:Предприятие
Облачные сервисы Логотип 1С Облако

Procedure to Recover SQL Database from Suspect Mode – Ultimate Solutions

SQL Server has become the most widely used relational database management system. It is used by small and large enterprises to manage the data. But like any other application, MS SQL Server also shows different types of errors such as SQL Error Code 5171 , 5172 , SQL Server Error 18456 . In fact, sometimes when the user opens their database, they end up with a message like – Database in SUSPECT mode.

This mode indicates that the database server becomes corrupted or damaged. In such a situation, neither user becomes unable to access the SQL database nor able to recover the database during the server startup. To fix this issue, the users required to take strong steps for the same. Therefore, in this post, we will show how to recover database from the Suspect mode in SQL Server 2012 / 2008 / 2008 R2 / 2016 / 2005 / 2000 / 2017/ 2019.

Let’s have a look on user queries to get a better insight about the SUSPECT Mode problem.

“Hello, I am using Microsoft SQL Server 2008. While performing concurrent transaction activity, my SQL Server faces sudden shutdown. I don’t know why it happens but when I restarted it, SQL Server shows Database is in Suspect Mode. Now, I am not able to access my database. If anyone knows what are the reasons behind Database going in Suspect Mode and how to recover database from Suspect mode in SQL Server 2008. Please let me know ”

“Hi Folks, My production database is marked as ‘Suspect Mode’ which hides all the database objects in the database. Our current resolution is stopping SQL Server services and restarting them” But the database still remain inaccessible. Can anyone please tell me why is this happening and what is the resolution to restore SQL Server database from Suspect Mode ?”

Immediate Solution: In case if you want to know how to recover the database from the Suspect mode. Then the user can take the help of an automated solution. This will help the user to access and recover the SQL Server database components easily.

Reasons for Database in Suspect Mode

There are multiple factors that are responsible for SQL database corruption that also results in database Suspect mode situation. All the reasons are listed here, go through it and prevent the database in future from this error

Reason 1:- When the Transaction log file of SQL Server got corrupted or damaged. In such situation, user can try the SQL Log Analyzer Software and recover SQL database from Transaction log.

Reason 2:- The system becomes unsuccessful to launch the device where the log files are saved.

Reason 3:- Due to the installation of an antivirus program, the users cannot access the transaction log or data file.

Reason 4:- SQL database marked as ‘Suspect’, due to improper shutdown of SQL server or unexpected termination of application.

Reason 5:- Sudden restart during the transactions, leads to corruption issue in a log file, hence database marked as Suspect state.

Reason 6:- Unavailability of free disk space in SQL Server database also turns out to be this situation.

Reason 7:- Introduction of any kind of malicious code in Microsoft SQL database Server.

After understanding the causes of this problem, let’s get started with the troubleshooting methods.

Recover Database From Suspect Mode in SQL Server – Step by Step Approach

Let us discuss the manual workaround to repair database from Suspect Mode in Microsoft SQL Server 2019 / 2017 / 2016 / 2014 / 2012 / 2008 / 2008 R2 / 2005 / 2000. Here are the following steps :

Step 1: Setup Suspect Database to EMERGENCY Mode

In this phase, the admin is going to set the database to Emergency Mode. For this, you need to launch the SQL Server Management Studio and connect to the database. Afterward, open query pane in SSMS and run the following query.
ALTER DATABASE DATABASE_NAME SET EMERGENCY

how to repair sql server 2000 suspect database

Step 2: Time to Check Damage in DB

Once you have the access of database, execute a Consistency Check on master file. Its function is to find out all the logical as well as physical glitch within the database.
DBCC CHECKDB (Database_Name)

microsoft sql server repair database

Step 3: Run Repair Command to Recover Database from Suspect Mode

Run the following query in the SSMS. Although, this query results out in some data loss.
DBCC CHECKDB (N’Database_Name’, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS, NO_INFOMSGS;
GO

Step 4: Get Back to Multi User Mode

At last, switch from Single user mode to Multi User Mode and check the database connectivity.
ALTER DATABASE dbName SET MULTI_USER

Set Multi_USER Mode

Restore Database from Suspect Mode – An Automated Approach

In a case when the SQL database file is extremely damaged or corrupted , the above-described method gets fail to repair database from suspect mode. So, the best alternative of manual solution is to use an automated third-party software. Now, the problem is there are lots of recovery software out there in the market and which one can user trust?

So we suggest the professional Enterprise-Grade database recovery MDF Repair tool to recover the database in a suspect mode in SQL Server. Additionally, this amazing and powerful tool repair highly corrupted MDF and NDF database file. Moreover, it can recover all the database objects like Triggers, Rules, Stored Procedures. Also, the tool allows the user to recover deleted SQL database objects. The software supports MS SQL Server 2019 and all earlier editions.

Download SQL Repair Tool

Below are the Steps to perform SQL Server Suspect Database Recovery

  1. Launch SQL MDF File Recovery Tool and Click on Open.

2. Browse the MDF file from System and then choose Advanced Scan mode.

3. Software will start the Scanning process of MDF file.

4. Preview the Complete SQL Server MDF file database components.

5. Click on Export button to start the recovery process.

Concluding lines

Microsoft SQL Server is the most influential and widely used enterprise database management system. But many times, the error codes causes crucial issues in SQL database. As a result, users are unable to connect or access the database. One such problem of Database in Suspect mode is described in this blog. We have discussed the potential reasons for suspect mode and the manual workaround to recover database from Suspect mode. To ensure the safe recovery of database and to prevent any kind of data loss, one can use alternative option i.e., SQL Recovery software to repair SQL database from Suspect Mode. It will provide the successful recovery of database.

Frequently Asked Questions:-

There are various factors, especially corruption in MS SQL Server files leads to this situation.

If the reason of Suspect mode is the corruption in MDF file then, SQL Recovery Software is the best solution.

It is not certain that you will get the 100% data back from the damaged database.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *