RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


microsoft:mssql:mssql_tnt

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 почитать для чего нужны следующие настройки FIXME заработало без этих настроек

# с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

Ссылки

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
 
microsoft/mssql/mssql_tnt.txt · Последнее изменение: 2023/10/25 19:41 — dx