Deadlock

Rédigé par M Sozezzo - - Aucun commentaire

We have same SQL Scripts to try to find out about what it happens when we have or had deadlocks.

 

  • Get current running commands.
  • Create event to find blocked processes and deadlocks.

 

Sources :

Deadlocking
https://technet.microsoft.com/en-us/library/ms177433%28v=sql.105%29.aspx

How to isolate the current running commands in SQL Server
https://www.mssqltips.com/sqlservertip/1811/how-to-isolate-the-current-running-commands-in-sql-server/

How To Monitor Deadlocks in SQL Server
http://blogs.technet.com/b/mspfe/archive/2012/06/28/how_2d00_to_2d00_monitor_2d00_deadlocks_2d00_in_2d00_sql_2d00_server.aspx

A very quick guide to deadlock diagnosis in SQL Server
https://dzone.com/articles/very-quick-guide-deadlock

Finding Blocked Processes and Deadlocks using SQL Server Extended Events
http://www.brentozar.com/archive/2014/03/extended-events-doesnt-hard/#comments

 

Lire la suite de Deadlock

Migrer des bases de données étrangères

Rédigé par M Sozezzo - - Aucun commentaire

Une autre journée de migration de bases de données..


Je pense qu’une bonne journée de travail est une journée vraiment plate que j'ai envie d’endormir, donc pas de surprise, pas d’improvisation, pas d’espace à la créativité parce que tout est comme l’on a prévu.


Parfois, nous sommes carrément obligés à migrer de bases de données sans faire tous les tests nécessaires.
J’arrive au bureau, et je sens que je ne vais pas avoir une journée plate.


La journée commence bien sans pression d’une journée de migration de bases de données, je suis soulagé puisque je ne suis pas le responsable pour la migration. Bien que j'ai créé les scripts de migration, mais ce n'était pas à moi de tester et de vérifier.
On repasse la procédure de migration avec le responsable  la migration (qui n'est pas moi!!).
Alors, on exécute encore une fois les scripts, j'ai ajouté un mode test qui fait la copie des bases de données sans rien changer aux bases de données.

 

Apparemment, tout fonctionne... mais les apparences ne sont que des apparences...

 

Lire la suite de Migrer des bases de données étrangères

Migrer une base de données

Rédigé par M Sozezzo - - Aucun commentaire

Migrer une base de données vers un nouveau serveur est assez simple…

si…

  • Il y a seulement une base de données;
  • Il n’y a pas des objets à migrer;
  • Il n’y a pas de dépendances physiques;

 

Alors, le SQL script proposé fait une partie du processus :

  • Ferme toutes les connexions vers la base de données à migrer;
  • Restreins l’accès à la base de données;
  • Fais une copie de sauvegarde de la base de données;
  • Restaure l’accès à la base de données à multi-utilisateur;
  • Mise hors ligne la base de données;

 

Le SQL script ajoute des scripts pour :

  • Change l’ancien utilisateur de la base de données;
  • Mise hors ligne les bases de données;
  • la restauration en ligne les bases de données;

 

Le script créé l’option :

  • Test : exécute seulement les copie de sauvegarde;
  • Migration : exécute tous les scripts;

Vous devez choisir le répertoire pour les fichiers de sauvegarde.

Lire la suite de Migrer une base de données

SQL script to find database owners using T-SQL and create SQL Script to change it to 'sa'

Rédigé par M Sozezzo - - Aucun commentaire

Microsoft provides system stored procedures (dbo.sp_changedbowner) for changing the db owner.
Keep in mind, a user database should have a db owner associated with it; dont mis interpret this witj db_owner role.


I personally prefer setting the db owner to ‘sa’


SELECT NAME,
    suser_sname(owner_sid) AS 'owner',
    CASE
        WHEN suser_sname(owner_sid) = 'sa'
            THEN ''
        ELSE 'USE [' + NAME + ']; EXEC dbo.sp_changedbowner @loginame = N''sa'';'
        END ScriptSql
FROM sys.databases

 

We can fix owner's jobs with this script:


SELECT
      s.name
    , l.name
    , s.[enabled]
    , CASE WHEN l.name <> 'sa' OR l.name IS NULL
      THEN 'EXEC msdb.dbo.sp_update_job @job_id=N'''+CAST(job_id AS nvarchar(MAX))+''', @owner_login_name=N''sa'';'
      ELSE '' END AS ScriptSql
FROM      msdb..sysjobs        s
LEFT JOIN master.sys.syslogins l ON s.owner_sid = l.sid;

 

Script to fix DB/Job owner to 'SA' without question.

PRINT '-- SQL Script to fix DB owner to SA'
SET NOCOUNT ON;
DECLARE @sql NVARCHAR(max);
SET @sql = '';
SELECT @sql = @sql + 'USE [' + sys.databases.NAME + ']; EXEC dbo.sp_changedbowner @loginame = N''sa'', @map = false;' + CHAR(13) + CHAR(10)
FROM            sys.databases
LEFT OUTER JOIN sys.syslogins ON sys.databases.owner_sid = sys.syslogins.sid
WHERE (sys.syslogins.NAME <> N'sa')
    OR (sys.syslogins.NAME IS NULL)
PRINT @sql;
EXEC (@sql);
PRINT '-- SQL Script to fix Job owner to SA'
SET @sql = '';
SELECT @sql = @sql + CASE WHEN l.NAME <> 'sa'
    OR l.NAME IS NULL     THEN 'EXEC msdb.dbo.sp_update_job @job_id=N''' + CAST(job_id AS NVARCHAR(MAX)) + ''', @owner_login_name=N''sa'';' + CHAR(13) + CHAR(10)
                          ELSE '' END
FROM      msdb..sysjobs        s
LEFT JOIN master.sys.syslogins l ON s.owner_sid = l.sid;
PRINT @sql;
EXEC (@sql);

To copy, or not to copy

Rédigé par M Sozezzo - - Aucun commentaire

J'ai écrit sur mon profil que tous les services web fermeront un jour... mais j'oublie mes propres mots. La dernière victime est mon propre blogue. J'y explique...  J'utilise certains plug-ins officiels et pas officiels, mais je ne pouvais pas imaginer qu'il pourrait aussi disparaitre.


Ahh!!! Oui, la page du site web qui avait le plug-in a été fermée ou effacée. Alors, il n'est plus simplement là.

Lire la suite de To copy, or not to copy

Classé dans : blog - Mots clés : aucun

Activer toutes les versions de Windows et d’Office avec Microsoft Toolkit !

Rédigé par M Sozezzo - - Aucun commentaire

Alors, cela peut être pratique quand l'on peut avoir un lab. Créer de virtuelles machines sans avoir le souci d'activer ou non les logiciels Microsoft.

 

Downloads:

2.6 BETA 5
EXE MD5: EA54A3ED8C40AA405B9645C166137318
EXE SHA-1: C4DE105BC0D4DEBF2EAB7563FC3127F6677A43C3
Torrent: Download

Site d'origine : http://geekz0ne.fr/2014/02/21/activer-windows-et-office-3-2/

Lire la suite de Activer toutes les versions de Windows et d’Office avec Microsoft Toolkit !

Script to fix database for all online databases.

Rédigé par M Sozezzo - - Aucun commentaire

Set database owner = 'sa'

Set RECOVERY = Simple & Shrink databases

 


 

print '-- SQL Script to fix owner and Recouvery mode'
print ''
SET NOCOUNT ON;
Declare @sql nvarchar(max);
declare @dbname nvarchar(255);
BEGIN TRY drop table #db; END TRY BEGIN CATCH END CATCH;
SELECT * INTO #db
FROM sys.databases f
WHERE f.state_desc = 'ONLINE'
    AND (f.database_id > 4)


while ((select count(*) from #db)>0)
BEGIN
    
    
    Set @sql = '';
    SELECT top 1
    @dbname = name,
     @sql =
    
     -- change db owner to SA
     + case when suser_sname(f.owner_sid) = 'sa' THEN '' ELSE 'USE ['+ f.name+']; EXEC dbo.sp_changedbowner @loginame = N''sa'', @map = false;' + CHAR(13) + CHAR(10)  END

     -- SET RECOVERY SIMPLE
     + CASE when f.recovery_model_desc = 'SIMPLE' THEN ''  ELSE +'USE [MASTER]; '+ 'ALTER DATABASE ['+ f.name+'] SET RECOVERY SIMPLE WITH NO_WAIT;'+ CHAR(13) + CHAR(10)
     +'USE [MASTER]; '+'DBCC SHRINKDATABASE(N'''+ f.name+''');' + CHAR(13) + CHAR(10) END
    FROM #db f
    ORDER BY f.name;

    if NOT(@sql = '')
    SET @sql = 'PRINT ''Database:'+@dbname+''';' + CHAR(13) + CHAR(10)+@sql;

    print @sql;
    --exec (@sql);

    delete from #db where name = @dbname;

END

 

Create script to change owner


PRINT '---------------------------';
PRINT '-- SQL Script to fix owner to "sa"';
PRINT '-- '+CAST(getdate() as nvarchar(100));
PRINT '---------------------------';
SET NOCOUNT ON;
DECLARE @sql nvarchar(MAX);
DECLARE @dbname nvarchar(255);
BEGIN TRY DROP TABLE #db; END TRY BEGIN CATCH END CATCH;
SELECT * INTO #db FROM sys.databases f WHERE f.state_desc = 'ONLINE'
AND (f.database_id > 4)

DECLARE @sqltemplate nvarchar(MAX);
SET @sqltemplate = '
PRINT ''-- Database "?" '';
IF (EXISTS(SELECT * FROM sys.databases WHERE NOT(suser_sname(owner_sid) = ''sa'') AND [name] = ''?'' ))
BEGIN
    PRINT ''---- Fix owner user to "sa"''
    USE [?];EXEC dbo.sp_changedbowner @loginame = N''sa'',@map=false;
END;
'
PRINT 'PRINT ''----------------------'';';
PRINT 'PRINT ''-- Script to fix owner to "sa"'';';
PRINT 'PRINT ''----------------------'';';
WHILE ((SELECT count(*) FROM #db)>0) BEGIN
SET @sql = '';
SELECT TOP 1 @dbname = name , @sql = REPLACE(@sqltemplate, '?', name) FROM #db f ORDER BY f.name;
DELETE FROM #db WHERE name = @dbname;
PRINT @sql;
END

 

Sql Script to set recovery mode full.


PRINT '---------------------------';
PRINT '-- SQL Script to Set Recovery Mode FULL';
PRINT '-- '+CAST(getdate() as nvarchar(100));
PRINT '---------------------------';
SET NOCOUNT ON;
DECLARE @sql nvarchar(MAX);
DECLARE @dbname nvarchar(255);
BEGIN TRY DROP TABLE #db; END TRY BEGIN CATCH END CATCH;
SELECT * INTO #db FROM sys.databases f WHERE f.state_desc = 'ONLINE'
AND (f.database_id > 4)

DECLARE @sqltemplate nvarchar(MAX);
SET @sqltemplate = '
PRINT ''-- Database "?" '';
IF (EXISTS(SELECT * FROM sys.databases WHERE NOT(recovery_model_desc = ''FULL'') AND [name] = ''?'' ))
BEGIN
    PRINT ''---- Fix recovery mode full''
    USE Master;ALTER DATABASE [?] SET RECOVERY FULL WITH NO_WAIT;;
END;
'
PRINT 'PRINT ''----------------------'';';
PRINT 'PRINT ''-- Script to Set Recovery Mode FULL'';';
PRINT 'PRINT ''----------------------'';';
WHILE ((SELECT count(*) FROM #db)>0) BEGIN
SET @sql = '';
SELECT TOP 1 @dbname = name , @sql = REPLACE(@sqltemplate, '?', name) FROM #db f ORDER BY f.name;
DELETE FROM #db WHERE name = @dbname;
PRINT @sql;
END

Create SQL Script to Backup/Restore databases

Rédigé par M Sozezzo - - Aucun commentaire

Create SQL Script to create SQL Script to backup databases and to restore databases.

- Fix owner user : 'sa'

- Shrink databases

 

Tip: You can use a shared folder;

Tip: You can disconnect all users before to restore a database;

Tip: You can add this SQL Script to protect executing on the wrong SQL Server;


IF (NOT(@@servername = 'MyServerName'))
BEGIN
   PRINT 'You MUST execute over MyServerName';
   RETURN;
END

 

Lire la suite de Create SQL Script to Backup/Restore databases

Fil RSS des articles