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

Kopia zapasowa MySQL:Czy mogę kopiować poszczególne pliki tabeli MyISAM na inny serwer z inną wersją MySQL i innym systemem operacyjnym?

Kopiuj tylko tabele MyISAM na poziomie plików między wersjami serwerów z tymi samymi:
- CPU 'endian' ( SPARC !=x86 )
- Wersje MySQL można aktualizować bez konwersji (kopia 5.0.48 do 5.0 .52 jest zły z powodu zmian w strukturze indeksu, ale kopia 5.0.52 do 5.1.45 jest prawidłowa).

Uważaj na warunki wyścigu... Możesz uzyskiwać dostęp do plików za pomocą FTP lub innego narzędzia, podczas gdy baza danych odczytuje tabelę. Istnieją zaktualizowane „liczniki” tabeli w .MYI nawet dla najbardziej łagodnych odczytów tabeli.

Odkryłem, że następujące elementy zapewnią integralność tabel MyISAM przy każdej manipulacji na poziomie pliku:

LOCK TABLE x WRITE;
FLUSH TABLE x; -- closes all file handles into table by mysql.
   < perform file-level manipulations >
FLUSH TABLE x; -- A 'stat' of the table occurs and info-schema is updated appropriately.
UNLOCK TABLES;

Jeśli NIE zapiszesz swojej tabeli z blokadą, mysql może uzyskać do niej dostęp (odczytuje lub zapisuje) podczas kopiowania/manipulacji na poziomie plików.

Jest to również ten sam mechanizm, który umożliwia „myisampack”, „myisamchk” dla tabel w bazie danych HOT, która ma nawet wyłączone zewnętrzne blokowanie, bez obaw o uszkodzenie.

-- Jorgenson --



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę WYBRAĆ wiersze z MAX (wartość kolumny), PARTITION według innej kolumny w MYSQL?

  2. Odejmij pewną datę i godzinę od bieżącej daty i godziny, aby znaleźć wiek w PHP

  3. Lista wyboru Mysql po określonym identyfikatorze

  4. Jak rozwiązać org.hibernate.QueryException:Nie wszystkie nazwane parametry zostały ustawione jako błąd?

  5. Autoinkrementacja identyfikatora tabeli przy użyciu kombinacji ciągów w bazie danych automatycznie