Создайте копию тестовой базы данных Production с использованием только образца набора данных. - PullRequest
4 голосов
/ 19 апреля 2011

У нас есть 2 базы данных Oracle.Одним из них является наша производственная база данных клиентов.Другая - тестовая база данных.Тестовая база данных - это копия продукции без каких-либо данных ... только пустые таблицы.Я пытаюсь найти эффективный и действенный способ скопировать набор образцов данных из производственной базы данных в тест.

Мне нужно начать с примера списка PK из нашей таблицы клиентов и написатьпроцесс заполнения таблицы клиентов тестовой базы данных этим образцом.Затем мне нужно заполнить дочерние таблицы соответствующими данными, основанными на образце.

Раньше у нас был процесс Java, который использовал бы подготовленный оператор для выбора данных из Production ... построить файл на основе результатаset ... затем используйте оператор update, чтобы получить его в Test db.Это было ужасно неэффективно.

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

Кто-нибудь знает способ сделать это ... или, по крайней мере, дать мне отправную точку?

Ответы [ 4 ]

5 голосов
/ 19 апреля 2011

Если у вас достаточно места, я бы предложил скопировать все производственные данные для тестирования.Это будет намного проще в администрировании, это также может быть хорошей возможностью для тестирования вашей резервной копии (восстановление из резервной копии в новый экземпляр).

С точки зрения разработчика, вы не сможете надежно протестировать производительность вашего приложения без репрезентативного набора данных.Этот набор данных должен иметь те же свойства, что и производственные данные (объем данных, физическое распределение ...).Самый простой способ добиться этого - иметь в тесте те же данные, что и на производстве.

Если вы можете позволить себе простои, вы можете остановить производственную базу данных, скопировать файл на тестовый сервер и смонтировать обе базы данных.Если вы не можете позволить себе простои, возможно, было бы неплохо приобрести некоторые навыки работы с БД (и в конечном итоге узнать о «горячем» резервировании, а затем восстановить на новый экземпляр).


Обновление: если физическое копирование вашей базы данныхэто неосуществимо, вы должны смотреть на массовое копирование данных с expdp и impdp (или старым exp / imp).Вы можете скопировать все схемы или отфильтровать данные при экспорте .В этом случае вы бы выбрали соответствующее предложение WHERE вручную.Массовый экспорт и импорт будут на несколько порядков быстрее, чем копирование данных строка за строкой.

3 голосов
/ 23 мая 2016

Тестовые базы данных, которые являются полными копиями производства, будут работать намного лучше, чем подмножество для устранения ошибок. Большинство людей подмножество, потому что у них нет времени и ресурсов для создания полных копий, но все, что изменилось с виртуальными данными, то есть управление данными копирования. В таких системах вы можете проглотить одну копию производства и сделать тонкие клонированные копии за считанные минуты практически без дополнительного хранилища. Эти системы также обычно сжимают данные, так что загружаемая копия имеет размер оригинала 1/3 и обладает преимуществом быстрого обновления в течение нескольких минут, что отлично подходит для разрушительного тестирования. Они также имеют тенденцию интегрироваться с маскированием, поскольку мы, вероятно, не хотим, чтобы конфиденциальные данные выходили из производственной среды в dev и тестирование. Есть несколько поставщиков в этой области. Проверьте Netapp SMO, Actifio, Oracle Snap Clone и Delphix для начинающих. Большинство из них требуют специального оборудования, которое может быть препятствием. Delphix полностью программный и даже имеет бесплатную версию Delphix Express, которую вы можете скачать. Подобные технологии используются Рубриком и Cohesity для образов виртуальных машин.

С наилучшими пожеланиями Кайл Хейли

3 голосов
/ 19 апреля 2011

Я просто хочу указать на отраслевой сценарий и продукты .. не решение, а ввод для справки, так как @aintnoprophet отметил, что

"Я не администратор баз данных, поэтому я не знаюбольшая часть этой области. Я пытался найти в Google некоторую информацию о ссылках на базы данных, но не смог найти очень хороших примеров. "

Этот вариант использования связан с тестовыми системами управления данными.Эта концепция связана с тем фактом, что нам нужен способ управления тестовыми данными, который входит в эти конкретные тестовые случаи для некоторых конкретных тестовых сценариев. Будет очень трудно вручную создать подмножество данных из больших объемов данных, вызначительно увеличивает вероятность ошибки человека. Таким образом, повторные настройки данных для нескольких итераций теста быстро становятся неуправляемыми.

Есть много вариантов использования, особенно в корпоративных примерах -

http://www.compuware.com/resources/mainframe/Fileaid_clientserver.pdf

http://www.erphome.net/wdb/upload/forum1_f_8007_1227768589.pdf

это для больших корпоративных данных.

существует инструмент tdm с открытым исходным кодом http://sourceforge.net/projects/opentdm/, но не в java (я не уверен, хорошо это или нет)

, если вы ищете продукты (просто для справки), некоторые из них средиявляются

1 голос
/ 16 мая 2011

похоже, что вы ищете Тюремщик . Он экспортирует непротиворечивые, ссылочно-неповрежденные наборы строк из реляционных баз данных.

...