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
    • 最新
    • 标签
主页 / user-99833

Adrian S's questions

Martin Hope
Adrian S
Asked: 2020-11-25 11:54:50 +0800 CST

SQL Server - 跨不同逻辑驱动器拆分数据库的好处

  • 4

我们即将启动一个项目,将大型 DWH 迁移到新数据中心的新物理服务器上。当前的服务器规范是在 Windows 2012 R2 上运行的 SQL Server Enterprise 2016 SP2。新服务器将是在 Windows 2019 上运行的 MSSQL 2019 Enterprise。

当前和新服务器的 SAN 存储是全闪存存储阵列。在当前环境中,除了将数据和日志文件分离到不同的逻辑驱动器上外,不同的数据库(仅数据文件)也分布在不同的逻辑驱动器上。

  • 本地 SSD - TempDb
  • 逻辑驱动器 1 - 日志文件
  • 逻辑驱动器 2 - 用于暂存数据库的数据文件
  • 逻辑驱动器 3 - 面向用户的数据库的数据文件
  • 逻辑驱动器 4 - 支持数据库的数据文件(ReportServer、MDS 数据库)

作为服务器迁移的一部分,我正在考虑将所有数据文件合并到一个逻辑驱动器上。

  • 本地 SSD - TempDb
  • 逻辑驱动器 1 - 日志文件
  • 逻辑驱动器 2 - 数据文件

除了数据库文件管理之外,将数据文件分散在不同的逻辑驱动器上是否有任何性能优势?即使最终是同一个物理存储阵列,多个逻辑驱动器是否会提供更好的 IO?

sql-server windows-server
  • 3 个回答
  • 1793 Views
Martin Hope
Adrian S
Asked: 2020-06-17 07:22:09 +0800 CST

帮助从 Always On 可用性组进行复制

  • 0

我有一个两节点 SQL Server 2016 多子网可用性组。我正在尝试设置从 AG 到独立实例的跨国复制以进行报告,该实例也充当远程分发者。我们只需要一小部分表,因此无法选择将独立实例添加为第三个副本。

我已按照Microsoft 指南进行配置。我已经运行了EXEC sys.sp_redirect_publisher,当我运行EXEC sys.sp_validate_replica_hosts_as_publishers它时,它会返回 AG 侦听器。但是,当我们对 AG 进行故障转移时,复制将停止工作,并在复制监视器中报告以下错误

错误消息:无法查询原始发布者“PUB1”和发布者数据库“AlwaysOnTest”的重定向服务器“AGL”以确定远程服务器的名称;错误 7303,错误消息“错误 7303,级别 16,状态 1,消息:无法为链接服务器“[B66E8E27-E422-41DB-BBBC-254D450468D7]”初始化 OLE DB 提供程序“SQLNCLI11”的数据源对象。(来源:MSSQL_REPL,错误号:MSSQL_REPL21879) 获取帮助:http://help/MSSQL_REPL21879 验证重定向发布者时记录了错误。(来源:MSSQL_REPL,错误号:MSSQL_REPL22037) 获取帮助:http://help/MSSQL_REPL22037

我检查并尝试过的几件事

  1. 订阅者的已检查链接服务器存在于所有辅助副本主机上。
  2. 基于此,使用 sp_changedistpublisher 将安全模式切换为 SQL auth。

如果我在分发服务器上重新运行 AG 故障转移,EXEC sys.sp_validate_replica_hosts_as_publishers它会返回

无法在与虚拟网络名称“AGL”关联的可用性组主节点上查询 sys.availability_replicas 以获取成员副本的服务器名称:错误 = 7303,错误消息 = 错误 7303,级别 16,状态 1,消息:无法初始化数据链接服务器“[7A7DA613-BFDA-4C51-B62C-9C7CD94E769E]”的 OLE DB 提供程序“SQLNCLI11”的源对象..',

我被卡住了下一步该尝试什么....请帮助!!!

2020 年 16 月 6 日更新

当 AG 发生故障转移时,我尝试从远程分发服务器连接到 AG 侦听器。SSMS 连接正常,但是当我尝试使用 SQLCMD 连接时,它返回了一个错误。我也可以绕过侦听器直接从分发服务器连接到故障转移实例。

Sqlcmd:错误:Microsoft ODBC Driver 13 for SQL Server:命名管道提供程序:无法打开与 SQL Server 2的连接。. Sqlcmd:错误:Microsoft ODBC Driver 13 for SQL Server:登录超时已过期。Sqlcmd:错误:Microsoft ODBC Driver 13 for SQL Server:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。

sql-server replication
  • 1 个回答
  • 1374 Views
Martin Hope
Adrian S
Asked: 2019-03-28 02:00:45 +0800 CST

多实例服务器上的 SQL Server 配置

  • 0

我有一个带有两个实例的 2016 标准版服务器。该服务器有 8 个逻辑处理器和 40GB 内存(它是 hyper-v 上的测试服务器,因此规格不高!)并且没有任何现有工作负载可供分析。

关于 MAXDOP 和 TempDb 文件配置的建议在多实例服务器上是否仍然适用?

我的想法是拆分服务器资源并根据这些资源应用配置。

例如每个实例都会有

  • 16GB 最大内存
  • 最大输出 4
  • 4 个临时数据库文件
sql-server configuration
  • 1 个回答
  • 358 Views
Martin Hope
Adrian S
Asked: 2017-09-14 06:00:58 +0800 CST

多条件 DAX 行过滤器

  • 0

我正在尝试将以下 SQL 行级安全函数转换为表格模型中的 DAX 过滤器

CREATE FUNCTION [Security].[fn_securitypredicate](@BrandID AS INT, @ChannelId AS INT)  
    RETURNS TABLE  
WITH SCHEMABINDING  
AS  
    RETURN 
     (SELECT 1 AS fn_securitypredicate
            WHERE (EXISTS ( SELECT 1 FROM   security.RLSStaffBrand  WHERE StaffUsername = SYSTEM_USER AND BrandId = @BrandID)  
              AND  EXISTS ( SELECT 1 FROM   security.RLSStaffChannel WHERE StaffUsername = SYSTEM_USER  AND ChannelId = @ChannelID) )

               OR (        EXISTS (SELECT 1  FROM   security.RLSStaffBrand  WHERE StaffUsername = SYSTEM_USER  AND BrandId = @BrandID)  
                   AND NOT EXISTS ( SELECT 1  FROM   security.RLSStaffChannel WHERE StaffUsername = SYSTEM_USER ) )-- this user is not restricted by Channel

                OR (NOT EXISTS ( SELECT 1  FROM   security.RLSStaffBrand WHERE StaffUsername = SYSTEM_USER)          
                    AND EXISTS ( SELECT 1  FROM   security.RLSStaffChannel 

WHERE StaffUsername = SYSTEM_USER  AND ChannelId = @ChannelID) ) 

)
    GO

到目前为止,我有以下 DAX 过滤器,但这只处理 SQL 代码中的第一个条件。我不知道是否有可能在 DAX 中复制其余部分。

='Brand'[BrandId]=LOOKUPVALUE('RLSStaffBrand'[BrandId], 'RLSStaffBrand'[StaffUsername], USERNAME(), 'RLSStaffBrand'[BrandId], 'Brand'[BrandId])

='Channel'[ChannelId]=LOOKUPVALUE('RLSStaffChannel'[ChannelId], 'RLSStaffChannel'[StaffUsername], USERNAME(), 'RLSStaffChannel'[ChannelId], 'Channel'[ChannelId]) 
sql-server ssas
  • 1 个回答
  • 320 Views
Martin Hope
Adrian S
Asked: 2017-02-23 06:13:09 +0800 CST

SSAS 表格:处理操作不支持的 ImpersonationMode

  • 5

我有一个 SQL 2016 SP1 SSAS 表格实例。我已经部署了具有以下属性的模型

在此处输入图像描述

在此处输入图像描述

当我尝试处理数据库或表时,我收到错误“数据源包含不支持处理操作的 ImpersonationMode”。

但是,如果我将连接属性上的模拟信息更改为使用服务帐户而不是当前用户,它就可以正常工作。

如果我们将默认模式更改为 DirectQuery 而不是导入,我们也不会遇到此问题,但我们需要使用导入,因为我们需要使用 DAX 用户名功能来实现行级安全性。

我是 SSAS 实例的管理员,也是作为数据源的 SQL Server 实例的管理员。为什么我不能以我的用户身份处理 SSAS 表格模型?

sql-server sql-server-2016
  • 2 个回答
  • 21724 Views
Martin Hope
Adrian S
Asked: 2017-01-26 02:38:51 +0800 CST

拆分分区加载历史数据

  • 0

我们有一个使用以下分区模式和函数分区的表

CREATE PARTITION FUNCTION [pf_monthly_dateid](int) AS RANGE LEFT FOR VALUES (20140100, 20140200, 20140300, 20140400, 20140500, 20140600, 20140700, 20140800, 20140900, 20141000, 20141100, 20141200, 20150100, 20150200, 20150300, 20150400, 20150500, 20150600, 20150700, 20150800, 20150900, 20151000, 20151100, 20151200, 20160100, 20160200, 20160300, 20160400, 20160500, 20160600, 20160700, 20160800, 20160900, 20161000, 20161100, 20161200, 20170100, 20170200, 20170300, 20170400, 20170500, 20170600, 20170700, 20170800, 20170900, 20171000, 20171100, 20171200, 20180100, 20180200, 20180300, 20180400, 20180500, 20180600, 20180700, 20180800, 20180900, 20181000, 20181100, 20181200)
GO

CREATE PARTITION SCHEME [ps_monthly_dateid] AS PARTITION [pf_monthly_dateid] TO ([PRIMARY], [201401], [201402], [201403], [201404], [201405], [201406], [201407], [201408], [201409], [201410], [201411], [201412], [201501], [201502], [201503], [201504], [201505], [201506], [201507], [201508], [201509], [201510], [201511], [201512], [201601], [201602], [201603], [201604], [201605], [201606], [201607], [201608], [201609], [201610], [201611], [201612], [201701], [201702], [201703], [201704], [201705], [201706], [201707], [201708], [201709], [201710], [201711], [201712], [201801], [201802], [201803], [201804], [201805], [201806], [201807], [201808], [201809], [201810], [201811], [201812])
GO

我们现在需要将一些历史数据加载到 2013 年的表中,因此我想更改函数和架构以为此添加每月分区。但我不知道如何使用 SPLIT 做到这一点?我看过的每个示例和教程都展示了如何将新分区添加到范围的末尾,而不是在中间拆分一个。

请问有什么建议吗?

sql-server partitioning
  • 1 个回答
  • 1788 Views
Martin Hope
Adrian S
Asked: 2016-11-12 03:22:05 +0800 CST

varbinary 的索引维护

  • 2

我们有一个 SQL 2016 数据库,它有一个 19 亿行的表,其中有一个 varbinary(255) 列,我们用它来将 nvarchar(2000) 字段的 HashBytes 存储在同一个表中。

我们在 varbinary 字段上有一个非聚集索引,我们的索引维护脚本每 2-3 天对此执行一次 REORGANIZE。但这需要10多个小时才能完成。

有什么方法可以提高 varbinary 字段的索引维护速度?

sql-server index
  • 3 个回答
  • 2589 Views
Martin Hope
Adrian S
Asked: 2016-10-30 06:39:15 +0800 CST

异步副本上的 SQL Server 2016 AlwaysOn DBCC CHECKDB

  • 7

我们有一个 AlwaysOn 环境,其中包括我们的 DR 站点中的一个副本,该副本设置为异步提交和可读辅助 = 否。

当我们在 SQL Server 2014 SP2 上运行时,我们能够针对 DR 副本上的数据库运行 DBCC CHECKDB。但自从升级到 SQL Server 2016 后,我们无法升级,而且我们每周的完整性工作因错误而失败。

'The target database is participating in an availability group and is currently not accessible for queries.
Either data movement is suspended or the availability replica is not enabled for read access. 
To allow read-only access to this and other databases in the availability group, enable read access to one or more secondary availability replicas in the group.  For more information, 
see the ALTER AVAILABILITY GROUP statement in SQL Server Books Online.

显然,为了防止这种情况在 2016 年发生了一些变化,我只是不知道是什么?

sql-server availability-groups
  • 2 个回答
  • 1819 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