SQL Server 2019 (Mac) Notes

安装

安装过程参考官方教程即可,唯一需要注意的是密码的选择。密码有若干约束

  • 根据SQL Server的要求,密码中必须包含数字、英文字母及符号 (non-alphanumeric char)。
  • 在docker命令行下可以输入“$”符号,但是在Azure Data Studio会无法登录。返回Error 1846, State 1,原因不明。
  • 当在使用node.js通过mssql驱动进行登录时,可能会遇到路径字符串登录的情形,即

    mssql://<username>:<password>@<localhost>/<database>

    如果在password中包含了“@”则会将其后面的内容视作hostname,考虑到这种情形,避免在密码中包含“@”符号。


还原.BAK文件

还原文件需要两个步骤,第一个步骤是先由SQL Server读取.BAK文件,并获得其中的逻辑文件名。如果只是单纯地restore database,我们并不需要知道逻辑文件名,但当我们需要选择一个现有的database并保存还原的结果,也就是现有database被覆盖时,则需要知道这些逻辑文件名。

-- 步骤1
RESTORE FILELISTONLY
FROM DISK = N‘/var/opt/mssql/backup/yon-you.BAK‘
GO

SQL Server 2019 (Mac) Notes

由上图可知,备份文件中包含了两个文件分别是Ufmodel和Ufmodel_LOG。

那么在下一步,我们就会用到这两个名字。

-- 步骤2
USE [master]
RESTORE DATABASE [rebase]
    FROM DISK = N‘/var/opt/mssql/backup/yon-you.BAK‘
    WITH FILE = 1,
        MOVE N‘Ufmodel‘ TO N‘/var/opt/mssql/data/ufdata.mdf‘,
        MOVE N‘Ufmodel_LOG‘ TO N‘/var/opt/mssql/data/ufdata.ldf‘,
        KEEP_REPLICATION,  NOUNLOAD,  REPLACE,  STATS = 5

不同的备份文件中包含的逻辑文件名并不相同,这取决于操作数据库的软件在导出backup时起了怎样的逻辑文件名。

SQL Server 2019 (Mac) Notes

上一篇:使用jQuery获取GridView的数据行的数量


下一篇:ceph mon无法启动-rocksdb数据损坏