使用bak文件还原docker中的sqlserver数据库

1.xshell连接工具

使用xshell远程连接工具连接服务器。

2.将bak文件放到home文件夹

3.将bak文件复制到docker容器中

docker cp /V7_Test_XBT_05071041.bak mysqlserver2017:/

mqsqlserver2017 是docker容器中 SQL server镜像的名称。

4.进入docke容器

docker exec -i -t   mssql2017 /bin/bash

 5.列出bak文件的逻辑名

/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P '你的数据库密码' -Q 'RESTORE FILELISTONLY FROM DISK = "/V7_Test_XBT_05071041.bak"' | tr -s ' ' | cut -d ' ' -f 1-2

结果:

  1. /opt/mssql-tools/bin/sqlcmd

    • 这是 SQL Server 命令行工具的路径。/opt/mssql-tools/bin/ 是这个工具在 Linux 系统上的默认安装位置(或者用户自定义的安装位置)。
    • sqlcmd 是一个命令行工具,允许用户连接到 SQL Server 数据库并执行查询。
  2. -S localhost

    • 这指定了 SQL Server 的实例名称或地址。在这里,它连接到运行在当前机器(localhost)上的 SQL Server 实例。
  3. -U sa

    • 这指定了用于连接到 SQL Server 的用户名。在这里,它使用 sa 账户,这是 SQL Server 的默认系统管理员账户。
  4. -P '你的数据库密码'

    • 这指定了与上述用户名关联的密码。注意这里的 '你的数据库密码' 是一个占位符,你应该将其替换为实际的 sa 账户密码。
  5. -Q 'RESTORE FILELISTONLY FROM DISK = "/V7_Test_XBT_05071041.bak"'

    • 这是一个 SQL 查询,它使用 RESTORE FILELISTONLY 命令来查询 .bak 备份文件中的内容。具体来说,它会列出备份文件中的所有文件和文件组,但不会实际恢复它们。
    • /V7_Test_XBT_05071041.bak 是备份文件的路径。

 6.还原数据库

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Admin@123' -Q 'RESTORE DATABASE V7_Test_XBT FROM DISK = "/V7_Test_XBT_05071041.bak" WITH MOVE "etourTSMS_2011" TO "/var/opt/mssql/data/V7_Test_XBT.mdf" , MOVE "etourTSMS_2011_log" TO "/var/opt/mssql/data/V7_Test_XBT.ldf"'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值