ÚVOD
Hlavní databáze obsahuje záznamy o struktuře/konfiguraci jak pro aktuální instanci, tak pro všechny ostatní databáze. Když spustíte sp_configure , zapisujete data do hlavní databáze. Obsahuje také většinu pohledů dynamické správy, které jsou nezbytné pro sledování instance.
Důležitost hlavní databáze je zásadní. Nejprve má informace potřebné pro otevření všech ostatních databází a musí být otevřen jako první. Poté zahrnuje všechny principály na úrovni instance pro aktuální instanci.
Je důležité denně zálohovat hlavní databázi. Stejně důležité je vědět, jak obnovit hlavní databázi do instance. Nejčastějšími případy jsou pád databáze nebo nutnost obnovení hlavní databáze do jiné instance, když již zdrojovou instanci nepoužíváme. V tomto článku prozkoumáme konkrétní případ přesunutí hlavní databáze do jiné instance.
ZKONTROLUJTE STAV SLUŽEB APLIKACE
Obnova hlavní databáze do jiné instance bude zahrnovat spuštění instance v režimu jednoho uživatele. Je tedy nezbytné zajistit, aby instanci ovládala pouze aktivní relace.
Za tímto účelem zastavte všem aplikačním službám přístup k instanci, zejména pokud mají takové aplikace privilegovaný přístup. Problémy mohou nastat, pokud spustíte instanci v režimu jednoho uživatele, zatímco aplikace již vytvořila relaci. V tomto případě nebudete moci pokračovat v interaktivní relaci z SQL Server Management Studio.
ZASTAVTE SLUŽBY SQL SERVERU
Zastavte všechny služby SQL Server pomocí Správce konfigurace serveru SQL:klepněte pravým tlačítkem na každou službu a vyberte Zastavit z kontextové nabídky (viz obr. 2).
SPUŠTĚNÍ SQL SERVERU V REŽIMU JEDNÉHO UŽIVATELE
Chcete-li obnovit hlavní databázi, potřebujete instanci serveru SQL Server v režimu jednoho uživatele. Proveďte následující kroky:
- Otevřete výzvu CMD
- Přejděte do C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
- Problém sqlservr –m OR NET start MSSQLServer /c /m /T3604
NEBO
Všimněte si, že krok 2 odkazuje na Binn umístění adresáře. Ve vaší instalaci se to může lišit.
Potřebný adresář můžete najít kontrolou záložky Service ve vlastnostech služby SQL Server v SQL Server Configuration Manager (viz obrázek 4):
OBNOVIT MASTER
Když obnovíte hlavní server z jedné instance do druhé, získáte nové objekty a nové hodnoty v systémových katalozích obsahujících takové hodnoty, jako je název instance a dokonce i umístění databáze tempdb.
Před obnovením hlavního serveru se ujistěte, že cesty cílového serveru jsou k dispozici pro soubory TempDB, jak je definováno na zdrojovém serveru. Jinak se nová instance po dokončení obnovy nespustí úspěšně.
- Otevřete SQL Server Management Studio
- Spusťte kód ve výpisu 1 v SQL Server Management Studio
-- Listing 1: Restore Master Database
restore database master from disk ='<full_path_of_backup>' with replace;
Poznámka: Po dokončení obnovy se instance vypne.
ZMĚNA SERVISNÍHO ÚČTU
Chcete-li spustit SQL Server po dokončení obnovy, proveďte následující:
- Změňte účet služby SQL Server na aktuálně přihlášený účet.
- Otevřete Start> Všechny programy> Microsoft SQL Server 2005> Konfigurační nástroje> SQL Server Configuration Manager
- Klikněte pravým tlačítkem na každou službu a vyberte Vlastnosti
- V Přihlásit se zadejte požadovaný název účtu a odpovídající heslo.
NÁZEV SERVERU
Hlavní databáze obsahuje název instance, kde se nachází. Protože záloha obnovená v tomto scénáři pochází z jiné instance, musíte aktualizovat název serveru pomocí uložených procedur, jak je uvedeno ve výpisu 2.
-- Listing 2: Change the Instance Name for a SQL Server Instance
-- Check the current server name
select @@SERVERNAME
-- Change the server name as seen by the database
sp_dropserver 'EUK-POSTSVR-01'--Present Server name goes here
go
sp_addserver 'EUK-POSTBKP-01','local'--New Server name goes here
go
Restartujte SQL Server z SQL Server Configuration Manager, aby se změna názvu projevila.
SERVISNÍ PŘIHLÁŠENÍ
Hlavní databáze také zaznamenává všechna přihlášení spojená se zdrojovou instancí. V nové instanci musíte vyčistit nepotřebná přihlášení. Poté můžete do aktuální instance přidat místní výchozí skupiny SQL Server Groups.
-- Listing 3: Remove Unnecessary Logins
drop login [EUK-POSTSVR-01\SQLServer2005MSSQLUser$EUK-POSTSVR-01$MSSQLSERVER]
drop login [EUK-POSTSVR-01\SQLServer2005MSFTEUser$EUK-POSTSVR-01$MSSQLSERVER]
drop login [EUK-POSTSVR-01\SQLServer2005SQLAgentUser$EUK-POSTSVR-01$MSSQLSERVER]
-- Listing 4: Add local default SQL Server Groups
create login [EUK-POSTBKP-01\SQLServer2005MSSQLUser$EUK-POSTBKP-02$MSSQLSERVER] from windows;
create login [EUK-POSTBKP-01\SQLServer2005SQLAgentUser$EUK-POSTBKP-02$MSSQLSERVER] from windows;
create login [EUK-POSTBKP-01\SQLServer2005MSFTEUser$EUK-POSTBKP-02$MSSQLSERVER] from windows;
Poznámka: Ujistěte se, že účty služeb serveru a agenta patří do příslušných skupin na úrovni operačního systému a že tyto skupiny operačního systému mají požadovaná oprávnění. Tabulka 1 ukazuje oprávnění pro účty služby SQL Server.
S/Ne | Oprávnění | Povinné do |
1. | Přihlaste se jako služba | Účet služby SQL Server Účet služby Integrace účtu služby SQL Agent |
2. | Jednat jako součást operačního systému | Účet služby SQL Server Účet služby SQL Agent |
3 | Přihlaste se jako dávková úloha | Účet služby SQL Server Účet služby SQL Agent |
4. | Nahraďte token na úrovni procesu | Účet služby SQL Server Účet služby SQL Agent |
5. | Obejít kontrolu přejezdu | Účet služby SQL Server Účet služby Integrace účtu služby SQL Agent |
6. | Úprava kvót paměti pro proces | Účet služby SQL Server Účet služby SQL Agent |
7. | Vytvořte globální objekty | Účet integrační služby |
8. | Zamknout stránky v paměti (AWE) | Účet služby SQL Server |
Po dokončení úklidu na úrovni databáze se vraťte k běžnému servisnímu účtu. Restartujte instanci ještě jednou z SQL Server Configuration Manager.
V tomto okamžiku můžete spustit aplikační služby.
ZÁVĚRY
Během provádění výše uvedeného scénáře může dojít k chybám. Níže naleznete informace o těchto chybách.
Pokud problémy řešíte, můžete použít nástroje jako ProcMon od SysInternal. Izolují problémy s oprávněním k souboru při spouštění SQL Server (viz obrázek 7).
S/N | Chyba | Příčina/řešení |
1. | Nelze spustit SQLServerAgent (důvod:Nelze se připojit k serveru „(místní)“; SQLServerAgent nelze spustit). | Vytvořte přihlašovací údaje pro všechny místní servisní účty |
2. | Lokálnímu poskytovateli připojení k serveru se nepodařilo naslouchat na [ \\.\pipe\SQLLocal\MSSQLSERVER ]. Chyba:0x5 Inicializace TDSSNIClient se nezdařila s chybou 0x5, stavový kód 0x40. Inicializace TDSSNIClient se nezdařila s chybou 0x5, stavový kód 0x1. SQL Server nemohl vytvořit vlákno FRunCM. Informace o možných souvisejících problémech naleznete v protokolu chyb serveru SQL Server a protokolech událostí systému Windows. Nelze spustit síťovou knihovnu kvůli vnitřní chybě v síťové knihovně. Chcete-li zjistit příčinu, zkontrolujte chyby bezprostředně předcházející této v protokolu chyb. | SQL Server byl dříve spuštěn s jiným účtem služby a byl násilně ukončen. Dochází k němu během obnovy hlavní databáze. Chcete-li to opravit, spusťte instanci pomocí účtu služby použitého v kroku 3 a poté službu řádně zastavte. Poté můžete začít s běžným servisním účtem. |
3. | Nelze spustit SQLServerAgent (důvod:Chyba při vytváření nové relace). | Udělte příslušná oprávnění účtu SQL Agent |
ODKAZY
Hlavní databáze