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