SQL Server 运维常用sql语句(二)
查看当前用户查看当前用户
select system_user
检查SQL Agent是否开启
IF EXISTS (
SELECT TOP 1 1
FROM sys.sysprocesses
WHERE program_name = 'SQLAgent - Generic Refresher'
)
SELECT 'Running'
ELSE
SELECT 'Not Running'
查看是否做了镜像
select
a.database_id
,a.name 数据库名称
,case when b.mirroring_guid is null then '否' else '是' end 是否镜像
,b.mirroring_partner_name 镜像服务器名称
from
[sys].[databases] a
left join [sys].[database_mirroring] b on a.database_id=b.database_id
分离数据库
USE master;
EXEC sp_detach_db @dbname = 'test';#test指需要分离的数据库
附加数据库
SELECT type_desc, name, physical_name from sys.database_files;#查看物理数据库文件的位置
#使用带 FOR ATTACH 子句的 CREATE DATABASE 语句附加之前分离的test数据库
CREATE DATABASE test
ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\test.mdf'),
(FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\test_log.ldf')
FOR ATTACH;
查看主从复制关系
SELECT * FROM msdb.dbo.sysjobs;
SELECT
serverproperty('servername') AS ServerName,
CASE
WHEN serverproperty('servername') = '主服务器名称' THEN '主服务器'
ELSE '从服务器'
END AS ServerRole
#也可以通过以下语句来查询
SELECT * FROM sys.objects WHERE name = 'MSreplication_options'
查看实例级别的信息
select SERVERPROPERTY ('test')
查看实例级别的某个参数allow updates的配置
select * from sys.configurations where name='allow updates'