Pour changer le serveur maître d'une carte sélectionnée, il faut commencer par créer la carte sur le nouveau serveur NIS maître. Etant donné que le nom de l'ancien serveur maître est une paire clé/valeur dans la carte existante (cette paire est insérée automatiquement par la commande makedbm), la copie de la carte sur le nouveau serveur maître ou le transfert d'une copie sur le serveur maître à l'aide de la commande ypxfr ne suffit pas. Vous devez réassocier la clé au nom du nouveau serveur maître. Si la carte possède un fichier source ASCII, vous devez copier ce fichier sur le nouveau serveur maître.
Pour plus d'informations, reportez-vous à la section A l’aide de vos droits administratifs attribués du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .
newmaster# cd /var/yp
Si ce n'est pas le cas, modifiez le fichier Makefile maintenant. Pour cet exemple, ajoutez une entrée pour une carte nommée sites.byname.
newmaster# make sites.byname
Assurez-vous de placer en commentaire la section du fichier Makefile qui a créé la carte sites.byname pour qu'elle ne soit plus créée à cet emplacement.
Désassemblez tout d'abord une copie du fichier sites.byname à l'aide de la commande ypcat. Exécutez ensuite la version désassemblée via makedbm.
newmaster# cd /var/yp newmaster# ypcat sites.byname | makedbm domain/sites.byname
Après avoir créé la carte sur le nouveau serveur maître, vous devez envoyer une copie de la nouvelle carte aux autres serveurs esclaves. N'exécutez pas la commande yppush, car les autres serveurs esclaves essaieraient d'obtenir de nouvelles copies de l'ancien serveur maître, plutôt que du nouveau. La méthode généralement appliquée pour contourner ce problème consiste à transférer une copie de la carte du nouveau serveur maître vers l'ancien serveur maître. Pour ce faire, connectez-vous en tant que superutilisateur ou prenez un rôle équivalent à l'ancien serveur maître et saisissez les informations suivantes.
oldmaster# /usr/lib/netsvc/yp/ypxfr -h newmaster sites.byname
Vous ne courez à présent aucun risque à exécuter la commande yppush. Tous les serveurs esclaves continuent à croire que l'ancien serveur maître est le serveur maître actuel et ils essaieront d'obtenir de l'ancien serveur maître la version actuelle de la carte. Les clients qui agissent de la sorte obtiendront la nouvelle carte, qui désigne le nouveau serveur maître comme le serveur maître actuel.
Si cette méthode échoue, vous pouvez vous connecter en tant qu'utilisateur root sur chaque serveur NIS et exécuter la commande ypxfr ci-dessus.