婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > SQL Server在AlwaysOn中使用內存表的“踩坑”記錄

SQL Server在AlwaysOn中使用內存表的“踩坑”記錄

熱門標簽:奧威地圖標注多個地方 智能語音外呼系統選哪家 京華物流公司地圖標注 外呼系統電銷專用 優質地圖標注 百度地圖標注不同路線 怎樣在地圖上標注路線圖標 武漢長沙外呼系統方法和技巧 千呼電銷機器人價格

前言

最近因為線上alwayson環境的一個數據庫上使用內存表。經過大概一個星期監控程序發現了一個非常嚴重問題這個數據庫的日志文件不會截斷,已用空間一直在增加(存在定時的每個小時的日志備份),同時內存表數據庫文件也無法刪除,下面就介紹一下后面我的處理過程,話不多說了,來一起看看詳細的介紹吧。

數據庫:SQL Server2014 Enterprise Edition (64-bit)

刪除文件

使用一個單獨非alwayson環境的數據庫測試。

一、創建內存表

---創建內存表文件組
ALTER DATABASE [test] ADD FILEGROUP [test_ag] CONTAINS MEMORY_OPTIMIZED_DATA 
GO 
----創建內存表數據庫文件
ALTER DATABASE [test] 
ADD FILE 
( 
 NAME = 'test_memory', 
 FILENAME ='D:\database\memory' 
) 
TO FILEGROUP [test_ag]; 
GO

二、刪除內存表數據庫文件

USE [test]
GO
ALTER DATABASE [test] REMOVE FILE [test_memory]
GO

備注:此時還未創建表,創建完后數據庫文件執行刪除就無法刪除,接下來試試在線文檔的刪除方法方法

三、官方相關的刪除方法

即使已使用“DBCC SHRINKFILE”操作清空 FILESTREAM 容器,但出于各種系統維護原因,數據庫可能仍然需要保留對已刪除文件的引用。 sp_filestream_force_garbage_collection (TRANSACT-SQL)將運行 FILESTREAM 垃圾回收器刪除這些文件時,則可以安全進行這些操作。 除非 FILESTREAM 垃圾回收器已從 FILESTREAM 容器中刪除所有文件,否則 ALTER DATABASEREMOVE FILE 操作將無法刪除 FILESTREAM 容器并返回錯誤。 建議使用以下過程刪除 FILESTREAM 容器。

1.運行DBCC SHRINKFILE (TRANSACT-SQL)帶有 EMPTYFILE 選項以將此容器的活動內容移動到其他容器

USE test; 
GO 
-- Create a data file and assume it contains data. 
ALTER DATABASE test 
ADD FILE ( 
 NAME = Test1data, 
 FILENAME = 'D:\database\t1data.ndf', 
 SIZE = 5MB 
 ); 
GO 
-- Empty the data file. 
DBCC SHRINKFILE (test_memory, EMPTYFILE); 
GO

2.確保已在 FULL 或 BULK_LOGGED 恢復模型中執行日志備份。

3.確保復制日志讀取器作業已運行(如果相關)。

通過log_reuse_wait_desc的狀態可以看到當前數據庫已經無需日志備份,當然我已經執行過日志備份。

4.運行sp_filestream_force_garbage_collection (TRANSACT-SQL)強制垃圾回收器刪除不再需要此容器中的任何文件

USE [test]
GO 
EXEC sp_filestream_force_garbage_collection @dbname = N'test' @filename = N' test_memory '; 

5.執行帶有 REMOVE FILE 選項的 ALTER DATABASE,以刪除此容器。

USE [test]
GO
ALTER DATABASE [test] REMOVE FILE [test_memory]
GO

還是無法刪除!!!

四、問題分析

一開始是在alwayson的環境中刪除,提示由于副本的原因無法刪除。后面單獨在一個非alwayson的環境下的數據庫測試同樣是無法刪除,起初以為是創建了內存表的原因后面測試僅僅創建文件組和文件然后來刪除文件同樣是無法刪除,個人猜測有可能是buffer的緣故;在buffer中一直存在內存表相關的文件存在,通過執行DBCC DROPCLEANBUFFERS命令也無法清空buffer中的內存表對象。使盡渾身解數還是無法將它刪除掉,最后只能投降了!!!線上環境等不下去;只能使用最不愿使用的生成表結構導出數據的辦法來重建新的數據庫。

生成腳本重建數據庫

創建一個新的數據庫同時保證當前數據庫可用(重命名當前的數據庫,新創建的數據庫使用之前的名稱這樣可以保證應用程序那邊不需要改變),這樣如果出現什么問題也可以及時的切換回來。

步驟如下(在允許停機維護的情況下進行):

1.禁用所有相關作業

2禁用應用程序登入用戶

同時保證相關進程事務都已完成。

ALTER LOGIN [test] DISABLE
GO

USE [master]
GO
ALTER DATABASE [test] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;--將數據庫設置成單用戶并回滾當前連接

USE [test];---保持連接操作,防止其它用戶此時進行連接
GO

3.執行checkpoint刷新所有臟頁

CHECKPOINT

---返回當前buffer中每個數據庫所占的buffer大小和buffer中臟頁的大小
WITH CTE1
 AS ( SELECT COUNT(*) * 8 / 1024 AS dirty_cached_size_MB ,
  COUNT(*) AS dirty_pages,
  CASE database_id
  WHEN 32767 THEN 'ResourceDb'
  ELSE DB_NAME(database_id)
  END AS database_name
 FROM sys.dm_os_buffer_descriptors
 WHERE is_modified = 1
 GROUP BY DB_NAME(database_id),database_id
 ),
 CET2
 AS ( SELECT COUNT(*) * 8 / 1024 AS cached_size_MB ,
  COUNT(*) AS pages,
  CASE database_id
  WHEN 32767 THEN 'ResourceDb'
  ELSE DB_NAME(database_id)
  END AS database_name
 FROM sys.dm_os_buffer_descriptors
 GROUP BY DB_NAME(database_id),database_id
 )
 SELECT 
 CET2.database_name,
 CET2.cached_size_MB,
 --CET2.pages,
 CTE1.dirty_cached_size_MB
 --CTE1.dirty_pages 
 FROM CTE1 INNER JOIN CET2 ON CTE1.database_name = CET2.database_name

---將數據庫選項改成多用戶訪問
ALTER DATABASE [test] 
SET MULTI_USER;

4.生成數據庫腳本

5.重命名舊的數據庫

注意:如果數據庫是在alwayson中,需要先從可用性數據庫中刪除,否則無法重命名數據庫。

/*
1.斷開數據庫所有連接同時禁止新的連接進來
2.比如禁止登入用戶、將實例設為單用戶模式等。
*/
----1.設置數據庫脫機
USE [master] 
ALTER DATABASE [test] SET OFFLINE WITH ROLLBACK IMMEDIATE;

----2.手動修改數據庫物理文件名,例如將test.mdf改成test_old.mdf

----3.語句修改
USE [master] 
ALTER DATABASE [test] 
MODIFY FILE (NAME = test, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\test_old.mdf');
GO
ALTER DATABASE [test] 
MODIFY FILE (NAME = test_log, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\test_old_log.ldf');
GO

---4.設置數據庫在線
USE [master] 
ALTER DATABASE [test] SET ONLINE


----5.修改數據庫邏輯文件名

USE [test]
GO
ALTER DATABASE [test] MODIFY FILE (NAME=N'test', NEWNAME=N'test_old')
GO
USE [test]
GO
ALTER DATABASE [test] MODIFY FILE (NAME=N'test_log', NEWNAME=N'test_old_log')
GO

----6.重命名數據庫
USE [master] 
EXEC sp_renamedb N'test', N'test_old'; 

----7.查詢
SELECT *
FROM sys.master_files
WHERE database_id = DB_ID('test_old');

6.創建新的數據庫同時導入腳本到新的數據庫

如果同時導出表結構和數據在ssms工具中執行可能會因為腳本過大無法執行,可以使用sqlcmd工具執行腳本導入,具體方法可以百度一下。當然還有其他方法就是只導出表結構然后通過“導出數據\導入數據”的方法同步數據。

注意:如果使用“導出數據\導入數據”的方法同步數據,注意勾選“啟用標示插入”

7.其它

      1.如果存在alwayson記得將新的數據庫加入到可用性數據庫組中。

      2.將新的數據庫加入到備份作業中。

      3.對比新舊兩個數據庫的表數量是否相同。

      4.配置登入用戶新的數據庫權限。

總結

內存表是2014新引入的功能所以對于新功能的第一個版本使用要比較慎重,特別是在線上環境。雖然在上線之前做過測試,但是顯然備份這塊的測試往往比較容易被忽略因為沒有線上的這種環境。好在是這次影響的是一個新上的項目數據量和并發都很小且允許節假日停機維護;如果是非常大的系統對于需要導入導出數據肯定是非常頭疼的事情關鍵還得看允許停機的時長。因為自己在生產環境踩了坑,寫這篇文章希望后面的人可以避免踩坑。

備注:內存表在2014版本的alwayson中無法同步到輔助副本,這就導致了它的作用大打折扣,2016版本可以同步到輔助副本,建議有條件的直接上2016。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • SQL語句實現查詢SQL Server內存使用狀況
  • 優化SQL Server的內存占用之執行緩存
  • SQL Server 數據頁緩沖區的內存瓶頸分析
  • SqlServer如何通過SQL語句獲取處理器(CPU)、內存(Memory)、磁盤(Disk)以及操作系統相關信息
  • SQL Server 2008 R2占用cpu、內存越來越大的兩種解決方法
  • 解決SQL Server虛擬內存不足情況
  • 揭秘SQL Server 2014有哪些新特性(1)-內存數據庫
  • 淺談SQL Server 對于內存的管理[圖文]
  • SQL Server內存遭遇操作系統進程壓榨案例分析
  • sql server學習基礎之內存初探

標簽:銅仁 天水 七臺河 來賓 防疫戰設 宿州 威海 益陽

巨人網絡通訊聲明:本文標題《SQL Server在AlwaysOn中使用內存表的“踩坑”記錄》,本文關鍵詞  SQL,Server,在,AlwaysOn,中,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server在AlwaysOn中使用內存表的“踩坑”記錄》相關的同類信息!
  • 本頁收集關于SQL Server在AlwaysOn中使用內存表的“踩坑”記錄的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    从欧美一区二区三区| 亚洲图片欧美综合| 久久久不卡网国产精品一区| 亚洲影院免费观看| 成人av影视在线观看| 亚洲国产经典视频| 国产jizzjizz一区二区| 久久久美女毛片| 三级欧美在线一区| 56国语精品自产拍在线观看| 青青青爽久久午夜综合久久午夜| 国产成人精品三级| 亚洲国产一二三| 欧美一级理论片| 奇米在线7777在线精品| 一级精品视频在线观看宜春院 | 2019国产精品| 在线成人高清不卡| a在线播放不卡| 亚洲一级在线观看| 一区二区三区四区高清精品免费观看 | 国产大陆a不卡| 日韩一区二区三区电影在线观看 | 中文字幕一区日韩精品欧美| 亚洲日本一区二区| 欧美成人video| 欧洲在线/亚洲| 日韩欧美一级精品久久| 91黄色激情网站| 最新不卡av在线| 一本大道久久a久久精品综合| 最新不卡av在线| 在线中文字幕不卡| 午夜欧美视频在线观看| 欧美成人性战久久| 国产最新精品免费| 国产成人综合精品三级| www.亚洲色图| 精品少妇一区二区三区| 欧美三级视频在线观看| 91碰在线视频| 成人免费视频免费观看| 亚洲视频在线观看一区| 日韩一级片在线播放| 国产亚洲欧美一区在线观看| 精品1区2区3区| 26uuu欧美日本| 色偷偷88欧美精品久久久| 青青草视频一区| 亚洲美女淫视频| 精品国产sm最大网站| 欧美xxxxx裸体时装秀| 久久精品一区二区三区不卡牛牛| 2021中文字幕一区亚洲| 欧美精品在线一区二区| 日韩美女一区二区三区| 精品国产成人在线影院| www国产成人免费观看视频 深夜成人网| 久久综合狠狠综合久久激情 | 成人国产精品免费| av高清久久久| 欧美日韩高清一区| 精品欧美一区二区三区精品久久| 国产日韩v精品一区二区| 中文字幕日韩一区| 午夜天堂影视香蕉久久| 久久精品999| 99国产精品久久久久久久久久| 欧美日韩一区国产| 久久精品网站免费观看| 一区二区不卡在线播放| 麻豆成人久久精品二区三区小说| 激情图片小说一区| 欧美性猛交一区二区三区精品| 欧美一级电影网站| 亚洲欧美日韩中文播放 | 亚洲一区二区免费视频| 美女久久久精品| 91亚洲午夜精品久久久久久| 日韩一卡二卡三卡国产欧美| 中文字幕亚洲一区二区av在线 | 在线精品视频小说1| 欧美一区二区三区在线电影| 国产精品视频yy9299一区| 亚洲国产一区视频| 高清av一区二区| 欧美视频在线一区二区三区 | 欧美一区二区三区白人| 日韩一区中文字幕| 精品国产三级a在线观看| 中文字幕精品一区| 日韩成人一区二区| 在线看日本不卡| 欧美国产日韩在线观看| 久久国产精品色| 成人晚上爱看视频| 欧美精品高清视频| 久久精品在这里| 日韩精品欧美精品| 欧美三级视频在线观看| 亚洲伦在线观看| 国产成人在线观看| 精品日韩一区二区三区免费视频| 亚洲精品视频在线看| 成人v精品蜜桃久久一区| 91精品国产91综合久久蜜臀| 欧美激情在线观看视频免费| 欧美aaaaa成人免费观看视频| va亚洲va日韩不卡在线观看| 26uuu精品一区二区在线观看| 视频在线观看一区| 欧美三级三级三级爽爽爽| 一区二区三区国产精华| 一本久久综合亚洲鲁鲁五月天| 国产日本欧洲亚洲| 极品销魂美女一区二区三区| 欧美美女激情18p| 亚洲国产综合色| 99精品欧美一区二区三区小说| 欧美国产在线观看| 日韩不卡手机在线v区| 3d动漫精品啪啪一区二区竹菊| 亚洲精品久久久蜜桃| 99久久伊人久久99| 亚洲美腿欧美偷拍| 欧美视频一区二区三区在线观看 | 粉嫩av亚洲一区二区图片| 久久精品亚洲国产奇米99| 国产99久久久国产精品免费看| 国产精品区一区二区三区| 成a人片国产精品| 一区二区三区蜜桃网| 欧美亚州韩日在线看免费版国语版| 亚洲综合视频网| 日韩精品专区在线| 国产99一区视频免费| 亚洲欧美综合色| 欧美精品视频www在线观看| 日本成人在线一区| 国产精品青草综合久久久久99| 色琪琪一区二区三区亚洲区| 亚洲va中文字幕| 中文字幕成人在线观看| 欧美三级日韩三级国产三级| 国产成人亚洲综合a∨婷婷 | 亚洲精品在线免费播放| 99久久婷婷国产综合精品电影| 一区二区三区在线看| 欧美tk—视频vk| 91视频在线观看| 国产精一区二区三区| 一区二区三区免费看视频| 日韩精品中文字幕在线不卡尤物| 国产精品久久久久久妇女6080| 欧洲一区在线电影| 久久精品人人做| 成人中文字幕在线| 午夜精品久久一牛影视| 中文字幕av免费专区久久| 日韩国产一区二| 亚洲欧美另类久久久精品2019 | 91精品国产一区二区人妖| 成人激情校园春色| 久久国产福利国产秒拍| 亚洲乱码国产乱码精品精98午夜 | 亚洲欧美日韩一区二区| 欧美哺乳videos| 在线播放欧美女士性生活| www.色综合.com| 久久国产精品99久久久久久老狼 | 色成人在线视频| 粉嫩嫩av羞羞动漫久久久| 激情综合色播五月| 三级不卡在线观看| 亚洲国产精品尤物yw在线观看| 国产亚洲欧美激情| 久久亚洲欧美国产精品乐播| 日韩一级大片在线| 91精品国产综合久久久久久久久久 | 欧美zozo另类异族| 欧美电影免费观看高清完整版在线 | 粉嫩绯色av一区二区在线观看| 国产一区二区不卡| 国产一区二区91| 国产一区二区三区精品视频| 午夜精品一区在线观看| 亚洲精品第一国产综合野| 亚洲欧洲国产日韩| 亚洲美女区一区| 亚洲bt欧美bt精品777| 亚洲一区二区欧美日韩| 国产精品美女久久久久久久网站| 久久久久综合网| 日韩久久免费av| 欧美高清视频在线高清观看mv色露露十八| 成人天堂资源www在线| 日韩视频一区二区| 国产欧美精品一区二区色综合| 国产视频一区在线播放| 亚洲成人一区二区在线观看|