导航:首页 > 编程大全 > sql调整数据库多用户模式

sql调整数据库多用户模式

发布时间:2022-09-28 07:21:12

⑴ sql server单用户模式下怎么修改为多用户模式

原理是先kill占用了数据库的那个进程,然后设置数据库为多用户模式。

USE master;

Go

DECLARE @SQL VARCHAR(MAX);

SET @SQL=''

SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)

FROM master..sysprocesses

WHERE dbid=DB_ID('数据库名');

EXEC(@SQL);

GO

ALTER DATABASE 数据库名 SET MULTI_USER;

(1)sql调整数据库多用户模式扩展阅读:

机制结构

SQL Server 是一种客户机/服务器系统

多年来,SQL Server 一直被认为是一种客户机/服务器系统。事实上,Sybase DataServer(以此为基础开发了原始的 SQL Server)正是第一个作为客户机/服务器系统开发的商用关系数据库系统。那这又说明了什么呢?这不只意味着 SQL Server 是一个双层系统。

从传统上看,双层系统意味着客户机应用程序运行在一台机器上,向另一台计算机上的服务器发送请求。而对于 SQL Server,客户机/服务器意味着 SQL Server 的组成部分,即客户机 API 部分,驻留在处理结构中的远端,与服务器组件本身是分开的。

在典型的双层模型中,客户机程序部分驻留在台式机上,具有大量客户机应用程序逻辑和业务逻辑,并且会直接向数据库系统发出请求。然后,客户机得到服务器响应这些请求所返回的数据。

三层系统也采用了同样的模型。多年以来,SQL Server 一直用在事务处理监视系统中,例如 BEA 的 Tuxedo 以及 Compaq 的 ACMSxp,这些系统早在二、三十年前就采用了典型的三层模型。

三层模型在今天基于 Web 的应用系统中占据了支配地位,这类系统以 Microsoft 的 MTS 以及新的 COM+ 1.0 为代表。从 SQL Server 的角度看,三层解决方案中的客户机程序是放在中间层的。

中间层直接与数据库交互。实际的桌面,或瘦客户机(Thin Client),使用其他机制并通常直接与中间层交互,而不是直接与数据库系统交互。

⑵ 如何使用Transact-SQL将数据库设置为单用户模式

即使设置此选项的用户已注销,数据库仍保持单用户模式。这时,其他用户(但只能是一个)可以连接到数据库。
将数据库设置为单用户模式

1.

在对象资源管理器中,连接到 SQL Server 数据库引擎实例,然后展开该实例。
2.

右键单击要更改的数据库,再单击“属性”。
3.

在“数据库属性”对话框中,单击“选项”页。
4.

在“限制访问”选项中,选择“单用户”。
5.

如果其他用户连接到数据库,将出现“打开的连接”消息。若要更改属性并关闭所有其他连接,请单击“是”。

还可以使用此过程将数据库设置为“多用户”访问或“限制”访问。有关“限制访问”选项的详细信息,请参阅数据库属性(“选项”页)。

1.

在对象资源管理器中,连接到 SQL Server 数据库引擎实例,然后展开该实例。
2.

右键单击要更改的数据库,再单击“属性”。
3.

在“数据库属性”对话框中,单击“选项”页。
4.

在“限制访问”选项中,选择“单用户”。
5.

如果其他用户连接到数据库,将出现“打开的连接”消息。若要更改属性并关闭所有其他连接,请单击“是”。

还可以使用此过程将数据库设置为“多用户”访问或“限制”访问。有关“限制访问”选项的详细信息,请参阅数据库属性(“选项”页)。
请参阅
其他资源
ALTER DATABASE (Transact-SQL)
http://msdn.microsoft.com/zh-cn/library/ms174269.aspx

⑶ SQL Server数据库成为紧急模式怎么恢复

1、使数据库变为单用户模式
ALTER DATABASE 数据库名 SET SINGLE_USER
(当变成单用户的模式只能在同一个窗口执行语句)
2、修正数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象不正确。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修正报告的不正确。但是,这些修正可能会导致一些数据丢失。
DBCC CheckDB (数据库名, REPAIR_ALLOW_DATA_LOSS)
3、使数据库变回为多用户模式
ALTER DATABASE 数据库名 SET MULTI_USER

⑷ 什么是单用户模式什么叫多用户模式

原理是先kill占用了数据库的那个进程,然后设置数据库为多用户模式。
use
master;
go
declare
@sql
varchar(max);
set
@sql=''
select
@sql=@sql+';
kill
'+rtrim(spid)
from
master..sysprocesses
where
dbid=db_id('数据库名');
exec(@sql);
go
alter
database
数据库名
set
multi_user;

⑸ 如何用sql重命名数据库

在修改数据库名称之前,如果有用户连接到数据库的话会造成数据库重命名失败,可以先执行
select
spid
from
master.dbo.sysprocesses
where
dbid=db_id('OldDbName')
结果集中显示的是当前连接到数据库OldDbName的连接
比如结果是
79
81
当然,实际值应该不是这两个
然后执行
kill
79
kill
81
关闭已建立的连接,之后再执行
EXEC
sp_dboption
'OldDbName',
'Single
User',
'TRUE'
EXEC
sp_renamedb
'OldDbName',
'NewDbName'
EXEC
sp_dboption
'NewDbName',
'Single
User',
'FALSE'

⑹ sql2008数据库单用户模式怎么改回来

1、打开SQL Server Management Studio。如下图所示。

⑺ SQL Server数据库成为紧急模式怎么恢复

Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go

update sysdatabases set status = 32768 where name = 'DBname'

⑻ SQL多用户访问数据库怎样解决冲突

sql多用户访问数据库其实就是事务并发,会引起如下问题:
1、脏读:一个事务读取到了另外一个事务没有提交的数据
事务1:更新一条数据
事务2:读取事务1更新的记录
事务1:调用commit进行提交
此时事务2读取到的数据是保存在数据库内存中的数据,称为脏读。
读到的数据为脏数据
详细解释:
脏读就是指:当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,
另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个
事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
2、不可重复读:在同一事务中,两次读取同一数据,得到内容不同
事务1:查询一条记录
事务2:更新事务1查询的记录
事务2:调用commit进行提交
事务1:再次查询上次的记录
此时事务1对同一数据查询了两次,可得到的内容不同,称为不可重复读。
3、幻读:同一事务中,用同样的操作读取两次,得到的记录数不相同
事务1:查询表中所有记录
事务2:插入一条记录
事务2:调用commit进行提交
事务1:再次查询表中所有记录
此时事务1两次查询到的记录是不一样的,称为幻读
详细解释:
幻读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,
这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表
中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,
就好象发生了幻觉一样。
处理以上隔离级别的问题,采用如下方是:
事务隔离五种级别:
TRANSACTION_NONE 不使用事务。
TRANSACTION_READ_UNCOMMITTED 允许脏读。
TRANSACTION_READ_COMMITTED 防止脏读,最常用的隔离级别,并且是大多数数据库的默认隔离级别
TRANSACTION_REPEATABLE_READ 可以防止脏读和不可重复读,
TRANSACTION_SERIALIZABLE 可以防止脏读,不可重复读取和幻读,(事务串行化)会降低数据库的效率
以上的五个事务隔离级别都是在Connection接口中定义的静态常量,
使用setTransactionIsolation(int level) 方法可以设置事务隔离级别。
如:con.setTransactionIsolation(Connection.REPEATABLE_READ);
注意:事务的隔离级别受到数据库的限制,不同的数据库支持的的隔离级别不一定相同
1 脏读:修改时加排他锁,直到事务提交后才释放,读取时加共享锁,读取完释放事务1读取数据时加上共享锁后(这 样在事务1读取数据的过程中,其他事务就不会修改该数据),不允许任何事物操作该数据,只能读取,之后1如果有更新操作,那么会转换为排他锁,其他事务更 无权参与进来读写,这样就防止了脏读问题。
但是当事务1读取数据过程中,有可能其他事务也读取了该数据,读取完毕后共享锁释放,此时事务1修改数据,修改 完毕提交事务,其他事务再次读取数据时候发现数据不一致,就会出现不可重复读问题,所以这样不能够避免不可重复读问题。
2 不可重复读:读取数据时加共享锁,写数据时加排他锁,都是事务提交才释放锁。读取时候不允许其他事物修改该数据,不管数据在事务过程中读取多少次,数据都是一致的,避免了不可重复读问题
3 幻读问题:采用的是范围锁RangeS RangeS_S模式,锁定检索范围为只读,这样就避免了幻影读问题。

⑼ sql server数据库从单用户模式改为多用户模式

今天想在sql
server2005下复制一个数据库,结果最后一步出错,复制没成版功反而导致数据库打不开了权,
名称后出现"单个用户",估计是进行复制的时候自动将其改为了单用户模式,可通过执行如下语句恢复多用户模式。
原理是先kill占用了数据库的那个进程,然后设置数据库为多用户模式。
USE
master;
GO
DECLARE
@SQL
VARCHAR(MAX);
SET
@SQL=''
SELECT
@SQL=@SQL+';
KILL
'+RTRIM(SPID)
FROM
mastersysprocesses
WHERE
dbid=DB_ID('数据库名');
EXEC(@SQL);
GO
ALTER
DATABASE
数据库名
SET
MULTI_USER;

阅读全文

与sql调整数据库多用户模式相关的资料

热点内容
现代物资援共1933 浏览:810
柏林漂流 浏览:930
求一个在线看片网址 浏览:566
泰国女同尺度大电影 浏览:36
日本风月片 浏览:620
广州中宇恒达网络技术有限公司 浏览:187
答题辅助工具 浏览:762
如何保存excel中嵌入的文件 浏览:950
襄阳哪个编程公司 浏览:971
中国盗墓电影全部 浏览:415
一女嫁多个兄弟的小说 浏览:920
学校出台文件从哪里找 浏览:536
部落电影推荐 浏览:12
火影之另样的活着苹果鸭梨汁小说 浏览:718
华为怎么下载壮观app 浏览:710
绘画工具介绍 浏览:692
韩国一个女钢琴家个一个学生 浏览:860
dianyinggo 浏览:581
主角姓秦天的都市小说 浏览:442
李彩谭演的电影 浏览:826

友情链接