Резервное копирование базы данных - PullRequest
2 голосов
/ 16 мая 2010

Сценарий

Я хочу сделать резервную копию из базы данных 7 клиентов в базу данных 1 сервера.я не знаю структуру базы данных {сервера или клиента базы данных}.обе базы данных имеют старые данные.теперь я должен заставить инструмент взять резервную копию для этого.и если возможно, можно сделать резервную копию старых данных [если какие-либо обновления сделаны для старых данных.], пожалуйста, помогите найти решение для этого.1. как я могу приступить к проблеме.2. база данных не указана, может быть MS access или Sql server 2005 3. В которой я могу реализовать это [я думаю сделать это в c #]

, пожалуйста, помогите мне найти решение

Ответы [ 2 ]

0 голосов
/ 17 мая 2010

Целесообразность выполнения этого в стороне, один простой ответ для определенного подмножества проблемы будет состоять в том, чтобы создать DSN для целевого сервера SQL (или любой базы данных сервера) и в Access экспортировать таблицу за таблицей в DSN. Вы можете сделать это через пользовательский интерфейс Access, и это можно автоматизировать в Access с помощью DoCmd.TransferDatabase. Может быть немного сложно определить правильную строку соединения, и вам также нужно будет что-то сделать с переименованием экспортированных таблиц, чтобы не было коллизий между базами данных, но это можно довольно легко обработать в небольшом количестве кода VBA.

Я публикую это только потому, что многие люди упускают возможность экспорта в ODBC DSN, что не требует написания DDL и так далее. Тем не менее, он может или не может сделать правильный выбор в отношении целевых типов данных, поэтому вам придется видеть в любой конкретной ситуации, достаточно ли это хорошо или нет.

0 голосов
/ 16 мая 2010

Я не уверен, почему вы хотели бы пойти по этому пути - если вы просто пытаетесь скопировать клиентские базы данных (которые я интерпретирую как «файловые»), то почему бы просто не взять копии их файлов как часть более широкой стратегии резервного копирования?

Если вы напишете материал для резервного копирования, чтобы поместить все данные в СУБД на основе сервера, вам также придется подумать о том, как впоследствии восстановить эту информацию - что, вероятно, означает еще большее кодирование для вас. *

Итак - я не думаю, что это хорошая идея, но если вы решительно настроены, я бы начал с написания класса (который будет почти абстрактным), предназначенного для чтения структуры клиентской базы данных ( таблицы, поля, представления и т. д.). Затем я унаследовал бы от этого, чтобы получить определенный класс для этого для каждого отдельного типа клиентской БД. После этого вы можете использовать ADO.Net для чтения значений из таблиц в клиентской БД, заполнить таблицы данных информацией и затем записать эту информацию обратно в БД на основе сервера.

Я действительно не могу не подчеркнуть, что мне не нравится эта идея - она ​​кажется слишком сложной, а также не будет иметь дело с функциями и т. Д.

Удачи в любом случае,

Martin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...