Navision 4.0 : Un chantier qui se termine

Microsoft DynamicsIl y a plusieurs mois, nous lancions au boulot, un grand chantier d’optimisation et de sécurisation de notre ERP Navision 4.0 SP3. En voici enfin le résultat.

Au niveau sécurisation, nous avons abandonné les comptes d’accès SQL au profit de l’authentification via le compte Windows. Chaque compte à dorénavant accès en écriture qu’au information auxquelles il à droit de par sa fonction. La majorité du reste étant accessible en lecture tout de même. Certaines tables ont en plus des logs de modification très détaillé.
L’accès n’est aussi dorénavant possible que via le client Navision. De quoi évité l’export de données via un Excel par exemple. Dont le moteur à la fâcheuse tendance à tout bloqué et donc de ralentir les performances.

Au niveau performance, nous avons également regardé du côté du serveur physique, de Windows et du serveur Microsoft SQL.
La machine physique à vue sa mémoire passé de 3,5Gb à 8Gb. Il aura fallu modifier le fichier boot.ini de Windows avec l’option /PAE. Ceci afin que le système 32 bits puisse exploiter les 8GB. Un système 32 bits étant limité à une gestion mémoire de 4Gb de part la taille des adresses mémoire.
Dernière chose activé, c’est l’activation de l’option /3GB, toujours dans le boot.ini. Ceci afin d’autoriser Windows à donner plus de jusqu’à 3Gb à une application “gourmande”. La limite standard étant 2GB.

Une optimisation plus “anecdotique”, c’est le changement du switch réseau qui gère dorénavant que des ports 1Gbit.

Nous sommes arrivé au bouts des optimisation faisable facilement et sans gros risque. La dernière possibilité existante, est de revoir tous les indexe existant dans les différentes tables de Navision, et les adapter à nos besoins. Un travail de titan qui demande une connaissance complète et parfaite des tables. Mais aussi un temps énorme …

La prochaine étape en cas de nouveau ralentissement sera assez simple. Passage à un système 64 bits afin d’exploiter de façon optimale la mémoire mise à disposition pour le serveur SQL et profiter de la puissance du 64 bits. Mais cela, c’est une autre histoire, et surtout, de belle et grosse nouvelle licence à acheté. Windows 64 Bits, SQL 64 Bits etc…

Upgrade Windows 2008 vers Windows 2008 R2

Si vous avez du temps à passer, une bonne solution est de mettre à jour des serveurs tournant sous Windows 2008 (64 Bits), vers la même version, mais en Windows 2008 R2 (64 Bits).

Programme des festivités

Mise à jour de deux machines hébergeant un environnement VMWare Server 2.0.
La mise à jour au niveau des machines virtuelles d’un contrôleur de domaine et d’un serveur Exchange 2007.
Début des opérations, avec une machine “physique”. Je découvrirais que le disque C: doit avoir 10,6 Go de libre pour faire la mise à jour. Après un nettoyage, la mise à jour débute. Un long processus, 2-3 redémarrages et nous voilà avec la machine à jour.

Seconde machine, la mise à jour du contrôleur de domaine en machine virtuelle. Aucun problème d’espace disque.

Reste à faire la mise à jour de la “forest” et du domaine. Seule avertissement, avoir installé sur les contrôleurs de domaine tournant sous Windows 2000, le service Pack 4.

Les commandes à lancer sont

  • D:\support\adprep\adprep /forestprep (Ou D représente le DVD de Windows 2008 R2)
  • D:\support\adprep\adprep /domainprep

La mise à jour sera aussi longue, mais se passera sans aucun problème.

Vient le tour du serveur où se trouve Microsoft Exchange 2007. Petit problème, l’assistant m’annonce que pour mettre le Windows 2008 à jour, il me faudra … désinstaller Exchange 2007. La solution que j’ai retenue sera, lorsque cela sera vraiment nécessaire, d’installer un nouveau Windows 2008 R2, d’y installer un Exchange 2007 (voir 2010 ?) et de transférer les boites d’un serveur à l’autre.

Pas de grande nouveautés, un changement de design plus proche de Windows 7, quelques améliorations au niveau de l’interface des outils et autres assistant.

J’étais plus étonné que mise à jour se soit passé sans problème, aussi bien pour les applications Microsoft, que pour les applications tiers. La base identique n’y est bien sûr pas étrangère.

J’ai par la même occasion passer un produit que nous commercialisons, d’une machine 2003 32 bits vers un 64 bits sous Windows 2008 R2. Mais via une nouvelle installation. Installations rapide sans soucis … excepté l’oubli de l’activation du .NET Framework 3.5.1 dans Windows pour l’application.

La dernière machine physique devrait suivre d’ici quelques jours.

D:\support\adprep\adprep /forestprep

[0x80070534] No mapping between account names and security IDs was done.

SQL Server 2008

Voici le message qui m’a occupé pendant une bonne journée : “Error 0x80070534, No mapping between account names and security IDs was done”.

Après des recherches, des tentatives infructueuses, j’ai fini par trouver la raison de cette erreur. Cela se passait lors de l’installation d’Office Communication Server 2007 R2 sous Windows 2008 64 bits en virtualisé.

Cette erreur est provoquée par Microsoft SQL Server et peut se produire avec les versions 2000, 2005, 2008. Version express et complète.

La raison est “simple”, lorsqu’on installe un Windows, un identifiant unique est généré par machine. Cet identifiant est généré dès qu’on rentre dans l’interface graphique de l’installation (Dès le premier redémarrage donc).

Cet identifiant unique est donc copié si on vient à faire des Ghost ou des images virtuelles pré-configuré. Si pour la plupart des applications, cela ne pose pas de problème, pour SQL, le problème empêche de créer le lien entre les login utilisés et où ils le sont.

Pour information, un contrôleur de domaine et les contrôleurs de domaine secondaire ont eu un même numéro de système. D’où le fait qu’il est déconseillé (en plus des problèmes de sécurité) d’installer un SQL sur un contrôleur de domaine primaire et secondaire.

Il faut savoir que cet identifiant n’est pratiquement jamais modifié. L’ajout ou la suppression de la machine d’un domaine ne le modifie pas par exemple.

Quelle solution donc si on souhaite continué à utiliser Ghost ou des images virtuelles pré-configuré ?

Utilisé l’utilitaire newSID permettant de généré et de modifier le System ID de façon automatique. Il est disponible dans la section sysinternals de Microsoft sous NewSID.

La procédure la plus propre est :

  • Installer Windows
  • Installer les softwares ne devant pas être identifié sous le domaine explicitement.
  • Faire la copie Ghost ou du disque Virtuelle.
  • Lancer/installer la copie
  • Lancer l’utilitaire newSID
  • Ajouter la machine dans le domaine
  • L’utilisé normalement

De cette manière, vous ne soufrerez plus de ce problème de SID.