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

sql

перевод всех бд в simple

declare @db nvarchar(10)
declare @sql nvarchar(256)
declare cursor_size_srv cursor for
SELECT  --@@SERVERNAME AS Server ,
        name AS DBName 
        --recovery_model_Desc AS RecoveryModel ,
        --Compatibility_level AS CompatiblityLevel ,
        --create_date ,
        --state_desc
FROM    sys.databases
where name not in ('master','msdb','model','tempdb') and recovery_model_desc = 'full'
ORDER BY Name; 
 
OPEN cursor_size_srv
FETCH NEXT FROM cursor_size_srv INTO @db
WHILE (@@FETCH_STATUS=0)
BEGIN
set @sql = 'ALTER DATABASE '+@db+' SET RECOVERY SIMPLE WITH NO_WAIT'
print (@sql);
FETCH NEXT FROM cursor_size_srv INTO @db
END
CLOSE cursor_size_srv
DEALLOCATE cursor_size_srv

 

Сенсор для prtg. Сенсор для задания sql

USE msdb

SELECT 
	  TOP 1
	  	/* a.job_id       AS Id
	  ,a.name  AS NAME_job
	 	  , b.run_date
	  , b.run_time ,
	  b.step_id,*/

	  b.run_status
	  
	  --SELECT *
FROM   
       dbo.sysjobs a
       FULL OUTER JOIN dbo.sysjobhistory b
            ON  a.job_id = b.job_id
                AND a.[enabled] = '1'
                    --AND b.run_date = @@servername
WHERE  
       a.name IN ('LSRestore_s0030_ax_molniya_DB') AND b.run_status NOT IN ('4') AND b.step_id IN ('0')
       /*GROUP BY a.name
       ,a.job_id 
       ,b.step_id
       ,b.run_date*/
ORDER BY
       b.run_date   DESC,
       b.run_time  DESC

Настройка самого сенсора в prtg

LSRestore_s0030_ax_molniya_DB _ Sensor Details _ PRTG Network Monitor (S0061) - Mozilla Firefox 2015-12-14 14.02.07

 

ресторинг n баз из одного бэкапа под разными именами

declare @name nvarchar(56)

declare @cmd nvarchar(512)

DECLARE @Cursor CURSOR

SET @Cursor = CURSOR FOR

select '0'+right(servername,2) as name from s0055.rkur_dbastat.dbo.ServerName

where is_disable = 0

--and servername = 's1027'

 

OPEN @Cursor

FETCH NEXT FROM @Cursor INTO @name

 

WHILE (@@FETCH_STATUS = 0)

BEGIN

print @name

set @cmd = 'RESTORE DATABASE [planograms'+@name+'] 

FROM DISK= N''H:\MSSQL\Backup\etalon_planograms_20150112.bak'' 

WITH  FILE = 1 

,MOVE  N''Planograms'' TO N''H:\MSSQL\Data\planograms'+@name+'.mdf''

,MOVE N''Planograms_log'' TO N''H:\MSSQL\Data\planograms'+@name+'_1.ldf''

,  NOUNLOAD

,  STATS = 10

'

print @cmd

--exec (@cmd)

 

FETCH NEXT FROM @Cursor INTO @name

end

 

Как посмотреть файл трассировки в самом sql

SELECT top 50 *
FROM fn_trace_gettable(N'\\192.168.0.38\Backup\Trace_sql_serverov\ho_report\TracE20150822            000000.trc',DEFAULT)
where CONVERT(CHAR(8),StartTime,8) BETWEEN '09:00:00' and '23:00:00'
and not ApplicationName in ('NULL','Symantec Backup Exec™ for Windows Servers')
AND ApplicationName NOT LIKE  ('SQLAgent - TSQL%')
AND ApplicationName NOT LIKE  ('DatabaseMail%')
AND textdata not LIKE  ('RESTORE%')
ORDER BY duration  DESC
SELECT *

FROM fn_trace_gettable(N'C:\TraceFiles\LongRunningQueries.trc',DEFAULT);

 

Как проверить какие трассировки выполняются на sql. Как остановить трассировку

Проверить трассировки

SELECT * FROM   sys.traces;

14-04-2015 10-41-43[7]

Остановить трассировку

DECLARE @TraceID INT ;

 SET @TraceID = 2 ; -- specify value from sp_trace_create

 EXEC sp_trace_setstatus

    @traceid = @TraceID

    ,@STATUS = 0 ;-- stop trace

 -- delete the trace

 EXEC sp_trace_setstatus

    @traceid = @TraceID

  ,@STATUS = 2 ;-- delete trace

14-04-2015 10-44-27[7]

Как сделать трассировку на стороне MS Sql сервера

Проверить какие трассировки у нас запушены на ms sql.

SELECT * FROM   sys.traces;

Остановить запушенную трассировку.

10-04-2015 10-05-39[3]

DECLARE @TraceID INT ;

 SET @TraceID = 5 ; – взять ид из таблички проверки запушенных трассировок 

 EXEC sp_trace_setstatus

    @traceid = @TraceID

    ,@STATUS = 0 ;-- stop trace

 -- delete the trace

 EXEC sp_trace_setstatus

    @traceid = @TraceID

  ,@STATUS = 2 ;-- delete trace

Выбор в profile шаблон TSQL_Duration набор трассировки и фильтр по времени выполнения запросов.

Перенос базы tempdb на другой диск

Запускаем sql при сбои:

NET START MSSQLSERVER /f /T3608

 

Проверяем где находится база tempdb

SELECT name, physical_name AS CurrentLocation

FROM sys.master_files

WHERE database_id = DB_ID(N'tempdb');

GO

Меняем путь

use master

alter database tempdb

modify file(

name = tempdev,

filename = N'C:\Новое_место\tempdb.mdf')

go

 

alter database tempdb

modify file(

name = templog,

filename = N'C:\Новое_место\templog.ldf')

go

Перенос множества файлов tempdb на другие диски(на разные)

use master

alter database tempdb

modify file(

name = tempdev,

filename = N'E:\TEMPDB\tempdb.mdf')

go
alter database tempdb

modify file(

name = tempdev1,

filename = N'E:\TEMPDB\tempdb1.mdf')

GO

alter database tempdb

modify file(

name = tempdev2,

filename = N'E:\TEMPDB\tempdb2.mdf')


Читать далее

Полное восстановление базы, переключение базы в однопользовательский режим потом в многопользовательский

USE [master]

GO

ALTER DATABASE [Имя базы] SET SINGLE_USER 

with rollback immediate;

GO

ALTER DATABASE [Имя базы]

SET READ_ONLY;

GO

RESTORE DATABASE [Имя базы] FROM  DISK = N'Путь до полного бекапа 'WITH FILE = 2 ,  STANDBY = N'Куда будет сохранятся незафиксированые транзакции' NOUNLOAD,  REPLACE,  STATS = 10

GO

ALTER DATABASE [Имя базы] SET MULTI_USER;

GO

 

Исследуем базы данных с помощью T-SQL

Базовая информация

Во-первых, несколько простых @@Функций, которые предоставят нам базовую информацию.

-- Имена сервера и экземпляра <br />Select @@SERVERNAME as [Server\Instance];
-- версия SQL Server Select @@VERSION as SQLServerVersion;
-- экземпляр SQL Server <br />Select @@ServiceName AS ServiceInstance;
- Текущая БД (БД, в контексте которой выполняется запрос)Select DB_NAME() AS CurrentDB_Name;<span id="mce_marker" data-mce-type="bookmark">​</span>

Как долго ваш SQL Server работает после последнего перезапуска? Помните, что системная база данных tempdb пересоздаётся при каждом перезапуске SQL Server. Вот один из методов определения времени последнего перезапуска сервера.

SELECT @@Servername AS ServerName ,
create_date AS ServerStarted ,
DATEDIFF(s, create_date, GETDATE()) / 86400.0 AS DaysRunning ,
DATEDIFF(s, 
Читать далее