Лучшие практики внесения изменений в схемы в больших производственных базах данных

Иногда нам приходится вносить изменения в схемы производственных баз данных на основе mysql или mssql. Я поражен тем, что обычно это испытание. Технические специалисты вносят свои изменения, используя браузеры соответствующих платформ (например, Sql server Management Studio), и я наблюдаю несколько проблем с этим процессом:

  1. Каждое изменение в базе данных занимает значительное время, что приводит к недовольству технических специалистов и длительному простою базы данных.
  2. Технические специалисты не знают о прогрессе, достигнутом механизмом базы данных при внесении изменений. Проблема возникает из-за того, что технический специалист не знает в середине процесса, произошла ли какая-то ошибка при попытке внести изменение или просто, что для выполнения этого изменения требуется много времени.

Есть ли лучшие способы сделать это? Является ли изменение таблиц с помощью сценария командной строки оптимальной практикой? Есть ли способы отслеживать прогресс при выполнении изменения схемы?

Спасибо,

Elliott

2 ответа

Решение

Эллиот, из ваших комментариев кажется, что вы используете службу поддержки клиентов, а не разработчиков поддержки, чтобы внести свои изменения в базу данных. Поправь меня, если я ошибаюсь. Если вы используете Support Developer, они должны запускать сценарии, чтобы изменения всегда были наилучшим способом. И, читая ваш вопрос, похоже, ваша БД имеет огромное количество записей. Чтобы получить скрипт, вы можете использовать Microsoft VisualStudio DB Edition. Он сравнит исходный проект БД и БД, в которой вы хотите его развернуть. Затем вы можете просмотреть созданный скрипт и запустить его на сервере.

Как я уже сказал, вопрос об изменениях занимает много времени, зависит от количества данных и изменения схемы, которую вы делаете. Чтобы избежать длительного простоя, вам нужно найти время, которое меньше всего влияет на клиентов, и делать это в течение этого времени. В случае, если вы работаете круглосуточно, вам нужно запланировать время простоя. Также попробуйте изучить схему ваших изменений. Есть ли возможность, что вы можете сгруппировать все изменения в одно реле, чтобы у вас было меньше простоев? Кроме того, узнайте, почему у вас так много изменений в БД, есть ли что-то, что вы можете сделать в дизайне, чтобы смягчить изменения. Например Могут быть индексы, которые перестраиваются при каждом изменении схемы. Может быть, вы можете отключить индекс во время изменения схемы. Завершите изменение схемы, а затем запланируйте перестройку индекса с помощью задания db.

На ваш вопрос о контроле за изменением схемы я не думаю, что есть какой-либо визуальный индикатор, который говорит, что многое из этого уже закончено. Вам просто нужно дождаться окончания команды.

На самом деле, вы можете изменить схему и поддерживать базу данных в оперативном режиме. 1. измените таблицу, чтобы добавить новый столбец, и установите значение по умолчанию, равное нулю 2. создайте SP, чтобы обновить значение в небольшом фрагменте данных фрагмента, например, 10 КБ 3. измените таблицу с правильным значением по умолчанию

Другие вопросы по тегам