准备
还原数据库
1 创建镜像sql1的文件目录 并 拷贝文件
*backup_name 替换为需还原的备份文件路径
sudo docker exec -it sql1 mkdir /var/opt/mssql/backup
sudo docker cp backup_name.bak sql1:/var/opt/mssql/backup
2进入容器,执行命令
*container_name 替换为容器名
sudo docker exec -it container_name /bin/bash
使用RESTORE FILELISTONLY命令列出备份数据文件的逻辑名
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'dev@123,' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/backup_name.bak"' | tr -s ' ' | cut -d ' ' -f 1-2
使用RESTORE DATABASE命令还原数据库
*database_name替换为要还原的数据库名称
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'dev@123,' -Q 'RESTORE DATABASE database_name FROM DISK = "/var/opt/mssql/backup/backup_name.bak" WITH MOVE "database_name" TO "/var/opt/mssql/data/database_name.mdf" , MOVE "database_name_log" TO "/var/opt/mssql/data/database_name_log.ldf"'