如何在服务器上提取数据库详细信息 [英] How to pull out database details on server

查看:82
本文介绍了如何在服务器上提取数据库详细信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从我们的服务器2012获取以下信息?

How do I get the following information from our server 2012?

我需要知道以下内容:

数据库列表名称,

每个当前大小,

高可用性(HA),b
RPO(恢复点目标),

RTO(恢复时间目标),

当前备份计划,

估计增长因子,

估计所需大小(以GB为单位)。

List of database names,
Current size of each,
High availability (HA),
RPO (Recovery Point Objectives),
RTO (Recovery Time Objectives),
Current backup schedule,
Estimated Growth Factor,
Estimate size required (in GB).

上述情况可能吗?

谢谢,

推荐答案

数据库名称列表,  ;

从sysdatabases中选择名称

select name from sysdatabases

将表中的备份详细信息保留在作业中。这将用于容量报告。

keep backup details in table trough job. This will used for capacity report.

SET NOCOUNT ON        
SET ANSI_WARNINGS OFF      
 
      
select d.name as database_name,
b.type,
CONVERT(numeric(9,2),b.backup_size/1048576)as 'Dbsize_in_MB',
b.backup_start_date,b.backup_finish_date,
datediff(mi,b.backup_start_date,b.backup_finish_date)as 'Time_taken(Min)',
 m.physical_device_name as physical_location,
datediff(d, b.backup_finish_date, getdate()) as 'dayssincelast'
into #backupcheck
from  master..sysdatabases d with (nolock)
left join msdb..backupset b  with (nolock) on d.name = b.database_name 
left join msdb..backupmediafamily m  with (nolock) on m.media_set_id = b.media_set_id 
where d.name not in ('tempdb','pubs','northwind') and b.type='D'
and b.backup_start_date = (select max(backup_start_date) 
                                   from msdb..backupset b2 
                                   where b.database_name = b2.database_name
                                  and b2.type = 'D')
      
select d.name as database_name,
b.type,
CONVERT(numeric(9,2),b.backup_size/1048576)as 'Dbsize_in_MB',
b.backup_start_date,b.backup_finish_date,
datediff(mi,b.backup_start_date,b.backup_finish_date)as 'Time_taken(Min)',
 m.physical_device_name as physical_location,
datediff(d, b.backup_finish_date, getdate()) as 'dayssincelast'
into #backupcheck1
from  master..sysdatabases d with (nolock)
left join msdb..backupset b  with (nolock) on d.name = b.database_name 
left join msdb..backupmediafamily m  with (nolock) on m.media_set_id = b.media_set_id 
where d.name not in ('tempdb','pubs','northwind') and b.type='L'
and b.backup_start_date = (select max(backup_start_date) 
                                   from msdb..backupset b2 
                                   where b.database_name = b2.database_name
                                  and b2.type = 'L')
        
select d.name as database_name,
b.type,
CONVERT(numeric(9,2),b.backup_size/1048576)as 'Dbsize_in_MB',
b.backup_start_date,b.backup_finish_date,
datediff(mi,b.backup_start_date,b.backup_finish_date)as 'Time_taken(Min)',
 m.physical_device_name as physical_location,
datediff(d, b.backup_finish_date, getdate()) as 'dayssincelast'
into #backupcheck2
from  master..sysdatabases d with (nolock)
left join msdb..backupset b  with (nolock) on d.name = b.database_name 
left join msdb..backupmediafamily m  with (nolock) on m.media_set_id = b.media_set_id 
where d.name not in ('tempdb','pubs','northwind') and b.type='I'
and b.backup_start_date = (select max(backup_start_date) 
                                   from msdb..backupset b2 
                                   where b.database_name = b2.database_name
                                  and b2.type = 'I')        
                                 
        
select   a.name,
DATABASEPROPERTYEX(a.name,'recovery')as recovery_model,
case b.type   
when 'L' then 'LOG BACKUP SCHEDULED'
when 'D' then 'Full BACKUP SCHEDULED'
when 'I' then 'DIFF BACKUP SCHEDULED'
else 'NO FULL BACKUP SCHEDULED'
end type , 
b.backup_finish_date,
dayssincelast,
physical_location,
Dbsize_in_MB
into #backupcheck_final from master..sysdatabases a
left outer join #backupcheck  b on a.name=b.database_name  
where a.name not in(
'tempdb')

--and dayssincelast is null

select   a.name,
DATABASEPROPERTYEX(a.name,'recovery')as recovery_model,
case b.type   
when 'L' then 'LOG BACKUP SCHEDULED'
when 'D' then 'Full BACKUP SCHEDULED'
when 'I' then 'DIFF BACKUP SCHEDULED'
else 'NO LOG BACKUP SCHEDULED'
end type ,
b.backup_finish_date,
dayssincelast,
physical_location,
Dbsize_in_MB
into #backupcheck_final1 
 from master..sysdatabases a
left outer join #backupcheck1  b on a.name=b.database_name 
where a.name not in ('tempdb','pubs','northwind','model','master','msdb')  
--and dayssincelast is null
delete from #backupcheck_final where type ='NO LOG BACKUP SCHEDULED' and recovery_model ='simple'
delete from #backupcheck_final1 where type ='NO LOG BACKUP SCHEDULED' and recovery_model ='simple'

select   a.name,
DATABASEPROPERTYEX(a.name,'recovery')as recovery_model,
case b.type   
when 'L' then 'LOG BACKUP SCHEDULED'
when 'D' then 'Full BACKUP SCHEDULED'
when 'I' then 'DIFF BACKUP SCHEDULED'
else 'NO LOG BACKUP SCHEDULED'
end type ,
b.backup_finish_date,
dayssincelast,
physical_location,
Dbsize_in_MB
into #backupcheck_final2 
 from master..sysdatabases a
left outer join #backupcheck2  b on a.name=b.database_name 
where a.name not in ('tempdb','pubs','northwind','model','master','msdb')
delete from #backupcheck_final2 where type ='NO LOG BACKUP SCHEDULED'  
--and dayssincelast is null

--create table #backupcheck_final3 (name varchar(250),recovery_model varchar (50),type varchar(50),backup_finish_date datetime,dayssincelast int,physical_location varchar(max),Dbsize_in_MB int)
select * into #backupcheck_final3 from #backupcheck_final
insert into #backupcheck_final3 select * from #backupcheck_final1
insert into #backupcheck_final3 select * from #backupcheck_final2

if (select COUNT(1) from #backupcheck_final3 where type='DIFF BACKUP SCHEDULED' and dayssincelast =0)>0
begin
delete #backupcheck_final3 where (type='FULL BACKUP SCHEDULED' and dayssincelast < 7)
end

select * FROM #backupcheck_final3

drop table #backupcheck
drop table #backupcheck1
drop table #backupcheck2
drop table #backupcheck_final
drop table #backupcheck_final1
drop table #backupcheck_final2
drop table #backupcheck_final3

数据库大小: -

select d.name,sum(s.size * 8/1024) as size_MB from sysaltfiles s,sysdatabases d where s.dbid=d.dbid
group by d.name
order by size_MB desc

始终是synsc状态


SELECT 
	ar.replica_server_name, 
	adc.database_name, 
	ag.name AS ag_name, 
	drs.is_local, 
	drs.is_primary_replica, 
	drs.synchronization_state_desc, 
	--drs.is_commit_participant, 
	drs.synchronization_health_desc, 
	--drs.recovery_lsn, 
	--drs.truncation_lsn, 
	--drs.last_sent_lsn, 
	--drs.last_sent_time, 
	--drs.last_received_lsn, 
	--drs.last_received_time, 
	--drs.last_hardened_lsn, 
	--drs.last_hardened_time, 
	--drs.last_redone_lsn, 
	--drs.last_redone_time, 
	--drs.log_send_queue_size, 
	--drs.log_send_rate, 
	--drs.redo_queue_size, 
	--drs.redo_rate, 
	--drs.filestream_send_rate, 
	--drs.end_of_log_lsn, 
	--drs.last_commit_lsn, 
	drs.last_commit_time
FROM sys.dm_hadr_database_replica_states AS drs
INNER JOIN sys.availability_databases_cluster AS adc 
	ON drs.group_id = adc.group_id AND 
	drs.group_database_id = adc.group_database_id
INNER JOIN sys.availability_groups AS ag
	ON ag.group_id = drs.group_id
INNER JOIN sys.availability_replicas AS ar 
	ON drs.group_id = ar.group_id AND 
	drs.replica_id = ar.replica_id
ORDER BY 
	ag.name, 
	ar.replica_server_name, 
	adc.database_name;


这篇关于如何在服务器上提取数据库详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆