Разумное планирование перед блокировкой гарантирует, что база данных SQL или MySQL после преобразования в статус «только для чтения» будет функционировать должным образом и останется доступной для назначенной группы пользователей. Такая предусмотрительность также гарантирует, что базу данных можно будет безопасно разблокировать, когда и если она потребует обновлений или изменений в будущем.
В настройке базы данных только для чтения есть определенная привлекательность, которая находит отклик у администраторов баз данных. Как будто база данных достигла зрелости и готова к выходу в мир, не обремененная необходимостью постоянных обновлений.
Конечно, причины перевода базы данных в режим «только для чтения» — временные или постоянные — столь же разнообразны, как и сами базы данных. Вот подробный обзор методов блокировки содержимого базы данных SQL или MySQL, при этом предоставляя пользователям доступ к ее содержимому.
Как проницательно отмечает Атиф Шехзад на сайте MSSQLTips , перед блокировкой базы данных важно точно настроить ее, чтобы обеспечить максимальную производительность. Например, вы не можете обновлять статистику в базе данных, доступной только для чтения, а также не можете создавать или дефрагментировать индексы. Кроме того, вы не можете добавлять расширенные свойства к объектам базы данных, редактировать ее разрешения или добавлять/удалять пользователей.
Шехзад предоставляет тщательный восьмишаговый сценарий предварительной блокировки, который необходимо выполнить перед преобразованием базы данных в режим только для чтения. Контрольный список включает в себя все: от создания резервной копии журнала транзакций до изменения разрешений и обновления статистики.
Контрольный список предварительной блокировки из восьми шагов гарантирует, что ваша база данных будет оптимизирована и создана резервная копия перед переключением в режим только для чтения. Источник: MSSQLTips.
После оптимизации базы данных и резервного копирования используйте команду ALTER DATABASE [имя базы данных] SET READ_ONLY или системную хранимую процедуру sp_dboption (рекомендуется использовать первую, поскольку хранимая процедура была удалена из последних версий SQL Server). Альтернативно, вы можете щелкнуть правой кнопкой мыши базу данных в SSMS, выбрать Свойства > Параметры и установить для параметра База данных только для чтения значение True. Значок и имя базы данных изменятся в SSMS, указывая на ее состояние «только для чтения».
Основной мотивацией настройки базы данных MySQL как доступной только для чтения является предотвращение потери данных во время процесса резервного копирования. Библиотека документации MySQL предоставляет подробные рекомендации по резервному копированию главных и подчиненных серверов при настройке репликации с использованием глобальной блокировки чтения и манипулированием системной переменной read_only.
Источник
Рекомендации по настройке репликации предусматривают наличие главного сервера (M1), подчиненного сервера (S1) и клиентов (C1, подключенного к M1, и C2, подключенного к S1). Ниже приведены команды, облегчающие переход мастера в режим «только для чтения» и восстановление его нормальной работы после завершения резервного копирования. (Обратите внимание, что в некоторых версиях «ВКЛЮЧЕНО» является синонимом «1», а «ОТКЛЮЧЕНО» эквивалентно «0».)
Предварительные команды переводят базу данных в режим «только для чтения», а последующие команды восстанавливают ее в нормальное состояние после завершения резервного копирования. Источник: Библиотека документации MySQL.
В состоянии только для чтения к базе данных можно запрашивать, но нельзя изменять. В сообщении на StackOverflow от 23 августа 2013 г. объясняется, как отозвать, а затем восстановить привилегии DML для конкретных пользователей. Эта стратегия с меньшей вероятностью повлияет на производительность всей базы данных.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3