Перейти к содержимому

mssql

Как собрать информацию из 1с кластера и записатть в таблицу 1с

Скрипт для запуска в шедулер .

$Server = $env:computername
$Start = Get-Date
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("cp866")
$emailFrom = "monitoring@tech.adminbd.ru"
$smtpServer = "adminbd.ru"
$email1 = "konstantin@adminbd.ru"
$debug=0
$force=1
 
 
$SubjRPHost = "$Server : RPHost не запущен."
$SubjRASExist = "$Server : Служба RAS не существовала. Устанавлена."
$SubjRASNotRun = "$Server : Служба RAS была не запущена. Запущена."
$SubjRASVersion = "$Server : Версия RAS не совподает с версией запущенного RPHost. Служба переустанавена."
  
function SendEmail ($subj=$null, $mailbody=" " ) {
    Send-MailMessage -SmtpServer $smtpServer -To $email1 -From $emailFrom -Subject $subj -body $mailbody  -Encoding UTF8
}
  
$RPHostPath = Get-Process -Name rphost | select ID, FileVersion, Path, WorkingSet64 | sort 
Читать далее

Как исправить ошибку The target principal name is incorrect. Cannot generate SSPI context.

Ошибка

TITLE: Connect to Server
——————————

Cannot connect to DB01.

——————————
ADDITIONAL INFORMATION:

The target principal name is incorrect. Cannot generate SSPI context. (Microsoft SQL Server, Error: 0)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=0&LinkId=20476

——————————
BUTTONS:

OK
——————————

Исправляется с помощью  https://www.microsoft.com/en-us/download/details.aspx?id=39046

KerberosX64MSI (2)

Запускаем “C:\Program Files\Microsoft\Kerberos Configuration Manager for SQL Server\KerberosConfigMgr.exe”

Как исправить ошибку The target principal name is incorrect. Cannot generate SSPI context.

Как исправить ошибку The target principal name is incorrect. Cannot generate SSPI context.

Как сделать отчёт (запрос) в sccm по Cpu, DISK, Memory, IP в одной табличке.

Надо сделать отчёт из sccm по всем серверам, для переезда в другой дата центр.  В отчёте должно содержаться cpu (сколько сокетов, ядер ), оперативная память , сколько места на дисках , сколько суммарно занимает информация на дисках и ip адреса .

Как сделать отчёт (запрос) в sccm по Cpu, DISK, Memory, IP в одной табличке.

Declare  @variable varchar(max)

 set @variable='SHR%'


SELECT
 
DISTINCT
SYS.Name0 [Name],
ld.Name0 AS [Drive Letter],
 
ld.Size0/1024 as [Total Drive gb],
  
ld.FreeSpace0/1024 as [Free Hard gb],
((ld.Size0)-(ld.FreeSpace0))/1024 as [Used Hard gb]

--select * from #Temp
 
INTO #Temp
 
FROM v_R_System AS sys INNER JOIN
v_GS_COMPUTER_SYSTEM AS cs ON sys.ResourceID = cs.ResourceID INNER JOIN
v_GS_LOGICAL_DISK AS ld ON sys.ResourceID = ld.ResourceID inner join
v_gs_Disk 
Читать далее

Как мониторить 1с кластер по пользователям с помощью grafana.

Задача мониторить 1с кластер в разрезе пользователей. Вытащить данные из Central 1c 8.3 servers

Как мониторить 1с кластер по пользователям с помощью grafana.

Создаем бузу на mssql monitoring

Потом создаем таблицу  sessions

create table sessions(
    [id serial] INT IDENTITY (1,1) PRIMARY KEY,
    [server] varchar(255) NOT NULL,
    [clock]  DATETIME NOT NULL DEFAULT (GETDATE()),
    [uuid] varchar(255) NOT NULL,
    [base] varchar(255),
    [user] varchar(255) ,
    [type] varchar(255) NOT NULL,
    [started] datetime,
    [last] datetime,
    [sleep] varchar(255),
    [current] bigint,
    [5min] bigint,
    [total] bigint,
    [duration_cur] bigint,
    [duration_db_cur] bigint
);

С помощью powershell записываем в таблицу

ping | Out-Null



$cluster = .\rac.exe cluster list | % {if ($_ -match 'cluster'){$_ -replace "^.*?: "}}
#$cluster
$racInfobases = .\rac.exe 
Читать далее

Как найти в таблице sp_whoisactive по времени выполнения запроса.

SELECT [dd hh:mm:ss.mss]
,[start_time]
 ,[collection_time]
      ,[session_id]
      ,[sql_text]
      ,[sql_command]
      ,[login_name]
      ,[wait_info]
      ,[tran_log_writes]
      ,[CPU]
      ,[tempdb_allocations]
      ,[tempdb_current]
      ,[blocking_session_id]
      ,[reads]
      ,[writes]
      ,[physical_reads]
      ,[query_plan]
      ,[used_memory]
      ,[status]
      ,[tran_start_time]
      ,[open_tran_count]
      ,[percent_complete]
      ,[host_name]
      ,[database_name]
      ,[program_name]
      
      ,[login_time]
      ,[request_id]
      ,[collection_time]
  FROM [DBAtools].[dbo].[WhoIsActive]
  WHERE 
 CONVERT(CHAR(8),COLLECTION_time,8) BETWEEN '00:00:00' AND '23:00:00' AND
       datepart(YEAR,start_time) BETWEEN 2020 AND 2020 and
       datepart(month,start_time) BETWEEN 04 AND 04 and
       datepart(day,start_time) BETWEEN 22 AND 23
     and  [dd hh:mm:ss.mss]  > '00 01:00:00.0000'

 

Как узнать кто подключился к mssql. С какова ip

SELECT
dc.session_id          AS [SPID]
,dc.client_net_address  AS [IP клиента]
,sp.hostname            AS [Имя PC клиента]
,dc.local_net_address   AS [IP подключения к серверу]
,dc.net_transport       AS [Протокол подключения]
,dc.local_tcp_port      AS [Порт]
,sp.[program_name]      AS [Имя программы]
,sp.loginame
FROM
sys.dm_exec_connections dc
INNER JOIN
MASTER.sys.sysprocesses sp
ON  dc.session_id = sp.spid
WHERE
sp.spid

 

Как создать хранимую процедуру для реиндекса таблиц mssql (reindex)

Задача делать реиндекс только определенных таблиц.

Создаём таблицу

USE [ax_molniya]
GO

/****** Object:  Table [dbo].[www_reindex_tablename]    Script Date: 08/17/2018 08:45:57 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[www_reindex_tablename](
	[objectname] [nvarchar](128) NULL,
	[group] [nvarchar](1) NULL,
	[id] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]

GO


Наполняем её таблицами которые нужно реиндексировать

Как создать хранимую процедуру для реиндекса таблиц mssql (reindex)

Делаем хранимую процедуру

USE [ax_molniya]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[www_reindex_ALTER]
-- Add the parameters for the stored procedure here

-- если readonly = 0 (значение по- умолчанию), тогда выполняется вся работа скрипта)
-- если readonly = 1, тогда предоставится информация о 
Читать далее

Как мониторить репликации на mssql. Создать оповещение (alert) если не работает репликация

Хранимая процедура что бы посмотреть в каком состоянии репликации.

CREATE PROCEDURE GetReplicationAgentStatus
AS

BEGIN
set nocount on
set transaction isolation level read uncommitted 

/*
Make sure your agents are in the correct category 
i.e Merge agents under REPL-Merge, 
Distribution agents under REPL-Distribution 
and LogReader agent under REPL-LogReader
*/

select s.job_id,s.name,s.enabled,c.name as categoryname into #JobList 
from msdb.dbo.sysjobs s inner join msdb.dbo.syscategories c on s.category_id = c.category_id
where c.name in ('REPL-Merge','REPL-Distribution','REPL-LogReader')

create TABLE #xp_results  
   (job_id                UNIQUEIDENTIFIER NOT NULL,
    last_run_date         INT              NOT NULL,
    last_run_time         INT              NOT NULL,
    next_run_date         INT              NOT NULL,
    next_run_time         INT              NOT NULL,
    next_run_schedule_id  INT              NOT NULL,
    requested_to_run      INT              NOT NULL, 
    
Читать далее

Как узнать какие запросы грузят диск

SELECT

SUM(qs.total_physical_reads) as physical_reads,

SUM(qs.total_logical_reads) as logical_reads

into T1 FROM (

select top 100000 * from

sys.dm_exec_query_stats qs

where qs.last_execution_time > (CURRENT_TIMESTAMP - '01:00:00.000')

order by qs.total_physical_reads desc

) as qs;

select top 100

(qs.total_physical_reads) as physical_reads,

(qs.total_logical_reads) as logical_reads,

qp.query_plan,

st.text,

dtb.name,

qs.*,

st.dbid

INTO T2

FROM

sys.dm_exec_query_stats qs

CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp

CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st

left outer join sys.databases as dtb on st.dbid = dtb.database_id

where qs.last_execution_time > (CURRENT_TIMESTAMP - '01:00:00.000')

order by qs.total_physical_reads desc;

select

(T2.physical_reads*100/T1.physical_reads) as percent_physical_reads,

(T2.logical_reads*100/T1.logical_reads) as percent_logical_reads,

T2.*

from

T2 as T2

INNER JOIN T1 as T1

ON 1=1

order by T2.total_physical_reads 
Читать далее

Как отправлять оповещения в telegram из mssql

Задача отправлять оповещение из mssql в телеграмм для быстрого реагирования.

https://www.rootusers.com/install-powershell-5-windows-server-2008-r2/

Решил сделать  через powershell. но так как windows 2008 то версия powershell 2.0. Установил 5 версию powersheell. Так как из-за старой версии слались вопросы в телеграмм когда по русски писал.

Скрипт который будет на диске С хранится tel.ps1

param(
[string]$chat_id = $(Throw "'-chat_id' argument is mandatory"),
[string]$text = $(Throw "'-text' argument is mandatory"),
[switch]$markdown,
[switch]$nopreview
)
$token = "Ваш токен"
if($nopreview) { $preview_mode = "True" }
if($markdown) { $markdown_mode = "Markdown" } else {$markdown_mode = ""}

$payload = @{
    "chat_id" = $chat_id;
    "text" = $text
    "parse_mode" = $markdown_mode;
    "disable_web_page_preview" 
Читать далее