Az SQL adatbázisok rendszeres biztonsági mentése kötelező. Már lefedtük azokat a módszereket, amelyek segítségével könnyen menthetjük az összes SQL szerver adatbázisát egy helyi merevlemezre, de ez nem védi a meghajtót és / vagy a rendszer meghibásodását. Az ilyen jellegű katasztrófák elleni védelem extra rétegeként biztonsági másolatokat készíthet vagy közvetlenül létrehozhat hálózati megosztásban.
Helyi mentés, majd másolás a hálózati megosztásra
A feladat végrehajtásához a legelőnyösebb és legközvetlenebb mód az egyszerű adatbázis helyi biztonsági másolatának létrehozása, majd a megfelelő biztonsági másolat fájl hálózati megosztásra való másolása. Ezt úgy teheti meg, ha olyan kötegelt szkriptet hoz létre, amely így néz ki:
SET LocalFolder=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackup SqlCmd -E -Q “Backup Database MyDB To Disk=’%LocalFolder%MyDB.bak'” XCopy “%LocalFolder%MyDB.bak” “192.168.16.55BackupDatabases” /Z /V DEL “%LocalFolder%MyDB.bak”
Ez a szkript a következőket teszi (sorban):
- A változót a helyi SQL mentési könyvtárba állítja be.
-
A MyDB (a Windows hitelesítés használatával) SQL biztonsági mentést hoz létre a helyi SQL mentési könyvtárba.
- Másolja a helyi biztonsági másolatot egy hálózati megosztásra.
- Törli a helyi biztonsági másolatot.
Ismét ez az előnyös módszer, mert a dobozból működik, és a biztonsági mentés kudarca minimális, mivel a biztonsági másolatot helyi lemezen hozták létre. Ha azonban nincs elegendő lemezterület a biztonsági másolatok helyi példányainak tárolásához, ez a művelet sikertelen lesz. Ebben az esetben további lemezterületet vagy biztonsági mentést kell hozzáadnia közvetlenül egy hálózati megosztáshoz.
Biztonsági mentés közvetlenül egy hálózati megosztáshoz
Általában ha egy biztonsági másolatot közvetlenül egy hálózati megosztásra próbál létrehozni, például:
SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”
Legtöbbször hiba lép fel a következő sorrendben:
Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device ‘192.168.16.55BackupDatabasesMyDB.bak’. Operating system error 5(Access is denied.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.
Ez a hiba annak ellenére jelentkezik, hogy az SQL mentési parancsot a Windows hitelesítés (az -E kapcsoló) és a Windows-fiók használatával futtatta le a Windows Intézőben a fájlok eléréséhez és másolásához.
A rendszerünkben a hálózati megosztási parancs biztonsági mentése sikertelen, mivel az SQL Server szolgáltatás helyi rendszerként fut, ami viszont nem képes hálózati erőforrásokhoz jutni.
Az SQL Server szolgáltatás tulajdonságainak szerkesztése és a Bejelentkezési lapon állítsa be a szolgáltatást úgy, hogy alternatív fiókként fusson hálózati hozzáférési jogokkal.
Most, amikor a parancsot közvetlenül hálózati megosztásra futtatja:
SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”
Egy sikeres üzenetet kell látnia:
Processed 152 pages for database ‘MyDB’, file ‘MyDB’ on file 1. Processed 2 pages for database ‘MyDB’, file ‘MyDB_log’ on file 1. BACKUP DATABASE successfully processed 154 pages in 0.503 seconds (2.493 MB/sec).
A tartalékfájl most a hálózati megosztási könyvtárban található:
Hálózati megosztási szempontok
Fontos megjegyezni, hogy a biztonsági parancs elvárja, hogy képes legyen közvetlenül csatlakozni a hálózati megosztáshoz anélkül, hogy kéri a hitelesítő adatokat. Az SQL Server szolgáltatás futtatásához konfigurált fióknak megbízható kapcsolat kell lennie a hálózati megosztással, ahol a megfelelő hitelesítő adatok hozzáférést engedélyeznek, különben ilyen hiba léphet fel:
Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device ‘192.168.16.55BackupDatabasesMyDB.bak’. Operating system error 1326(Logon failure: unknown user name or bad password.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.
Ez a hiba azt jelzi, hogy a hálózati megosztás nem fogadta el a fiók felhasználói nevét és jelszavát, és a parancs sikertelen.
Egy másik kérdés, hogy tartsa szem előtt, hogy a biztonsági mentés közvetlenül történik a hálózati erőforrás, így a csalások a hálózati kapcsolat okozhat a biztonsági mentés sikertelen. Emiatt csak akkor kell biztonsági másolatot készíteni a stabil helyekre (azaz valószínűleg nem VPN-re).
Biztonsági következmények
Amint korábban említettük, az a módszer használata, ahol helyileg mentettünk, majd másoltunk egy hálózati megosztásra, mivel ez lehetővé teszi az SQL szolgáltatás futtatását csak rendszergazdai hozzáféréssel rendelkező fiókként.
Ha a szolgáltatást másodlagos fiókként futtatja, megnyitja az ajtót a lehetséges biztonsági problémákhoz. Például egy rosszindulatú SQL parancsfájl futtatható az alternatív fiók alatt, és megtámadhatja a hálózati erőforrásokat. Ezenkívül a megfelelő fiók módosításai (jelszóváltások / lejáratok, illetve a fiók törlése / letiltása) miatt az SQL Server szolgáltatás nem indul el.
Fontos, hogy ezeket a pontokat szem előtt tartva futtassa az SQL Server példányát egy másik fiókkal. Bár ezek nem mutatják a dugókat, ha megfelelő óvintézkedéseket tesznek, érdemes megfontolni további merevlemez-területek hozzáadását, majd végrehajtani a helyi biztonsági mentést és másolást, hogy az SQL szolgáltatást helyi számlával futtathassa.