Question

Ceci ressemble plus à une question de conseil.

- SQL Server 2008 / SQL Server 2005 / HAMACHI / DELPHI 2010 -

Je développe un système de point de vente pour quelques restaurants que nous possédons (4), chacun des emplacements a sa propre base de données SQL Server, il y a à peine 2 jours, je pouvais créer une conquête à l'aide de Hamachi pour un VPN et créé des serveurs aimés (Père Google m'a aidé avec tout cela), je peux maintenant accéder à toutes les données des emplacements distants. J'ai aussi toutes les bases de données de cet ordinateur (je construirai un ordinateur de serveur réel). J'ai créé une base de données dans le "serveur" pour chacun des emplacements afin qu'il soit plus facile de créer des rapports et tous.

Je n'ai pas créé de modèle client-serveur et je suis allé pour un épais car Internet est très instable et je n'ai pas vraiment besoin de mettre à jour en temps réel.

Je souhaite créer une mise à jour sur le serveur tous les 30 minutes ou toutes les heures, je suis toujours rallumée dessus.

J'ai quelques questions.

  1. (Si vous le savez), Hamachi est un VPN fiable, a-t-il de ses problèmes (quels sont-ils des problèmes, ou vous recommandez-vous un autre moyen et qui est un?

  2. Lorsque vous effectuez la mise à jour (par la mise à jour, je veux dire un insertion des nouveaux enregistrements dans le serveur), dois-je exécuter la mise à jour à partir du client ou du serveur?

  3. Je suis en train d'utiliser la fusion pour mettre à jour lors de la mise à jour et d'insérer lorsqu'il n'est pas assorti, mais je ne sais pas si c'est la meilleure façon de le faire car il analyse tous les enregistrements et une table avec seulement 243 272 enregistrements prend comme 12 minutes à Complet, ou si je devrais sélectionner les recods où la PK est supérieure à la dernière PK sur le serveur et faites une fusion. Basé sur votre Expérience Wich Way serait la meilleure (même sans utiliser de fusion) ...

  4. Ceci est un code de fusion im en utilisant:

    SET IDENTITY_INSERT pedidos ON
    
    MERGE INTO pedidos C
    USING(
        SELECT id, id_pedido, id_articulo, cant, fecha, id_usuario, [local], estado
        FROM [SENDERO].[PVBC].[DBO].[pedidos]) TC
    ON (C.id =TC.id)
    WHEN MATCHED THEN
    UPDATE 
        SET C.id_pedido=TC.id_pedido,
            C.id_articulo=TC.id_articulo,
            C.cant=TC.cant,
            C.fecha=TC.fecha,
            C.id_usuario=TC.id_usuario,
            C.[local]=TC.[local],
            C.estado=TC.estado
    
    WHEN NOT MATCHED THEN
        INSERT (id, id_pedido, id_articulo, cant, fecha, id_usuario, [local], estado)
        VALUES (id, id_pedido, id_articulo, cant, fecha, id_usuario, [local], estado);
    
    SET IDENTITY_INSERT pedidos OFF
    

    Toutes les recommandations sont les bienvenues, rappelez-vous que je suis nouveau avec toutes ces informations à distance, mais je suis prêt à continuer à apprendre. Merci !!

Était-ce utile?

La solution

Il y a beaucoup de façons de faire ce que vous voulez.Je vous suggère de faire des recherches sur la réplication SQL Server.Il s'agit d'une manière «intégrée» de faire des bases de données Copier (publier) elles-mêmes dans une zone centrale (abonné).C'est un peu compliqué mais ne nécessite pas de code personnalisé et il devrait apporter plus facilement d'autres bases de données.Il existe de nombreuses façons de la mettre en œuvre, il suffit de garder à l'esprit vos exigences - 30 minutes de la latence sur un VPN - lors de la sélection de la méthode.C'est-à-dire que vous n'avez pas besoin d'utiliser la mise en miroir car vous n'avez pas besoin que vos données soient aussi à jour

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top