Меню

System data sqlclient sqlerror ошибка считывания

Я
   Aprobator

26.04.10 — 12:02

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

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

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

   Aprobator

1 — 26.04.10 — 12:03

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

   shadow_sw

2 — 26.04.10 — 12:04

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

   Aprobator

3 — 26.04.10 — 12:15

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

   Masquerade

4 — 26.04.10 — 12:17

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

   el-gamberro

5 — 26.04.10 — 12:17

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

   el-gamberro

6 — 26.04.10 — 12:17

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

   Aprobator

7 — 26.04.10 — 12:27

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

   el-gamberro

8 — 26.04.10 — 12:28

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

   el-gamberro

9 — 26.04.10 — 12:28

*restore

   Aprobator

10 — 26.04.10 — 12:38

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

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

   PowerBoy

11 — 26.04.10 — 12:41

scandisk сделай

   Aprobator

12 — 26.04.10 — 12:42

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

   Aprobator

13 — 26.04.10 — 12:47

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

   Aprobator

14 — 26.04.10 — 12:48

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

   Aprobator

15 — 26.04.10 — 17:37

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

   Aprobator

16 — 27.04.10 — 09:20

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

   Vladal

17 — 27.04.10 — 10:01

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

  

Aprobator

18 — 27.04.10 — 11:13

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

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

31 / 31 / 4

Регистрация: 15.11.2008

Сообщений: 205

1

Ошибка при попытке сделать резервную копию

28.11.2008, 10:08. Показов 34277. Ответов 4


Жму на базу — задачи — создать резервную копию. Вылезает менюшка, выбираю дирикторию, пишу имя файла , например 1.bak, нажимаю ок и вылазит ошибка:
System.Data.SqlClient.SqlError: Невозможно открыть устройство резервного копирования «C:1.bak». Ошибка операционной системы 5(Отказано в доступе.). (Microsoft.SqlServer.Express.Smo)
Помогите!

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Администратор

82653 / 51226 / 244

Регистрация: 10.04.2006

Сообщений: 13,347

28.11.2008, 10:24

2

Под какой авторизацией зашел?



0



31 / 31 / 4

Регистрация: 15.11.2008

Сообщений: 205

28.11.2008, 10:26

 [ТС]

3

Все разобрался, в службе скуля поставил с системной учотной записью. Спасибо



0



9 / 9 / 4

Регистрация: 13.05.2011

Сообщений: 72

06.08.2015, 10:25

4

Здравствуйте, а можно по подробней о решении проблемы? А то уже всё испробовал, и никак не могу создать Backup.



0



3 / 3 / 0

Регистрация: 04.03.2016

Сообщений: 1

04.03.2016, 13:06

5

Цитата
Сообщение от MurkovichBogdan
Посмотреть сообщение

Здравствуйте, а можно по подробней о решении проблемы? А то уже всё испробовал, и никак не могу создать Backup.

у меня была такая проблема и получилось её устранить настроив права, как у папки C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQL
суть была в том, что в папке с бэкапом, в секции безопасность, пропал пользователь MSSQLSERVER.
надо было добавить NT SERVICEMSSQLSERVER (и выбрать там MSSQLSERVER) и дать ему полные права
может в будущем поможет кому-то))



3



  • Remove From My Forums
  • Вопрос

  • SQL Server 2012 Standard  . Windows server 2012 R2 standard. Сервер не в домене. При попытке создать объект RackStation  для бэкапа в Server Management StudioSystem получаем следующее сообщение:

    Data.SqlClient.SqlError: Невозможно открыть устройство резервного копирования ‘RackStation(ссылка на раcшаренную папку на сервере NAS)’. Ошибка операционной системы 5(Отказано в доступе.). (Microsoft.SqlServer.Smo)

    SQL запускается под учетной записью NT serviceMSSQLSERVER. Доступ к общей папке на NAS Synology нормально осуществляется от учетных записей сервера для обычных пользователей (естественно прописанных в NAS) . Как обеспечить разрешение
    для доступа в данном случае. Возможно ли это не в доменной структуре?

Ответы

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


    Innovation distinguishes between a leader and a follower — Steve Jobs

    • Предложено в качестве ответа

      20 июня 2014 г. 8:00

    • Помечено в качестве ответа
      Иван ПродановMicrosoft contingent staff, Moderator
      27 июня 2014 г. 5:22

@martyt

Attempting to restore a MSSQL database backup to a Docker MSSQL container fails in Docker Desktop 2.3.0.3 when using volumes mounted from the host filesystem. (I don’t know if it fails using Docker volumes or not, as that’s not how we use Docker.)

  • I have tried with the latest version of my channel (Stable or Edge)
  • I have uploaded Diagnostics
  • Diagnostics ID:
    D91F3F4C-3B2D-441C-8868-874FEDAAD817/20200615193850

Expected behavior

MSSQL database restore should just work.

In Docker Desktop 2.2.0.5, the restore script works exactly as expected -the new database and associated files are created, and the backup is restored.

Actual behavior

In Docker Desktop 2.3.0.3, I share the entire C: drive as before and run the same docker-compose to create the MSSQL container.

When I execute the RESTORE script, however, I get multiple error messages that seem related to file access permissions:

Msg 3634, Level 16, State 1, Line 1
The operating system returned the error '2(The system cannot find the file specified.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on '/var/opt/mssql/data/Authorization.mdf'.
Msg 3156, Level 16, State 5, Line 1
File 'Authorization' cannot be restored to '/var/opt/mssql/data/Authorization.mdf'. Use WITH MOVE to identify a valid location for the file.
Msg 3634, Level 16, State 1, Line 1
The operating system returned the error '2(The system cannot find the file specified.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on '/var/opt/mssql/log/Authorization.ldf'.
Msg 3156, Level 16, State 5, Line 1
File 'Authorization_log' cannot be restored to '/var/opt/mssql/log/Authorization.ldf'. Use WITH MOVE to identify a valid location for the file.
Msg 3119, Level 16, State 1, Line 1
Problems were identified while planning for the RESTORE statement. Previous messages provide details.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

I found through experimentation that if I touch /var/opt/mssql/data/Authorization.mdf and touch /var/opt/mssql/log/Authorization.ldf and then run the restore script, it runs without errors in 2.3.0.3

Information

  • Windows Version: Win 10 Pro v1909
  • Docker Desktop Version: 2.3.0.3
  • Are you running inside a virtualized Windows e.g. on a cloud server or on a mac VM: no

Steps to reproduce the behavior

We use Docker Desktop in conjunction with volumes mounted from the host to quickly setup MSSQL on developer machines and provide a script to restore databases from a MSSQL backup of a «reference» copy of the database.

We create several folders on the host machine and then mount them as volumes in the docker container. We share the entire C drive with Docker and use the following docker-compose file to create the database instance:

version: '3.4'

networks:
  default:
    external:
      name: dev_default

services:
  devsql:
    container_name: devsqltest
    image: mcr.microsoft.com/mssql/server:2019-latest
    ports:
      - "1433:1433"
    expose:
      - "1433"
    environment:
      ACCEPT_EULA: Y
      MSSQL_SA_PASSWORD: Str0ngPassword!
    restart: unless-stopped
    volumes:
      - type: bind
        source: c:devsqltestdata
        target: /var/opt/mssql/data
      - type: bind
        source: c:devsqltestlog
        target: /var/opt/mssql/log 
      - type: bind
        source: c:devsqltestsecrets
        target: /var/opt/mssql/secrets
      - type: bind
        source: c:devsqltestbackup
        target: /var/opt/mssql/backup
      - type: bind
        source: c:devsqltestscripts
        target: /var/opt/mssql/scripts

We execute the database restore script from either the sqlcmd command line or from Microsoft SQL Server Management Studio, connecting to the database as sa. This is the restore script — nothing too wild at all:

RESTORE DATABASE [Authorization] 
FROM  
	DISK = N'/var/opt/mssql/backup/Authorization.bak' 
WITH  
	FILE = 1,  
	MOVE N'Authorization' TO N'/var/opt/mssql/data/Authorization.mdf',  
	MOVE N'Authorization_log' TO N'/var/opt/mssql/log/Authorization.ldf',  
	NOUNLOAD,  
	REPLACE,  
	STATS = 5
GO
duncanhill, Mikael-Gustavsson, craziemac, Azathoth88, mic-koz, Amberg, thesushil, dmytro-pryvedeniuk, wally666, brianmhunt, and 5 more reacted with thumbs up emoji

@martyt

Surprised there’s no comment or acknowledgement of this bug. It’s clearly a problem — I’m amazed nobody else has run into it yet.

We’ve had to revert to 2.2.0.5 in order to keep working.

@Nuschler

Me too, sounds like issue #6646 that was supposedly fixed. I still have the issue…
#6646 (comment)

@Nuschler

What I have found is you can read from a volume but cannot write to a volume in Docker Desktop 2.3.x.x with MSSQL 2019.

The user MSSQL runs as can only write to folders with permissions granted to mssql user, volumes are mounted as user root.

You can mount a volume as something like /var/opt/mssql/data_volume and restore database to /var/opt/mssql/data but you cannot backup a database back to /var/opt/mssql/data_volume

@kengranderson

This article presents a workaround that worked for me.

Use a Dockerfile and while composing the image, switch to root, change ownership to the mssql user, switch back to mssql.
I used this approach to restore 4 databases via SSMS to 4 different volumes that I gave the mssql user access to in the Dockerfile and attached via docker run.

Also changed data, stopped and started the container to confirm persistence.

@martyt

Thanks @kengranderson for the link. Only works when using Docker volumes, not when using bind mounting to folders on the host — no matter what I do, chown mssql blah doesn’t do anything when blah is a folder that was bind mounted from the host.

But, in the interest of moving forward at my end, I’m modifying how we use MSSQL in Docker and switching to storing our data in Docker volumes instead.

I still consider this to be a bug — it works just fine in 2.2.0.5 but fails in any later release. If it’s not a bug, I wish someone could explain to me why my working installation suddenly failed when I upgraded Docker.

@kengranderson

@martyt — Since you are binding to Windows folders, have you tried (if just to see if it’s a security thing) setting the folder permissions to Everyone Full Control? Or the Docker desktop service has to be run under an admin user account now?

«I wish someone could explain to me why my working installation suddenly failed when I upgraded Docker.»

My default guess is that the previous behavior enabled some-evil-person-who-has-nothing-better-to-do-than-make-life-more-inconvenient-for-the-rest-of-us-by-spending-their-days-trying-to-break-into-stuff, to do something evil to Docker images and / the file system, so now the previous behavior is considered a ‘security hole?’

@Azathoth88

@kengranderson i tried the same, but that doesn’t work for me for BACKUP DB. But I can CREATE DB in the folder. This is definitely a bug for me.

@Amberg

@kengranderson i tried the same, but that doesn’t work for me for BACKUP DB. But I can CREATE DB in the folder. This is definitely a bug for me.

Exactly. RESTORE DATABASE FROM DISK does not work from a mounted host folder

  • 2019-latest or 2017-latest same behavior
  • start sql container as root does not help
  • chown mssql does not help

This is a bug

@Carlosf96

Any updates on this bug ? I also have the same problem it seems.

FROM mcr.microsoft.com/mssql/server:2019-latest

COPY dbName.mdf /var/opt/mssql/data
COPY dbName_log.ldf /var/opt/mssql/log


ENV SA_PASSWORD=Password1!
ENV ACCEPT_EULA=Y

HEALTHCHECK --interval=10s  
	CMD /opt/mssql-tools/bin/sqlcmd -S . -U sa -P Pssword1! 
		-Q "CREATE DATABASE [DBNAME] ON (FILENAME = '/var/opt/mssql/data/dbName.mdf'),(FILENAME = '/var/opt/mssql/log/dbName_log.ldf') FOR ATTACH"````

@john-league-ninja

Anyone had any luck resolving this? I am seeing it after doing fresh installs of docker / sql 2019.

@laiseng

I’ve found workaround for this issue.

  1. Create a new empty database
  2. docker exec -it container_id into your container
  3. change your files mdf ldf file permission using chmod -R 777 /var/opt/mssql/data ( for simplicity sake, i change all files )
  4. restore your *.bak file using SSMS to the newly created Database and make sure you check the overwrite existing database WITH REPLCE
    image

NOTE: for my db somehow it complains my newly created has no DB backup log. I just go to my newly created empty db and trigger a mssql backup. then go back to restore my bak file

you should revert back the file permission in /var/opt/mssql/data if it’s you dev machine like mine, then you may leave it as it is

@Phiph

I’m experiencing this problem too!

@moisoiu

I’ve found workaround for this issue.

  1. Create a new empty database
  2. docker exec -it container_id into your container
  3. change your files mdf ldf file permission using chmod -R 777 /var/opt/mssql/data ( for simplicity sake, i change all files )
  4. restore your *.bak file using SSMS to the newly created Database and make sure you check the overwrite existing database WITH REPLCE
    image

NOTE: for my db somehow it complains my newly created has no DB backup log. I just go to my newly created empty db and trigger a mssql backup. then go back to restore my bak file

you should revert back the file permission in /var/opt/mssql/data if it’s you dev machine like mine, then you may leave it as it is

For who tried this option and still didn’t work, you can also try to uncheck the Take tail-log backup before restore

TailLong

But this didn’t work always, so I also tried to Attach the .mdf file, but same behavior but as soon as I removed the .ldf file everything worked OK.

Kind of annoying issue, initially I tried to restore following the tutorial from here -> https://docs.microsoft.com/en-us/sql/linux/tutorial-restore-backup-in-sql-server-container?view=sql-server-ver15

So good luck !

@jbwittner

Hi !

When I tried to restore a database, I had the same problem :'(

Docker Desktop version : 3.0.4 (51218)

TITLE: Microsoft SQL Server Management Studio
------------------------------

Restore of database 'Test' failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)

------------------------------
ADDITIONAL INFORMATION:

System.Data.SqlClient.SqlError: The operating system returned the error '2(The system cannot find the file specified.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on '/var/opt/mssql/data/Test.mdf'. (Microsoft.SqlServer.SmoExtended)

For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=16.100.46041.41+(SMO-master-A)&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------
version: '3.7'

services:
    SQL_Server:
      image:  mcr.microsoft.com/mssql/server:2019-latest
      restart: always
      volumes:
      - type: bind
        source: c:devsqltestdata
        target: /var/opt/mssql/data
      environment:
          ACCEPT_EULA: 'Y'
          SA_PASSWORD: 'Str0ngPassword!'
      ports:
          - 1433:1433

And when i tried to change the permissions of /var/opt/mssql/data with the command chmod -R 777 /var/opt/mssql/data i have an error => chmod: changing permissions of '/var/opt/mssql/data': Operation not permitted

Thank you for your help

@wannado

This is how I worked around this.

First copied backup file to container
PS> docker cp .mydb.bak sqldocker:/var/opt/mssql/data/mydb.bak

Now this backup file had permissions root:root which needed to get changed to mssql:root
PS> docker exec -u 0 sqldocker bash -c "chown mssql /var/opt/mssql/data/mydb.bak"

Afterwards when I tried restoring

RESTORE DATABASE [mydb] 
FROM  DISK = N'/var/opt/mssql/data/mydb.bak' WITH  
MOVE N'PRD_AU'     TO N'/var/opt/mssql/data/mydb.mdf',  
MOVE N'PRD_AU_log' TO N'/var/opt/mssql/data/mydb_log.ldf'

I was getting «The system cannot find the file specified» /var/opt/mssql/data/mydb.mdf

So I touched files with logical names manually

PS> docker exec -it sqldocker /bin/bash
$ cd /var/opt/mssql/data
$ touch mydb.mdf
$ touch mydb_bak.ldf

(ls -al showed both files was mssql:root)

and then did the restore again WITH REPLACE

RESTORE DATABASE [mydb] 
FROM  DISK = N'/var/opt/mssql/data/mydb.bak' WITH  REPLACE, 
MOVE N'PRD_AU'     TO N'/var/opt/mssql/data/mydb.mdf',  
MOVE N'PRD_AU_log' TO N'/var/opt/mssql/data/mydb_log.ldf'

That seemed to work…

@esteinmann

This is how I worked around this.

First copied backup file to container
PS> docker cp .mydb.bak sqldocker:/var/opt/mssql/data/mydb.bak

Now this backup file had permissions root:root which needed to get changed to mssql:root
PS> docker exec -u 0 sqldocker bash -c "chown mssql /var/opt/mssql/data/mydb.bak"

Afterwards when I tried restoring

RESTORE DATABASE [mydb] 
FROM  DISK = N'/var/opt/mssql/data/mydb.bak' WITH  
MOVE N'PRD_AU'     TO N'/var/opt/mssql/data/mydb.mdf',  
MOVE N'PRD_AU_log' TO N'/var/opt/mssql/data/mydb_log.ldf'

I was getting «The system cannot find the file specified» /var/opt/mssql/data/mydb.mdf

So I touched files with logical names manually

PS> docker exec -it sqldocker /bin/bash
$ cd /var/opt/mssql/data
$ touch mydb.mdf
$ touch mydb_bak.ldf

(ls -al showed both files was mssql:root)

and then did the restore again WITH REPLACE

RESTORE DATABASE [mydb] 
FROM  DISK = N'/var/opt/mssql/data/mydb.bak' WITH  REPLACE, 
MOVE N'PRD_AU'     TO N'/var/opt/mssql/data/mydb.mdf',  
MOVE N'PRD_AU_log' TO N'/var/opt/mssql/data/mydb_log.ldf'

That seemed to work…

Thanks! This worked for me as well. Only had to perform the following two commands:

touch /var/opt/mssql/data/[BACKUP_DB_NAME]_log.ldf
touch /var/opt/mssql/data/[BACKUP_DB_NAME].mdf

And then I could restore using SQL Server Management Studio (with checking Overwrite existing).

@docker-robot

Issues go stale after 90 days of inactivity.
Mark the issue as fresh with /remove-lifecycle stale comment.
Stale issues will be closed after an additional 30 days of inactivity.

Prevent issues from auto-closing with an /lifecycle frozen comment.

If this issue is safe to close now please do so.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle stale

@dotupNET

I think this is the wrong repo. It’s a sql server container problem, isn’t it?

With an up to date system and the WideWorldImportersFull.bak backup:

`mssql@sqlserver:/$ /opt/mssql-tools/bin/sqlcmd
-S localhost -U SA -P ‘MY_PASS_WORD’
-Q ‘RESTORE DATABASE WideWorldImporters FROM DISK = «/var/opt/mssql/backup/WideWorldImportersFull.bak» WITH MOVE «WWI_Primary» TO «/var/opt/mssql/data/WideWorldImporters.mdf», MOVE «WWI_UserData» TO «/var/opt/mssql/data/WideWorldImporters_userdata.ndf», MOVE «WWI_Log» TO «/var/opt/mssql/data/WideWorldImporters.ldf», MOVE «WWI_InMemory_Data_1» TO «/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1″‘

Msg 3634, Level 16, State 1, Server 98b2cd16f73b, Line 1
The operating system returned the error ‘2(The system cannot find the file specified.)’ while attempting ‘RestoreContainer::ValidateTargetForCreation’ on ‘/var/opt/mssql/data/WideWorldImporters.mdf’.
Msg 3156, Level 16, State 5, Server 98b2cd16f73b, Line 1
File ‘WWI_Primary’ cannot be restored to ‘/var/opt/mssql/data/WideWorldImporters.mdf’. Use WITH MOVE to identify a valid location for the file.
Msg 3634, Level 16, State 1, Server 98b2cd16f73b, Line 1
The operating system returned the error ‘2(The system cannot find the file specified.)’ while attempting ‘RestoreContainer::ValidateTargetForCreation’ on ‘/var/opt/mssql/data/WideWorldImporters_userdata.ndf’.
Msg 3156, Level 16, State 5, Server 98b2cd16f73b, Line 1
File ‘WWI_UserData’ cannot be restored to ‘/var/opt/mssql/data/WideWorldImporters_userdata.ndf’. Use WITH MOVE to identify a valid location for the file.
Msg 3634, Level 16, State 1, Server 98b2cd16f73b, Line 1
The operating system returned the error ‘2(The system cannot find the file specified.)’ while attempting ‘RestoreContainer::ValidateTargetForCreation’ on ‘/var/opt/mssql/data/WideWorldImporters.ldf’.
Msg 3156, Level 16, State 5, Server 98b2cd16f73b, Line 1
File ‘WWI_Log’ cannot be restored to ‘/var/opt/mssql/data/WideWorldImporters.ldf’. Use WITH MOVE to identify a valid location for the file.
Msg 3119, Level 16, State 1, Server 98b2cd16f73b, Line 1
Problems were identified while planning for the RESTORE statement. Previous messages provide details.
Msg 3013, Level 16, State 1, Server 98b2cd16f73b, Line 1
RESTORE DATABASE is terminating abnormally.`

Solution:
`
touch /var/opt/mssql/data/WideWorldImporters.mdf
touch /var/opt/mssql/data/WideWorldImporters_userdata.ndf
touch /var/opt/mssql/data/WideWorldImporters.ldf
touch /var/opt/mssql/data/WideWorldImporters.ldf

/opt/mssql-tools/bin/sqlcmd
-S localhost -U SA -P ‘RealyStrangePasswort’
-Q ‘RESTORE DATABASE WideWorldImporters FROM DISK = «/var/opt/mssql/backup/WideWorldImportersFull.bak» WITH REPLACE, MOVE «WWI_Primary» TO «/var/opt/mssql/data/WideWorldImporters.mdf», MOVE «WWI_UserData» TO «/var/opt/mssql/data/WideWorldImporters_userdata.ndf», MOVE «WWI_Log» TO «/var/opt/mssql/data/WideWorldImporters.ldf», MOVE «WWI_InMemory_Data_1» TO «/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1″‘

`

@docker-robot

Closed issues are locked after 30 days of inactivity.
This helps our team focus on active issues.

If you have found a problem that seems similar to this, please open a new issue.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle locked

@docker
docker

locked and limited conversation to collaborators

Jul 19, 2021

Содержание

  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()

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

Источник

Руководство по устранению неполадок с SqlClient

Скачать 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 и при необходимости открыть новую проблему.

Источник

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • System ck ошибка карриер 1300
  • System sk carrier ошибка рефрижератора