Wpis z mikrobloga

Mój kolega na jednym z forów informatycznych nadal nie uzyskał odpowiedzi więc Mirabelki i Mirki ratujcie go! Oto jaki ma problem:

"Witam.
Próbuję wykonać kopię bazy danych sql express w windows 10, bez powodzenia.
Wygląda to tak, że do tej pory wykonywana była kopia bazy enovy np. BAZA1 poprzez napisany skrypt (widziałem że skopiowany wręcz z Internetu), wrzucony w harmonogram codziennie o 15.
Teraz istnieje potrzeba, aby backupować nowo utworzoną bazę (BAZA2) w taki sam sposób. W zasadzie to trzeba zachowwać obydwie.

Skopiowałem istniejący już skrypt do nowego folderu, zmieniłem ścieżki, wrzuciłem w harmonogram i po prostu to nie działa.

Wykonałem już wszelkie zabiegi, które przychodziły mi do głowy - bez skutku. Ostatnia różnica pomiędzy skryptami (starym i moim) jest taka, że w harmonogramie skrypt 1 jest wykonywany przez konto starego Informatyka (nie mogłem edytować zadania, gdyż wymagane jest hasło), a skryt 2 czyli nowy - wykonywany z mojego konta.
Czy może to mieć jakiś wpływ? HeadAdmin czy coś w tym rodzaju??

W harmonogramie oczywiście rozmawiamy o pliku BAT:
C:\sqlcmd -S MyServer\SQLEXPRESS -E -i (podana ścieżka do skrypu sql)

który to wywołuje skrypt SQL:

DECLARE @FileName varchar(100), @BackupName varchar(100)
SET @FileName = N'C:\backups2\' +
Replace(Convert(varchar(10),getdate(),120),'-','') + '.bak'
SET @BackupName = N'Baza
2 ' +
Convert(varchar(10),getdate(),120)

PRINT @FileName + char(10) + @BackupName + char(10) + REPLICATE('-',50)
BACKUP DATABASE [BAZA2] TO DISK = @FileName
WITH FORMAT,
NAME = @BackupName

Problem jest dość pilny i spędza mi sen z powiek.
Za jakiekolwiek wskazówki będę wdzięczny.
Pozdrawiam i miłej niedzieli!"

Jakieś propozycje?
#pytanie #pytaniedoeksperta #informatyka #sql #mysql #pomocy
  • 16
via Wykop Mobilny (Android)
  • 1
@Anyway: pewnie uprawnienia, spróbuj wykonać ręcznie przez SSMSa, ewentualnie zrobić tam joba. Jak nie jest jakoś super ogarnięte zabezpieczeniami to jak masz lokalnego admina - możesz sobie sam nadać uprawnienia jakie chcesz.
@Anyway

Wrzucić w shedulera ten skrypt robi w kursorze back wszystkich baz w statusie online omija bazy systemowe

DECLARE @name VARCHAR(50)
DECLARE @path VARCHAR(256)
DECLARE @fileName VARCHAR(256)
DECLARE @fileDate VARCHAR(20)

SET @path = 'H:\backup\'

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE dbcursor CURSOR FOR
SELECT name
FROM sys.databases
WHERE name NOT IN ('master','model','msdb','tempdb') and state
desc in ('online') --and statedesc not in ('suspect')

OPEN db
cursor
FETCH NEXT FROM dbcursor INTO
@Anyway jak jest tam procedura to zrob alter obecnej procki na moją. Do działania takich skryptów na sql express użytkownik powinien mieć uprawnienia sysasmin lub backup operaror i na os mieć admina ewentualnie jeśli jest użytkownik systemowy w sql to on powinien mieć uprawnienia nadane do sql
@Rokuto: @koxok: @szymciak:
Hej! Najlepiej, by odezwał się sam zainteresowany, więc jestem. To mój pierwszy post na wykopie, cieszę się że tu z Wami jestem huuura :D a teraz do rzeczy!
Panowie - po kolei, zanim cokolwiek zacznę zmieniać i kombinować muszę sprawdzić te uprawnienia o których piszecie. Zrozumiałem, że może być różnica pomiędzy kontem administratora które przydzielił mi tamten informatyk, a jego kontem pana i króla? Myślałem, że
@koloras90 tak jak pisałem jeśli to jest standardowo skonfigurowane środowisko to tylko użytkownik SA ma odpowiednie uprawnienia.
Załóż na sql takiego samego użytkownika jak na Windows daj mu uprawnienia backup operator i zrob shedula moim skryptem powinno zadziałać
@koloras90: A ten folder istnieje C:\backups2\ ? Zobacz w errorlogu jaki masz błąd Management->SQL Server Logs Albo odpal ten skrypt z CMD, albo dodaj parametr z wynikiem do pliku, wtedy zobaczysz błąd jaki się pojawia.