2013-06-24 2 views
6

J'ai deux répertoires qui contiennent chacun une table splayed partitionnée. Chaque répertoire a son propre fichier sym comme prévu. Les tableaux sont exactement les mêmes. Je veux consolider cela dans un répertoire mais j'ai des problèmes à le faire. Initialement, j'ai essayé de créer un lien logiciel (en raison des grandes quantités de données) des partitions de l'autre répertoire. Cela n'a pas fonctionné car les tables utilisaient le mauvais fichier sym.Fusion de fichiers sym pour des tables évasées

Est-ce que quelqu'un a une idée de la meilleure façon de faire cela? Dois-je régénérer un nouveau fichier sym pour les deux répertoires?

Merci

Répondre

4

Je ne suis pas sûr de comprendre exactement quelle est votre situation, mais je peux penser à quelques possibilités.

  • Les deux bases de données sont exactement même. Si vous exécutez une somme de contrôle sur les deux répertoires, les hachages correspondent.

Dans ce cas, pourquoi avez-vous besoin des deux copies? Vous pouvez exécuter plusieurs processus q sur la même copie de la base de données. En fait, cela est préférable car vous bénéficiez de la mise en cache partagée fournie par le cache disque du système d'exploitation. Supprimez simplement l'une des copies et pointez tous les processus q dans le même répertoire.

  • Les deux bases de données contiennent des données chargées à partir de la même source, mais ne sont pas identiques. Si j'interroge chacune des bases de données avec la même requête, je peux obtenir le même résultat mais les sommes de contrôle des fichiers ne correspondent pas.

Cela peut se produire si les bases de données ont été créées indépendamment mais avec les mêmes données source. Sauf si vous avez réellement fait une copie des fichiers, vous ne pouvez pas vraiment supposer que les bases de données sont les mêmes. Un exemple évident est que vous aviez un tas de fichiers que vous avez chargés dans chaque base de données mais que l'ordre des fichiers chargés était différent pour chaque base de données. Dans ce cas vous ne pouvez pas utiliser le même fichier sym! Cela rendra les données look OK à première vue, mais toutes vos valeurs sym sont fausses. Si vous voulez combiner les deux bases de données pour une raison quelconque, vous devrez prendre les données d'une base de données et les charger dans l'autre. C'est le seul moyen fiable d'être sûr à 100% que vous ne corrompez pas vos données. Vous avez deux bases de données différentes qui contiennent chacune exactement la même table (dans le sens de la somme de contrôle, vous avez peut-être copié les fichiers de table d'un répertoire à un autre). Cela ne marchera probablement pas, à moins que par miracle les valeurs sym ne correspondent, ce qui ne sera pas le cas si le reste de la base de données est différent. Cela est dû au fait que les valeurs sym énumérées sont globales et dépendent de toutes les valeurs sym de la base de données. Si vous voulez la table dans les deux bases de données, vous devrez réénumer les colonnes sym pour la base de données à laquelle vous copiez.

+0

Les bases de données ne sont pas exactement les mêmes, elles contiennent simplement le même format de données. On dirait que je vais devoir en lire un et le sauvegarder à l'autre.Merci de votre aide. –

3

Lire en jour par jour d'un répertoire, d'évaluer toutes les colonnes sym énumérées et écrire à l'autre répertoire, l'autre sur l'énumération fichier sym.