AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[filestream](dba)

Martin Hope
Imran Faruqi
Asked: 2020-11-09 03:00:19 +0800 CST

除了 MS SQL Server,我们在任何其他数据库中是否有类似文件表/文件流的支持?

  • 0

我正在寻找 Microsoft SQL Server 的文件表/文件流功能的替代方案。原因是我真的很想使用 SQL Server 文件表,但我在 Linux 上使用 docker。

不幸的是,微软在文件表方面没有为 Linux 提供任何支持。请参阅仍然打开的此问题。不过最好使用 MySQL 或 PostgreSQL。

SQL Server 文件表使用操作系统的文件系统来存储文件并在 SQL 表中同步这些文件值。它比保存 BLOB 快得多。此外,如果我运行数据库备份,它会被备份。因此,它使用文件系统来提高速度,同时保持与数据库的同步。我还可以通过文件系统和/或事务访问文件。

database-recommendation filestream
  • 1 个回答
  • 1994 Views
Martin Hope
Lord Darth Vader
Asked: 2020-04-22 01:06:40 +0800 CST

启用文件流 SQL Server 2017

  • 2

我正在尝试在 Windows Core 2019 服务器上的 Microsoft SQL Server 2017 上启用文件流。

由于没有 GUI,我已更改以下位置的注册表设置以启用它。我将值设置为 3

ServerName\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.InstanceName\MSSQLServer\Filestream.EnabledLevel

在此之后我重新启动

我还安装了最新的累积更新 ( 20 ),因为我知道驱动程序签名存在问题。

在此之后我重新启动

我在 C:\Program Files\Microsoft SQL Server\MSSQL14.InstanceName\MSSQL\Log 的日志文件中看到以下错误

<{781FAE78-09AB-4EE5-B051-67747BDB19E3}>RsFxMgmtInitialize failed (the RsFx device is not found. Check if RsFx driver is started.): Error 0x80070002 (-2147024894)
2020-04-21 08:56:03.94 spid5s      FILESTREAM: failed to connect to kernel driver RsFx0503.
<{1038F43D-3391-45F7-B1B3-BADF26459429}>Failed to initialize CFsaShareFilter: Error 0x80070002 (-2147024894)

<{1038F43D-3391-45F7-B1B3-BADF26459429}>Failed to initialize CFsaShareFilter: Error 0x80070002 (-2147024894)

2020-04-21 08:56:03.94 spid5s      FILESTREAM: effective level = 0, configured level = 2.
2020-04-21 08:56:03.94 spid5s      FILESTREAM feature could not be initialized. The operating system Administrator must enable FILESTREAM on the instance using Configuration Manager.

选择@@版本

Microsoft SQL Server 2017 (RTM-CU20) (KB4541283) - 14.0.3294.2 (X64)   Mar 13 2020 14:53:45   Copyright (C) 2017 Microsoft Corporation  Standard Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor) 

我让它在一台服务器上运行,但无法在第二台服务器上运行。这个盒子上还有一个版本的sql 2019

有什么帮助吗?还有关于让它在集群上工作的任何建议

sql-server filestream
  • 1 个回答
  • 311 Views
Martin Hope
Xaxum
Asked: 2019-09-29 05:35:23 +0800 CST

SQL Server 在没有 SQL Server 配置管理器的情况下启用文件流(因此仅通过命令行)

  • 3

我在 Windows Server 2019 Core 安装上安装了 SQL Server 2017,没有 GUI。我们的一位用户想要使用 Filestream。我尝试遵循此设置,但是,由于它需要 SSCM,因此我无法完成该部分。我可以在 SSMS 中启用,但是无法设置文件位置等,因此在设置页面上执行存储过程命令时出现此错误:

无法初始化 FILESTREAM 功能。操作系统管理员必须使用 Configuration Manager 在实例上启用 FILESTREAM。

当我通过计算机管理窗口远程连接到 SSCM 并尝试打开服务时,将不会显示任何服务。我可以访问网络选项,但不能访问服务,所以这些服务可能无法远程工作?核心安装和我尝试使用的 GUI 版本之间的防火墙已关闭。

有人可以像通过 SSCM 一样远程启用 Filestream 并设置所需的参数吗?

提前致谢。

sql-server filestream
  • 2 个回答
  • 2125 Views
Martin Hope
Zachary Weber
Asked: 2019-04-23 13:12:04 +0800 CST

FILESTREAM 上的 MS 文档听起来好像它应该只用于归档非结构化数据。我误解了这个吗?

  • 1

我正在构建一个应用程序,它将存储与记录相关的小图像文件(通常可能小于 1 MB)。我正在考虑 MSSQL 中的 FILESTREAM 选项,但我对文档有点困惑。

Access FILESTREAM Data with Transact-SQL中的文档指出:

您可以使用 Transact-SQL 更新文件系统文件中的数据;但是,当您必须将大量数据流式传输到文件时,您可能不想这样做。

如果我需要用它的新版本更新文件,除了使用 T-SQL“更新”命令之外还有什么其他选择?

Create Client Applications for FILESTREAM Data中的文档甚至更进一步说,在 filestream 列可以为空的情况下,您不应该插入或删除数据:

避免在包含非空 FILESTREAM 列的表中进行插入和删除操作。插入和删除操作可以修改用于垃圾回收的 FILESTREAM 表。这可能会导致应用程序的性能随着时间的推移而下降。

如果您不应该在文件流可能为空的表中插入或删除文件,那么在并非所有记录都有文件但该表正在进行大量事务(包括插入和删除)的情况下,您会怎么做? 我的意思是,如果没有......好吧......插入数据,你还要如何插入数据以供以后阅读?

听起来 FILESTREAM 选项更多地用于存档文件(或非结构化数据),一旦保存,实际上只能通过读取操作引用。

我知道我一定遗漏了一些东西,但是文档对我来说似乎有点混乱。

是否有更好的 FILESTREAM 教程或文档?

sql-server filestream
  • 1 个回答
  • 56 Views
Martin Hope
nnmmss
Asked: 2018-10-14 23:29:43 +0800 CST

删除记录后,FileStream 文件不会被删除

  • 0

我在带有 Filestream 属性列的 sql server 2016 中工作。我有一列激活了文件流属性。当我在 TSQL 中插入 reacord 时,相关文件会在正确的 Filestream 容器文件夹中创建。但问题是当我删除一行时,文件流容器中的关联文件仍然存在并且不会被删除。据我所知这不应该发生并且该文件与其记录完全相关,那么为什么不删除呢?

谢谢

sql-server filestream
  • 1 个回答
  • 386 Views
Martin Hope
Kris Cook
Asked: 2015-10-27 05:23:26 +0800 CST

将 FILESTREAM 移动到另一个数据库

  • 1

我们的开发组织已经创建了一个使用 FILESTREAM 的应用程序,该应用程序已通过试点整合到我们的数据仓库暂存数据库中的模式中。进入生产环境后,开发和 BI 团队已确定他们希望将其分离到一个单独的数据库中,并且他们希望在当前的试点环境 (DEV) 中将其分离。

我怎样才能最好地将现有 FILESTREAM 数据从当前数据库移动(或至少复制)到新数据库中?

澄清一下:我不是要移动数据库,而是要将 FILESTREAM(和整个模式)从一个数据库中拉出并将其放入另一个数据库中。

sql-server-2012 filestream
  • 1 个回答
  • 1109 Views
Martin Hope
Kumar
Asked: 2015-10-21 22:05:05 +0800 CST

启用了 FileStream 的多个 SQL Server 实例

  • 5

是否可以让两个 SQL Server 实例(一个 2008 R2 和另一个 2012)在同一台机器上运行并且都启用了文件流?

我试图在本地开发机器上设置它,我可以让服务运行。但是当我尝试从 2008 R2 实例读取文件流时,我得到一个ArgumentException.

两种情况下的路径看起来都不错。

SQL 服务器 2008 R2

\\DEVMC\MSSQLSERVER\v1\TESTDB\dbo\coreFileStore\fileData\525F2031-8D8C-45FF-8386-E1DD5F11C960

SQL Server 2012

\\DEVMC\EXPRESS2012\v1\TESTDB12\dbo\coreFileStore\fileData\525F2031-8D8C-45FF-8386-E1DD5F11C960

是否有任何神奇的设置可以使其在这两种情况下都有效,或者根本无法实现?

这是尝试使用 C# 测试代码访问文件时的异常堆栈跟踪。

System.ArgumentException : An invalid parameter was passed to the function.
   at System.Data.SqlTypes.SqlFileStream.OpenSqlFileStream(String path, Byte[] transactionContext, FileAccess access, FileOptions options, Int64 allocationSize)
   at System.Data.SqlTypes.SqlFileStream..ctor(String path, Byte[] transactionContext, FileAccess access, FileOptions options, Int64 allocationSize)
   at System.Data.SqlTypes.SqlFileStream..ctor(String path, Byte[] transactionContext, FileAccess access)
   at SimpleTests.FileStreamTest.ReadFilestream(String connectionstring, String fileid) in FileStreamTest.cs: line 47

这是我用来验证问题的 NUnit 测试方法。FileStore 访问 TESTDB 失败,但 TESTDB12 工作正常。

[TestCase(new object[] { "Data Source=localhost;Database=TESTDB;Integrated Security=True;Connect Timeout=120;", "525F2031-8D8C-45FF-8386-E1DD5F11C960" })]
[TestCase(new object[] { "Data Source=localhost\\express2012;Database=TESTDB12;Integrated Security=True;Connect Timeout=120;", "9AC28DC0-B927-4075-8D31-00E343E15663" })]
public void ReadFilestream(string connectionstring, string fileid)
{
    const string _selectSql =
        @"SELECT fileData.PathName(), GET_FILESTREAM_TRANSACTION_CONTEXT()
  FROM coreFileStore
  WHERE fileStoreId = @FileStoreId";

    using (SqlConnection connection = new SqlConnection(connectionstring))
    {
        connection.Open();
        using (SqlTransaction transaction = connection.BeginTransaction())
        {
            string filepath;
            byte[] txnInfo;
            using (SqlCommand command = connection.CreateCommand())
            {
                command.CommandText = _selectSql;
                command.Parameters.AddWithValue("FileStoreId", new Guid(fileid));
                command.Transaction = transaction;
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    reader.Read();
                    filepath = reader.GetString(0);
                    txnInfo = reader.GetValue(1) as byte[];
                }
            }

            Console.WriteLine(filepath);

            using (SqlFileStream sqlFileStream = new SqlFileStream(filepath, txnInfo, FileAccess.Read))
            {
                using (StreamReader reader = new StreamReader(sqlFileStream))
                {
                    string x = reader.ReadToEnd();
                    Console.WriteLine(x);
                }
            }
        }
    }
}
sql-server filestream
  • 1 个回答
  • 828 Views
Martin Hope
tuespetre
Asked: 2014-11-29 16:36:36 +0800 CST

SQL Server FILESTREAM 访问被拒绝

  • 1

我的机器和数据库服务器位于同一个 Windows 域中。我还有一台不在域中的登台机器。

在我的机器上,我可以毫无问题地使用 FILESTREAM 执行任何和所有操作。从登台机器上,我的应用程序可以随意使用 TSQL,但是当它尝试打开 aSqlFileStream时,我收到“访问被拒绝。”

登台机器、数据库服务器和我的机器都设置了具有相同名称和密码的本地用户,以便应用程序可以使用集成安全性连接到 SQL Server。由于 FILESTREAM 是唯一不适用于非域机器的东西,我想知道我是否遗漏了 FILESTREAM 文档中的某些内容,或者文档是否没有指定只有 Active Directory 才能满足集成安全性,或者当然是否有我可以做些什么来让我的情况发挥作用。

sql-server-2008-r2 filestream
  • 1 个回答
  • 5633 Views
Martin Hope
user193655
Asked: 2014-03-11 00:21:18 +0800 CST

使用文件流在 SQL Server 中可存储的 blob 数量是否有限制?

  • 1

我filestream用来存储 blob(文件)。我使用 SQL Server 2008 R2

一些客户有 60k 个文件 (50GB)。他们问我以后有没有限制,也是因为NTFS,会有问题。

不知何故,疑问是:如果 blob 的数量增长太多,是否存在 SQL Server 无法正确处理它们的限制?

我认为 SQL Server 处理得很好,但有没有人有更好的答复?

谢谢

sql-server filestream
  • 1 个回答
  • 150 Views
Martin Hope
Amer Sawan
Asked: 2013-12-23 16:30:55 +0800 CST

SQL 如何将支持文件流的表中的行与其文件绑定

  • 2

存储在启用文件流的表中的每个 BLOB 实际上存储在物理文件中,我如何知道该表中特定行的实际文件名。

例如,我有Images一个启用了文件流的表,它有一个名为Datatype :的文件流列VARBINARY(MAX)。

这是该表的一个示例,它有 19 行,文件流文件夹也包含 19 行: 该表的示例有 19 行,文件夹也包含 19 行

它是存储在某个系统表中,还是“ROWGUIDCOL”与其名称之间存在直接关系?

sql-server-2008-r2 filestream
  • 1 个回答
  • 728 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve