MSSQL管理维护常用帮助
作者:jit 日期:2008-09-24
在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
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 | 查看次数: -
发表评论