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

Innodb; wiele katalogów danych

Aby zaktualizować ten post, jeśli ktoś kiedykolwiek się z tym natknie, InnoDB obsługuje teraz katalog danych od wersji 5.6. Brak dowiązania symbolicznego (niezalecane) i działa zarówno dla *nix, jak i Windows.

Wymagania:

  1. MySQL 5.6 i nowsze
  2. innodb_file_per_table jest włączony

innodb_file_per_table = 1

Scenariusz 1 (utwórz nowe tabele):

Jest to tak proste, jak określenie opcji DATA DIRECTORY podczas tworzenia tabeli.

  1. CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/alternative/directory';

Scenariusz 2 (przenoszenie istniejącej tabeli na oddzielny dysk):

Wymaga to jeszcze kilku kroków (wymagane jest ponowne uruchomienie serwera MySQL), ale nadal jest całkiem proste. I nie wymaga, aby podczas tworzenia tabeli była określona opcja DATA DIRECTORY.

  1. Zatrzymaj serwer MySQL
  2. Przenieś tabelę innodb nazwa_tabeli plik .ibd do oddzielenia dysku/woluminu przez proste kopiowanie/przenoszenie pliku
  3. Utwórz plik tekstowy z rozszerzeniem .isl, np. nazwa_tabeli .isl
  4. Edytuj plik .isl i wpisz nową ścieżkę do nazwa_tabeli Przeniesiony plik .ibd./alternative/directory/table_name.ibd
  5. Upewnij się, że oryginalny plik .ibd w starej ścieżce został usunięty
  6. Uruchom serwer MySQL

Teraz kolejne zmiany w przenoszonej tabeli będą zapisywane do pliku .ibd w nowej ścieżce.

Aby uzyskać więcej informacji, zapoznaj się z oficjalnym dokumentem MySQL:http:// dev.mysql.com/doc/refman/5.6/en/tablespace-placing.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń wiersz Mysql po określonym czasie

  2. Docker MYSQL '[2002] Połączenie odrzucone'

  3. Jakie są ustawienia sterownika JDBC-mysql dla rozsądnej obsługi DATETIME i TIMESTAMP w UTC?

  4. Nie można uruchomić zapytania źródłowego MySQL przy użyciu modułu mysqldb w Pythonie

  5. Ogólny błąd zabity w skrypcie PHP