Search

onze sponsors

microsoft_logo.gif


 

computrain_logo.JPG

Forum Login | Register
   Forum

 

Subject: Maintenance plan wil niet lukken
Prev Next
You are not authorized to post a reply.

Page 1 of 212 > >>
Author Messages
Eddie ScholtenUser is Offline

Posts:13

12-04-2011 14:51:41 Alert 

Beste allemaal,

Ik heb me zojuist geregistreerd, want ik heb hulp nodig bij iets waar ik niet uit kom. Ik hoop maar dat ik iets over het hoofd zie waar jullie me mee kunnen helpen. Hier komt de situatie:

Twee SQL servers, beide hebben een verschillende database en functie.

Op SQL niveau heb ik meerdere maintenanceplannen gedefinieerd.

Ik zie nu dat sommige  plannen niet volledig worden uitgevoerd.

in de designer ziet het plan er als volgt uit.

Dan kijk ik in de Job agent, en zie daar maar één van alle stappen terug.

 

 

Vervolgens start ik de job handmatig of automatisch en zie ik dat hij wel erg snel klaar is. 6 Seconden om een flinke database te backuppen is wel erg weinig.

Mijn vragen:

  • Blijkbaar zijn mijn aanpassingen ondanks dat ik de job opgeslagen heb niet bij de agent terechtgekomen als taak om uit te voeren. Is er een manier om de informatie ook naar de Jobagent te krijgen? Die moet toch het werk doen.
  • Heb ik ergens de rechten niet goed staan, zo ja waar zou ik moeten kijken of dingen goed staan?
  • Moet ik alleen de agent herstarten of misschien de complete server?
Robert HartskeerlUser is Offline

Posts:86

12-04-2011 21:58:44 Alert 
Eddie,

allereerst welkom bij SQL PASS!

De job is goed opgeslagen. Een maintenance plan is eigenlijk een SSIS package en wordt ook als zodanig uitgevoerd. Dit betekent dat je in de job maar één stap ziet, die van het uitvoeren van het package.
Je hoeft in principe niets te herstarten en de rechten staan default goed. Als je daar niets aan veranderd hebt gaat het goed.

Wat is een flinke database? Om te controleren of de backup lukt moet je even kijken in de errorlog. Hierin staat een melding wanneer een backup gemaakt wordt. Als op het moment van starten geen melding staat in de errorlog wordt je database niet gebackupped.

Eddie ScholtenUser is Offline

Posts:13

13-04-2011 11:39:51 Alert 

Hoi, en bedankt voor het meedenken en meekijken. Ik heb even gekeken in de log. Ik zie de transactielogbackups die als subplan in hetzelfde maintenanceplan draaien wél starten en voltooien.

Ik zie de transactielogs netjes voltooien steeds op het hele uur t/m 11 uur. Dan om twee uur 's nachts moet de full backup gaan lopen, de job hierboven op het eerste plaatje.

Ik zal eens kijken naar de schedule instellingen. Daar is in alle tijd (het heeft namelijk wel gewerkt) nooit iets aan verandert.

Ik kan hier niet echtgehakt van maken. Met andere woorden: zie ik de noodzaak niet om hier iets aan te moeten aanpassen. Dat kan ik verkeerd hebben natuurlijk

Robert HartskeerlUser is Offline

Posts:86

13-04-2011 12:05:13 Alert 
In ieder geval zijn je full backups ooit gelukt, anders kon je geen logbackups maken.
Weet je zeker dat de full backups niet lopen? Wat geeft het eigenschappen venster van de database terug?
Ik heb nog nooit (als in heeeeel lang geleden) maint plans gebruikt maar wat ik me herinner is dat ze ook een logfile wegschrijven ergens op het systeem. Staat daar niet meer informatie in?
Eddie ScholtenUser is Offline

Posts:13

13-04-2011 12:18:42 Alert 

Klopt, ik zie dat het ineens opgehouden is. De full backup heeft inderdaad prima gelopen. Ik heb wel de maintenance cleanup taak vóór de backup taak gezet, terwijl die er eerst achter stond. Sindsdien heeft het eigenlijk niet meer gewerkt. Ik zal de log van afgelopen nacht even opgraven.

Eddie ScholtenUser is Offline

Posts:13

13-04-2011 12:24:57 Alert 

Dit staat er in de logfile (lang leve copy-paste!)

Microsoft(R) Server Maintenance Utility (Unicode) Version 10.0.1600
Report was generated on "02".
Maintenance Plan: Backup en onderhoud ######
Duration: 00:00:06
Status: Succeeded.
Details:
Maintenance Cleanup Task (02)
Task start: 2011-04-13T02:00:20.
Task end: 2011-04-13T02:00:23.
Success

De job start dus wel, het gaat dus al niet goed met de maintenance cleanup. Het ziet er naar uit dat-ie niet verder wil...

De eerste transactielog backup van 6:00 uur levert dit op:

Microsoft(R) Server Maintenance Utility (Unicode) Version 10.0.1600
Report was generated on "HILVSDBS02".
Maintenance Plan: Backup en onderhoud Quintiq
Duration: 00:00:19
Status: Succeeded.
Details:
Back Up Database Task (HILVSDBS02)
Task start: 2011-04-13T06:00:29.
Task end: 2011-04-13T06:00:44.
Success

En die levert ook keurig een TRN bestandje.

Robert HartskeerlUser is Offline

Posts:86

13-04-2011 12:48:26 Alert 

Volgens mij moet je meer kunnen loggen. Dat is een optie in het Reporting and Logging window. De optie staat ergens onderin. Zet die eens aan. Zoals ik de logfile lees die je nu geplakt hebt is de job gelukt. Waarom denk je dat het fout gaat? Dit is mijn logfile, die bevat iets meer specifieke informatie.

 Microsoft(R) Server Maintenance Utility (Unicode) Version 10.50.1600
Report was generated on "SOMESERVER".
Maintenance Plan: MaintenancePlan
Duration: 00:00:03
Status: Succeeded.
Details:
Maintenance Cleanup Task (SOMESERVER)
Maintenance Cleanup on Local server connection
Cleanup Database Backup files
Age: Older than 4 Weeks
Task start: 2011-04-13T12:15:16.
Task end: 2011-04-13T12:15:16.
Success
Command:EXECUTE master.dbo.xp_delete_file 0,N''c:\projects'',N''bak'',N''2011-03-16T12:15:16''

GO


Back Up Database (Full) (SOMESERVER)
Backup Database on Local server connection
Databases: PartitionDemo
Type: Full
Append existing
Task start: 2011-04-13T12:15:18.
Task end: 2011-04-13T12:15:19.
Success
Command:BACKUP DATABASE [PartitionDemo] TO  DISK = N''C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\PartitionDemo_backup_2011_04_13_121518_5125165.bak'' WITH  RETAINDAYS = 7, NOFORMAT, NOINIT,  NAME = N''PartitionDemo_backup_2011_04_13_121518_5055161'', SKIP, REWIND, NOUNLOAD,  STATS = 10

GO


 

Eddie ScholtenUser is Offline

Posts:13

13-04-2011 13:06:09 Alert 
OK. Extended logging aangezet. Omdat de servers nog in testfase zijn, durf ik het wel aan om de job handmatig te starten zometeen. Ik post de log dan hier.
Eddie ScholtenUser is Offline

Posts:13

13-04-2011 14:15:04 Alert 

Goed, Nu even de job laten lopen met extended logging.

Bij poging 1 kreeg ik dit resultaat:

Microsoft(R) Server Maintenance Utility (Unicode) Version 10.0.1600
Report was generated on "HILVSDBS02".
Maintenance Plan: Backup en onderhoud Quintiq
Duration: 00:00:00
Status: Succeeded.
Details:
Maintenance Cleanup Task (HILVSDBS02)
Maintenance Cleanup on Local server connection
Cleanup Database Backup files
Age: Older than 7 Days
Task start: 2011-04-13T13:58:35.
Task end: 2011-04-13T13:58:35.
Success
Command:EXECUTE master.dbo.xp_delete_file 0,N''P:\SQLBACKUP'',N''bak; trn; BAK; TRN'',N''2011-04-06T13:58:35'',1

GO

Nu viel mij op dat ik meerdere extensies niet zo kan aangeven, want T-SQL commando ziet mijn string als een lange extensie (zie het rood gemarkeerde gedeelte). Die heb ik aangepast zodat ik het volgende zag na een nieuwe run:

Microsoft(R) Server Maintenance Utility (Unicode) Version 10.0.1600
Report was generated on "HILVSDBS02".
Maintenance Plan: Backup en onderhoud Quintiq
Duration: 00:00:00
Status: Succeeded.
Details:
Maintenance Cleanup Task (HILVSDBS02)
Maintenance Cleanup on Local server connection
Cleanup Database Backup files
Age: Older than 7 Days
Task start: 2011-04-13T13:59:56.
Task end: 2011-04-13T13:59:57.
Success
Command:EXECUTE master.dbo.xp_delete_file 0,N''P:\SQLBACKUP'',N''bak'',N''2011-04-06T13:59:56'',1

GO

Dat gaat al een stuk beter. De .BAK bestanden worden t/m 6 april 13:59 netjes weggehaald.  Ik wil eigenlijk ok in die slag alle .TRN bestanden weghaalt. Kan ik dan beter een extra maintenance cleanup erbij maken? Eenmaal per dag is voor mij voorlopig voldoende. Een nieuw .BAK bestand is er niet gemaakt, dus de tweede stap heeft niet gelopen, om maar niet te spreken dat er ergens een notification uit is gerold. Komt dat door de precedence constraint tussen de jobs?

Robert HartskeerlUser is Offline

Posts:86

13-04-2011 14:58:40 Alert 
Eddie,

door de tweede constraint van Notify Operator is de backup task afhankelijk van beiden voordat deze verder gaat. Dus een backup wordt enkel gedaan wanneer 1. De cleanup lukt en 2. Een operator genotified wordt. Wanneer ik hier de Notify Operator toevoeg net als bij jou dan faalt mijn backup. Of ze beiden moeten lukken en de backup dus effectief nooit plaats vind durf ik zo niet te zeggen, het kan zijn dat wanneer een van de twee succesvol is hij ook verder gaat. Dat zou ik even moeten testen.

Heeft het altijd zo gewerkt? Je geeft aan dat je ook geen notification krijgt, misschien heeft het daar mee te maken. Omdat de notificatie niet lukt gaat hij ook niet verder naar de backup taak.
Robert HartskeerlUser is Offline

Posts:86

13-04-2011 15:30:53 Alert 

Ok. Het is inderdaad de precedence constraint. Ik stel voor dat je de eerste veranderd in OnCompleted ipv OnSucces en dan die bij Notify operator verwijderd. Dit heeft effectief hetzelfde resultaat als jij probeert te bereiken. Ik heb een vermoeden dat je backup nu niet loopt omdat SQL geen mailtje de deur uit krijgt. Dat wil je niet lijkt mij.

 

Eddie ScholtenUser is Offline

Posts:13

13-04-2011 16:26:47 Alert 

Robert,

Daar zit wat in. Een taak kan niet aan de ene kant mislukken en aan de andere kant slagen. Dat gaat niet. Ik heb de job nu aangepast, maar ik wil wet worden gemaild als de job een deel niet heeft kunnen uitvoeren.

Voor nu ziet het er zo uit:

Zoals je ziet is de eerste notification (voor een error) nergens mee verbonden Nadat de maintenance cleanup gedraaid heeft is er één constraint die on completion doorgaat, geslaagd of niet. Is het niet zo dat de constraints er uit moeten zien zoals na de full backup? Dat wil zeggen: Of mislukt, of geslaagd. Aaan de hand  daarvan wordt een "Alles OK" mail of een "Backup niet geslaagd" mail gestuurd. Als je de Precedence Constraint editor bekijkt, zie je onder bij "Multiple constraints" dat je 'm op "Logical OR" kunt zetten. dat heb ik met die onderste twee gedaan. Eens kijken hoe dat uitpakt.

Eddie ScholtenUser is Offline

Posts:13

13-04-2011 17:04:09 Alert 

En als ik nu in de logbestanden kijk:

Microsoft(R) Server Maintenance Utility (Unicode) Version 10.0.1600
Report was generated on "SERVER02".
Maintenance Plan: Backup en onderhoud Tweede_server
Duration: 00:00:20
Status: Succeeded.
Details:
Maintenance Cleanup Task (SERVER02)
Maintenance Cleanup on Local server connection
Cleanup Database Backup files
Age: Older than 7 Days
Task start: 2011-04-13T16:27:06.
Task end: 2011-04-13T16:27:06.
Success
Command:EXECUTE master.dbo.xp_delete_file 0,N''P:\SQLBACKUP'',N''bak'',N''2011-04-06T16:27:06'',1

GO


Backup Database (SERVER02)
Backup Database on Local server connection
Databases: ########Internal,########Internal40
Type: Full
Append existing
Task start: 2011-04-13T16:27:07.
Task end: 2011-04-13T16:27:24.
Success
Command:EXECUTE master.dbo.xp_create_subdir N''P:\SQLBACKUP\########Internal''
GO
EXECUTE master.dbo.xp_create_subdir N''P:\SQLBACKUP\########Internal40''

GO
BACKUP DATABASE [########Internal] TO  DISK = N''P:\SQLBACKUP\########Internal\########Internal_backup_2011_04_13_162707_3548108.bak'' WITH  RETAINDAYS = 7, NOFORMAT, NOINIT,  NAME = N''########Internal_backup_2011_04_13_162707_3509044'', SKIP, REWIND, NOUNLOAD,  STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N''########Internal'' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N''########Internal'' )
if @backupSetId is null begin raiserror(N''Verify failed. Backup information for database ''''########Internal'''' not found.'', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N''P:\SQLBACKUP\########Internal\########Internal_backup_2011_04_13_162707_3548108.bak'' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND

GO
BACKUP DATABASE [########Internal40] TO  DISK = N''P:\SQLBACKUP\########Internal40\########Internal40_backup_2011_04_13_162707_3850854.bak'' WITH  RETAINDAYS = 7, NOFORMAT, NOINIT,  NAME = N''########Internal40_backup_2011_04_13_162707_3850854'', SKIP, REWIND, NOUNLOAD,  STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N''########Internal40'' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N''########Internal40'' )
if @backupSetId is null begin raiserror(N''Verify failed. Backup information for database ''''########Internal40'''' not found.'', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N''P:\SQLBACKUP\########Internal40\########Internal40_backup_2011_04_13_162707_3850854.bak'' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND

GO


Notification - succesful (SERVER02)
Notify Operator on Local server connection
Operator: Eddie Scholten
Task start: 2011-04-13T16:27:24.
Task end: 2011-04-13T16:27:26.
Success
Command:EXECUTE msdb.dbo.sp_notify_operator @name=N''Eddie Scholten'',@subject=N''Alle databasetaken succesvol verlopen'',@body=N''De backup en maintenance cleanup op de Tweede_server databases zijn succesvol afgerond. [Backup en onderhoud Tweede_server\Backup database\Maintenance cleanup -> Backup database task]''

GO

Ziet er een stuk beter uit.

 

Robert HartskeerlUser is Offline

Posts:86

13-04-2011 17:08:32 Alert 

Eddie,

je kan de OnError nog steeds koppelen aan de Notification bij de eerste. Als de tweede maar OnCompletion is wanneer je wilt dat hij altijd naar de volgende stap gaat. Dus het enige lijntje dat je weg hoeft te halen tov je eerste afbeelding is de groene lijn tussen Notification en Backup Database. Vervolgens verander je de lijn tussen Maintenance Task en Backup Database in OnCompleted (blauw). Dan gaat het goed. De onderste was al goed en hoeft niet veranderd te worden.

Eddie ScholtenUser is Offline

Posts:13

13-04-2011 17:34:43 Alert 

Hoi Robert,

Ik twijfel een beetje of dat werkt.

Ik ga daar morgen of overmorgen wel eens mee spelen op een testdatabase.

Is het niet zo dat in dit geval failure én completion moeten gelden om door te gaan naar de volgende stap? Moet je niet de OnError in een OR voorwaarde gebruiken? Dat hij dus OnCompletion OR OnError doorgaat naar de volgende stap. Dat betekent dat je lijntje naar de Notify error een stippellijn wordt zodat die voorwaarde niet samen met on complete hoeft te gelden. Dat je slechts een notify wilt als een taak mislukt is helder en logisch. Is de taak gelukt, dan gaat-ie gewoon verder. Wat ik nu doe is: de taak mislukt, de server stuurt een bericht en gaat proberen de volgende taak uit te voeren.

Overigens moet ik nog wel een Maintenance cleanup taak erbij maken die TRN bestanden opruimt, ik zie niet hoe ik die extensies kan combineren in een taak. Daar ging het in het begin mis op.

Fijn overigens dat je met me meedenkt. Ik ben nog een newbie op het gebied van SQL server, dus je hulp wordt gewaardeerd!

Robert HartskeerlUser is Offline

Posts:86

13-04-2011 19:01:16 Alert 
Je weet het pas zeker wanneer je het test!

OnCompletion zorgt ervoor dat hij altijd naar de volgende stap gaat, goed of fout. Zoals ik hem in mijn laatste screenshot heb krijg ik een melding als de eerste taak mislukt maar worden wel de backups gemaakt. En voor de TRN bestanden zul je inderdaad een tweede cleanup task moeten maken.
Eddie ScholtenUser is Offline

Posts:13

13-04-2011 21:25:54 Alert 

Klopt. Ik heb de geconstateerde fouten vanmiddag nog op beide servers weggehaald. Vannacht draaien de jobs. Ik zal morgen als eerste even kijken hoe ze gelopen hebben. Ik zal inderdaad die OnCompletion erbij zetten ipv OnSuccess. Dan maakt AND of OR inderdaad niets meer uit.

Morgen update!

Eddie ScholtenUser is Offline

Posts:13

14-04-2011 15:19:41 Alert 

Gelukt! Hierbij de log als bewijs:

Microsoft(R) Server Maintenance Utility (Unicode) Version 10.0.1600
Report was generated on "#######".
Maintenance Plan: Backup en onderhoud
Duration: 00:08:44
Status: Succeeded.
Details:
Maintenance Cleanup Task TRN (#######)
Maintenance Cleanup on Local server connection
Cleanup Database Backup files
Age: Older than 7 Days
Task start: 2011-04-14T02:00:02.
Task end: 2011-04-14T02:00:11.
Success
Command:EXECUTE master.dbo.xp_delete_file 0,N''P:\SQLBACKUP'',N''TRN'',N''2011-04-07T02:00:02'',1

GO


Maintenance Cleanup Task BAK (#######)
Maintenance Cleanup on Local server connection
Cleanup Database Backup files
Age: Older than 7 Days
Task start: 2011-04-14T02:00:11.
Task end: 2011-04-14T02:00:13.
Success
Command:EXECUTE master.dbo.xp_delete_file 0,N''P:\SQLBACKUP'',N''BAK'',N''2011-04-07T02:00:11'',1

GO


Back Up Database Task (#######)
Backup Database on Local server connection
Databases: SOMEDATABASE3Apr
Type: Full
Append existing
Task start: 2011-04-14T02:00:14.
Task end: 2011-04-14T02:08:46.
Success
Command:EXECUTE master.dbo.xp_create_subdir N''P:\SQLBACKUP\SOMEDATABASE3Apr''

GO
BACKUP DATABASE [SOMEDATABASE3Apr] TO  DISK = N''P:\SQLBACKUP\SOMEDATABASE3Apr\SOMEDATABASE3Apr_backup_2011_04_14_020014_0216617.bak'' WITH  RETAINDAYS = 7, NOFORMAT, NOINIT,  NAME = N''SOMEDATABASE3Apr_backup_2011_04_14_020014_0206852'', SKIP, REWIND, NOUNLOAD,  STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N''SOMEDATABASE3Apr'' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N''SOMEDATABASE3Apr'' )
if @backupSetId is null begin raiserror(N''Verify failed. Backup information for database ''''SOMEDATABASE3Apr'''' not found.'', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N''P:\SQLBACKUP\SOMEDATABASE3Apr\SOMEDATABASE3Apr_backup_2011_04_14_020014_0216617.bak'' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND

GO


Notification - succesful (#######)
Notify Operator on Local server connection
Operator: Eddie Scholten
Task start: 2011-04-14T02:08:46.
Task end: 2011-04-14T02:08:46.
Success
Command:EXECUTE msdb.dbo.sp_notify_operator @name=N''Eddie Scholten'',@subject=N''Alle databasetaken succesvol verlopen'',@body=N''De backup en maintenance cleanup op de SOMEDATABASE databases zijn succesvol afgerond.

[Backup en onderhoud\Backup database\Maintenance cleanup task -> Database backup task]''

GO


De extended logging heeft z'n nut bewezen. Die kan ik nu wel uitzetten

Eddie ScholtenUser is Offline

Posts:13

15-04-2011 08:48:33 Alert 

Ik merkte gisterochtend dat ik de transactielogbackups nog niet verwijderde op één van de twee servers. Het plan bevatte nog niet de taak om die op te ruimen. Geen nood, ik heb het er even bij gezet in de vorm van een extra taak.

Wat blijkt: het hele subplan komt niet verder dan de eerste stap, na het succesvol doen van de eerste stap.

Microsoft(R) Server Maintenance Utility (Unicode) Version 10.0.1600
Report was generated on "#########".
Maintenance Plan: Backup en onderhoud *******
Duration: 00:00:20
Status: Succeeded.
Details:
Maintenance Cleanup Task TRN (#######)
Task start: 2011-04-15T02:00:01.
Task end: 2011-04-15T02:00:22.
Success

En dat was het hele plan. Mijn gok is dat de voorwaarde AND een voorwaarde OR moet worden en dat ga ik maar eens even testen.

Robert HartskeerlUser is Offline

Posts:86

15-04-2011 09:59:05 Alert 
Persoonlijk zou ik de OnSucces weghalen na de notify. Nu gaat hij alleen maar verder wanneer een operator genotified wordt. En dat gebeurt enkel wanneer de eerste stap fout gaat.
Ik zou als ik jou was ook nog een keer nadenken of je echt eerst de backupfiles wilt verwijderen en dan pas nieuwe wilt maken. Ik ga ervan uit dat je er nog wel een paar laat staan maar bij voorkeur eerst de backups maken en dan pas de oude verwijderen.
Gooi geen oude schoenen weg voordat je nieuwe hebt...
You are not authorized to post a reply.
Page 1 of 212 > >>

Forums > Forums > DBA > Maintenance plan wil niet lukken



ActiveForums 3.6
  
Copyright (c) 2012 PASS Nederland   Privacy Statement  Terms Of Use