SQL Server 数据库状态选项

选项 1、

single_user(单用户),multi_user(多用户),restricted_user(受限用户);

描述数据库的用户访问属性,它们互斥,设置其中任何一个选项就会取消对其它选项的设置

single_user模式的数据库每次只能有一个连接。

restricted_user模式可以有多个连接,前提是这些用户要是被认为是‘合格’的如 sysadmin,dbcreator,dbowner。

multi_user任何有效的用户都可以连接。

例子:

alter database studio
              set single_user
              with
              rollback immediate ;                                             ----       | rollback after 1000|no_wait;
              go

注意:这个时候只有一个连接可以操作数据库,如果别的连接想要操作数据库,它会失败,不是因为它的权限问题,而是只可以有一个连接。

选项 2、

online, offline, emergency 它们互斥

如果数据被设置为offline,它就会关闭而且完全关掉,并且标记为脱机,数据库脱机时不可以有被修改,如果数据库

中有任何连接都不可以被标记为offline。

例子:

select name , state_desc
               from sys.databases
               where name = ‘studio‘

with rollback immediate ;                                             ----       | rollback after 1000|no_wait;
               go

注意:

对于数据库的状态我们可以设置是只有  offline ,online,emergency!   它的一些别的状态我们是不可能对它进行设置的

如:从备份中还原的过程会对应    recovering ,如果出于一些原因没有办法完成还原就会对应   recovery_pending;

如:还原过程中检测出了数据损坏就会对应 suspect,数据库就会变得完全不可用,很多情况下可以把数据库设置为 emergency

从而可以对它进行只读操作,如果的丢失数据库的一个或多个日志文件,在将数据库复制到新位置时,用emergency 模式还

还可以对数据库进行访问。从recovery_pending 转换到 emergency时SQL Server会关闭数据库,然后用特殊的标记重新

启动,这样会跳过恢复过程,跳过恢复意味着可能会有逻辑上的错误或物理上的不一致(如 索引丢失,断开页面)

选项 3、

read_only ,read_write

-----------------------

alter database studio
        set read_only
        with
              rollback immediate;                                             ----       | rollback after 1000|no_wait;
        go

----------------------------------------------------------------------------------------------------------------------------------------------------

状态选项都可以和

rollback immediate | rollback after 1000 | no_wait;

配合

时间: 2024-10-18 15:54:51

SQL Server 数据库状态选项的相关文章

2. SQL Server数据库状态监控 - 错误日志

无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Server Error Log就是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件. 一. 错误日志简介 1. Windows事件日志与SQL Server 错误日志 Windows事件日志中,应用程序里的SQL Server和

sql server数据库状态监控

sql server数据库监控 转自:https://www.cnblogs.com/seusoftware/category/500793.html 6. SQL Server数据库监控 - 如何告警 5. SQL Server数据库性能监控 - 当前请求 4. SQL Server数据库状态监控 - 作业状态 3. SQL Server数据库状态监控 - 可用空间 2. SQL Server数据库状态监控 - 错误日志 1. SQL Server服务器监控实现方法 0. SQL Server

SQL SERVER数据库状态(脱机,联机,可疑)及SQL设置语句详解

首先我们应该知道数据库总是处于一个特定的状态中,下面先来了解一下数据库的常见的三种状态:1,脱机:我们可以在Microsoft SQL Server Management中看到该数据库,但该数据库名称旁边有"脱机"的字样,说明该数据库现在虽然存在于数据库引擎实例中,但是不可以执行任何有效的数据操作,比如新增,修改,删除等,这就是脱机状态. 2,联机:该状态为数据库正常状态,也就是我们常看到的数据库的状态,该状态下的数据库处于可操作状态,可以对数据库进行任何权限内的操作. 3,可疑:和&

4. SQL Server数据库状态监控 - 作业状态

有很多地方可以设置定时任务,比如:Windows的计划任务,Linux下的crontab,各种开发工具里的timer组件.SQL Server也有它的定时任务组件 SQL Server Agent,基于它可以方便的部署各种数据库相关的作业(job). 一. 作业历史纪录 作业的历史纪录按时间采用FIFO原则,当累积的作业历史纪录达到上限时,就会删除最老的纪录. 1. 作业历史纪录数配置 所有作业总计纪录条数默认为1000,最多为999999条:单个作业总计记录条数默认为100,最多为999999

3. SQL Server数据库状态监控 - 可用空间

数据库用来存放数据,那么肯定需要存储空间,所以对磁盘空间的监视自然就很有必要了. 一. 磁盘可用空间 1. 操作系统命令或脚本.接口或工具 (1) DOS命令: fsutil volume diskfree C:\windows\system32>fsutil volume diskfree C: Total # of free bytes        : 9789493248 Total # of bytes             : 64424505344 Total # of avai

SQL Server 数据库游标选项

背景: 游标控制服务器端游标的行为,相关的T-SQL如下: declare , open , fetch , close , deallocate. 1. cursor_close_on_commit{on | off}; 如果设置为on 在事务提交时或回滚时会关闭打开的游标, 如果设置为off 游标会在提交事务后继续打开,除非游标定义为static 否则回滚事务会关闭任何游标. alter database studio   set cursor_close_on_commit on;  #

sql server数据库可疑状态解决方法

前段时间客户数据服务器断电,开机后发现数据库状态标记为可疑,可能是断电引起的数据库日志文件损坏,修复方法如下: 只有mdf文件,重建日志: 1 --注:example为测试用数据库,相应的Example_log.ldf为测试用的日志文件 2 use master 3 go 4 alter database example set emergency 5 go 6 --置数据库为单用户模式 7 alter database example set single_user with rollback

监控SQL Server数据库异常镜像状态发告警邮件

监控SQL Server数据库异常镜像状态发告警邮件 在部署了数据库镜像之后,我们需要监控参与镜像的主数据库和镜像数据库的状态,如果状态异常,发送告警邮件.那么这个脚本需要在主和镜像服务器上都运行. 目录视图sys.database_mirroring对SQL Server实例上的每个数据库都包含一行(包括系统数据库和未配置镜像的数据库),当然也包含所有镜像数据库的状态信息.我们可以查询该目录视图,对于每个异常状态的镜像数据库触发告警邮件.笔者的环境配置的是异步镜像,依赖于手动故障转移. 前提条

50种方法优化SQL Server数据库查询(转载)

原文地址:http://www.cnblogs.com/zhycyq/articles/2636748.html 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用