Déplacer une base de données SQL Server avec osql.exe

Rien de pire que de devoir déplacer une base de données SQL Server sans les outils Visual Studio… Surtout quand on a une base de données MSDE !

Heureusement, grâce à osql.exe (disponible par défaut dans C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn), on va pouvoir la déplacer assez facilement.

Tout d’abord, trouver le nom de toutes les bases à déplacer :

osql.exe -E -S SRV-SQL\INSTANCE
1> SELECT name FROM sysdatabases
2> GO

Ensuite, toujours dans la même session osql, lançons la sauvegarde des bases:

3> BACKUP DATABASE [STS_Config_32664] TO DISK = 'E:\Backup\STS_Config_32664.bak'
4> BACKUP DATABASE [STS_srv-sts_1_32684] TO DISK = 'E:\Backup\STS_srv-sts_1_32684.bak'
5> GO

Une fois la sauvegarde terminée, on va détacher les bases de données :

6> EXEC sp_detach_db 'STS_Config_32664'
7> EXEC sp_detach_db 'STS_srv-sts_1_32684'
8> GO

Maintenant, avec un explorateur Windows, il faut déplacer les bases de l’emplacement d’origine vers le nouvel emplacement (ici E:\NewDest).

Et enfin, attacher les bases à SQL Server :

9> EXEC sp_attach_db @dbname = N'STS_Config_32664', @filename1 = N'E:\NewDest\STS_Config_32664.mdf', @filename2 = N'E:\NewDest\STS_Config_32664_log.LDF'
10> EXEC sp_attach_db @dbname = N'STS_srv-sts_1_32684', @filename1 = N'E:\NewDest\STS_srv-sts_1_32684.mdf', @filename2 = N'E:\NewDest\STS_srv-sts_1_32684_log.LDF'
11> GO

Limiter la consommation de mémoire de SQL Server et SQL Server Express

Vous avez un problème de consommation de mémoire de votre SQL Server ou votre SQL Server Express?

Deux solutions s’offrent à vous pour limiter la consommation mémoire de ces deux affreux jojo :

  1. Via un SQL Server Management Studio (Express), faire un clic droit + propriétés sur le serveur de base de données, et dans l’onglet “Mémoire”, modifiez le champ “Mémoire maximale du serveur” en entrant la mémoire maximale en Mo.
  2. En ligne de commande (avec les droits administrateur), lancez la commande suivante:
osql -S %computername%\SQLEXPRESS -E -Q "exec sp_configure 'show advanced options',1 reconfigure with override exec sp_configure 'max server memory (MB)',512 reconfigure with override"

Remplacez “SQLEXPRESS” par le nom de l’instance SQL Server concernée si ce n’est pas un SQL Server Express et remplacez “512” par la quantité de mémoire maximum en Mo que vous souhaitez allouer à SQL Server.

Références:

Comment réduire l’utilisation mémoire d’une instance SQL

Limiter l’utilisation mémoire de SQL Server 2005