标签: master-system-database

主数据库已损坏,实例无法启动 - 我有哪些选择?

帮助!我的主数据库损坏了,我什至无法使 SQL 实例联机!我有哪些选项可以让我的服务器备份?

我确实有 master 的备份,但是MSDN 页面“恢复 master 数据库”要求我以单用户模式启动实例,我做不到!

(注意:我不指定 SQL 版本的这个问题,以便作为更广泛适用的参考。在 DBA.SE 上有一些类似的问题,但没有涉及服务器无法启动的问题。)

sql-server corruption master-system-database

13
推荐指数
1
解决办法
3万
查看次数

为什么要使用master来创建数据库?

我有一个简短的问题,为什么要使用use master;创建数据库?这是Microsoft 文档中的示例

USE master ;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
    FILENAME = 'C:\Program Files\...\saledat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,  
    FILENAME = 'C:\Program Files\...\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql ddl master-system-database

12
推荐指数
2
解决办法
9104
查看次数

如何从主数据库的 bak 文件中恢复主数据库?

在渗透测试期间,我发现了一个 MSSQL 数据库的多个 .bak 文件。我想全部恢复。在 Windows VM 中,我安装了 SQL Server 2017。为了恢复主数据库,我将服务器置于单用户模式并尝试如下恢复数据库(也通过 SSMS 尝试了相同的方法):

RESTORE DATABASE master
FROM DISK = 'C:\Foo\<path>\master.bak'
WITH MOVE 'master' TO 'C:\Foo\master.mdf',
MOVE 'master_log' TO 'C:\Foo\master_log.ldf',
REPLACE
GO
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误,如:

.. 无法恢复,因为它是由与此服务器 (14...) 不同版本的服务器 (13.00.4435) 创建的。

然后,我通过订阅 my.visualstudio.com 上的“Visual Studio Dev Essentials”下载了带有 Service Pack 1 的 MSSQL 2016。现在我得到了错误:

.. 无法恢复,因为它是由与此服务器 (13.00.4001) 不同版本的服务器 (13.00.4435) 创建的。

所以现在我需要更新。我下载了 MSSQL 2016 服务包 2,它给了我错误:

.. 无法恢复,因为它是由与此服务器 (13.00.5026) 不同版本的服务器 (13.00.4435) 创建的。

所以我似乎真的需要确切的补丁。但是,我找不到对应服务器版本的补丁列表。有没有人知道如何找到合适的补丁?

如果我能将 .bak 文件提取到它的 .mdf- 和 .ldf 文件就足够了。我找到了一堆用于恢复 MSSQL .bak 文件的工具,但希望它们都想连接到数据库(进行简单的恢复)。如果我能获得正确的 SQL Server …

sql-server restore master-system-database

7
推荐指数
1
解决办法
1869
查看次数

将 Master 切换为 Simple recovery 的缺点?

在过去的几天里,我已经阅读了很多关于此的内容,但没有专门针对 Master db。

如果我从完整切换到简单,它会清除任何计划、统计数据等吗?任何性能命中?

我知道如何继续,只是以前从未见过完全康复的师父。

TIA

sql-server master-system-database

5
推荐指数
1
解决办法
365
查看次数

在 MS SQL Server 2012 中经常有 30 多个连接到“master”数据库是否正常?

在解决为什么我在 SQL Server 2012 中看到与我们内部使用的数据库之一的这么多连接时。

我在网上找到的一个对我有帮助的查询是这样的:

 SELECT DB_NAME(sP.dbid) AS the_database
         , COUNT(sP.spid) AS total_database_connections
 FROM sys.sysprocesses sP
 GROUP BY DB_NAME(sP.dbid)
 ORDER BY 1;
Run Code Online (Sandbox Code Playgroud)

但是,尽管在解决问题后,我看到与我们自己的自定义数据库的连接恢复到正常水平,但我始终看到与master数据库的连接数始终超过 30 个连接。

这对于 SQL Server 2012 是否正常?master运行此查询时,还有其他人获得 30 个或更多连接吗?

sql-server max-connections sql-server-2012 connections master-system-database

4
推荐指数
1
解决办法
1929
查看次数

master 数据库中的重复表和过程

我刚刚发现,该master数据库包含一些其他数据库的表和存储过程的重复项。

例如,我有一个SomeDB包含表的数据库justTable。出于某种原因,该表的副本master也在其中,但没有数据。

这怎么可能?我敢肯定,在创建这些表和过程时,我使用的是相应的数据库,而不是master. 它们都存在于这些数据库中(它们应该存在),只是还有一个副本master

我使用 Microsoft SQL Server Management Studio 2014 和 Redgate 添加(源代码控制和东西)。

sql-server sql-server-2014 master-system-database

3
推荐指数
1
解决办法
186
查看次数

拒绝用户在 master 中创建表的权限

我注意到我可以在master数据库中创建表、模式、存储过程等。

我不知道是什么授予此权限。这很烦人,因为当我们在 SSMS 中打开一个 *.sql 文件时,它默认与master 相关。如果在CREATE没有注意到并设置正确的数据库上下文的情况下执行操作,则在master 中创建表。

如果我们没有权限,我们会得到一个错误,注意到它并更改数据库上下文。有了权限,表就创建好了,后面我们才看到错误,需要删除重新创建。我注意到在master中已经错误地创建了一些表。

我想撤销每个人类用户的许可,但我害怕破坏某些东西。我不知道某些 SQL Server 例程是否需要在那里创建的权限。

在不破坏 SQL Server 的情况下从master撤销创建权限的最佳方法是什么?

security sql-server permissions sql-server-2012 master-system-database

1
推荐指数
1
解决办法
1345
查看次数