搜尋
首頁資料庫mysql教程SQLServer日常维护事项

1. 目的 1.1.1. 监控数据库的当前运行状况,确保数据库稳定运行 1.1.2. 监控数据库的备份 /HA状况,减少问题发生时的风险和责任 1.1.3. 监控数据库的整体运行状况,对数据库的性能进行调整,确保数据库高效运行 1.1.4. 尽可能减少紧急故障发生频率 1.1.5. 尽

1.      目的

1.1.1.  监控数据库的当前运行状况,确保数据库稳定运行

1.1.2.  监控数据库的备份/HA状况,减少问题发生时的风险和责任

1.1.3.  监控数据库的整体运行状况,对数据库的性能进行调整,确保数据库高效运行

1.1.4.  尽可能减少紧急故障发生频率

1.1.5.  尽早发现系统存在的潜在问题,使可能的故障消除在萌芽状态

2.      操作系统环境监控

2.1.       检查系统日志

2.1.1.  使用“事件查看器”,查看系统日志,关注错误信息排查错误。

2.1.2.  重点关注与SQLServer相关的日志信息。

2.1.3.  及时备份与清理过期的日志信息。

2.2.       检查磁盘空间

2.2.1.  检查数据文件所在的磁盘空间使用情况

2.2.2.  检查日志文件所在的磁盘空间使用情况

2.2.3.  检查备份的磁盘空间使用情况

3.      数据库性能监控

3.1.       内存

3.1.1.  dbcc memorystatus

 

dbcc memorystatus
  /*
 
重点查看buffer counts部分
 
其中committed memorytarget memory最重要。
  Committed memory
表示sql server已经得到的内存数量
  target memory
表示有效运行所需的内存数量。
 
当两个存在差别过大,说明可能存在内存压力
  */

3.1.2.  SQLServer:Buffer Managerà       Page Life Expectancy显示数据页在缓冲池中驻留的时间长度(单位是秒)。值越大,系统越健康。如果存在内存瓶颈,这个值会低于300s或者更少。

3.1.3.  SQLServer:Buffer Managerà       Buffer cache hit ratio显示数据库内存命中率,所请求的数据或者说页面在缓冲池被找到的次数,如果很低说明内存不足,此值一般大于98%

3.1.4.  SQLServer:Buffer Managerà       Stolen pages当这个指标与目标内存页面数比例较大时可能存在问题。

3.1.5.  SQLServer:Buffer Managerà       Memory Grants Pending显示等待内存授权的进程队列。这个指标值为0时理想状态。

3.1.6.  SQLServer:Buffer Managerà       Checkpoint pages/sec显示检查点操作每秒写入磁盘的脏页数目。如果这个值很高,说明缺少内存。

3.1.7.  SQLServer:Buffer Managerà       Lazy writes/sec显示每秒将脏页从内存写到磁盘的次数。这个值应该尽可能接近0,当大于20或者更多,确信缓冲池不够。

3.2.       磁盘

3.2.1.  PhysicalDiskàAVG.Disk Aueue Length显示每一个磁盘的队列长度。不要选择_TOTAL对象,而是查看某驱动盘符的队列长度,如果参数值持续大于2,则可能影响性能。

3.2.2.  PhysicalDisk?AVG.Disk sec/Read显示每次读取的平均磁盘时间,理想情况下值小于10毫秒。

3.2.3.  PhysicalDisk?AVG.Disk sec/Write显示每次写入的平均磁盘时间,理想情况下值小于10毫秒。

3.2.4.  SQL Server?Access Methods?Fullscans/sec显示每秒请求完全索引扫描或者全表扫描的数目,如果扫描频率每秒大于1,那么说明索引缺少或者索引比较差。

3.2.5.  SQL Server?Access Methods?PageSplits/sec显示每秒页面拆分的次数。可以通过适当的索引维护或者好的填充因子来避免发生。

3.3.       CPU

3.3.1.  System?Processor Queue Length显示系统队列长度,如果平均值大于3,那么说明cpu存在瓶颈

3.3.2.  Processorà%Privilege Time显示操作系统内部操作所花费的时间。

3.3.3.  SQL ServeràSQL StatisticsàSQL Compilations/sec显示查询计划的编译次数。

3.3.4.  SQL ServeràSQL StatisticsàSQL Re-Compilations/sec显示查询计划的重编译次数。

3.3.5.  SQL Compilations/sec和SQL Re-Compilations/sec次数过高的话,说明可能未使用绑定变量导致计划重新编译,或者说重新编译次数比编译次数过高的话,那么说明存在应用上的瓶颈。

4.      数据库维护

4.1.       主数据库(业务数据库)

4.1.1.  查看数据库的增长情况,每周增长量应该处平稳状态,如果出现异常增长,则需要注意查看原因。

4.1.2.  注意数据文件所在磁盘的空间,保证至少有一周的增长量空间。

4.1.3.  查看每个日志文件的增长情况,每周增长量应该处平稳状态,如果出现异常增长,则需要注意查看原因

4.1.4.  注意日志文件所在磁盘的空间,保证至少有一周的增长量空间。

4.1.5.  日志文件超大后,可考虑是否进行清理,如果清理使用备份日志然后收缩日志文件。

4.2.       镜像数据库

4.2.1.  除日志清除外步骤同主数据库

4.2.2.  镜像数据库日志文件超大后,可以在主数据库上进行日志清理操作。

4.3.       辅助数据库(Log Shipping)

4.3.1.  除日志清除外步骤同主数据库

4.3.2.  备用数据库日志文件超大后,可以在主数据库上进行日志清理操作。

4.4.       查看作业运行状况

可以通过以下脚本查看作业状况或者通过图形界面“作业活动监视器”查看

 

--0:Fail 1:Succ 3:Cancel 5:First run and msdb.dbo.syscategories.category_id not between 10 and 20
 
select 
      category = jc.name, category_id = jc.category_id, job_name = j.name, 
      job_enabled = j.enabled, 
      last_run_time = 
cast(js.last_run_date as varchar(10)) + '-' + cast(js.last_run_time as varchar(10)), 
      last_run_duration = js.last_run_duration, 
      last_run_status = js.last_run_outcome, 
      last_run_msg = js.last_outcome_message + 
cast(nullif(js.last_run_outcome,1as varchar(2)), 
      job_created = j.date_created, 
      job_modified = j.date_modified 
 
from msdb.dbo.sysjobs j 
 
inner join msdb.dbo.sysjobservers js on j.job_id = js.job_id 
 
inner join msdb.dbo.syscategories jc on j.category_id = jc.category_id 
 
where j.enabled = 1 and js.last_run_outcome in (0,1,3,5

4.5.       查看镜像状态

可以通过以下脚本查看镜像状态或者通过“镜像监视器”查看

 

select 
      dm.mirroring_partner_instance,
 
dm.mirroring_role,
 
dm.mirroring_state,
 
dm.mirroring_witness_state,
      dm.mirroring_safety_level,
 
dm.mirroring_witness_name 
 
from
 
sys.database_mirroring dm
 
join sys.databases d on (dm.database_id=d.database_id)
 
where (d.name=N'dbname'and mirroring_guid is not null

4.6.       查看Log Shipping状态

可以通过以下脚本在监视服务器上执行查看日志传送状态

 

use master
 
go
 
exec sp_help_log_shipping_monitor
 
go
 
exec sp_help_log_shipping_monitor_primary 'TestServer1','Northwind'
 
go
 
exec sp_help_log_shipping_monitor_secondary 'TestServer2','Northwind'
 
go

4.7.       查看备份状况

4.7.1.  查看备份是否成功

4.7.2.  验证备份集(RESTORE VERIFYONLY )

4.7.3.  定期做数据库灾难恢复的演练(其中包括备份还原,HA)

 

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
MySQL的許可與其他數據庫系統相比如何?MySQL的許可與其他數據庫系統相比如何?Apr 25, 2025 am 12:26 AM

MySQL使用的是GPL許可證。 1)GPL許可證允許自由使用、修改和分發MySQL,但修改後的分發需遵循GPL。 2)商業許可證可避免公開修改,適合需要保密的商業應用。

您什麼時候選擇InnoDB而不是Myisam,反之亦然?您什麼時候選擇InnoDB而不是Myisam,反之亦然?Apr 25, 2025 am 12:22 AM

選擇InnoDB而不是MyISAM的情況包括:1)需要事務支持,2)高並發環境,3)需要高數據一致性;反之,選擇MyISAM的情況包括:1)主要是讀操作,2)不需要事務支持。 InnoDB適合需要高數據一致性和事務處理的應用,如電商平台,而MyISAM適合讀密集型且無需事務的應用,如博客系統。

在MySQL中解釋外鍵的目的。在MySQL中解釋外鍵的目的。Apr 25, 2025 am 12:17 AM

在MySQL中,外鍵的作用是建立表與表之間的關係,確保數據的一致性和完整性。外鍵通過引用完整性檢查和級聯操作維護數據的有效性,使用時需注意性能優化和避免常見錯誤。

MySQL中有哪些不同類型的索引?MySQL中有哪些不同類型的索引?Apr 25, 2025 am 12:12 AM

MySQL中有四種主要的索引類型:B-Tree索引、哈希索引、全文索引和空間索引。 1.B-Tree索引適用於範圍查詢、排序和分組,適合在employees表的name列上創建。 2.哈希索引適用於等值查詢,適合在MEMORY存儲引擎的hash_table表的id列上創建。 3.全文索引用於文本搜索,適合在articles表的content列上創建。 4.空間索引用於地理空間查詢,適合在locations表的geom列上創建。

您如何在MySQL中創建索引?您如何在MySQL中創建索引?Apr 25, 2025 am 12:06 AM

toCreateAnIndexinMysql,usethecReateIndexStatement.1)forasingLecolumn,使用“ createIndexIdx_lastNameEnemployees(lastName); 2)foracompositeIndex,使用“ createIndexIndexIndexIndexIndexDx_nameOmplayees(lastName,firstName,firstName);” 3)forauniqe instex,creationexexexexex,

MySQL與Sqlite有何不同?MySQL與Sqlite有何不同?Apr 24, 2025 am 12:12 AM

MySQL和SQLite的主要區別在於設計理念和使用場景:1.MySQL適用於大型應用和企業級解決方案,支持高性能和高並發;2.SQLite適合移動應用和桌面軟件,輕量級且易於嵌入。

MySQL中的索引是什麼?它們如何提高性能?MySQL中的索引是什麼?它們如何提高性能?Apr 24, 2025 am 12:09 AM

MySQL中的索引是數據庫表中一列或多列的有序結構,用於加速數據檢索。 1)索引通過減少掃描數據量提升查詢速度。 2)B-Tree索引利用平衡樹結構,適合範圍查詢和排序。 3)創建索引使用CREATEINDEX語句,如CREATEINDEXidx_customer_idONorders(customer_id)。 4)複合索引可優化多列查詢,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。 5)使用EXPLAIN分析查詢計劃,避

說明如何使用MySQL中的交易來確保數據一致性。說明如何使用MySQL中的交易來確保數據一致性。Apr 24, 2025 am 12:09 AM

在MySQL中使用事務可以確保數據一致性。 1)通過STARTTRANSACTION開始事務,執行SQL操作後用COMMIT提交或ROLLBACK回滾。 2)使用SAVEPOINT可以設置保存點,允許部分回滾。 3)性能優化建議包括縮短事務時間、避免大規模查詢和合理使用隔離級別。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境