RTFM.WIKI

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

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

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


Stylesheet conf/userstyle.css not found, please contact the developer of "dokuwiki_2024" template.
microsoft:mssql:mssql_tnt

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
microsoft:mssql:mssql_tnt [2020/06/25 01:37] – внешнее изменение 127.0.0.1microsoft:mssql:mssql_tnt [2023/10/25 19:41] (текущий) dx
Строка 1: Строка 1:
 +====== MSSQL - TnT ======
  
 +==== Error: 15023 ====
 +
 +Ошибка - User, group, or role already exists in the current database. (Microsoft SQL Server, Error: 15023)
 +
 +При миграции сервера сбились права доступа к базам.
 +
 +<code sql>
 +use [database_name]
 +exec sp_change_users_login 'AUTO_FIX', '[user_name]'
 +go
 +</code>
 +
 +Подробнее в [[https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-change-users-login-transact-sql?view=sql-server-ver16|sp_change_users_login (Transact-SQL)]]
 +
 +==== Could not create SSL/TLS secure channel ====
 +
 +Ошибка **The request was aborted: Could not create SSL/TLS secure channel**
 +
 +  * [[https://docs.microsoft.com/en-us/officeonlineserver/enable-tls-1-1-and-tls-1-2-support-in-office-online-server#enable-strong-cryptography-in-net-framework-45-or-higher|Enable strong cryptography in .NET Framework 4.5 or higher]]
 +  * [[https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls|Transport Layer Security (TLS) best practices with the .NET Framework]]
 +
 +Исходящие запросы идут со старого tls 1.0, которые на удаленной стороне запрещены.
 +
 +Правильнее конечно чинить на стороне .net приложения, но как всегда нужен быстрофикс. Можно через reg файл по ссылкам выше. Мне удобнее было через powershell.
 +
 +Включаем tls 1.2
 +
 +<code>
 +# 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
 +</code>
 +
 +Вернуть обратно можно через **Remove-ItemProperty**
 +
 +<code>
 +# 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'
 +</code>
 +
 +PS почитать для чего нужны следующие настройки FIXME заработало без этих настроек
 +
 +<code>
 +# с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
 +</code>
 +
 +==== Проверить версию ODBC драйвера ====
 +
 +[[https://docs.microsoft.com/ru-ru/sql/database-engine/configure-windows/check-the-odbc-sql-server-driver-version-windows?view=sql-server-ver15|Check the ODBC SQL Server Driver Version (Windows)]]
 +
 +C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\**ODBC Data Sources (64-bit)**
 +
 +{{:microsoft:mssql:mssql_odbc_version.png?nolink&600|}}
 +
 +==== Проверить версию MSSQL сервера ====
 +
 +<code sql>select @@VERSION</code>
 +
 +{{:microsoft:mssql:msssq_version.png?nolink&900|}}
 +
 +==== Где скачать cumulative update ====
 +
 +  * https://sqlserverupdates.com/
 +  * [[https://support.microsoft.com/ru-ru/help/4047329/sql-server-2017-build-versions|Сборки кумулятивного обновления (CU) SQL Server 2017]] / [[https://support.microsoft.com/ru-ru/help/321185/how-to-determine-the-version-edition-and-update-level-of-sql-server-an|Как определить версию, выпуск и уровень обновления системы SQL Server и ее компонентов]]
 +
 +==== Размер БД ====
 +
 +Размер/сумма всех баз ([[https://stackoverflow.com/a/7122249|Get overall sum of all databases size in a SQL Server]])
 +
 +<code sql>
 +SELECT CONVERT(DECIMAL(10,2),(SUM(size * 8.00) / 1024.00 / 1024.00)) As UsedSpace
 +FROM master.sys.master_files
 +</code>
 +
 +Размер по каждой базе #1 ([[https://stackoverflow.com/a/5946134|SQL Server 2008: How to query all databases sizes?]])
 +
 +<code sql>
 +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
 +</code>
 +
 +Размер по каждой базе #2 ([[https://www.c-sharpcorner.com/blogs/check-database-size-in-sql-server1|Check Database Size in SQL SERVER]])
 +
 +<code sql>
 +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  
 +</code>
 +
 +==== Различие CU, GDR и SP ====
 +
 +  * [[https://www.sqltattoo.com/blog/2021/01/sql-server-patching-gdr-vs-cu/|SQL Server patching: GDR vs CU]]
 +  * [[https://www.sqlskills.com/blogs/glenn/modern-sql-server-servicing-model/|Modern SQL Server Servicing Model]]
 +  * [[https://sqlserverupdates.com|SQLServerUpdates.com]]
 +  * [[https://sqlserverbuilds.blogspot.com|Microsoft SQL Server Versions List]]
 +  
 +Для trueЪ - SP больше нет, GDR только security фиксы (ставится через Windows Update), CU ставится вручную и содержит новые функции, а не только security фиксы.
 +
 +==== Error 5701 5703 ====
 +
 +<code>
 +[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.
 +</code>
 +
 +[[https://knowledgebase.progress.com/articles/Article/3509|Не ошибка]]. //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 ====
 +
 +https://sqlserver-help.com/2014/07/08/help-how-to-find-cause-of-login-failed-for-user-error/
 +
 +==== tempDb перенести или изменить размер ====
 +
 +Посмотреть текущее расположение файлов
 +
 +<code sql>
 +SELECT 
 +   name
 + , physical_name AS CurrentLocation  
 + , state_desc
 +FROM 
 + sys.master_files  
 +WHERE 
 + database_id = DB_ID(N'tempdb');
 +</code>
 +
 +Изменить расположение
 +
 +<code sql>
 +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  
 +</code>
 +
 +При успешном выполнении будет сообщение
 +
 +<code>
 +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.
 +</code>
 +
 +После чего можно перезапустить SQL Server и удалить старые temp файлы.
 +
 +Как изменить размер tempdb
 +
 +<code sql>
 +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
 +</code>
 +
 +Несколько файлов
 +
 +<code sql>
 +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
 +</code>
 +
 +  * [[https://docs.microsoft.com/ru-ru/sql/relational-databases/databases/tempdb-database|tempdb, база данных]] (docs microsoft)
 +  * [[https://docs.microsoft.com/en-US/troubleshoot/sql/performance/recommendations-reduce-allocation-contention|Recommendations to reduce allocation contention in SQL Server tempdb database]]
 +  * [[https://www.mssqltips.com/sqlservertip/4829/tempdb-size-resets-after-a-sql-server-service-restart/|Tempdb size resets after a SQL Server service restart]]
 +  * [[https://www.sqlshack.com/how-to-detect-and-prevent-unexpected-growth-of-the-tempdb-database/|How to detect and prevent unexpected growth of the TempDB database]]
 +  * [[https://www.tune-it.ru/web/fender/blog/-/blogs/i-snova-tempdb-perenos-i-poleznye-skripty|и снова tempDB - перенос и полезные скрипты]]
 +  * [[https://www.se.com/ww/en/faqs/FA238216/|How to change the location of database TempDB files Tempdb.mdf and TempLog.ldf in SQL 2008 and 2012 from default location ?]]
 +
 +===== Ссылки =====
 +
 +  * [[http://dbamastery.com/performance-tuning/maxdop-calculator/|MAXDOP Calculator]]
 +  * [[https://sql-ex.ru/blogs/?/Osnovy_Zhurnala_tranzakcij_v_SQL_Server.html|Основы журнала транзакций в SQL Server]]
 +  * [[https://minyurov.com/2016/07/24/mssql-tempdb-opt/|Оптимизация временной БД (tempdb)]]
 +  * [[https://www.tune-it.ru/web/fender/blog/-/blogs/otkazoustojcivost-ms-sql-failover-cluster-ili-alwayson-|Отказоустойчивость MS SQL: Failover Cluster или AlwaysOn?]]
 +  * [[https://sql-ex.ru/blogs/?/Arhitektura_Zhurnala_tranzakcij_SQL_Server.html|Архитектура журнала транзакций SQL Server]]
 +  * [[https://sql-ex.ru/blogs/?/Dannye_monitora_proizvoditelnosti_SQL_Server_vvedenie_i_ispolzovanie.html|Данные монитора производительности SQL Server: введение и использование]]
 +  * [[https://sql-ex.ru/blogs/?/Prisoedinenie_bazy_dannyh_bez_fajla_Zhurnala_tranzakcij.html|Присоединение базы данных без файла журнала транзакций]]
 +  * [[https://kuharbogdan.com/stati-po-1s/pochemu-rastet-log-v-ms-sql/|Почему растет LOG в MS SQL?]]
 +
 +{{tag>microsoft mssql sql}}