SQL Server默认创建了哪些数据库, 这些数据库的作用分别是什么

SQL Server默认创建了哪些数据库, 这些数据库的作用分别是什么,第1张

①Master数据库:记录系统级别信息。例如:登录账户、系统配置设置、数据库的位置、SQL Server初始化信息等。

②Tempdb数据库:保存临时表和临时存储过程。例如:数据排序创建临时表、数据筛选创建临时表等。

③Model数据库:用于在系统上创建的所有数据库的模板。例如:用SQL语句创建一个空白数据库时,可以使用该模板中的规定来创建。

④Msdb数据库:用于给SQL Server代理提供必要的信息来运行调度警报、作业及记录 *** 作。同时也会记录数据库的备份和还原信息。

⑤Resource数据库:它是一个只读数据库,包含了SQL Server中的所有系统对象,这些系统对象物理上存在于该数据库中,逻辑上出现在每个数据库的sys架构中。

如何重建上虚拟的主数据库 (群集) SQL Server 2000年服务器

要重建主SQL Server 2000年数据库,请执行以下步骤:

请确保您在其中执行 Rebuildmexe 的节点受控制 SQL Server 资源。

通过使用 SQL Server 服务管理器,使 SQL Server 虚拟服务器脱机。

请确保原始共享安装文件或 SQL Server 安装光盘可用。

如果您使用 SQL Server 安装 CD,所有文件从 CD 都复制到本地硬盘上。将它们复制到硬盘后,请从文件中删除只读属性。有关详细信息,请参阅以下文章 Microsoft 知识库中相应的文章:

273572错误: Rebuildmexe 实用程序停止响应时源目录是在 CD 上

执行 Rebuildmexe 和点到它:

原始共享的安装文件。

-或者-

从 CD 复制到本地硬盘的文件。

选择Windows 排序规则中,或SQL 排序规则。

Rebuildmexe 程序完成后,请验证您可以使资源联机和它们成功地>

1 首先确认已经备份了mdf和ldf文件。

2 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。

3 用原有的mdf和ldf文件覆盖新建数据库对应的mdf和ldf文件。

4 重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。(人品好的话,这个时候数据库就已经恢复正常了,上次xrf的数据库就是这样被我恢复的。人品不好的话,下面的步骤也不行,我有一次就是找了一个北京做数据恢复的公司才恢复完毕。)

5 在SQL查询分析器中执行以下命令,以允许更新系统表:use mastergosp_configure ‘allow updates’,1

reconfigure with overridego

6 将这个数据库置为紧急模式:

update sysdatabases set status = 32768 where name = 'db_name'go

7 使用DBCC CHECKDB命令检查数据库中的错误:

DBCC CHECKDB(‘db_name’)GO

8 如果DBCC CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:

sp_dboption 'db_name',’single user’,’true’

DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)GO如果在执行DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQL Server服务,然后继续尝试。

9 如果DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:

重新执行DBCC CHECKDB(‘db_name’)命令,确认数据库中已没有错误存在。

清除数据库的置疑状态:sp_resetstatus 'db_name'

清除数据库的单用户模式状态:sp_dboption 'db_name',’single user’,’false’

重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。

10 如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。

如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:

1 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。

2 用原有的ldf文件覆盖新建数据库对应的mdf文件,将其日志文件(ldf)删除。

3 启动SQL Server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。

4 停止并重新启动SQL Server服务。

5 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)

DBCC REBUILD_LOG(’cas_db’, 'D:\cas_db\cas_db_LogLDF')

6 重新将该数据库置为单用户模式。

1停止SQL Server的服务,备份SQL Server安装目录下的\data子目录下故障数据库的两个文件,一个数据文件hbposv6_branch_datamdf, 一个hbposv6_branch_logldf(也有可能非此命名),同时查看磁盘空间是否有足够的空间; 2启动SQL Server服务(如已停止),创建一个新的数据库,命名为原来数据库的名字。 3停止SQL Server 4把老数据库的MDF文件(hbposv6_branch_datamdf)替换新数据库的相应的MDF文件,并把LDF文件(hbposv6_branch_logldg)删除。 5重新启动SQL Server服务,然后运行如下命令: Use Master go sp_configure 'allow updates', 1 reconfigure with override go begin tran update sysdatabases set status = 32768 where name = 'hbposv6_branch' --Verify one row is updated before committing commit tran go 6停止SQL然后重新启动SQL Server服务,然后运行如下命令 (更换日志文件路径地址): use master go DBCC TRACEON(3604) DBCC REBUILD_LOG ('hbposv6_branch', 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_logldf') --在这里,请输入你的数据库的路径 go 7停止SQL然后重新启动SQL Server服务,然后运行: use master go update sysdatabases set status = 8 where name = 'hbposv6_branch' go sp_configure 'allow updates', 0 reconfigure with override go 8运行dbcc checkdb(db_name) 检查数据库的完整性 9修复数库 --请在查询分析器中执行下列语句执行前断开其它所有数据库连接,最好是断开网线 --如果不是该数据库名,请将数据库 --hbposv6_branch --改为要修复的数据库 USE master Go --单用户模式 EXEC sp_dboption 'hbposv6_branch', 'single user', 'TRUE' go --数据库检查 DBCC CHECKDB ('hbposv6_branch') Go --如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复 --数据库修复 DBCC CHECKDB ('hbposv6_branch','repair_rebuild') Go --再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功; DBCC CHECKDB ('hbposv6_branch') Go --否则意味着还需要更高级别的修复;尝试将上面修复语句的 'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。 --如果还有错误未修复,请把这些信息以文字的方式发给我们 --退出前请一定要执行以下语句返回到多用户模式 EXEC sp_dboption 'hbposv6_branch', 'single user','FALSE' go 注:都要把 dbname 替换成真实的数据库名字。

1、开启数据库

2、从企业管理器,建一个同名的数据库

3、停止sql

server

4、用原mdf文件覆盖新建库的数据库文件

5、重启sql

server(这时数据库应该是置疑)

6、修改服务器设置:允许对系统目录进行直接修改

sp_configure

'allow

updates',1

reconfigure

with

override

7、将数据库置为紧急状态:

update

masterdbosysdatabases

set

status

=

32768

where

name

=

'数据库名'

8、删除新的ldf文件,重建日志:

dbcc

rebuild_log('数据库名',

'f:\数据库名_log_newldf')--假设把新日志在f盘

9、update

masterdbosysdatabases

set

status

=

16

where

name

=

'数据库名'

10、修改服务器设置:取消

允许对系统目录进行直接修改

sp_configure

'allow

updates',

0

reconfigure

with

override

11、再使用检查工具修复错误

use

[数据库名]

alter

database

[数据库名]

set

single_user

with

rollback

immediate

dbcc

checkdb

('数据库名',REPAIR_ALLOW_DATA_LOSS)

alter

database

[数据库名]

set

multi_user

执行完毕之后,如果还有错误,重复执行11,直到没有错误为止。

在查询分析器执行这两句,然后在执行你的程序,看看效果。

ALTER DATABASE ceshi SET OFFLINE WITH ROLLBACK IMMEDIATE

ALTER DATABASE ceshi SET ONLINE

这两句不要放在高级语言里。

举报违规检举侵权投诉|2013-10-22 08:49 提问者采纳 天天爱答题,20元话费等你拿~这包括实例范围的元数据(例如登录帐户)、 端点、链接服务器和系统配置设置。此外,master数据库还记录了所有其他数据库的 存在、数据库文件的位置以及SQLServer 的初始化信息。因此,如果master数据库 不可用,则SQLServer 无法启动。在SQLServer中,系统对象不再存储在master 数据库中,而是存储在mssqlsystemresource数据库中。 master数据库对系统来说很关键,因此总是要保存它的当前副本。创建另一个数据库, 改变配置值,修改登录账户这样的 *** 作都会修改master数据库,所以总是应该在完成 这些 *** 作之后备份master数据库。master数据库本身不大,做一次备份很快,建议经 常做master数据库的备份。 由于master数据库还记录启动服务器实例所需要的初始化信息,每个其他数据库的主文 件位置。master数据库是SQLServer启动的时候打开的第一个数据库。SQLServer是从 master数据库找到的其他数据库的信息。如果master数据库存在问题,整个SQLServer 都无法正常启动。 如果说是master数据库严重损坏,如果有备份直接还原master数据库即可。如果没有备 份,则需要重建master数据库。重建master数据库将使所有的系统数据库恢复到原始状 态。重建master数据库会删除并重建msdb数据库。这将导致丢失所有计划信息以及备份 和还原历史记录。重建master数据库之后,SQLServer数据库就好比重新安装后一样, 所有用户信息都会丢失,用户数据库需要重新附加,SQLServer任务和计划都要重建。 因此重建master数据库是个万不得已的选择。 在执行任何语句或系统过程来更改master数据库中的信息以后,应备份master数据库 建议不要再master数据库中创建用户对象 导致master数据库更新并要求备份的 *** 作类型包括: 1,创建或删除用户数据库 2,添加或删除文件和文件组 3,添加登陆或其他登陆安全相关 *** 作 4,更改服务器范围的配置选项或者数据库配置选项 5,创建或删除逻辑备份文件 6,配置用于分布式查询和远程调用的服务器,如添加链接服务器或远程登录 恢复master数据库使用的还是RESTORE指令还原master数据库后SQLServer实例将自动停止 关于如何恢复master数据库,在后面将单独写一篇博客 model数据库 用作在SQLServer实例上创建的所有数据库的模板。因为每次启动SQLServer 时都 会创建tempdb,所以model数据库必须始终存在于 SQLServer系统中。 创建数据库是model数据库是SQLSERVER使用的模板model数据库里的全部内容都会被复 制到新的数据库所以这个数据库不建议做任何修改除非是有目的的要建立一些模板 虽然这个数据库的内容一般不会发生改变,但是在SQLServer启动的时候要使用model数 据库某些设置创建新的tempdb。如果没有tempdb,SQLServer无法启动。因此model数据库 必须存在SQLServer系统中。这个数据库也要有备份。 还原model数据库与对用户数据库执行完整的数据库还原相同 tempdb数据库 tempdb系统数据库是一个全局资源,可供连接到SQLServer 实例的所有用户使用,并 可用于保存下列各项: 显式创建的临时用户对象,例如全局或局部临时表、临时存储过程、表变量或游标。 SQLServer数据库引擎创建的内部对象,例如,用于存储假脱机或排序的中间结果的工作表。 由使用已提交读(使用行版本控制隔离或快照隔离事务)的数据库中数据修改事务生成的行版本。 由数据修改事务为实现联机索引 *** 作、多个活动的结果集(MARS)以及AFTER 触发器等功能而生 成的行版本。 tempdb中的 *** 作是最小日志记录 *** 作。这将使事务产生回滚。每次启动SQLServer 时都会重新 创建tempdb,从而在系统启动时总是保持一个干净的数据库副本。在断开联接时会自动删除临时 表和存储过程,并且在系统关闭后没有活动连接。因此tempdb中不会有什么内容从一个SQLServer 会话保存到另一个会话。不允许对tempdb进行备份和还原 *** 作。 资源数据库(mssqlsystemresource) 资源数据库是一个隐藏数据库。可执行系统对象(入系统存储过程和功能)都保存在这里。创建这个数 据库是为了快速安全的升级。如果没有人可以访问到这个数据库,也就没有人可以改变它。简单的用 新的资源数据库替换掉旧的资源数据库,就可以升级到新的,包括新系统对象服务包。不能使用任何 正常方法查看该数据库。但这个数据库任然需要磁盘空间。 mssqlsystemresource数据库从来不做修改,理论上不用备份。 msdb数据库 由SQLServer代理用于计划警报和作业,也可以由其他功能(如ServiceBroker 和数据库邮件)使用 SQLServer将在msdb数据库中自动维护一份完整的在线备份与还原历史记录。这些信息包括执行备份一 方的名称,备份时间和用来存储备份的备份设备。SQLServerManagementStudio利用这些信息提出 计划以还原数据库并应用事务日志备份。 默认情况下msdb使用简单恢复模式。 还原msdb数据库与对用户数据库执行完整的数据库还原相同

出现这个问题一般只有两个原因,一可能是bak文件损坏,二可能你用高版本的备分SQL Server 数据库 的bak文件想在低版本的SQL Server 上还原。

有时候你装了多个版本的SQL Server 在同一台机子上,你想用高版的SQL Server 还原打开SQL Server Management Studio时连接却是低版本的SQL Server 服务,这种情况也无法还原成功,也是由于上面列的第二个原因,我机子上做了SQL Server 2008 和 SQL Server 2005,当时用SQL 2008的SQL Server Management Studio 连接时服务器名是默认名“XXXX-PC\SQLEXPRESS”时连接的总是SQL 2005的服务实例,bak也因此始终会d”媒体簇的结构不正确“无法处理的错误,后来将连接时服务器名直接改为”XXXX-PC“就好了,当然这取决于你的安装SQL 2008 时服务设置。

以上就是关于SQL Server默认创建了哪些数据库, 这些数据库的作用分别是什么全部的内容,包括:SQL Server默认创建了哪些数据库, 这些数据库的作用分别是什么、如何重建 master 数据库虚拟 SQL Server 实例上、只有mdf和ldf文件,甚至只有mdf文件,如何恢复数据库求答案等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9389150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存