Slik sikkerhetskopierer du SQL-databaser til en nettverksdeling

Innholdsfortegnelse:

Slik sikkerhetskopierer du SQL-databaser til en nettverksdeling
Slik sikkerhetskopierer du SQL-databaser til en nettverksdeling
Anonim

Sikkerhetskopiering av SQL-databaser er nødvendig. Vi har allerede dekket måter som enkelt kan sikkerhetskopiere alle SQL-serverdatabasene dine til en lokal harddisk, men dette beskytter ikke mot stasjon og / eller systemfeil. Som et ekstra lag av beskyttelse mot denne typen katastrofe kan du kopiere eller direkte lage sikkerhetskopier på en nettverksandel.

Sikkerhetskopiering lokalt og deretter Kopier til nettverksdelingen

Den foretrukne og mest direkte måten å oppnå denne oppgaven er, er å opprette en lokal sikkerhetskopi av en database og deretter kopiere den respektive sikkerhetskopifilen til en nettverksandel. Du kan gjøre dette ved å lage et batch script som ser slik ut:

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”

Dette skriptet gjør følgende (linje for linje):

  1. Setter en variabel til den lokale SQL-sikkerhetskatalogen.
  2. Oppretter en SQL-sikkerhetskopiering av MyDB (ved hjelp av Windows-godkjenning) til den lokale SQL-sikkerhetskatalogen.

  3. Kopierer den lokale backupfilen til en nettverksandel.
  4. Sletter den lokale backupfilen.

Igjen, dette er den foretrukne metoden fordi den virker ut av boksen, og sannsynligheten for en backupfeil er minimal siden sikkerhetskopien er opprettet på en lokal disk. Men hvis du ikke har nok diskplass til å lagre lokale kopier av backupfiler, vil denne handlingen mislykkes. I dette tilfellet må du legge til ekstra diskplass eller sikkerhetskopiere direkte til en nettverksandel.

Sikkerhetskopiering direkte til en nettverksdeling

Vanligvis, når du prøver å lage en sikkerhetskopi direkte til et nettverk, deles med en kommando som:

SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”

Du vil mest sannsynlig få en feil i tråd med:

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.

Denne feilen oppstår til tross for at du kjørte SQL-sikkerhetskommandoen ved hjelp av Windows-godkjenning (-E-bryteren) og Windows-kontoen som muligheten til å få tilgang til og kopiere filer til delen via Windows Utforsker.

Grunnen til at denne handlingen mislykkes, er at SQL-kommandoen utføres innenfor grensen til kontoen som SQL Server-tjenesten kjører som. Når du ser listen Tjenester på datamaskinen, ser du sannsynligvis at SQL Server-tjenesten kjører som (Logg på som-kolonnen), enten Lokalt system eller Nettverkstjeneste, som er systemkontoer som ikke har nettverkstilgang.
Grunnen til at denne handlingen mislykkes, er at SQL-kommandoen utføres innenfor grensen til kontoen som SQL Server-tjenesten kjører som. Når du ser listen Tjenester på datamaskinen, ser du sannsynligvis at SQL Server-tjenesten kjører som (Logg på som-kolonnen), enten Lokalt system eller Nettverkstjeneste, som er systemkontoer som ikke har nettverkstilgang.

På vårt system mislykkes sikkerhetskopiering til en nettverksandelskommando fordi vi har SQL Server-tjenesten som kjører som Local System, som igjen ikke kan komme til noen nettverksressurser.

For å tillate SQL å sikkerhetskopiere direkte til en nettverksandel må vi kjøre SQL Server-tjenesten som en lokal konto som har tilgang til nettverksressurser.
For å tillate SQL å sikkerhetskopiere direkte til en nettverksandel må vi kjøre SQL Server-tjenesten som en lokal konto som har tilgang til nettverksressurser.

Rediger egenskapene til SQL Server-tjenesten og på Logg på-fanen, konfigurer tjenesten til å kjøre som en alternativ konto som har nettverksrettigheter.

Når du klikker på OK, får du beskjed om at innstillingene ikke får virkning før tjenesten startes på nytt.
Når du klikker på OK, får du beskjed om at innstillingene ikke får virkning før tjenesten startes på nytt.
Start tjenesten på nytt.
Start tjenesten på nytt.
Tjenestelisten bør nå vise at SQL Server-tjenesten kjører som den kontoen du har konfigurert.
Tjenestelisten bør nå vise at SQL Server-tjenesten kjører som den kontoen du har konfigurert.
Nå når du kjører kommandoen for å sikkerhetskopiere direkte til et nettverk, del:
Nå når du kjører kommandoen for å sikkerhetskopiere direkte til et nettverk, del:

SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”

Du bør se en suksessmelding:

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).

Med sikkerhetskopieringsfilen nå i nettverks delekatalogen:

Image
Image

Network Share Overveielser

Det er viktig å merke seg at sikkerhetskopieringskommandoen forventer å kunne koble direkte til nettverksandelen uten å bli bedt om legitimasjon. Kontoen du har konfigurert SQL Server-tjenesten til å kjøre som må ha en pålitelig forbindelse med nettverksandelen der de respektive legitimasjonene tillater tilgang, ellers kan det oppstå en feil som dette:

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.

Denne feilen indikerer at kontoens brukernavn og passord ikke ble akseptert av nettverksandelen, og kommandoen mislyktes.

Et annet problem å huske på er at sikkerhetskopieringen utføres direkte til en nettverksressurs, slik at eventuelle hikke i nettverksforbindelsen kan føre til at backupen din mislykkes. Av denne grunn bør du bare sikkerhetskopiere til nettverkssteder som er stabile (det vil si sannsynligvis ikke en VPN).

Sikkerhetsimplementer

Som nevnt tidligere, bruker du metoden der du sikkerhetskopierer lokalt og deretter kopierer til en nettverksandel, da det tillater deg å kjøre SQL-tjenesten som en konto med kun lokal systemtilgang.

Ved å kjøre tjenesten som en alternativ konto, åpner du døren for potensielle sikkerhetsproblemer. For eksempel kan et skadelig SQL-skript utføres under den alternative kontoen og angripe nettverksressurser. I tillegg vil eventuelle endringer i den respektive kontoen (passordendringer / utløp eller sletting / deaktivering av kontoen) føre til at SQL Server-tjenesten mislykkes i å starte.

Det er viktig å holde disse punktene i bakhodet hvis du kjører SQL Server-forekomsten din ved hjelp av en alternativ konto. Selv om disse ikke vises, hvis det tas riktige forholdsregler, bør du vurdere å legge til ekstra harddiskplass og deretter implementere den lokale sikkerhetskopien og kopien, slik at du kan kjøre SQL-tjenesten ved hjelp av en lokal konto.

Anbefalt: