У меня есть интересная проблема и требование для большой базы данных с несколькими схемами.
- Размер базы данных составляет около 130 Гб.
-Это база данных с несколькими схемами, у каждого клиента есть схема.
-В настоящее время в системе 102,247 таблиц.
-Microsoft SQL Server 2k8 r2
Это связано с требованиями к настройке клиентов, которые используют единый определенный интерфейс.Проблема, с которой мы столкнулись, заключается в том, что резервные копии нашей базы данных становятся астрономическими, а восстановление базы данных для поиска потерянных / отсутствующих / неправильных данных - это кошмар.В первоначальном продукте не было определенных контрольных журналов, и у нас нет «изменений» в хранимых данных, у нас просто есть 1 версия данных.
Возвращение потерянных данных в основном означает восстановление полной резервной копии объемом 130 ГБ и загрузку разностных файлов / файлов транзакций для получения данных.
Мы хотим ввести «Changeset» для каждой важной таблицы в каждой схеме.по существу, содержит набор данных, а затем любые измененные / различные данные по мере их сохранения - каждые X количество минут.Сначала это должно быть задание на SQL, но я хочу знать, какой из методов будет наилучшим.
По сути, я бы запустил скрипт для вставки «резервных» таблиц в каждую схему для таблиц, для которых мы хотим сохранить резервную копию.
Затем запускайте задание каждые X минут, чтобы циклически проходить по каждой схеме и вставлять текущие - затем новые / измененные данные, когда они обнаруживают изменения.(основано на измененной дате строки). Затем этот журнал изменений будет храниться в течение месяца до самостоятельной перезаписи.
У нас все еще есть большие резервные копии, но нам не нужно сохранять больший срок хранения.Суть в том, что это лучший и наиболее эффективный метод проверки измененных данных и выполнения вставки.
У меня будет ощущение:
INSERT INTO BACKUP_table (UNIQUE ID, col1,col2,col3)
select col1,col2,col3 from table where and ModifiedDate < DATEADD(mi,+90,Current_TimeStamp)
* грубый SQL
Это должно быть в цикле, чтобы пройти все схемы и запустить это.Ряд таблиц не изменил данные.
Это даже хороший метод?
Что ТАК думает?