| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| microsoft:mssql:mssql_tnt [2022/06/06 00:52] – dx | microsoft:mssql:mssql_tnt [2023/10/25 19:41] (текущий) – dx |
|---|
| | ====== 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}} |