it-swarm-eu.dev

Co přesně jsou soubory iblog v mysql

Chtěl bych pochopit tyto soubory ibdata, protože tyto hrají zásadní roli v proceduře zotavení po havárii. Na internetu jsem na to nenašel vhodné zdroje.

15
Uday

ibdata1

Soubor ibdata1 je systémový tabulkový prostor pro infrastrukturu InnoDB.

Obsahuje několik tříd informací důležitých pro InnoDB

  • Datové stránky tabulky
  • Stránky indexu tabulky
  • Datový slovník
  • MVCC Control Data
    • Vraťte zpět vesmír
    • Vrácení segmentů
  • Dvojitá vyrovnávací paměť pro zápis (stránky napsané na pozadí, aby se zabránilo ukládání do mezipaměti OS)
  • Vložit vyrovnávací paměť (změny sekundárních indexů)

Klepnutím sem zobrazíte obrazovou reprezentaci

Datové a indexové stránky můžete od ibdata1 rozvést povolením innodb_file_per_table . To způsobí, že každá nově vytvořená tabulka InnoDB ukládá data a indexové stránky do externího souboru .ibd.

Příklad

  • datadir je/var/lib/mysql
  • CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;, vytvoří /var/lib/mysql/mydb/mytable.frm
    • innodb_file_per_table enabled, stránky s údaji/indexem uloženy v /var/lib/mysql/mydb/mytable.ibd
    • innodb_file_per_table disabled, Data/Index Pages Uloženo v ibdata1

Bez ohledu na to, kde je tabulka InnoDB uložena, její funkčnost vyžaduje hledání metadat tabulky a uložení a načtení [~ # ~] mvcc [~ # ~] informace na podporu ACID shoda a Izolace transakce .

Zde jsou mé minulé články o oddělení dat tabulek a indexů od ibdata1

soubory iblog (a.k.a. ib_logfile0, ib_logfile1)

Pokud chcete vědět, pro co jsou ib_logfile0 A ib_logfile1, Jedná se o redakční protokoly InnoDB. Nikdy by neměly být vymazány nebo změněny jejich velikost, dokud nedojde k úplnému normálnímu vypnutí mysqld. Pokud se někdy mysqld zhroutí, stačí spustit mysqld. Bude číst napříč ib_logfile0 A ib_logfile1 A zkontroluje, zda nedošlo ke změnám dat, které nebyly zaúčtovány do vyrovnávací paměti s dvojitým zápisem v ibdata1. Znovu přehraje (znovu) tyto změny. Jakmile jsou přehrány a uloženy, mysqld se stane připraveným na nová připojení DB.

17
RolandoMySQLDBA