Як слід створити резервну копію декількох використаних баз даних MS Access?


1

Відмова: Я програмний інженер, а не ІТ-професіонал, вибачте, якщо деякі мої пропозиції є дурними або іншим чином смішними.

Додаток Windows, який завжди працюватиме, підключений до кількох баз даних MS Access і постійно взаємодіє з ними. Програма може будь-коли читати чи писати будь-яку з цих баз даних. Деякі бази даних невеликі, і залишаються приблизно однаковими. Деякі бази даних є (відносно) великими (кілька сотень тисяч рядків) і додаються постійно. Ми хотіли б робити резервну копію цього набору баз даних кожні X хвилин, не вимикаючи додаток. Резервне копіювання буде або на localhost (другий жорсткий диск), або в локальній мережі (100mbit).

Додаток буде працювати в ОС Windows XP або Windows 7.

Я розумію, що справжнє рішення - «припинити використання MS Access», що наразі не є варіантом.

Варіант 1: Копіювання файлів

Ми могли просто скопіювати файли, скориставшись командою Windows copy (або xcopy?), Або якоюсь (бажано безкоштовною) копією файлу сторонніх файлів. Чи є з цим проблеми?

Недоліком цього варіанту є те, що більші бази даних щоразу копіюються, що може зайняти більше декількох секунд. Що відбувається, коли записується база даних MS Access під час її копіювання? (Пошкодження даних? Неможливість копіювання?)

Варіант 2: Синхронізувати

У нас може бути запущений третій процес, який підтримує резервні бази даних MS Access синхронізовані з їх живими аналогами. У багатьох існуючих програмах я розглядав підтримку «справжніх» двигунів баз даних, таких як SQL Server, Postgres тощо, але, здається, MS Access тут не має підтримки (а може бути, я просто не шукаю потрібних ключових слів).

Варіант 3?


4
Ваша організація нереально сподівається на 100% часу роботи для цієї системи. Вам потрібно пояснити їм, що вони можуть мати заплановані простої або незаплановані / катастрофічні відключення, їх вибір, але що ви рекомендуєте запланований підхід. Перехід на реальну базу даних - це єдиний спосіб створити варіанти для фактично високої доступності, і ваші особи, які приймають бізнес-рішення, повинні це знати.
Skyhawk

Відповіді:


5

Коли ви відкриваєте файл, ви ризикуєте отримати пошкоджену копію, коли просто копіюєте її в інше місце. Як ви вже нагадали, Access насправді не означає багатокористувацьку базу даних, і я не знаю про утиліти, які спокійно скидають вміст в інший файл, як ви можете, у більшості баз даних SQL.

Можливо, вам пощастить використовувати копії тіньових копій. Отримання реальної програми резервного копіювання для Windows повинно дозволяти вам це робити, оскільки вона працює на рівні блоків; вбудована утиліта резервного копіювання Windows може зробити це за вас. Це дозволить уникнути проблеми блокування файлів.

Якщо рішення Windows Backup не працює, можливо, вам доведеться мати вікно технічного обслуговування, де ви просто закриєте всі підключення віддаленого доступу та створюєте просту копію в інше місце.

Вашою найкращою ставкою буде придбати програму резервного копіювання, яка підтримує створення резервних копій, незважаючи на блокування файлів на NTFS. Це дозволить заощадити головні болі в управлінні в майбутньому і уникнути рішень з каналами.

Наскільки мені відомо, немає способу кластерувати або відображати базу даних Access. Це просто не було призначено для цього, і коли організація досягає цього рівня, вони, як правило, використовують справжній механізм баз даних, який може підтримувати резервні копії через дамп, кластеризацію чи дзеркальне відображення, тому є інші установки, з яких можна зробити "живі" резервні копії. .


3

Варіант 3: КУПИТЬ ПРАВИЙ ІНСТРУМЕНТ!

Ви використовуєте Access для того, для чого він ніколи не був розроблений - Високий час роботи, висока конкурентоспроможність, об'ємне зберігання даних.

Доступ - це іграшка - претендент на трон бази даних, який підходить для дуже малих проектів, які не є критичними для бізнесу.
Описаний випадок використання - це те, для чого був створений SQL Server . Витратьте гроші та отримайте те, що вам потрібно: База даних, яка може обробляти об'ємне та високоефективне використання реплікації та / або резервного копіювання, які можна запустити, не впливаючи істотно на ваших користувачів.


Я згоден. Цитата: "Я розумію, що справжнє рішення - це" припинити використання MS Access ", що наразі не є варіантом".
epalm

@epalm Я усвідомлюю ваше обмеження, як заявлено, але це не безпосередній варіант не міняє моєї відповіді - я намагаюся лише рекомендувати правильне рішення, і я намагаюся ніколи не рекомендувати рішення, які можуть обертатись і кусати людей ззаду пізніше (це все, що я дійсно можу запропонувати вам, якщо ви не можете перенести з Доступу)
voretaq7

Я розумію. Але ваша відповідь, хоча і найправильніша, є для мене і найбільш марною. (Знову повірте, ніхто не хоче дозволити доступ більше, ніж я!)
epalm

1
Приємно, що ми маємо таку ж думку щодо MS Access. Я сидів у нашій залі засідань і заздалегідь провів засідання, "незважаючи ні на що, напевно, не буде надійного рішення цієї проблеми". Як це часто трапляється в програмному забезпеченні (і ІТ, я б собі уявив), я шукаю найменш гірший варіант :)
epalm

@epalm Ви завжди можете вказати на мої відповіді - можливо, це допоможе їм зрозуміти причину :-D
voretaq7
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.