win10,docker安装sqlServer2017,并导入备份数据bak

一、docker安装sqlServer2017

  1. 拉取镜像

    docker pull mcr.microsoft.com/mssql/server:2017-latest
    
  2. 启动

    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=wade@123" -p 1433:1433 -v D:/database/data:/var/opt/mssql/data --name sqlserver -d mcr.microsoft.com/mssql/server:2017-latest
    

    *密码设置不能太简单,不然启动失败

    *挂载目录:D:/database/data

二、导入备份数据

  1. 将数据上传至容器

    docker cp 备份文件路径 sqlserver:/usr/local
    
  2. 进入容器

    docker exec -it sqlserver bash
    
  3. 输入对应账号密码进入

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "wade@123"
    
  4. 查询文件的逻辑名

    RESTORE FILELISTONLY FROM DISK = '/usr/local/备份文件.bak'
    
    • 结果(LogicalName):

      TeamUPDB_INSTALL_1 
      TeamUPDB_INSTALL_1_log 
      
  5. 使用RESTORE DATABASE命令还原数据库

    RESTORE DATABASE mytest
    FROM DISK = '/usr/local/备份文件.bak'
    WITH 
    MOVE 'TeamUPDB_INSTALL_1' TO '/var/opt/mssql/data/mytest.mdf',
    MOVE 'TeamUPDB_INSTALL_1_log' TO '/var/opt/mssql/data/mytest.ldf',
    NOUNLOAD, REPLACE
    GO
    
好的,我明白了您的问题。首先,您需要在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文件中。请确保将相应的数据库名称替换为您要备份数据库名称。 希望这可以帮助您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值