Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Crear Backups Automaticos  (Visto 3346 veces)

0 Miembros and 1 Guest are viewing this topic.

Online Azzlaer Posteado: July 31, 2018, 10:53:44 PM

  • MAESTRO

  • US. DE HONOR

  • Colaborador
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 1.407
  • Gracias recibida: 23159
  • cl
Hola TSM les traigo una query para crear backups de su base de datos automaticos :)
Solo deben ejecutar la query y luego configurar la RUTA de donde queres que guarde el backup.

Code: [Select]
USE [msdb]
GO

/****** Object:  Job [BackUp_MuOnline]    Script Date: 10/05/2012 15:23:58 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object:  JobCategory [[Uncategorized (Local)]]]    Script Date: 10/05/2012 15:23:58 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'BackUp_MuOnline',
@enabled=1,
@notify_level_eventlog=2,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No hay ninguna descripción.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object:  Step [BackUp_MuOnline]    Script Date: 10/05/2012 15:23:58 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'BackUp_MuOnline',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=1,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'--SQL 2008
USE MuOnline
SELECT * FROM SYS.DATABASE_FILES


USE MuOnline
CHECKPOINT
BACKUP LOG MuOnline TO DISK = ''C:\BackUp_DB\TrashLogs''
DBCC SHRINKFILE (2, 0, TRUNCATEONLY)
GO

USE MuOnline
SELECT * FROM SYS.DATABASE_FILES


USE MuOnline
CHECKPOINT
BACKUP LOG MuOnline TO DISK = ''C:\BackUp_DB\TrashLogs''
DBCC SHRINKFILE (2, 0, TRUNCATEONLY)
GO

DECLARE @file varchar(70)
SET @file = N''C:\BackUp_DB\MuOnline_''+REPLACE(REPLACE(CAST(getdate() AS varchar), '' '', ''_''), '':'', ''_'')+''.bak''
SELECT @file

BACKUP DATABASE [MuOnline] TO DISK = @file WITH INIT , NOUNLOAD , NAME = N''MuOnline backup'', NOSKIP , STATS = 10, NOFORMAT',
@database_name=N'master',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'BackUp_MuOnline',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20110515,
@active_end_date=99991231,
@active_start_time=200000,
@active_end_time=235959,
@schedule_uid=N'a08fbfe6-cf0e-4b04-8dec-68f7b19ceedf'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

GO


Gracias:


Offline MuArcano #1 Posteado: September 28, 2019, 10:56:10 AM

  • +3 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 660
  • Gracias recibida: 4144
  • ar
Una aclaración de este script ya que aunque parecerá algo que no haiga falta aclarar me lo han preguntado.


Si su base de datos se llama por ejemplo MuTuVieja2017; reemplazar donde dice "MuOnline" (todos) por el nombre de su Base de Datos, entonces quedaría así, ej:

Code: [Select]
USE [msdb]
GO

/****** Object:  Job [BackUp_MuOnline]    Script Date: 10/05/2012 15:23:58 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object:  JobCategory [[Uncategorized (Local)]]]    Script Date: 10/05/2012 15:23:58 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'BackUp_MuOnline',
@enabled=1,
@notify_level_eventlog=2,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No hay ninguna descripción.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object:  Step [BackUp_MuOnline]    Script Date: 10/05/2012 15:23:58 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'BackUp_MuOnline',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=1,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'--SQL 2008
USE MuTuVieja2017
SELECT * FROM SYS.DATABASE_FILES


USE MuTuVieja2017
CHECKPOINT
BACKUP LOG MuTuVieja2017 TO DISK = ''C:\BackUp_DB\TrashLogs''
DBCC SHRINKFILE (2, 0, TRUNCATEONLY)
GO

USE MuTuVieja2017
SELECT * FROM SYS.DATABASE_FILES


USE MuTuVieja2017
CHECKPOINT
BACKUP LOG MuTuVieja2017 TO DISK = ''C:\BackUp_DB\TrashLogs''
DBCC SHRINKFILE (2, 0, TRUNCATEONLY)
GO

DECLARE @file varchar(70)
SET @file = N''C:\BackUp_DB\MuOnline_''+REPLACE(REPLACE(CAST(getdate() AS varchar), '' '', ''_''), '':'', ''_'')+''.bak''
SELECT @file

BACKUP DATABASE [MuTuVieja2017] TO DISK = @file WITH INIT , NOUNLOAD , NAME = N''MuOnline backup'', NOSKIP , STATS = 10, NOFORMAT',
@database_name=N'master',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'BackUp_MuOnline',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20110515,
@active_end_date=99991231,
@active_start_time=200000,
@active_end_time=235959,
@schedule_uid=N'a08fbfe6-cf0e-4b04-8dec-68f7b19ceedf'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

GO

El saber no ocupa lugar
Analista en Sistemas recibido en ORT
Programador Java, JS, Kotlin.

Offline RyukZ #2 Posteado: October 07, 2019, 11:05:57 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 260
  • Gracias recibida: 44
  • ve
El código que yo utilizo es el siguiente:
Code: [Select]
			DECLARE @fecha varchar(MAX)

DECLARE @archivo varchar(MAX)

SET @fecha = CONVERT(Varchar(max), GETDATE(),102)+'_'+SUBSTRING(CONVERT(varchar(10), getdate(),108),1,2)+SUBSTRING(CONVERT(varchar(10), getdate(),108),4,2)

SET @archivo = 'C:\AutomaticBackups\MuOnline'+@fecha+'.bak'

BACKUP DATABASE MuOnline

TO DISK = @archivo

   WITH FORMAT,
   
  MEDIANAME = 'D_SQLServerBackups',
 
  NAME = 'Full Backup of MuOnline';

Gracias:


Offline cufa1 #3 Posteado: April 05, 2020, 02:02:40 PM

  • 0 puntos por ventas
  • *
  • Rank: Sup. destacado
  • Posts: 108
  • Gracias recibida: 17
  • ar
cada cuanto hace el backup


Offline cienfuegos #4 Posteado: April 05, 2020, 02:07:26 PM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 354
  • Gracias recibida: 43
  • az
cada cuanto hace el backup

Entiendo que el script solo ejecuta la "accion". La periodicidad, es decir, el "cada cuanto" se ejecuta depende de algo llama JOB en una base de datos y es algo que el script no te proporciona.
Si no queres enredarte mucho en esto, ejecutalo a mano cada vez que quieras guardar un respaldo. Yo personalmente lo haria todos los dias y guardaria 1 semana, es decir 7 backups de antiguedad.

Gracias:


Offline AdLuminus #5 Posteado: September 10, 2022, 06:00:21 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 39
  • Gracias recibida: 21
  • ar
Una  lastima que  le  hayan eliminado  la opcion de trabajos automaticos al SQL...

Voy a probar  estas 2 opciones.. Gracias


Offline carmax #6 Posteado: January 02, 2024, 11:50:32 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 14
  • Gracias recibida: 0
  • ar
Me re sirvió bro.
Una consulta, sigue on el MuTuvieja? xd


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
1 Replies
979 Views
Last post November 02, 2020, 09:43:28 PM
by magodeoz12
0 Replies
433 Views
Last post July 16, 2020, 11:32:00 PM
by pepeeh
3 Replies
698 Views
Last post September 06, 2020, 08:31:09 PM
by rodritwm
3 Replies
2458 Views
Last post April 04, 2021, 04:05:20 AM
by gicorox
1 Replies
949 Views
Last post September 22, 2023, 12:26:05 AM
by Juanakin