sql >> Databasteknik >  >> RDS >> Mysql

MySQL hur man ändrar innodb-log-filstorlek

InnoDB-loggen finns i ib_logfile0 och ib_logfile1. Dessa är filerna i storleken innodb_log_file_size .

För att ändra storlek på InnoDB-loggarna måste du först stänga av mysqld rent . Det kommer att se till att alla ändringar i loggen redan har rensats in i dina tabellutrymmen. Den rena avstängningen är viktig, för om du inte gör det här steget har du stor chans att förlora data.

Efter att du har stängt av mysqld rent är ib_logfilerna överflödiga. Du måste rm dem för att ändra storlek.

När du startar om mysqld märker InnoDB att filerna saknas och skapar en ny fil med den nya storleken enligt innodb_log_file_size variabel i din my.cnf-fil. Så se till att du redigerar den filen innan du startar om, annars skapar den bara nya 5MB-filer.

MySQL 5.6 gör denna process lite enklare. Du behöver inte rm loggfilerna, men du måste starta om mysqld för att få en ny loggfilstorlek att träda i kraft. Hur det fungerar i 5.6 är att om storleken på dessa filer skiljer sig från konfigurationsvariabeln, gör MySQL automatiskt en ny ren omstart (för att se till att filerna inte innehåller några ändringar som inte rensas bort), och sedan ändrar InnoDB storlek på filerna vid den slutliga uppstarten.

De andra filerna (mysql-bin.000001, etc.) är binära loggar. Dessa kan växa upp till max_binlog_size (vilket är 1 GB som standard), men de binära loggarna varierar i storlek eftersom nya loggar skapas när du startar om mysqld eller kör FLUSH LOGS . Hur som helst, de har ingenting att göra med InnoDB-loggarna.

PS:Du kanske gillar den här artikeln:Hur man beräknar en bra storlek på InnoDB-loggfilen .



  1. på dubblettnyckeluppdatering med ett villkor?

  2. EF-fråga till Oracle kastar ORA-12704:teckenuppsättningsfel

  3. UTF-8:Allmänt? Bin? Unicode?

  4. Hitta index för senaste förekomsten av en delsträng med T-SQL