Prettylib-tuoteratkaisut - Wiki

Varmuuskopiointi käyttäen sqlcmd-apuohjelmaa

Käytettäessä SQL Server 2005/2008/2012/2014/2016 Express-tietokantapalvelimia, voidaan erilaisia SQL kyselyjä ja komentoa antaa sqlcmd-komentoriviohjelmalla.

Allaolevissa komennoissa varmuuskopiota käsitellään esimerkin yksinkertaistamiseksi suoraan levyn juurikansiossa "C:\". Suosittelemme tekemään oman varmuuskopiokansion koneen paikalliselle levylle ja tekemään varmuuskopioint/palauttaminen sieltä juurikansion sijaan.

Varmuuskopiointi


sqlcmd -Usa -PmyPassword -n -Q "BACKUP DATABASE PrettyLib TO DISK = 'c:\prettylib_dat.bak'"

jossa:

  • "mypassword" korvataan sa-tunnuksen tunnussanalla. Jos jätetään antamatta voi OSQL sitä erikseen kysyä, johon vastataan tunnussanalla tai tyhjällä mikäli tunnussanaa ei ole.
  • Korvataan "prettyLib" tietokannan nimi oikealla, jos tietokannan nimi ei ole oletuksena käytetty "prettylib"
  • Muutetaan 'c:\prettylib_dat.bak' jollain muulla hakemisto ja tiedoston nimellä mikäli tarvetta.


Mikäli et tiedä SA:n tunnussanaa, käytä allaolevaa Windows autentikointi menetelmää. Tätä käytettäessä pitää olla kirjautuneena koneen pääkäyttäjätason tunnuksilla tai käynnistää komentorivi korotetuilla oikeuksilla.

OSQL -S localhost -E -n -Q "BACKUP DATABASE PrettyLib TO DISK = 'c:\prettylib_dat.bak'"

Varmuuskopion palautus

Jos olet siirtämässä tietokantaa palvelimelta toiselle, muista luoda ensin tyhjä tietokanta uudelle palvelimelle ennen varmuuskopion palautusta.

Varmuuskopion palautus käy oheisella komentorivikomennolla:

SQLCMD -Usa -PmyPassword -n -Q "RESTORE DATABASE [PrettyLib] FROM DISK = N'C:\prettylib_dat.bak' WITH FILE = 1, NOUNLOAD, RECOVERY, REPLACE"


Vaihtoehtoisesti käyttäen windows käyttäjätunnistusta (silloin kun et tiedä sa-tunnuksen tunnussanaa ja kuulut administrator ryhmään):

SQLCMD -S localhost -E -d master -n -Q "RESTORE DATABASE [PrettyLib] FROM DISK = N'C:\prettylib_dat.bak' WITH FILE = 1, NOUNLOAD, RECOVERY, REPLACE"
    

jossa:

  • "mypassword" korvataan sa-tunnuksen tunnussanalla. Jos jätetään antamatta voi OSQL sitä erikseen kysyä, johon vastataan tunnussanalla tai tyhjällä mikäli tunnussanaa ei ole.
  • Korvataan "prettyLib" tietokannan nimi oikealla, jos tietokannan nimi ei ole oletuksena käytetty "prettylib"
  • Muutetaan 'c:\prettylib_dat.bak' jollain muulla hakemisto ja tiedoston nimellä mikäli tarvetta.


Mikäli hakemisto on eri kuin alkuperäisessä SQL Serverissä, josta varmuuskopio on tehty voidaan komennossa määritellä myös polku johon palautetaan. Esimerkki "-Q" parametrin jälkeisestä osasta:

SQLCMD -S localhost -E -d master -n -Q "RESTORE DATABASE [PrettyLib] FROM DISK = N'C:\prettylib_dat.bak' WITH MOVE 'PrettyLib_Data' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL12\MSSQL\Data\PrettyLib_data.mdf', MOVE 'PrettyLib_Log' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL12\MSSQL\Data\PrettyLib_Log.ldf' ,FILE = 1, NOUNLOAD, RECOVERY, REPLACE"



Ylläolevassa oletetaan, että hakemisto, johon palautetaan on 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL12\MSSQL' (SQL Server 2014 oletukansio) ja alkuperäinen tietokannan nimi on ollut PrettyLib, eikä PrettyBit.

SQLCMD-ohjelma

SQLCMD on komentorivipohjainen apuohjelma, joka tulee SQL Serverin kaikkien versioiden mukana SQL Server 2005 versiosta lähtien. Apuohjelman löydät (asennettuna oletushakemistoon) c:\program files (x86)\microsoft sql server\120\Tools\Binn-hakemistosta. HUOM: 120 polussa tarkoittaa SQL Serverin versiota, eli riippuen SQL Serverin versiosta tuo osa voi olla esim \90\, \100\, \110\, \120\..