當前位置:首頁 » 編程語言 » sql使用awe分配內存
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql使用awe分配內存

發布時間: 2023-01-16 22:54:26

sql代理無法啟動

對於伺服器上數據的備份工作是網管員日常工作中最重要的工作之一,SQLServerAgent服務使得我們可以用SQL上的「資料庫維護計劃」功能來自動備份數據,但最近我發現伺服器上SQLServerAgent服務無法啟動了,回想最近所做的操作,原來是因為我把SQL中Builtin/Administrators這個帳號的伺服器訪問許可權禁止掉了,因為這個帳號的存在對於SQL來說很不安全,但又不想刪除,因此把它的許可權禁止,結果導致SQLServerAgent服務無法啟動。
解決的方法很簡單,只要刪除這個帳號,再建一個同時具有系統管理許可權和SQL管理許可權的用戶,然後用這個用戶去啟動SQLServerAgent服務就可以了。以下是操作步驟:
1、打開企業管理器,打開左邊的實例->安全性->登錄,在右邊空白處右擊滑鼠,選「新建登錄」,單擊「名稱:」右邊的按鈕,會出現很多帳號名,選擇一個具有windows超級管理員許可權的用戶(如Administrator),單擊「添加」,再在「伺服器角色」標簽中選中「System Administrators」打勾,確定。
2、打開企業管理器左邊的「管理」,右擊「SQLServer代理」,選屬性->常規->服務啟動帳戶,選「本帳戶」,然後在旁邊輸入剛才所建的帳戶和密碼(例如:.\Administrator),密碼是此用戶的密碼,確定。
3、最後,右擊「SQLServer代理」,選「啟動」,就能看到Agent成功啟動了。

Ⅱ SQL Server佔用內存過高,什麼原因導致的,用什麼方法可以解決

SQL Server運行越久,佔用內存會越來越大。因為sql server本身內存回收機製做的不好,這是微軟系列的伺服器&資料庫問題的通病。

解決SQL Server佔用內存過高的方法:

1.定期重啟SQL Server 2008 R2資料庫服務即可。

拓展資料

SQL Server 是Microsoft 公司推出的關系型資料庫管理系統。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平台使用。

Microsoft SQL Server 是一個全面的資料庫平台,使用集成的商業智能 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 資料庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程序。

網路Microsoft SQL Server

Ⅲ sqlserver2005怎麼設置內存

SQLSERVER的內存用在哪裡?
SQL會緩存大量的數據頁面,他還會緩存很多其他信息,包括存儲過程的執行計劃 ,特定用戶的安全上下文等
如果這些信息沒有在資料庫中緩存,SQL都要重新計算一遍,花額外的時間,所以SQLSERVER對內存的需求是十分強烈的。

配置:
(1)如果伺服器支持64位操作系統,沒有特殊理由的話,請安裝64位系統。這樣SQL能夠有效地使用 大於2GB的內存。如果一定要用32位系統,務必將SQLSERVER伺服器屬性裡面的「使用AWE分配內存」打開。但是不要用boot.ini文件里的/3GB這個開關,即不要在boot.ini文件里加上/3GB這個參數。

(2)盡量使伺服器專門供資料庫使用,不要將其他服務(例如IIS,中間層應用服務等)安裝在同一台機器上。多個生產應用服務在同一台機器上運行,會大大增加維護成本

(3)建議設置SQLSERVER max server memory(最大伺服器內存),以確保Windows有足夠的內存供系統本身使用。
情況歸納如下:
一台4GB機器,建議預留1GB,設置SQLSERVER max server memory為2.8GB
一台8GB機器,建議預留2GB,設置SQLSERVER max server memory為6GB
一台大於8GB的64位機器,建議預留3GB~4GB
如果一台伺服器上還有其他應用使用內存,也要扣除他們的內存使用數
一般設置SQLSERVER min server memory(最小伺服器內存)意義不大

(4)如果是企業版SQLSERVER,建議賦給SQLSERVER啟動帳號lock page in memory的許可權
設置方法如下:
打開組策略(運行 ,輸入gpedit.msc)-》找到計算機配置-》Windows設置-》安全設置-》本地策略-》用戶許可權分配-》鎖定內存頁
在鎖定內存頁上右鍵,打開鎖定內存頁屬性,添加SQLSERVER啟動帳號進去

(5)「set working set size」 這個SQLSERVER參數在現在的Windows上不能起到固定SQL物理內存的作用,所以請永遠不要使用

修改完配置之後需要重啟SQLSERVER服務才能生效!!!!!

除了配置之外還有一些應對內存錯誤的其他一些建議:
升級Windows2003到SP2,或者使用Windows2008 ,這些版本的Windows的內存管理機制有了調整
升級硬體驅動程序,或者聯系微軟技術服務,幫忙檢查是不是硬體方面問題引起

Ⅳ sql server 2008 r2 啟用awe後 內存的管理

會自動釋放的。內存緩存一些查詢,tempdb,存儲等。不是把所有數據放到內存裡面。你才10G,那100G,1T的怎麼辦。這涉及SQL內存管理方面。我也是粗淺的了解了一點。

Ⅳ sql server 2008 怎樣設置內存

在安裝有SQLServer資料庫的計算機上,我們在使用資料庫的過程中,有時候會在任務管理器里發現sqlservr.exe這個進程的內存和CPU佔用率較高。

接下來我們來看一下,如何解決上面這個問題,需要設置SQLServer資料庫的內存配置。登錄資料庫,這里使用的是SQLServer2008,右鍵點擊最上方的伺服器名,在彈出的菜單中,點擊【屬性】

打開伺服器屬性窗口。默認顯示的是第一項【常規】內容,點擊第二項【內存】進行內存配置。

點擊【內存】後,打開伺服器內存選項配置界面。這里的【使用AWE分配內存】可以對內存進行擴展支持,我們要做的是更改下方的最大伺服器內存。這個數值根據自己伺服器內存大小來做適當設置。

個人建議設置本機內存的一半或稍微高一點,如機器內存為2G,那麼我們這里填寫1000。需要注意的是內存設置調小以後,在資料庫執行較復雜SQL語句的時候,可能會比較慢,出現這種情況,我們再適當上調最大內存配置大小。

Ⅵ sql server awe怎麼設置

由於32位Windows用戶進程有4GB的虛擬地址空間。其中2GB給核心態,剩下2GB給用戶態。這兩部分嚴格分開。Windows不會因為其中某一塊

內存地址空間用盡而將另外一塊的空間讓出。

由於SQLSERVER的絕大部分指令都運行在用戶態下,就是說SQLSERVER的內存基本上使用用戶態地址空間資源。現在的情況是2GB地址空間資源

對於SQLSERVER來說嚴重阻礙了SQLSERVER有效利用硬體資源

所以SQLSERVER引入了AWE address windowsing extensions(地址空間擴展)。這是允許32位應用程序分配64GB物理內存,並把視圖或窗口

映射到2GB虛擬地址空間的機制。

使用AWE,使得一個應用程序能夠訪問最多達64GB的物理內存!!!

在SQL2000的企業版,SQL2005/2008的企業版和標准版都支持這個技術,也能夠享受這個技術帶來的好處

開啟這個功能的語句,執行完之後,重啟SQLSERVER服務即可

1 EXEC sys.sp_configure @configname = 'AWE Enabled', -- varchar(35)
2 @configvalue = 1 -- int
3 RECONFIGURE
4 GO

AWE具體實現圖

有幾點需要注意的:

(1)開啟這個功能需要SQLSERVER啟動帳戶在Windows上的lock pages in memory許可權。沒有這個許可權,AWE就不能成功被開啟。

啟動的SQLSERVER這時候只能使用2GB的地址空間。

所以DBA要確認一下SQLSERVER的errorlog里有沒有相關的信息
成功開啟:server Address Windowing Extensions enabled
消息
Address Windowing Extensions is enabled. This is an informational message only; no user action is required.
開啟失敗:Cannot use Address Windowing Extensions because lock memory privilege was not granted

(2)這個功能是在應用層面有意識地使用,而不是在Windows層面實施的。也就是說SQLSERVER在申請內存時,通過特殊API調用申請到的,

如果SQLSERVER不調用這個功能,就還會在普通的2GB虛擬地址空間申請內存。在SQLSERVER中不是所有的內存申請都會調用AWE技術,

只有先reserve,再commit的內存調用,SQLSERVER才使用AWE讓他們使用到擴展的內存。其他方式申請的內存只能使用普通的2GB地址空間。

正因為這樣,AWE不能稱為解決SQLSERVER地址空間不足的最終解決方案。使用64位的伺服器,虛擬地址空間可以達到8TB,

大於現在絕大多數的單個伺服器的物理內存數。在64位下運行的SQLSERVER,其性能往往比在32位上有比較明顯的提高。

最後附上各個版本Windows上支持的最大內存數
配置 應用虛擬地址空間大小 最大物理內存數 是否支持AWE/locked pages support
32位SQLSERVER 2GB 64GB YES
32位SQLSERVER + /3GB boot.ini參數 3GB 16GB YES
32位SQLSERVER 應用在x64位操作系統(WOW) 4GB 64GB YES
32位SQLSERVER 應用在IA64操作系統(WOW) 2GB 2GB NO
64位SQLSERVER 應用在x64操作系統 8TB 2TB YES
64位SQLSERVER 應用在IA64操作系統 7TB 2TB YES

Ⅶ sql server 怎麼實現數據的存儲

在安裝有SQLServer資料庫的計算機上,我們在使用資料庫的過程中,有時候會在任務管理器里發現sqlservr.exe這個進程的內存和CPU佔用率較高。

接下來我們來看一下,如何解決上面這個問題,需要設置SQLServer資料庫的內存配置。登錄資料庫,這里使用的是SQLServer2008,右鍵點擊最上方的伺服器名,在彈出的菜單中,點擊【屬性】

打開伺服器屬性窗口。默認顯示的是第一項【常規】內容,點擊第二項【內存】進行內存配置。

點擊【內存】後,打開伺服器內存選項配置界面。這里的【使用AWE分配內存】可以對內存進行擴展支持,我們要做的是更改下方的最大伺服器內存。這個數值根據自己伺服器內存大小來做適當設置。

個人建議設置本機內存的一半或稍微高一點,如機器內存為2G,那麼我們這里填寫1000。需要注意的是內存設置調小以後,在資料庫執行較復雜SQL語句的時候,可能會比較慢,出現這種情況,我們再適當上調最大內存配置大小。

Ⅷ SQL代理無法啟動怎麼辦

【處理方法】

一、配置環境
伺服器環境為32位Intel® Xeon® CPU E54410 @2.33GHz雙路雙核開啟超線程,8.00GB的內存,RAID10。

1.根據最小許可權原則,安裝完資料庫及SP3補丁後,建立Users組用戶SqlStartUser。

2.通過SQL Server配置管理器配置啟用TCP/IP協議,IPALL的TCP埠改為32959。SQL Server(MSSQLSERVER)和SQL Server Agent(MSSQLSERVER)的服務啟動賬號為SqlStartUser。

3.本地安全設置->本地策略->用戶許可權分配->內存中鎖定頁面添加SqlStartUser。

4.勾選使用AWE分配內存。最小伺服器內存(MB)5500,最大伺服器內存(MB)7200,其他留給操作系統。

二、檢查步驟

1.檢查本地賬號SqlStartUser隸屬於哪幾個組:本地Windows組之Users組;本地Windows組之SQL Server服務賬戶組SQLServer2005MSSQLUser$DBSRV1$MSSQLSERVER;本地Windows組之SQL Server服務賬戶組SQLServer2005SQLAgentUser$DBSRV1$MSSQLSERVER。

2.檢查資料庫登錄名是否有DBSRV1SqlStartUser。

3.檢查事件查看器應用程序有關服務啟動的過程信息。

三、類型來源 描述

①審核成功MSSQLSERVER用戶 'DBSRV1 SqlStartUser' 登錄成功。連接: trusted. [客戶端: <local machine>]

②信息MSSQLSERVER配置選項 'show advanced options' 已從 1 更改為 1。請運行 RECONFIGURE 語句進行安裝。

③信息MSSQLSERVERSQL Server 阻止了對組件 'Agent XPs' 的 過程'dbo.sp_sqlagent_has_server_access' 的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用 'Agent XPs'。有關啟用 'Agent XPs' 的詳細信息,請參閱 SQL Server 聯機叢書中的 "外圍應用配置器"。

④信息MSSQLSERVERSQL Server 阻止了對組件 'Agent XPs' 的 過程'dbo.sp_sqlagent_get_startup_info' 的訪問......

⑤錯誤MSSQLSERVERSQLServerAgent could not be started (reason: SQLServerAgent 必須能夠以 SysAdmin 身份連接到 SQLServer,但「(未知)」不是 SysAdmin 角色的成員)。