IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Connaître le chemin data d'un serveur distant [2008R2]


Sujet :

Administration SQL Server

  1. #1
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 188
    Points : 28 051
    Points
    28 051
    Par défaut Connaître le chemin data d'un serveur distant
    Salut à tous.

    Je cherche à connaitre, par code (VB.Net, requete SQL, ???), les chemins configurés pour les options Emplacement par défaut des données et journaux d'une instance distante.

    Le but :
    Je suis en train de reprendre un programme développé par une personne qui n'est plus dans la société. Dans ce programme il y a une requete de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RESTORE DATABASE [TOTO] FROM  DISK = 'titi.bak' WITH  FILE = 1,  MOVE TITI TO 'cheminData\TOTO.mdf',  MOVE TITI_log TO 'cheminLog\TOTO.ldf',  NOUNLOAD,  STATS = 10
    Bien évidement, ce point fait partie des petites subtilités de l'applicatif qui ne sont pas documentées.
    la base TITI est une base "modèle" vierge qui sert à créer des bases client TOTO.
    Après analyse, le but du MOVE ne servirait en réalité qu'à mettre à jour les infos de fichiers et journal dans la base elle-même, pas vraiment à stocker physiquement à un endroit précis les fichiers. Le problème est que le chemin est actuellement configuré en dur dans le code de l'application. L'idée serait donc de récupérer les chemins par défaut de l'instance, pour utiliser ceux_là, plutôt que d'imposer arbitrairement un chemin
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'avais déjà cherché sur le sujet et j'en étais arrivé à la conclusion que le meilleur moyen de récupérer ces données étaient d'aller chercher dans la base de registre.
    Regarde dans ce lien, par exemple : https://blog.dbi-services.com/sql-se...ult-data-path/
    Attention, cependant, l'emplacement dans le registre est différent suivant les versions.
    Bon courage.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 716
    Points : 52 380
    Points
    52 380
    Billets dans le blog
    4
    Par défaut
    C'est dans la registry et il faut passer par la procédure xp_regread

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 188
    Points : 28 051
    Points
    28 051
    Par défaut
    Ok, merci.

    Je vais étudier tout ça, et soumettre la solution.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Invité
    Invité(e)
    Par défaut
    Tiens, pour l'exemple, voici comment je récupérais les infos de mes serveurs jadis naguère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EXECUTE master.dbo.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory'
    EXECUTE master.dbo.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\Parameters', N'SQLArg1'
    EXECUTE master.dbo.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp\IPAll', N'TcpDynamicPorts'
    EXECUTE master.dbo.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp\IPAll', N'TcpPort'

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 716
    Points : 52 380
    Points
    52 380
    Billets dans le blog
    4
    Par défaut
    Pardon, erreur, c'est xp_instance_regread


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Points : 1 736
    Points
    1 736
    Par défaut
    Et pour changer, j'ai retrouvé ça mais ça fait longtemps que je ne l'ai pas utilisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    USE [master]
    GO
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'D:\databases\Data\Data'
    GO
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', REG_SZ, N'D:\databases\Data\Log'
    GO
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

  8. #8
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Bonjour,

    Tu peux aussi regarder le script SQL de mon article de blog :

    SQL Server - Apprendre une méthode pour lister les fichiers de données (.mdf .ndf) et de log (.ldf) orphelins, un tutoriel de Hmira
    https://www.developpez.com/actu/1102...riel-de-Hmira/

    La première partie du script est entièrement consacrée à l'extraction du répertoire des données ainsi que celui des journaux de transactions. Pour cela, j'utilise, en fonction de la version de l'instance SQL Server, diverses techniques : Registry (xp_instance_regread), les propriétés InstanceDefaultDataPath, InstanceDefaultLogPath, et même, le cas échéant, les paramètres du Service SQL Server de l'instance.

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  9. #9
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Points : 1 736
    Points
    1 736
    Par défaut
    Super hmira, c'est vraiment bien ce que tu as fait.

    Ce qui serait top, c'est d'ajouter la taille des fichiers comme ça on a une vue rapide de la place utilisée. Je vais voir si j'ai le temps d'ajouter cela dans ta SP.
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

  10. #10
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par janlouk Voir le message
    Ce qui serait top, c'est d'ajouter la taille des fichiers comme ça on a une vue rapide de la place utilisée. Je vais voir si j'ai le temps d'ajouter cela dans ta SP.
    Bonjour,

    Oui, tu as raison sur le principe, avoir l'information sur la taille des fichiers serait très intéressant. J'y ai pensé au début, mais, je n'ai volontairement pas rajouté cette information. En effet, pour cela, il aurait fallu :
    1 - soit utiliser la commande "xp_cmdshell"
    2 - soit faire appel à l"Ole Automation Procedures"
    3 - soit créer, de toute pièce, une fonction utilisateur CLR
    4 - soit utiliser d'autres techniques (?)

    Les choix 1 et 2 ne peuvent être être envisagés, puisque pour des raisons évidentes de sécurité, ces fonctionnalités ne sont pas toujours activées sur les instances SQL Server (pour la première "xp_cmdshell" c'est pratiquement jamais ! pour la seconde "Ole Automation Procedures", cela reste des cas rares.
    Le choix 3 (Fonction CLR), est possible , mais il rajoute une petite complexité au déploiement et à l'utilisation de la procédure.
    Le choix 4 (?) je ne sais, cela reste à explorer ...

    En conclusion :
    Modifier la procédure pour obtenir la taille des fichiers orphelins, est une idée très intéressante, techniquement c'est tout à fait faisable, mais il faut que cela reste sous option. C.à.d rajouter par exemple un paramètres à la procédure :
    @pi_GetInfoFileSize bit -- 1 (Oui)/ 0 (Non) ( par défaut 0 (Non) c.à.d fonctionnement comme avant )

    Lorsque le paramètre @pi_GetInfoFileSize = 1, j'opterais personnellement peut-être pour "Ole Automation Procedures" pour obtenir la taille des fichiers.
    Si l'utilisateur transmet 1 pour le nouveau paramètre @pi_GetInfoFileSize et si la fonctionnalité "Ole Automation Procedures" n'est pas activée, la procédure enverra un message d'erreur explicatif clair.

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ŝsh linux serveur distant no xauth data
    Par mapmip dans le forum Sécurité
    Réponses: 0
    Dernier message: 25/11/2012, 12h39
  2. [MySQL] Récupérer le chemin d'un fichier sur un serveur distant
    Par Blanco68 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 12/03/2012, 12h37
  3. Dossier data de Mysql dans un serveur distant
    Par maxeur dans le forum MySQL
    Réponses: 3
    Dernier message: 21/07/2009, 20h14
  4. Connaître l'état d'un serveur distant.
    Par Megaolix dans le forum Langage
    Réponses: 2
    Dernier message: 26/11/2008, 14h45
  5. Connectivité avec des serveurs distants
    Par Ph. B. dans le forum XMLRAD
    Réponses: 8
    Dernier message: 07/02/2003, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo