docker安装sql server并自动备份
时间: 2023-12-29 10:02:17 浏览: 166
好的,我明白了您的问题。首先,您需要在Docker中安装SQL Server。您可以使用以下命令来安装:
```
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong@Passw0rd>' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
```
这将下载并启动最新版本的SQL Server,并将其公开在端口1433上。
接下来,您需要设置自动备份。您可以使用以下命令来设置计划任务:
```
docker exec -it <container_id> /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourStrong@Passw0rd>' -Q "DECLARE @jobId BINARY(16) EXEC msdb..sp_add_job @job_name = N'BackupJob', @output_flag = 1, @job_id = @jobId OUTPUT DECLARE @scheduleId int EXEC msdb..sp_add_schedule @schedule_name = N'BackupSchedule', @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 = 20221031, @active_end_date = 99991231, @active_start_time = 0, @active_end_time = 235959, @schedule_id = @scheduleId OUTPUT EXEC msdb..sp_attach_schedule @job_id = @jobId, @schedule_id = @scheduleId EXEC msdb..sp_add_jobstep @job_id = @jobId, @step_name = N'BackupStep', @subsystem = N'TSQL', @command = N'BACKUP DATABASE [MyDatabase] TO DISK = ''/var/opt/mssql/backup/MyDatabase.bak''', @on_success_action = 1, @step_id = 1 EXEC msdb..sp_add_jobserver @job_id = @jobId"
```
这将创建名称为“BackupJob”的定期计划任务,该任务将在每天执行,并将备份输出到位于容器中的/var/opt/mssql/backup/目录中的MyDatabase.bak文件中。请确保将相应的数据库名称替换为您要备份的数据库名称。
希望这可以帮助您。
阅读全文