Ошибка считывания sql

Восстанавливал рабочую базу данных до вчерашнего состояния. Во время восстановления начал выдавать ошибку «ошибка чтения данных». Сама рабочая база зависла в состоянии восстановления. Попытка вывести из него запросом «restore database [name_db] with recovery» заканчивается другой ошибкой The database cannot be recovered because the log was not restored. Как восстановить хотябы какую то версию базы?
Полный текст первой ошибки:

System.Data.SqlClient.SqlError: Read on «E:\Другой обмен\SQLBase\Lombard2015\Lombard2015_backup_2017_11_02_230009_7349536.bak» failed: 23(Ошибка в данных (CRC).) (Microsoft.SqlServer.SmoExtended)


  • Вопрос задан

  • 1038 просмотров

Сама рабочая база зависла в состоянии восстановления. Попытка вывести из него запросом «restore database [name_db] with recovery» заканчивается другой ошибкой The database cannot be recovered because the log was not restored.

То есть вы не можете закончить восстановление без журнала.
Восстанавливайте без него (NORECOVERY).

Пригласить эксперта


  • Показать ещё
    Загружается…

22 сент. 2023, в 22:00

1000 руб./за проект

22 сент. 2023, в 21:27

300 руб./за проект

22 сент. 2023, в 19:59

5000 руб./за проект

Минуточку внимания

The log shipping backup job for one of our databases is failing with the error message:

Read on «D:\Data\Filename.mdf» failed: 1(failed to retrieve text for this error. Reason: 15105)

Attempting to run the job out of schedule (to see if this gleans any additional data) results in a failure with the same message.

What is the cause of this message and how would I resolve it?

Select @@VERSION:

Microsoft SQL Server 2008 R2 (SP3) — 10.50.6220.0 (X64) Mar 19 2015
12:32:14 Copyright (c) Microsoft Corporation Standard Edition (64-bit)
on Windows NT 6.1 (Build 7601: Service Pack 1)

DB Compatibility Level: SQL Server 2008 (100)

Recovery model: Bulk-logged

Results of DBCC CHECKDB:

DBCC CHECKDB ('DatabaseName') WITH PHYSICAL_ONLY reports:

DBCC results for 'DatabaseName'.
Msg 8966, Level 16, State 2, Line 1
Unable to read and latch page (1:2112497) with latch type SH. 1(failed to retrieve text for this error. Reason: 15105) failed.
Msg 8966, Level 16, State 2, Line 1
Unable to read and latch page (1:2112498) with latch type SH. 1(failed to retrieve text for this error. Reason: 15105) failed.
Msg 8966, Level 16, State 2, Line 1
Unable to read and latch page (1:2112499) with latch type SH. 1(failed to retrieve text for this error. Reason: 15105) failed.
Msg 8966, Level 16, State 2, Line 1
Unable to read and latch page (1:2112500) with latch type SH. 1(failed to retrieve text for this error. Reason: 15105) failed.
CHECKDB found 0 allocation errors and 4 consistency errors not associated with any single object.
Msg 2533, Level 16, State 1, Line 1
Table error: page (1:2112497) allocated to object ID 557349150, index ID 1, partition ID 72057601138884608, alloc unit ID 72057601177681920 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
Msg 2533, Level 16, State 1, Line 1
Table error: page (1:2112498) allocated to object ID 557349150, index ID 1, partition ID 72057601138884608, alloc unit ID 72057601177681920 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
Msg 2533, Level 16, State 1, Line 1
Table error: page (1:2112499) allocated to object ID 557349150, index ID 1, partition ID 72057601138884608, alloc unit ID 72057601177681920 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
Msg 2533, Level 16, State 1, Line 1
Table error: page (1:2112500) allocated to object ID 557349150, index ID 1, partition ID 72057601138884608, alloc unit ID 72057601177681920 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.
CHECKDB found 0 allocation errors and 4 consistency errors in table 'schemaname.tablename' (object ID 557349150).
CHECKDB found 0 allocation errors and 8 consistency errors in database 'DatabaseName'.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (DatabaseName).
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Не поднимаются бэкапы баз 8.1 на SQL 2005 ☑ 0

Aprobator

26.04.10

12:02

День добрый! Проблема следующая — стоит 1С 8.1 клиент — сервер.

Бэкап настроен непосредственно на SQL. Работало все без проблем.

Сегодня обнаружил, что не могу восстановить базу из бэкапа, причем пробовал на двух базах (хорошо вовремя заметил и бэкапнулся средствами 1С). Долго долго загружается и в конце концов пишет ошибка в данных CRC. Размер бэкапов где то 1.4 гиг. Первое что приходит в голову — надо проверить диск на ошибки — сделать его дефрагментацию и т.п.. Что — то кроме этого еще может быть? Сопутствующая инфа: на сервер 1С запущен в режиме отладки (мало ли).

1

Aprobator

26.04.10

12:03

+(0) места на дисках хватает, в журналах ошибок нет.

2

shadow_sw

26.04.10

12:04

сделай бэк со скуля в текущий момент и попробуй восстановить

3

Aprobator

26.04.10

12:15

делал — не восстанавливается.

4

Masquerade

26.04.10

12:17

Мда. Вот вам и надежность скуля.

5

el-gamberro

26.04.10

12:17

Полный текст ошибки напиши сюда.

6

el-gamberro

26.04.10

12:17

(4) да нет, скорее у кого-то руки кривые.

7

Aprobator

26.04.10

12:27

дословно сейчас выложу. До 70 проц доходит и потом долго висит, пока ошибку выдает. Диск, на котором лежат архивы, просит дефрагментации.

8

el-gamberro

26.04.10

12:28

ты resore в ssms делаешь?

9

el-gamberro

26.04.10

12:28

*restore

10

Aprobator

26.04.10

12:38

(8) да из дерева баз правой кнопкой мыши — Восттановить базу и т. д..
Описание ошибки:
Действие восстановления завершилось неудачно для объекта «Сервер» «SA-SERVER2»
(Microsoft.SqlServer.Smo)

Дополнительные сведения.
System.Data.SqlClient.SqlError: ошибка считывания с  «путь к архивному файлу» (Ошибка в данных (CRC.)) »
(Microsoft.SqlServer.Smo)

11

PowerBoy

26.04.10

12:41

scandisk сделай

12

Aprobator

26.04.10

12:42

(11) ну я тож на это грешу (в (0) описано). Просто уточняю мало ли что еще.

13

Aprobator

26.04.10

12:47

+(12) процесс то уже идет.

14

Aprobator

26.04.10

12:48

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

15

Aprobator

26.04.10

17:37

вечером проверю точно, но похоже проблема в том, что 1 диск в raid сыпанулся.

16

Aprobator

27.04.10

09:20

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

17

Vladal

27.04.10

10:01

(16) Это хоршо, когда вовремя заметили

18

Aprobator

27.04.10

11:13

(17) не то слово — срочно пробежался по заданиям Скула и поставил галку Проверять целостность резервной копии.

Summary: In this blog, we are going to discuss SQL Database Cyclic Redundancy Check (CRC) error. Also, we will discuss the possible reasons behind the error, and scenarios in which you can encounter the CRC error. Plus, we will look at a few solutions to fix SQL CRC error. You may also try Stellar Repair for MS SQL software to repair and restore your SQL database in a few simple steps, without having to spend several hundreds of man-hours and IT resources.

Free Download for Windows

Contents

  • What is CRC?
  • Occurrences of SQL CRC Error
  • How to Fix SQL CRC Error?
  • Conclusion

SQL Server operations are highly dependent on the disk subsystem. It is without a doubt a key component to SQL Server performance and availability as storage. Sometimes, an issue with the I/O subsystem can lead to Cyclic Redundancy Check (CRC) error. The error message reads as:

Encountered error: Msg 823, Level 24, State 2, Line 1

I/O error 23(Data error (cyclic redundancy check).) detected during read at offset 0x000001ac1c4000 in file ‘C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2K16\MSSQL\DATA\MoreData.mdf’.

You may encounter CRC data error in SQL database when performing any of these actions:

  • Backup and restoring of the database
  • Querying the database
  • Starting SQL Server

Before we jump into identifying the root cause for this error and find its solution, let us first understand what does cyclic redundancy check means.

What is CRC?

A Cyclic Redundancy Check (CRC) is a data verification algorithm that computers use to check the data on storage devices like SSD, HDD, CDs, Magnetic tapes, and more.

What Causes Cyclic Redundancy Check Error in SQL Database?

SQL cyclic redundancy check error may occur due to any of these reasons:

  • Registry Corruption
  • Cluttered hard disk
  • Unsuccessful program installation
  • Misconfigured files
  • File written on bad sector of hard disk

Regardless of the specific cause, the cyclic redundancy check error is a serious error and must be addressed immediately to avoid potential data loss or even total system failure.

Occurrences of SQL CRC Error

Following are two scenarios in which you may encounter the CRC error:

Scenario 1: You may get the error when backing up a database. When you encounter the error during a backup, you can revisit the SQL Server error logs to get more details on the error.

SQL Server Error Log
Figure 1 – SQL Error Logs

Example of verbose log is shown below:

10/18/2016 12:00:19 AM Creating backup of MoreData to C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2K16\MSSQL\Backup\
10/18/2016 12:00:32 AM ERROR: Read on “C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2K16\MSSQL\DATA\MoreData.MDF” failed: 23(Data error (cyclic redundancy check).)
BACKUP DATABASE is terminating abnormally.
10/18/2016 12:00:32 AM ERROR: Job finished (With Errors)

Scenario 2: The next scenario is when you are querying the SQL database and it stops abruptly with the data check error. When querying the database, you will receive CRC error on SQL Server Management Studio (SSMS) error pane. The error message reads as:

Server: Msg 823, Level 24, State 2, Line 1
I/O error 23(Data error (cyclic redundancy check).) detected during read at offset 0x000001ac1c4000 in file ‘C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2K16\MSSQL\DATA\MoreData.mdf’.

How to Fix SQL CRC Error?

Follow the steps in the sequence given below to resolve the error:

Step 1: Since the root cause behind the CRC error is an I/O subsystem issue, it is important to fix the underlying storage issues. That, in turn, would most likely fix the cyclic redundancy check error in SQL.

Run the CHKDSK utility on the disk in question and allow it to fix any error by using the /F parameter. Below is a screenshot of the command to check and fix the F: drive:

run chkdsk command in command prompt to fix and scan CRC errors
Figure 2 – CHKDSK Command to Fix and Scan CRC Errors

Step 2: A complete disk defragmentation is recommended after the “chkdsk” is completed with a successful repair of any errors.

invoking defragmentation
Figure 3 – Disk Fragmentation

Step 3: Perform a data integrity check on the SQL database to make sure that data is not corrupt. Run the command as highlighted below and analyze the results:

DBCC CHECKDB (MoreData) WITH NO_INFOMSGS, ALL_ERRORMSGS

Running the above command, detected 2 allocation errors and 1 consistency error as shown below:

Server: Msg 8946, Level 16, State 12, Line 2
Table error: Allocation page (1:72864) has invalid PFS_PAGE page header values. Type is 0. Check type, object ID and page ID on the page.
Server: Msg 8921, Level 16, State 1, Line 1
CHECKTABLE terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is inconsistent. Check previous errors.
Server: Msg 8966, Level 16, State 1, Line 1
Could not read and latch page (1:72864) with latch type UP. failed.
Server: Msg 8966, Level 16, State 1, Line 1
Could not read and latch page (1:72864) with latch type UP. failed.
Server: Msg 8998, Level 16, State 1, Line 1
Page errors on the GAM, SGAM, or PFS pages do not allow CHECKALLOC to verify database ID 8 pages from (1:72864) to (1:80879). See other errors for cause.
CHECKDB found 2 allocation errors and 1 consistency errors not associated with any single object.
CHECKDB found 2 allocation errors and 1 consistency errors in database ‘MoreData’

Step 4: At this point, we are facing database corruption, and our options are to either restore the most recent backup or repair the database either by using SQL native repair commands or third-party tools. Now let’s look at both these options:

Restore database from Clean Backup

When trying to restore the db from backup, it is highly recommended to perform a RESTORE VERIFYONLY on the backup file to know if the backup is in a consistent state.

RESTORE VERIFYONLY FROM DISK = C:\BackupFile\MoreData.BAK
GO

Repair the Corrupt SQL database

If the restore does not come out clean, then we are running out of options and would need to start looking into repairing the database. We can attempt to repair SQL database by using the DBCC CHECKDB with REPAIR OPTION.

For detailed information on DBCC CHECKDB, read this: How to Repair SQL Database using DBCC CHECKDB Command

Try repairing the db with DBCC CHECKDB ‘Repair_Allow_Data_Loss’ option by running the following code:

 USE master;
ALTER DATABASE [CorruptDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB ('CorruptDB', REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;
GO
ALTER DATABASE [CorruptDB] SET MULTI_USER;
GO

What If DBCC CHECKDB Fails to Repair SQL Database?

Repairing the database using the DBCC CHECKDB with ‘Repair_Allow_Data_Loss’ involves data loss risk during the repair process. It may also not deliver expected results. Use Stellar Database repair tool to fix a corrupt SQL database. The tool serves as the best Alternative of DBCC CHECKDB Repair Allow Data Loss that helps repair a SQL database from all types of common SQL database corruption errors. It repairs corrupt MDF and NDF files and restores all the database objects. Also, it helps restore the database back to its original state without any risk of data loss.

free download

Essentially, the software helps repair corrupt SQL Server database (.mdf and .ndf) files, while maintaining the original structure and integrity of database objects.

Conclusion

So, there you have it! If you have a good disaster recovery plan set up, then you should have no problems when your production database or any other database gets corrupted due to SQL Database Cyclic Redundancy Check (CRC) error. Now let’s say you find yourself in a situation where a proper DR plan was not established and you do not have any backups to restore. You can consider utilizing the minimal repair level reported by the DBCC CHECKDB when you run the integrity check on the suspect database.

Remember that the repair feature of SQL Server is not robust and not a guaranteed solution. For a faster, more versatile repair that would bring your SQL corrupt database back into a working start with minimal data loss, look no further than Stellar Repair for MS SQL software. It repairs the database faster by using a more sophisticated repair algorithm. It can even recover deleted data in your database.

About The Author

Samuel Okudjeto (SQL Server DBA)

Samuel Okudjeto is a technology enthusiast with great interest in database administration and analytics. He has many certifications including the Microsoft Certified Expert Professional. Along with 6+ years of hands-on experience, he holds a Masters of Science degree in Business Analytics. Read more

Содержание

  1. Sql Error Class
  2. Definition
  3. Examples
  4. Remarks
  5. Properties
  6. Methods
  7. Sql Error Класс
  8. Определение
  9. Примеры
  10. Комментарии
  11. Свойства
  12. Методы
  13. Sql Error Класс
  14. Определение
  15. Примеры
  16. Комментарии
  17. Свойства
  18. Методы
  19. Руководство по устранению неполадок с SqlClient
  20. Исключения при подключении к SQL Server
  21. Не удалось загрузить нативную библиотеку SNI (указание имени сервера)
  22. Проблемы в приложениях .NET Framework
  23. Проблемы в приложениях .NET Core
  24. Ошибки нативной функции SNI (не удалось найти PDB)
  25. Ошибки разрешения имени узла
  26. Возможные причины
  27. Ошибки на этапе входа
  28. Возможные причины и решения
  29. Проблема, вызванная тем, что пул подключений исчерпан
  30. Возможные причины и решения
  31. Обращение в службу поддержки

Sql Error Class

Definition

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Collects information relevant to a warning or error returned by SQL Server.

Examples

The following example displays each SqlError within the SqlErrorCollection collection.

This class is created by the .NET Framework Data Provider for SQL Server when an error occurs. An instance of SqlError is created and managed by the SqlErrorCollection, which in turn is created by the SqlException class.

Messages with a severity level of 10 or less are informational and indicate problems caused by mistakes in information that a user has entered. Severity levels from 11 through 16 are generated by the user, and can be corrected by the user. Severity levels from 17 through 25 indicate software or hardware errors. When a level 17, 18, or 19 error occurs, you can continue working, although you might not be able to execute a particular statement.

The SqlConnection remains open when the severity level is 19 or less. When the severity level is 20 or greater, the server usually closes the SqlConnection. However, the user can reopen the connection and continue. In both cases, a SqlException is generated by the method executing the command.

For more information about errors generated by SQL Server, see Database Engine Errors. For more information about severity levels, see Database Engine Error Severities.

Properties

Gets the severity level of the error returned from SQL Server.

Gets the line number within the Transact-SQL command batch or stored procedure that contains the error.

Gets the text describing the error.

Gets a number that identifies the type of error.

Gets the name of the stored procedure or remote procedure call (RPC) that generated the error.

Gets the name of the instance of SQL Server that generated the error.

Gets the name of the provider that generated the error.

Gets the unique state code for the error.

Methods

Determines whether the specified object is equal to the current object.

(Inherited from Object) GetHashCode()

Serves as the default hash function.

(Inherited from Object) GetType()

Gets the Type of the current instance.

(Inherited from Object) MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object) ToString()

Gets the complete text of the error message.

Источник

Sql Error Класс

Определение

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

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

Примеры

В следующем примере каждый из них SqlError отображается в SqlErrorCollection коллекции.

Комментарии

Этот класс создается поставщиком данных платформа .NET Framework для SQL Server при возникновении ошибки. Экземпляр SqlError создается и управляется классом SqlErrorCollection, который, в свою очередь, создается классом SqlException .

Сообщения с уровнем важности 10 и менее являются информационными и обозначают неполадки, вызванные ошибками во введенных пользователем данных. Уровни серьезности от 11 до 16 создаются пользователем и могут быть исправлены пользователем. Уровни важности с 17 по 25 указывают на ошибки программного обеспечения или оборудования. При возникновении ошибки уровня 17, 18 или 19 вы можете продолжить работу, хотя выполнить определенную инструкцию не удастся.

SqlConnection остается открытым, если уровень важности не превышает 19. Когда уровень важности превышает 20, сервер обычно закрывает SqlConnection. Тем не менее, пользователь может опять открыть подключение и продолжить работу. В обоих случаях выполняющим команду методом создается SqlException.

Дополнительные сведения об ошибках, создаваемых SQL Server, см. в разделе Ошибки ядра СУБД. Дополнительные сведения об уровнях серьезности см. в разделе Серьезность ошибок ядра СУБД.

Свойства

Возвращает уровень важности ошибки, возвращаемой SQL Server.

Возвращает номер содержащей ошибку строки пакета команд Transact-SQL или хранимой процедуры.

Возвращает текст, описывающий ошибку.

Возвращает число, определяющее тип ошибки.

Возвращает имя вызвавшей ошибку хранимой процедуры или удаленного вызова процедур (RPC).

Возвращает имя вызвавшего ошибку экземпляра SQL Server.

Возвращает имя вызвавшего ошибку поставщика.

Возвращает уникальный код состояния для ошибки.

Методы

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object) GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object) GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object) MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object) ToString()

Возвращает полный текст сообщения об ошибке.

Источник

Sql Error Класс

Определение

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

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

Примеры

В следующем примере каждый из них SqlError отображается в SqlErrorCollection коллекции.

Комментарии

Этот класс создается поставщиком данных платформа .NET Framework для SQL Server при возникновении ошибки. Экземпляр SqlError создается и управляется классом SqlErrorCollection, который, в свою очередь, создается классом SqlException .

Сообщения с уровнем важности 10 и менее являются информационными и обозначают неполадки, вызванные ошибками во введенных пользователем данных. Уровни серьезности от 11 до 16 создаются пользователем и могут быть исправлены пользователем. Уровни важности с 17 по 25 указывают на ошибки программного обеспечения или оборудования. При возникновении ошибки уровня 17, 18 или 19 вы можете продолжить работу, хотя выполнить определенную инструкцию не удастся.

SqlConnection остается открытым, если уровень важности не превышает 19. Когда уровень важности превышает 20, сервер обычно закрывает SqlConnection. Тем не менее, пользователь может опять открыть подключение и продолжить работу. В обоих случаях выполняющим команду методом создается SqlException.

Дополнительные сведения об ошибках, создаваемых SQL Server, см. в разделе Ошибки ядра СУБД. Дополнительные сведения об уровнях серьезности см. в разделе Серьезность ошибок ядра СУБД.

Свойства

Возвращает уровень важности ошибки, возвращаемой SQL Server.

Возвращает номер содержащей ошибку строки пакета команд Transact-SQL или хранимой процедуры.

Возвращает текст, описывающий ошибку.

Возвращает число, определяющее тип ошибки.

Возвращает имя вызвавшей ошибку хранимой процедуры или удаленного вызова процедур (RPC).

Возвращает имя вызвавшего ошибку экземпляра SQL Server.

Возвращает имя вызвавшего ошибку поставщика.

Возвращает уникальный код состояния для ошибки.

Методы

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object) GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object) GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object) MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object) ToString()

Возвращает полный текст сообщения об ошибке.

Источник

Скачать ADO.NET

Исключения при подключении к SQL Server

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

Не удалось загрузить нативную библиотеку SNI (указание имени сервера)

Проблемы в приложениях .NET Framework

Отслеживаемая трассировка стека:

SNI — это нативная библиотека C++, на основе которой в SqlClient выполняются различные сетевые операции при работе в Windows. В приложениях .NET Framework, созданных с помощью пакета SDK для проекта MSBuild, управление нативными библиотеками DLL не осуществляется с помощью команд восстановления. Таким образом, файл .targets включается в пакет NuGet Microsoft.Data.SqlClient.SNI, который определяет необходимые операции копирования.

Для включаемого файла .targets при установке прямой зависимости от библиотеки Microsoft.Data.SqlClient создается автоматическая ссылка. В сценариях, где создается транзитная (косвенная) ссылка, необходимо вручную ссылаться на этот файл .targets, чтобы при необходимости могли выполняться операции копирования.

Рекомендуемое решение. Убедитесь, что в файле .csproj приложения есть ссылка на файл .targets, чтобы обеспечить выполнение операций копирования.

Среди этих целевых объектов только известные и часто используемые целевые объекты Майкрософт. Если внешний инструмент или приложение определяет пользовательские целевые объекты для копирования двоичных файлов, то средства обслуживания инструмента должны определить новые целевые объекты, чтобы обеспечить копирование нативных DLL-библиотек SNI вместе с двоичными файлами Microsoft.Data.SqlClient.dll и доступность таких библиотек при выполнении клиентских приложений.

Проблемы в приложениях .NET Core

Отслеживаемая трассировка стека:

Эта ошибка может возникать только в Windows-приложениях. Если это происходит в среде Unix, убедитесь, что приложение создано для среды выполнения UNIX, а не для Windows.

SNI — это нативная библиотека C++, на основе которой в SqlClient выполняются различные сетевые операции при работе в Windows. Microsoft.Data.SqlClient не управляет загрузкой этой библиотеки в ПО .NET Core и ее выгрузкой из него.

Рекомендуемое решение. Обеспечьте для файловой системы, где нативные библиотеки среды выполнения загружаются в процесс .NET Core, разрешения на выполнение. Если это не помогло решить проблему, можно зарегистрировать ее в репозитории dotnet/runtime, чтобы получить дальнейшую поддержку.

Ошибки нативной функции SNI (не удалось найти PDB)

Отслеживаемая трассировка стека:

Рекомендуемое решение. Убедитесь, что клиентское приложение ссылается на минимальную версию 2.1.0 пакета Microsoft.Data.SqlClient. При использовании EF Core добавьте ссылку на эту версию пакета Microsoft.Data.SqlClient напрямую, чтобы переопределить зависимость.

Ошибки разрешения имени узла

Отслеживаемая трассировка стека:

Возможные причины

В SQL Server не включен протокол TCP или протокол именованных каналов

Рекомендуемое решение. Включите протокол TCP или протокол именованных каналов в экземпляре SQL Server из консоли диспетчера конфигурации SQL Server.

Имя узла неизвестно

Рекомендуемое решение. Убедитесь, что имя узла разрешается в IP-адрес сервера от клиента, в котором инициируется подключение.

Ошибки на этапе входа

Отслеживаемые трассировки стека:

Возможные причины и решения

SQL Server не поддерживает TLS 1.2

Эта ошибка обычно происходит в клиентских средах, таких как контейнеры образов Docker, клиенты Unix или клиенты Windows, где TLS 1.2 является минимальной поддерживаемой версией протокола TLS.

Рекомендуемое решение. Установите последние обновления для поддерживаемых версий SQL Server 1 и убедитесь, что на сервере включен протокол TLS 1.2.

1 Список поддерживаемых версий SQL Server с разными версиями Microsoft.Data.SqlClient см. в статье Жизненный цикл поддержки драйвера SqlClient.

Небезопасное решение. Настройте параметры TLS/SSL в среде образа или клиента Docker для подключения к TLS 1.0.

При подключении к Microsoft.Data.SqlClient версии 2.0 и выше из среды Windows или Linux с использованием TLS 1.0 или TLS 1.1 будет активировано предупреждение системы безопасности, если целевому объекту SQL Server и клиенту не удается согласовать минимальную версию TLS 1.2 при установке соединения: Security Warning: The negotiated is an insecure protocol and is supported for backward compatibility only. The recommended protocol version is TLS 1.2 and later.

Принудительное шифрование SQL Server

Если целевой сервер является экземпляром Azure SQL или локальной SQL Server с включенным свойством «Принудительное шифрование», будет установлено зашифрованное подключение, для которого клиент должен установить доверие с сервером.

Рекомендуемое решение. Есть два варианта устранения этой проблемы:

  1. Установите сертификат TLS/SSL для целевого экземпляра SQL Server в клиентской среде. Будет выполнена проверка на предмет того, нужно ли шифрование.
  2. Задайте свойство TrustServerCertificate=true в строке подключения.

Небезопасное решение. Отключите параметр принудительного шифрования в SQL Server.

Сертификаты TLS/SSL не подписаны с помощью SHA-256 или более поздней версии.

Рекомендуемое решение. Создайте новый сертификат TLS/SSL для сервера, хэш которого подписывается по меньшей мере с помощью алгоритма хэширования SHA-256.

Строго ограниченный список комплектов шифров TLS для .NET 5 и более поздних версий в Linux

В .NET 5 представлено критическое изменение для клиентов Linux, которое заключается в использовании строго ограниченного списка разрешенных комплектов шифров по умолчанию. Если необходимо расширить список комплектов шифров по умолчанию для работы с устаревшими клиентами (или для взаимодействия с устаревшими серверами), укажите значение CipherSuitePolicy или измените файл конфигурации OpenSSL.

Дополнительные сведения о рекомендуемых действиях см. в статье Комплекты шифров TLS по умолчанию для .NET в Linux.

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

Отслеживаемая трассировка стека:

Возможные причины и решения

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

Рекомендуемое решение. Задайте для свойства соединения Max Pool Size большее значение и своевременно закрывайте неиспользуемые подключения.

Обращение в службу поддержки

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

Источник

Понравилась статья? Поделить с друзьями:
  • Ошибка сценария недопустимый аргумент
  • Ошибка соленоида акпп тойота
  • Ошибка сцепления ман тга
  • Ошибка сцепление ман тгс
  • Ошибка сценария нвидиа