Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Podrobnosti
| Attribute | Value |
|---|---|
| Název produktu | SQL Server |
| ID události | 5009 |
| Zdroj události | MSSQLSERVER |
| Součást | SQLEngine |
| Symbolický název | ALT_BADDISKS |
| Text zprávy | Jeden nebo více souborů uvedených ve výpovědi nebylo možné najít nebo inicializovat |
Vysvětlení
Tato chyba naznačuje, že jste v příkazu DBCC SHRINK* zadali název souboru nebo fileID ALTER DATABASE , které nebylo možné vyřešit.
Zvažte následující scénář:
- Máte databáze Microsoft SQL Serveru, která používá kompletní nebo hromadně logovaný model obnovy.
- Do databáze přidáte nový datový soubor, který se jmenuje db_file1 .
- Nastavíte typ
db_file1souboru jako data. - Uvědomíte si, že jste typ souboru zadali špatně.
- Soubor odstraníte
db_file1a pak zálohujete transakční log pro tuto databázi. - Přidáte nový logovací soubor, který je pojmenovaný db_file1 do stejné databáze.
- Snažíte se odstranit log, který je db_file1 pojmenovaný, použitím ALTER DATABASE příkazu nebo SQL Server Management Studio.
V tomto scénáři se zobrazí chybová zpráva podobná následující:
Msg 5009, úroveň 16, stav 9, řádek 1 Jeden nebo více souborů uvedených ve výpisu nebylo možné najít nebo inicializovat.
Možné příčiny
Tento problém nastává, pokud logický název souboru, který se snažíte odstranit, není v systémových katalogových tabulkách jedinečný. Například tento problém nastává, pokud soubor existoval v databázi dříve a poté byl odstraněn.
Když se pokusíte odstranit soubor se stejným logickým názvem, SQL Server se snaží odstranit ztracený logický soubor. To vede k chybové hlášce.
Akce uživatele
Abyste tento problém obešli, postupujte podle těchto kroků.
Note
Tyto kroky způsobí, že se hodnoty ID souboru znovu použijí.
Použijte ALTER DATABASE příkaz k vytvoření nového logického souboru s jiným názvem a stejným datovým typem. Například pojmenujte logický soubor jako
different_remove_file_namemístodb_file1, jako v následujícím příkladu:ALTER DATABASE [DBNAME] ADD FILE ( NAME = N'different_remove_file_name', FILENAME = N'D:\MSSQL.1\MSSQL\DATA\db_file1.ndf', SIZE = 1MB, MAXSIZE = 1MB)Note
Můžete použít libovolné jméno souboru nebo jakoukoli cestu k souboru.
Použijte ALTER DATABASE příkaz k odstranění logického souboru, který jste vytvořili v kroku 1, jako je uvedeno v následujícím příkladu:
ALTER DATABASE [DBNAME] REMOVE FILE [different_remove_file_name]Vytvořte zálohu transakčního logu databáze.
Zkuste znovu odstranit logický soubor, který se jmenuje db_file1 .