Sqlserver 2014 FeilTable文件表的 创建、数据库恢复时的处理经验

Sqlserver的介绍就不多说了,它可以直接从数据库访问,也可以设置从Web中直接访问文件,对于有CS、BS混合模式开发来说很方便。

本文主要记录一下文件表的创建,有时候会创建失败。

注意事项:

FileTable 不支持内存映射文件。 “记事本”和“画图”是两个常见的使用内存映射文件的示例应用程序。 不能在 SQL Server 所在的计算机上使用这些应用程序来打开存储在 FileTable 中的文件。 但是,可以从远程计算机使用这些应用程序来打开存储在 FileTable 中的文件,因为在这些情况下不使用内存映射功能。

启动服务:

在这里插入图片描述

代码 – 按先后顺序 执行:

1、更改此 SQL Server 实例的 FILESTREAM 访问级别


--更改此 SQL Server 实例的 FILESTREAM 访问级别  
EXEC sp_configure filestream_access_level, 2
RECONFIGURE 

--   然后 重启数据库服务 ******************  必须重启服务

--创建数据库时设置非事务性访问级别  
--DIRECTORY_NAME 指定名称,每个数据库不能一样----
ALTER DATABASE 数据库名称
 SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'数据库名称_FileStreamPath' )

--查看数据库访问级别
  SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
  FROM sys.database_filestream_options;
  GO

--  或者在当前数据库中添加 FILESTREAM 文件组  
-----路径:D:\sqlData\DATAFILE\   必须存在,-------
-----路径:D:\sqlData\DATAFILE\文件夹名称   文件夹名称在实际文件夹中不能存在------
----DataFiles   是文件组的名称--------------------------
ALTER DATABASE 数据库名称
ADD FILEGROUP DataFiles CONTAINS FILESTREAM;  
  
ALTER DATABASE 数据库名称  
ADD FILE  
(  
     NAME = 数据库名称File,   
     FILENAME = 'D:\sqlData\DATAFILE\数据库名称File' --,  
     --MAXSIZE = 50 MB  
)  
TO FILEGROUP DataFiles  
GO  
-- 只有执行了下一个 BACKUP LOG 操作后,才能重用文件“数据库名称”。如果数据库正在参与某个可用性组,则只有在主可用性副本的截断 LSN 已越过该文件的删除 LSN 且后续 BACKUP LOG 操作已完成后,才能重用删除的文件。
-- 网上说用这句,但是有问题  BACKUP LOG 数据库名称 WITH NO_LOG
-- 直接 换一个名称,重新执行
-----------------下面是 创建 文件表-------------------------------------------

CREATE TABLE [dbo].[DocumentStore] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [DataFiles]
WITH
(
FILETABLE_DIRECTORY = N'DocumentStore', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS
)

GO
-- CREATE TABLE DocumentStores AS FileTable;-- 指定数据库访问级别和指定目录名字

还原带有文件表的 数据库的时候:

我习惯性将文件目录名称设置成 数据库名称+_File(图上面的aaaFile是我随便输入的) 这样有一个好处就是,有多个数据库文件目录都是同一个大目录下面的话,容易区分。
在这里插入图片描述

在这里插入图片描述
恢复完成过后,根据习惯查看文件目录名称 ,尽量保证文件目录的名称和数据库名称有对应关系。
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Copy学道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值