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

Изменить владельца mssql job

USE msdb ;
GO
 
EXEC dbo.sp_manage_jobs_by_login
    @action = N'REASSIGN',
    @current_owner_login_name = N'HEAD_OFFICE\v.musalov',
    @new_owner_login_name = N'sa' ;
GO
SELECT  [job_id]
      ,[originating_server_id]
      ,[name]
      ,[enabled]
      ,[description]
      ,[start_step_id]
      ,[category_id]
      ,[owner_sid]
      ,[notify_level_eventlog]
      ,[notify_level_email]
      ,[notify_level_netsend]
      ,[notify_level_page]
      ,[notify_email_operator_id]
      ,[notify_netsend_operator_id]
      ,[notify_page_operator_id]
      ,[delete_level]
      ,[date_created]
      ,[date_modified]
      ,[version_number]
  FROM [msdb].[dbo].[sysjobs]
 
 
  select * from [msdb].[dbo].[sysjobs]
 
  SELECT [job_id]
      ,[step_id]
      ,[step_name]
      ,[subsystem]
      ,command
      ,replace([command],'ssas_molniya','diablo')
      ,[flags]
      ,[additional_parameters]
      ,[cmdexec_success_code]
      ,[on_success_action]
      ,[on_success_step_id]
      ,[on_fail_action]
      ,[on_fail_step_id]
      ,[server]
      ,[database_name]
      ,[database_user_name]
      ,[retry_attempts]
      ,[retry_interval]
      ,[os_run_priority]
      ,[output_file_name]
      ,[last_run_outcome]
      ,[last_run_duration]
      ,[last_run_retries]
      ,[last_run_date]
      ,[last_run_time]
      ,[proxy_id]
      ,[step_uid]
  FROM [msdb].[dbo].[sysjobsteps]
  where database_name = 'ssas_molniya' 
  --and command like '%ssas_molniya%' 
  and job_id in (
      select job_id
  FROM [msdb].[dbo].[sysjobs] where date_created > '20140713'
  )
 
 
  update [msdb].[dbo].[sysjobsteps]
  set database_name = 'ssas_molniya_sz'
  
Читать далее

Генерация скрипта для перестроения индекса

[stextbox id=”info”]генерация скрипта для перестроения отдельного индекса на таблице[/stextbox]

declare @tabname nvarchar(64)
declare @dbname nvarchar(64)
declare @indname nvarchar(64)
declare @q nvarchar(max)
-- **************************************
set @dbname = 'ax_molniya'
set @tabname = 'dbo.INVENTTRANS'
set @indname = 'I_177TRANSTYPETRANSREF_IDX'
-- **************************************
set @q = '/*
 
описание: скрипт для перестроения отдельного индекса на таблице

 
*/
 
PRINT ''Восстановление индекса на таблице ['+@tabname+'] начато '' + Cast(GETDATE() as varchar);
GO  
ALTER INDEX ['+@indname+'] ON '+@tabname+' REORGANIZE
GO
PRINT ''Восстановление индекса на таблице ['+@tabname+'] закончено '' + Cast(GETDATE() as varchar);
GO
declare @at nvarchar(500);
set @at = ''Восстановление индекса ['+@indname+'] на таблице ['+@tabname+'] выполнено'' + Cast(GETDATE() as varchar);
Читать далее

Время работы MSSQL

DECLARE @Days  int
DECLARE @Hours int
DECLARE @Mins  int
DECLARE @Secs  int
DECLARE @getdate datetime
DECLARE @getdateunix int
 
set @getdate = getdate()
set @getdateunix = DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())
 
SET @Secs = (
 
		SELECT datediff(ss, login_time, getdate())
 
		FROM master..sysprocesses 
 
		WHERE spid = 1
 
	)
 
 
SET @Days  = ((@Secs/60)/60)/24
SET @Hours = ((@Secs/60)/60)%24
SET @Mins  = (@Secs/60)%60
SET @Secs  = @Secs%60
 
 
select @@servername as servername,@getdate as createdate,@getdateunix as createdate_unix ,@Days as days,@Hours as hours,@Mins as mins ,@Secs as secs

 

Кто использует tempdb

;WITH task_space_usage AS (
    -- SUM alloc/delloc pages
    SELECT session_id,
           request_id,
           SUM(internal_objects_alloc_page_count) AS alloc_pages,
           SUM(internal_objects_dealloc_page_count) AS dealloc_pages
    FROM sys.dm_db_task_space_usage WITH (NOLOCK)
    WHERE session_id <> @@SPID
    GROUP BY session_id, request_id
)
SELECT TSU.session_id,
       TSU.alloc_pages * 1.0 / 128 AS [internal object MB space],
       TSU.dealloc_pages * 1.0 / 128 AS [internal object dealloc MB space],
       EST.text,
       -- Extract statement from sql text
       ISNULL(
           NULLIF(
               SUBSTRING(
                 EST.text, 
                 ERQ.statement_start_offset / 2, 
                 CASE WHEN ERQ.statement_end_offset < ERQ.statement_start_offset 
                  THEN 0 
                 ELSE( ERQ.statement_end_offset - ERQ.statement_start_offset ) / 2 END
               ), ''
           ), EST.text
       ) AS [statement text],
       EQP.query_plan
FROM task_space_usage AS TSU
INNER JOIN sys.dm_exec_requests ERQ WITH 
Читать далее

sp_configure

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'clr enabled', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

-- 
Читать далее

Проверка доступности линкованных серверов

 

DECLARE @Cursor CURSOR
DECLARE @ServerName NVARCHAR(128)
DECLARE @ServerID INT
DECLARE @SQL VARCHAR(MAX)
 
--Create temp table to store results
IF object_id(N'tempdb..##LinkedServers') IS NOT NULL
	DROP TABLE ##LinkedServers
 
CREATE TABLE ##LinkedServers
	(
	[LinkedServerID] INT IDENTITY(1,1) NOT NULL,
	[Name] SYSNAME NULL,
	[ProvName] NVARCHAR(128) NULL,
	[Product] NVARCHAR(128) NULL,
	[DataSource] NVARCHAR(4000) NULL,
	[ProvString] NVARCHAR(4000) NULL,
	[Location] NVARCHAR(4000) NULL,
	[Cat] SYSNAME NULL
	)
 
--Get list of linked servers from system proc
INSERT INTO ##LinkedServers
EXEC [sys].sp_linkedservers
 
--Add tested field to result set
ALTER TABLE ##LinkedServers ADD [TestSuccess] BIT
 
--Cursor over list of linked servers testing each
SET @Cursor = CURSOR FOR
						SELECT
							[LinkedServerID],
							[Name]
						FROM
							
Читать далее

Пошаговая инструкция по установке и настройке агента BackupExcec на сервер Linux.

  1. Сначала копируем дистрибутив агента (есть на диске с BE, либо тут) на сервер любым удобным способом, например при помощи WinSCP:

1

1

1.    На Linux-сервере заходим в папку куда скопировали агент, и распаковываем архив:

[root@testmom BackupExcec]# tar -xzvf RALUS_RMALS_RAMS-5204.4.tar.gz

2.    Заходим в распакованную папку и запускаем скрипт установки:

[root@testmom BackupExcec]# cd RALUS64
[root@testmom BackupExcec]# ./installralus

3.    Далее отвечаем по пунктам (нажатия с клавиатуры выделены жирным):

Enter the system names separated by spaces on which to install RALUS: Enter

Checking system communication:

Initial system check completed successfully.

Press [Return] to continue: Enter

installralus will install the following RALUS packages on Linux target system: … Читать далее

Триггер для sql 2005

Создаем таблицу под лог

USE [master]
GO
/****** Объект:  Table [dbo].[DDLTriggerAlterLogin]    Дата сценария: 02/25/2013 15:22:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DDLTriggerAlterLogin](
	[EventType] [nvarchar](100) NULL,
	[ObjectName] [nvarchar](2000) NULL,
	[ObjectType] [nvarchar](2000) NULL,
	[LoginName] [nvarchar](max) NULL,
	[LoginType] [nvarchar](max) NULL,
	[SPID] [nvarchar](max) NULL,
	[PostTime] [datetime] NULL,
	[host] [nvarchar](128) NULL
) ON [PRIMARY]

Создаём триггер для ALTERDATABASE

/****** Object:  DdlTrigger [DDLTriggerAlterDatabase]    Script Date: 03/28/2016 10:59:50 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================

-- 1) исключение срабатываний для служебной учетной записи head_offive\mssqlserver, log shipping

-- =============================================
CREATE TRIGGER [DDLTriggerAlterDatabase] ON ALL SERVER AFTER ALTER_DATABASE AS

DECLARE 
Читать далее

Делаем резервную копию базы данных sql\express

Настраиваем задание по бэкапу на сервере

1. Создаем файл mirror-tts-backup.sql

BACKUP DATABASE [TTS] TO  DISK = N'\\ho_report\d$\mssql\backup_tts\tts.bak' WITH NOFORMAT, INIT,  NAME = N'TTS', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

2. Создаем bat файл mirror-tts-backup.bat

sqlcmd -S s0035\sqlexpress -U sa -P p@$$w0rd -i mirror-tts-backup.sql

3. Создаем задание в планировщике

tttsbx5w4sg1v0swrepmpw1zkw

Настраиваем задание по разворачиванию бэкапа на сервер

Разрываем все имеющиеся соединения с бд

USE [master]
GO
ALTER DATABASE [tts] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

Разворачиваем бд из бэкапа

RESTORE DATABASE [tts] FROM  DISK = N'D:\mssql\backup_tts\tts.bak' WITH  FILE = 1,  MOVE N'TTS' TO N'D:\mssql\tts.mdf',  MOVE N'TTS_log' TO N'D:\mssql\tts_1.ldf',  STANDBY = N'D:\mssql\backup_tts\undobak.bak',  
Читать далее