Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL aktualizuje całą bazę danych bez przestojów

Oto coś, co robię. Nie powoduje to zerowego przestoju, ale może zakończyć się w mniej niż sekundę.

Utwórz bazę danych, która zawiera tylko elementy interfejsu do Twojej prawdziwej bazy danych. W moim przypadku zawiera tylko definicje widoków, a wszystkie zapytania użytkowników przechodzą przez tę bazę danych.

Każdej nocy twórz nową bazę danych. Po zakończeniu zaktualizuj definicje widoku, aby odwoływały się do nowej bazy danych. Zalecam wyłączenie dostępu użytkownika do bazy danych zawierającej widoki podczas ich aktualizacji lub usunięcie wszystkich widoków i ponowne ich utworzenie - zapobiega to częściowemu dostępowi do starej bazy danych. Ponieważ tworzenie widoków jest szybkie, powinno to być bardzo szybkie działanie.

Wszystko to robimy poprzez pracę. W rzeczywistości przed zmianą widoków produkcyjnych testujemy tworzenie widoku w innej bazie danych, aby upewnić się, że wszystkie działają.

Oczywiście, jeśli użyjesz alter view zamiast wymagać spójności we wszystkich widokach, nie ma przestojów, tylko krótki okres niespójności.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuwanie wielu wierszy z bazy danych za pomocą pól wyboru

  2. Minimalne GRANTy potrzebne mysqldump do zrzucenia pełnego schematu? (Brakuje wyzwalaczy!!)

  3. Zapytanie SQL do utworzenia tabeli w MySQL

  4. Zmniejsz tabelę statusu dziennego, aby zawierała tylko zmiany statusu

  5. Mysql Dayofyear w roku przestępnym