MSSQL管理维护常用帮助

在SQL Server数据库中,系统信息存储在系统数据库中,主要的系统数据库包括:

master-从整体上控制用户数据库和SQL Server操作,在创建了任何用户定义的对象后,都要备份它

model-为新数据库提供模版和原型

msdb-包含了有关作业、报警及操作员等信息


一.进入单用户模式的方法:

a. 在命令行模式下输入:sqlservr -c -f -m 或者输入 sqlservr -m

其中:
-c 可以缩短启动时间,SQL Server 不作为Windows NT的服务启动

-f 用最小配置启动SQL Server

-m 单用户模式启动SQL Server

二.进行master数据库的恢复

a. 直接进入查询分析器,有个提示不要理会它 执行取消

输入恢复语句进行数据库恢复:

RESTORE DATABASE master from disk='c:\具体的备份文件名'


三.解决孤立用户:

A. 查看某个数据库的孤立用户:
USE 库名
EXEC sp_change_users_login 'Report'

B. 自动修复某个孤立用户:
USE 库名
EXEC sp_change_users_login 'Auto_Fix', '孤立用户名', NULL, '密码'  

--密码指用户对应的登录不存在时, 系统自动建立登录, 为登录分配的密码

--Add the new login.
USE master

EXEC sp_addlogin 'NewMary'

--Change the user account to link with the 'NewMary' login.
USE pubs
EXEC sp_change_users_login 'Update_One', 'Mary', 'NewMary'

解决孤立用户问题

1.用 sp_addlogin 添加一个临时登录。为孤立用户指定安全标识符 (SID)(从 sysusers)。
sp_addlogin @loginame = 'nancyd',
    @sid = 0x32C864A70427D211B4DD00104B9E8A00

2.用 sp_dropalias 除去属于别名 SID 的临时别名。
sp_dropalias 'nancyd'

3.用 sp_dropuser 除去原始用户(即现在的孤立用户)。
sp_dropuser 'janetl'

4.用 sp_dropuser 除去原始登录。
sp_droplogin 'nancyd'


除去 xp_cmdshell扩展存储过程。
USE master
EXEC sp_dropextendedproc 'xp_cmdshell'

更改用户口令
EXEC sp_password NULL, '密码', '用户名'

查看sql版本
select @@version
或者
xp_msver

在SQL中的删除用户和登陆名
删除一个库中的用户:
exec sp_dropuser @name_in_db ='user1'
删除一个登陆名:
exec sp_droplogin @loginame ='user1'

更改表用户所有者为DBO:
EXEC sp_changeobjectowner  ‘表', 'dbo'

批量修改所有者语句如下:

exec sp_msforeachtable 'sp_changeobjectowner ''?'', ''dbo'''

即可把当面表的所有所有者换成dbo.

5. 关于隐藏MASTER数据库方法

打开企业管理器---在企业管理器中---右键你的注册的服务器实例(就是那个有绿色图标的)---选择编辑SQL   Server注册属性---最下面的三个复选框---取消选择中间的那一个(显示系统数据库和系统对象)


6. 清理sql日志
use 数据库名
dump transaction 数据库名 with NO_LOG
DBCC SHRINKFILE('日志文件',1)
go

7. MSDB 质疑 的恢复:(执行后重启mssql)
use master
Go
SP_CONFIGURE 'ALLOW UpdateS',1
Go
RECONFIGURE WITH OVERRIDE
Go
Update SYSDATABASES SET STATUS =32768 Where NAME='msdb'
Go   
sp_dboption 'msdb', 'single user', 'true'
Go  
DBCC CHECKDB('msdb')
Go   
update sysdatabases set status =28 where name='msdb'
Go
sp_configure 'allow updates', 0
Go  
reconfigure with override
Go    
sp_dboption 'msdb', 'single user', 'false'
Go


8。 MSDB文件过大的清理:(删除指定日期之前的事物数据)

use msdb

go

exec sp_delete_backuphistory '2010-11-02'

go

[本日志由 jit 于 2012-12-16 11:30 AM 更新]
上一篇: 这是最早的一篇日志
下一篇: 『C程序设计』读书笔记
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: sql mssql
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭