在 Windows 上的 SQL Server 中,如果您需要进行备份但实际上并不关心该备份,那么将数据库备份到NULL 设备是很常见的事情。例如,这对于在开发环境中更改恢复模型很有用。
备份语句类似于:
BACKUP DATABASE [xyz] TO DISK = 'NUL:';
Run Code Online (Sandbox Code Playgroud)
在用于 Linux 的 SQL Server 中,人们可能会认为/dev/null
这在逻辑上是等效的,但是如果您尝试这样做:
已处理数据库 'xyz' 的 125224 页,文件 1 上的文件 'xyz01'。
处理了数据库 'xyz' 的 2 页,文件 1 上的文件 'xyzLog'。
消息 3634,级别 16,状态 2,第 16 行
操作系统返回在“/dev/null”上尝试“DiskChangeFileSize”时出现错误“31(连接到系统的设备无法运行。)”。
消息 3013,级别 16,状态 1,第 16 行
BACKUP DATABASE 异常终止。
上面的命令似乎会重置 中的log_reuse_wait
和log_reuse_wait_desc
列sys.databases
,所以也许/dev/null
确实有效。
我在 RedHat Enterprise Linux 7.2 上使用 Linux v14.0.900.75 上的 SQL Server。
小智 5
“典型”SQL Server 语法实际上可以在 Linux 版 SQL Server 中使用;所以尝试:
BACKUP DATABASE [xyz] TO DISK = 'NUL';
Run Code Online (Sandbox Code Playgroud)