Содержание
MSSQL - TnT
Error: 15023
Ошибка - User, group, or role already exists in the current database. (Microsoft SQL Server, Error: 15023)
При миграции сервера сбились права доступа к базам.
USE [database_name] EXEC sp_change_users_login 'AUTO_FIX', '[user_name]' GO
Подробнее в sp_change_users_login (Transact-SQL)
Could not create SSL/TLS secure channel
Ошибка The request was aborted: Could not create SSL/TLS secure channel
Исходящие запросы идут со старого tls 1.0, которые на удаленной стороне запрещены.
Правильнее конечно чинить на стороне .net приложения, но как всегда нужен быстрофикс. Можно через reg файл по ссылкам выше. Мне удобнее было через powershell.
Включаем tls 1.2
# 64 bit .net framework Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v2.0.50727' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v2.0.50727' -Name 'SystemDefaultTlsVersions' -Value '1' -Type DWord Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SystemDefaultTlsVersions' -Value '1' -Type DWord # 32 bit .net framework Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727' -Name 'SystemDefaultTlsVersions' -Value '1' -Type DWord Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SystemDefaultTlsVersions' -Value '1' -Type DWord
Вернуть обратно можно через Remove-ItemProperty
# 64 bit .net framework Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v2.0.50727' -Name 'SchUseStrongCrypto' Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v2.0.50727' -Name 'SystemDefaultTlsVersions' Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SystemDefaultTlsVersions' # 32 bit .net framework Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727' -Name 'SchUseStrongCrypto' Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727' -Name 'SystemDefaultTlsVersions' Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SystemDefaultTlsVersions'
PS почитать для чего нужны следующие настройки заработало без этих настроек
# сlient side Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Name 'DisabledByDefault' -Value '0' -PropertyType DWORD Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Name 'Enabled" -Value '1' -PropertyType DWORD # server side Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Name 'DisabledByDefault' -Value '0' -PropertyType DWORD Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Name 'Enabled' -Value '1' -PropertyType DWORD
Проверить версию ODBC драйвера
Check the ODBC SQL Server Driver Version (Windows)
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\ODBC Data Sources (64-bit)
Проверить версию MSSQL сервера
SELECT @@VERSION
Где скачать cumulative update
Размер БД
Размер/сумма всех баз (Get overall sum of all databases size in a SQL Server)
SELECT CONVERT(DECIMAL(10,2),(SUM(SIZE * 8.00) / 1024.00 / 1024.00)) AS UsedSpace FROM master.sys.master_files
Размер по каждой базе #1 (SQL Server 2008: How to query all databases sizes?)
WITH fs AS ( SELECT database_id, TYPE, SIZE * 8.0 / 1024 SIZE FROM sys.master_files ) SELECT name, (SELECT SUM(SIZE) FROM fs WHERE TYPE = 0 AND fs.database_id = db.database_id) DataFileSizeMB, (SELECT SUM(SIZE) FROM fs WHERE TYPE = 1 AND fs.database_id = db.database_id) LogFileSizeMB FROM sys.databases db
Размер по каждой базе #2 (Check Database Size in SQL SERVER)
SELECT sys.databases.name, CONVERT(VARCHAR,SUM(SIZE)*8/1024)+' MB' AS [Total disk SPACE] FROM sys.databases JOIN sys.master_files ON sys.databases.database_id=sys.master_files.database_id GROUP BY sys.databases.name ORDER BY sys.databases.name
Различие CU, GDR и SP
Для trueЪ - SP больше нет, GDR только security фиксы (ставится через Windows Update), CU ставится вручную и содержит новые функции, а не только security фиксы.
Error 5701 5703
[06-Dec-2021 14:55:27 UTC] pdo_sqlsrv_db_handle_factory: error code = 5701 [06-Dec-2021 14:55:27 UTC] pdo_sqlsrv_db_handle_factory: message = [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Changed database context to 'foobar_dev'. [06-Dec-2021 14:55:27 UTC] pdo_sqlsrv_db_handle_factory: SQLSTATE = 01000 [06-Dec-2021 14:55:27 UTC] pdo_sqlsrv_db_handle_factory: error code = 5703 [06-Dec-2021 14:55:27 UTC] pdo_sqlsrv_db_handle_factory: message = [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Changed language setting to us_english.
Не ошибка. These are expected warning messages which don't represent any errors, but they only provide information about the connected database and language that is being used.
Как найти причину Login failed for user
tempDb перенести или изменить размер
Посмотреть текущее расположение файлов
SELECT name , physical_name AS CurrentLocation , state_desc FROM sys.master_files WHERE database_id = DB_ID(N'tempdb');
Изменить расположение
USE master; GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'D:\tempDb\Data\tempdev.mdf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'D:\tempDb\Log\templog.ldf'); GO
При успешном выполнении будет сообщение
The file "tempdev" has been modified in the system catalog. The new path will be used the next time the database is started. The file "templog" has been modified in the system catalog. The new path will be used the next time the database is started.
После чего можно перезапустить SQL Server и удалить старые temp файлы.
Как изменить размер tempdb
USE master; GO ALTER DATABASE tempdb MODIFY FILE (NAME = 'tempdev', SIZE = NEW_SIZE_MB, FILEGROWTH = 512MB) ALTER DATABASE tempdb MODIFY FILE (NAME = 'templog', SIZE = NEW_SIZE_MB, FILEGROWTH = 64MB) GO
Несколько файлов
USE master; GO ALTER DATABASE tempdb ADD FILE (NAME = N'tempdev', FILENAME = N'D:\tempDb\tempdev.mdf' , SIZE = 1GB , FILEGROWTH = 0); ALTER DATABASE tempdb ADD FILE (NAME = N'tempdev2', FILENAME = N'D:\tempDb\tempdev2.ndf' , SIZE = 1GB , FILEGROWTH = 0); ALTER DATABASE tempdb ADD FILE (NAME = N'tempdev3', FILENAME = N'D:\tempDb\tempdev3.ndf' , SIZE = 1GB , FILEGROWTH = 0); ALTER DATABASE tempdb ADD FILE (NAME = N'tempdev4', FILENAME = N'D:\tempDb\tempdev4.ndf' , SIZE = 1GB , FILEGROWTH = 0); GO
- tempdb, база данных (docs microsoft)
Обсуждение