sql >> Databáze >  >> RDS >> Mysql

Zdroj Mysql je dočasně nedostupný

Předpokládejme, že váš systém je aktuálně založen na Unixu (jak je uvedeno ve vašem prohlášení o problému). Pokud je to správné, zde je soubor problémů, se kterými se můžete setkat:

  1. Došla vám paměť dostupné pro MySQL.

    Toto je nejpravděpodobnější problém, kterému čelíte. Každé připojení ve fondu připojení MySQL vyžaduje ke svému fungování paměť, a pokud je tento zdroj vyčerpán, nelze vytvořit žádná další připojení. Paměťové nároky a maximální velikosti paketů různých operací lze samozřejmě vyladit v váš ekvivalent k my.cnf pokud zjistíte, že to je problém.

    Zde je další vlákno, které vám může pomoci , ale můžete také zvážit použití jednodušších nástrojů pro profilování, jako je top abyste získali dobrý odhad toho, co se děje.

  2. Došly vám deskriptory souborů dostupné pro váš uživatelský účet MySQL.

    Další běžný problém:pokud se pokoušíte obsluhovat požadavky, které vyžadují IO souboru nad hranicí 1 024 (ve výchozím nastavení), narazíte na případy, kdy operace jednoduše selže. Je to proto, že většina systémů specifikuje měkký a pevný limit počtu otevřených deskriptorů souborů, které může mít každý uživatel k dispozici najednou, a překročení tohoto prahu může způsobit problémy.

    Obvykle to bude mít řadu jasně zřejmých znaků vyjádřených v souborech protokolu. Zkontrolujte /var/log/messages a vaše srovnatelné adresáře (například /var/log/mysql abyste zjistili, jestli nenajdete něco zajímavého.

  3. Narazili jste na livelock nebo deadlock scénář, kdy je vaše vlákno nesplnitelné.

    Důsledkem vyčerpání paměti a deskriptoru souborů může vypršet časový limit vláken, pokud jste překročili výpočetní zátěž, kterou je váš systém schopen zvládnout. Nevyvolá tuto chybovou zprávu, ale na to je třeba si v budoucnu dát pozor.

  4. Vašemu systému docházejí PID dostupné pro fork .

    Další běžný scénář:fork má pouze tolik PID k dispozici pro jeho použití v daném okamžiku. Pokud je váš systém jednoduše převětvený , přestane být schopen obsluhovat požadavky.

    Nejjednodušší kontrolou je zjistit, zda se k počítači mohou připojit nějaké další služby. Například pokus o SSH do krabice a zjištění, že nemůžete, je velká stopa.

  5. Upstream proxy nebo správci připojení došly prostředky a přestaly obsluhovat požadavky.

    Pokud máte mezi klientem a MySQL nějakou servisní vrstvu, je třeba ji zkontrolovat, abyste zjistili, zda se nezhroutila, nezavěsila nebo se jinak stala nestabilní. Platí výše uvedená rada.

  6. Váš mapovač portů se vyčerpal po 65 536 připojeních .

    Nepravděpodobný, ale opět možný případ vyčerpání. Kontrola připojení triviální služby, jak je uvedeno výše, je, ehm, také nejlepší port pro volání zde.

Stručně řečeno:toto je scénář vyčerpání zdrojů, včetně toho, že je server jednoduše „nefunkční“. Budete muset svůj systém dále profilovat, abyste viděli, co blokujete. Jediné, co nám v tomto případě zobrazí chybová zpráva, je skutečnost, že zdroj není klientovi dostupný – potřebovali bychom zobrazit další informace o serveru určit adekvátnější nápravu.



  1. Příklad spuštění Oracle před vložením NEBO aktualizací

  2. Oprava „ERROR 1054 (42S22):Neznámý sloupec „colname“ v „klauzuli objednávky“ v MariaDB

  3. SQL Server Resumable Index:Je to pro vás dobré?

  4. Spouštěč MySQL před kontrolou vložení hodnoty