Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se presenta cómo usar un script transact-SQL y un programador de tareas de Windows para automatizar copias de seguridad de bases de datos de SQL Server Express de forma programada.
Versión del producto original: SQL Server
Número de KB original: 2019698
Resumen
Las ediciones de SQL Server Express no ofrecen una manera de programar trabajos o planes de mantenimiento porque el componente Agente SQL Server no se incluye en estas ediciones. Por lo tanto, debe adoptar un enfoque diferente para realizar copias de seguridad de las bases de datos al usar estas ediciones.
Actualmente, los usuarios de SQL Server Express pueden realizar copias de seguridad de sus bases de datos mediante uno de los métodos siguientes:
Use SQL Server Management Studio o Azure Data Studio. Para obtener más información sobre cómo usar estas herramientas para realizar una copia de seguridad de una base de datos, revise los vínculos siguientes:
Tutorial: Copia de seguridad y restauración de bases de datos mediante Azure Data Studio
Use un script de Transact-SQL que use la familia de comandos BACKUP DATABASE. Para obtener más información, vea BACKUP (Transact-SQL).
En este artículo se describe cómo usar un script de Transact-SQL junto con el Programador de tareas para automatizar las copias de seguridad de las bases de datos de SQL Server Express de forma programada.
Nota:
Esto solo se aplica a las ediciones express de SQL Server y no a SQL Server Express LocalDB.
Creación de una copia de seguridad programada en SQL Express
Debe seguir estos cuatro pasos para realizar copias de seguridad de las bases de datos de SQL Server mediante el Programador de tareas de Windows:
Paso 1: Crear un procedimiento almacenado para realizar copias de seguridad de las bases de datos
Conéctese a la instancia de SQL Express y cree sp_BackupDatabases
un procedimiento almacenado en la base de datos maestra mediante el script en la siguiente ubicación:
Paso 2: Descargar la utilidad de cliente SQLCMD
La sqlcmd
utilidad le permite escribir instrucciones Transact-SQL, procedimientos del sistema y archivos de script. En SQL Server 2014 y versiones anteriores, la utilidad se incluye como parte del producto. A partir de SQL Server 2016, sqlcmd
la utilidad se ofrece como descarga independiente. Para obtener más información, consulte utilidad sqlcmd.
Paso 3: Crear un archivo por lotes mediante un editor de texto
En un editor de texto, cree un archivo por lotes denominado Sqlbackup.bat y, a continuación, copie el texto de uno de los ejemplos siguientes en ese archivo, en función de su escenario:
Todos los escenarios siguientes se usan
D:\SQLBackups
como soporte de posición. El script debe ajustarse a la unidad adecuada y a la ubicación de la carpeta de copia de seguridad en su entorno.Si usa la autenticación de SQL, asegúrese de que el acceso a la carpeta está restringido a los usuarios autorizados a medida que las contraseñas se almacenan en texto no cifrado.
Nota:
La carpeta del SQLCMD
archivo ejecutable suele estar en las variables path del servidor después de instalar SQL Server o después de instalarlo como herramienta independiente. Pero si la variable Path no enumera esta carpeta, puede agregar su ubicación a la variable Path o especificar la ruta de acceso completa a la utilidad.
Ejemplo 1: Copias de seguridad completas de todas las bases de datos de la instancia con nombre local de SQLEXPRESS mediante la autenticación de Windows
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @backupType='F'"
Ejemplo 2: Copias de seguridad diferenciales de todas las bases de datos de la instancia con nombre local de SQLEXPRESS mediante sqlLogin y su contraseña
// Sqlbackup.bat
sqlcmd -U <YourSQLLogin> -P <StrongPassword> -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases @backupLocation ='D:\SQLBackups', @BackupType='D'"
Nota:
SQLLogin debe tener al menos el rol Operador de copia de seguridad en SQL Server.
Ejemplo 3: Registrar copias de seguridad de todas las bases de datos de la instancia con nombre local de SQLEXPRESS mediante la autenticación de Windows
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\',@backupType='L'"
Ejemplo 4: Copias de seguridad completas de la base de datos USERDB en la instancia local con nombre de SQLEXPRESS mediante la autenticación de Windows
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName='USERDB', @backupType='F'"
Del mismo modo, puede realizar una copia de seguridad diferencial de USERDB pegando en "D" para el parámetro @backupType y una copia de seguridad de registros de USERDB pegando en "L" para el parámetro @backupType .
Paso 4: Programar un trabajo mediante el Programador de tareas de Windows para ejecutar el archivo por lotes que creó en el paso 2
Siga estos pasos:
En el equipo que ejecuta SQL Server Express, seleccione Iniciar y escriba Programador de tareas en el cuadro de texto.
En Mejor coincidencia, seleccione Programador de tareas para iniciarlo.
En Programador de tareas, haga clic con el botón derecho en Programador de tareas (local) y seleccione Crear tarea básica.
Escriba el nombre de la nueva tarea (por ejemplo, SQLBackup) y seleccione Siguiente.
Seleccione Diario para el desencadenador de tareas y seleccione Siguiente.
Establezca la periodicidad en un día y seleccione Siguiente.
Seleccione Iniciar un programa como acción y seleccione Siguiente.
Seleccione Examinar, seleccione el archivo por lotes que creó en el paso 3 y, a continuación, seleccione Abrir.
Active la casilla Abrir el cuadro de diálogo Propiedades de esta tarea al hacer clic en Finalizar .
En la pestaña General :
Revise las opciones seguridad y asegúrese de lo siguiente para la cuenta de usuario que ejecuta la tarea (que aparece en Al ejecutar la tarea, usuario la siguiente cuenta de usuario:)
La cuenta debe tener al menos permisos de lectura y ejecución para iniciar la
sqlcmd
utilidad. Además:Si usa la autenticación de Windows en el archivo por lotes, asegúrese de que el propietario de la tarea tiene permiso para realizar copias de seguridad de SQL.
Si usa la autenticación de SQL en el archivo por lotes, el usuario de SQL debe tener los permisos necesarios para realizar copias de seguridad de SQL.
Ajuste otras opciones de configuración según sus requisitos.
Sugerencia
Como prueba, ejecute el archivo por lotes del paso 3 desde un símbolo del sistema que se inicia con la misma cuenta de usuario que posee la tarea.
Requisitos
Tenga en cuenta los siguientes requisitos cuando use el procedimiento que se documenta en este artículo:
El servicio Programador de tareas debe ejecutarse en el momento en que el trabajo está programado para ejecutarse. Se recomienda establecer el tipo de inicio de este servicio como Automático. Esto garantiza que el servicio se ejecute incluso en un reinicio.
Debe crear espacio suficiente en la unidad donde se escriben las copias de seguridad. Se recomienda limpiar los archivos antiguos en la carpeta Copia de seguridad con regularidad para asegurarse de que no se agota el espacio en disco. El script no contiene la lógica para limpiar los archivos antiguos.