SQL Server 2017 Linux CU1 - 修改文件遇到操作系统错误 31

Mar*_*ues 5 sql-server linux sql-server-2017

我有一台“VMWare RHEL 7.4”机器,安装了“SQL Server 2017 Linux CU1”,并创建了一个“Linux 线性卷”,当我尝试恢复“线性卷”中的数据库备份时,请参阅底部的步骤我收到以下错误。

/* 消息 5149,级别 16,状态 3,第 6 行 MODIFY FILE 在尝试扩展物理文件 '/sqldata/mssql_data/defense/defense_Data_01.MDF 时遇到操作系统错误 31(连接到系统的设备无法正常工作。) '。消息 3013,级别 16,状态 1,第 6 行 RESTORE DATABASE 异常终止。*/

我能够毫无问题地恢复“/var/opt/mssql/data”上的数据库备份,然后我分离数据库并将其移动到“线性卷”,并且我能够很好地附加数据库,但是任何操作需要扩展数据文件失败并出现相同的错误消息。

我已经以与 Oracle 和 PostgreSQL 数据库相同的方式设置了“Linux 线性卷”,并且它始终与这些数据库配合良好。

你见过这个问题吗?这是“SQL Server 2017 Linux CU1”的错误吗?

创建 Linux 线性卷

  1. vmware 添加 /dev/sdc 磁盘 100GB
  2. 对 /dev/sdc 进行分区并创建 100gb fdisk /dev/sdc 的 /dev/sdc1 分区
  3. 创建卷组 vgcreate vgsqldata /dev/sdc1 vgscan vgdisplay vgsqldata
  4. 逻辑卷 lvcreate -l 25599 vgsqldata -n lvsqldata lvdisplay -v /dev/vgsqldata/lvsqldata
  5. 格式化卷 mkfs.ext3 /dev/vgsqldata/lvsqldata
  6. 挂载 mkdir /sqldata mount -t ext3 /dev/vgsqldata/lvsqldata /sqldata df -kh touch /sqldata/test.txt ls -la /sqldata rm -rf /sqldata/test.txt
  7. 持久挂载 vi /etc/fstab --mount 逻辑卷 /dev/vgsqldata/lvsqldata /sqldata ext3 默认 1 1
  8. 更改所有者 chown -R mssql:mssql /sqldata ls -la /“drwxr-xr-x.5 mssql mssql 4096 11 月 7 日 10:43 sqldata”

我们使用“Linux线性卷”的原因是因为以后添加更多空间更容易,只需添加另一个vmware磁盘,对磁盘进行分区并将新磁盘添加到线性卷即可。

增加 Linux 线性音量

  1. vmware 添加 /dev/sdd 磁盘 100GB
  2. 对 /dev/sdd 进行分区并创建 100gb fdisk /dev/sdd 的 /dev/sdd1 分区
  3. 扩展卷组 vgextend vgsqldata /dev/sdd1
  4. 扩展逻辑卷 lvextend -l +100%FREE /vgsqldata/lvsqldata

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/logic_volume_manager_administration/

我很感激有关此问题的任何反馈。

谢谢,

Marcelo Marques OCP 高级技术经理 www.esri.com

Mar*_*ues 3

我明白了这个问题。

问题:不支持 EXT3 文件系统。

https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup 文件系统 XFS 或 EXT4(不支持其他文件系统,例如 BTRFS

解决方案:创建一个EXT4文件系统。

  1. 注释 /etc/fstab 中挂载 ext3 文件系统的行

vi /etc/fstab

-挂载逻辑卷

“#/dev/vgsqldata/lvsqldata /sqldata ext3 默认 1 1”

:wq!

  1. 重新启动服务器

重启

  1. 检查文件系统没有挂载

df-kh

  1. 检查线性体积

扫描仪

vgdisplay vgsqldata

lvdisplay -v /dev/vgsqldata/lvsqldata

  1. 将卷格式化为 ext4

mkfs.ext4 /dev/vgsqldata/lvsqldata

mkdir /sqldata

挂载-t ext4 /dev/vgsqldata/lvsqldata /sqldata

df-kh

触摸/sqldata/test.txt

ls -la /sqldata

rm -rf /sqldata/test.txt

  1. 坚持挂载

vi /etc/fstab

-挂载逻辑卷

/dev/vgsqldata/lvsqldata /sqldata ext4 默认 1 1

  1. 变更所有者

chown -R mssql:mssql /sqldata

ls-la /

“drwxr-xr-x。5 mssql mssql 4096 11 月 7 日 10:43 sqldata”