web-dev-qa-db-ja.com

SQL Server 2017 Linux CU1-変更ファイルでオペレーティングシステムエラー31が発生しました

「SQL Server 2017 Linux CU1」をインストールした「VMWare RHEL 7.4」マシンを使用していて、「Linuxリニアボリューム」を作成しました。「リニアボリューム」でデータベースバックアップを復元しようとすると、下部の手順を参照してください以下のエラーが発生しました。

/ *物理ファイル '/sqldata/mssql_data/defense/defense_Data_01.MDFを展開しようとしたときに、メッセージ5149、レベル16、状態3、行6のMODIFY FILEでオペレーティングシステムエラー31(システムに接続されたデバイスが機能していません)が発生しました'。メッセージ3013、レベル16、状態1、行6 RESTORE DATABASEが異常終了しています。 * /

「/ var/opt/mssql/data」でデータベースバックアップを問題なく復元できた後、データベースをデタッチして「リニアボリューム」に移動し、データベースを正常に接続できましたが、どの操作でもデータファイルを拡張する必要があるものは、同じエラーメッセージで失敗します。

私はOracleとPostgreSQLのデータベースと同じ方法で「Linuxリニアボリューム」をセットアップしましたが、常にそれらでうまく機能しました。

この問題を見ましたか?これは「SQL Server 2017 Linux CU1」のバグですか?

Linux線形ボリュームを作成する

  1. vmware add/dev/sdc disk 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 defaults 1 1
  8. 所有者の変更chown -R mssql:mssql/sqldata ls -la/"drwxr-xr-x。5 mssql mssql 4096 Nov 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/logical_volume_manager_administration/

この問題についてのフィードバックに感謝します。

おかげで、

Marcelo Marquesシニアテクニカルマネージャー、OCP www.esri.com

3
Marcelo Marques

私は問題を理解します。

問題:EXT3ファイルシステムはサポートされていません。

https://docs.Microsoft.com/en-us/sql/linux/sql-server-linux-setup ファイルシステムXFSまたはEXT4(BTRFSなどの他のファイルシステムはサポートされていません)

解決策:EXT4ファイルシステムを作成します。

  1. Ext3ファイルシステムをマウントする/ etc/fstabの行をコメント化します

vi/etc/fstab

-マウント論理ボリューム

"#/ dev/vgsqldata/lvsqldata/sqldata ext3 defaults 1 1"

:wq!

  1. サーバーを再起動します

リブート

  1. ファイルシステムがマウントされていないことを確認してください

df -kh

  1. 線形ボリュームを確認する

vgscan

vgdisplay vgsqldata

lvdisplay -v/dev/vgsqldata/lvsqldata

  1. ボリュームをext4としてフォーマットする

mkfs.ext4/dev/vgsqldata/lvsqldata

  1. Mount

mkdir/sqldata

mount -t ext4/dev/vgsqldata/lvsqldata/sqldata

df -kh

touch /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 Nov 7 10:43 sqldata」

2
Marcelo Marques