當前位置:首頁 » 雲伺服器 » strace怎麼排除伺服器故障

strace怎麼排除伺服器故障

發布時間: 2022-03-06 09:49:20

sql server無法連接到 伺服器

在大多數情況下,卸載Visual Studio和。NET 4和重新安裝它們可以解決。
如果還不解決這個問題,你可以按照下面的步驟來解決此錯誤:
1。運行命令提示符,然後找到的DLL文件的位置,使用以下命令:
DIR Microsoft.SqlServer.Diagnostics.STrace.dll/ S

2。復制DLL的名稱與位置。

3。以管理員身份運行VS 2008的命令提示符。

4。執行以下命令

GACUTIL- I「{Microsoft.SqlServer.Diagnostics.STrace.dll 在第1步找到的完整路徑}」

如果在您的系統缺少DLL文件Microsoft.SqlServer.Diagnostics.STrace.dll,你可以復制從其他的地方。

還不行重裝SQL

② 在xp上安裝SQL Server 2008的開發版後,連接到伺服器時出現錯誤,還無法導入數據。

版本問題吧.你裝的是企業版的?你試下換下面的版本安裝:SQL Server 2008 Standard (32-bit)
SQL Server Developer (32-bit)
SQL Server Workgroup (32-bit)
SQL Server Web (32-bit)
SQL Server Express (32-bit) and Express with Advanced Services (32-bit)

③ 求助在線等TNS-12537 linux Error:29

故障排除指南ora-609:流產過程未知OsPID進行opiodr(文檔ID 1121357.1)
alert.log顯示ora-609與tns-12537:TNS:關閉連接(文檔ID 1538717.1)
致命的Ni連接12560地和逗ora-609 opiodr流產過程在警報日誌錯誤(文檔ID 987162.1)
資料庫的警報日誌中常會見到ora-609、ora-3136 / ora-609 tns-12537和tns-12547或tns-12170 12170,逗tns-12535等相關錯誤,對此類型問題進行整理歸納,如下:
1。ora-609錯誤的排查指南:
報警日誌可以看到如下錯誤信息:
致命的Ni連接錯誤12537,連接:
(LOCAL=NO)
版本信息:
TNSLinux:版本11.2.0.3.0生產
Oracle將NT協議適配器Linux:版本11.2.0.3.0生產
TCP / IP協議適配器的Linux版本NT:11.2.0.3.0生產
時間:26-feb-2013 02:23:51
追蹤未打開
TNS錯誤結構:
主要錯誤代碼:12537 ns
tns-12537:TNS:連接關閉
錯誤代碼:12560 ns級
主要錯誤代碼:0新台幣
NT錯誤代碼:0次
NT操作系統錯誤代碼:0
流產過程未知OsPID進行opiodr(28725)由於ora-609
第一個解釋這種錯誤
消息
流產過程未知OsPID進行opiodr(.....)由於ora-609
只是一個通知,Oracle資料庫關閉(終止)專用工藝由於ora-609。
ora-609意味著逗無法連接到傳入的連接地這樣的資料庫的過程是逗中止地(閉)因為它不能連接到傳入連接被聽者傳遞給它的。
這是在SQLNET錯誤堆棧發現,在我們的例子中是:
tns-12537:TNS:連接關閉。
基本上專用的過程沒有一個客戶端連接了工作。
此報錯類似通知:Oracle因為ora-609關閉或者叫中止了一個到資料庫的專有連接——OsPID進行(28725)。
ora-609錯誤原因是:無法與進入的連接進行聯系,所以無法將此連接轉入監聽器,所以資料庫的過程中止此進程。
此時報錯tns-12537:TNS:連接關閉,根本原因為客戶端連接不正常。
客戶端通過監聽器連接Oracle資料庫的過程:
1。客戶端發起一個到資料庫的連接,所以連接到監聽器
2。聽眾開始(叉)專用資料庫的過程中,會收到這個連接(會話)
三.在這個專門的程序開始,聽者通過連接從客戶這個過程
4。伺服器進程將連接從聽眾繼續與客戶握手
5。伺服器進程和客戶交流建立會話所需的信息(即,兩個常見的任務,用戶登錄)
6。會議開了
簡單說就是:
1。客戶端連接到監聽器
2。監聽派生叉一個子進程,交轉化為專有伺服器進程專用資料庫的過程
3。第2步完成後,監聽將客戶端的連接轉入此專有進程專用工藝
4伺服器進程收到從監聽來的連接信息後,需要繼續與客戶端的連接進行握手。
5。伺服器進程與客戶端進程交換建立會話需要的信息,如用戶名、密碼等
6。以上好後,會話打開。
在介於3、4步時客戶端連接關閉,專用資料庫的過程與客戶端通信時發現客戶端關閉了。
###############################
使用跟蹤來排查:
文檔:故障排除指南ora-609:流產過程未知OsPID進行opiodr(文檔ID 1121357.1)
對於這種問題的排查,使用聽眾。日誌或者SQLNET的跟蹤效果不太好,因為每秒可能有很多連接同時SQLNET的跟蹤未提供更多的客戶端信息。
此時可以嘗試使用OS層面的跟蹤。
如:1111為監聽進程,PS EF | grep tnslsnr查出
Linux:信息射頻O /甲氧苄啶/ lsnr1.log P 1111
HP-UX:義大利-員工- AFPO /甲氧苄啶/ lsnr1.log 1111
如果使用微量跟蹤,如下:
三.Oracle Net 16級伺服器跟蹤。添加到伺服器端sqlnet.ora文件
DIAG_ADR_ENABLED=off # Disable ADR if version 11g
TRACE_LEVEL_SERVER = 16 # Enable level 16 trace
TRACE_TIMESTAMP_SERVER = ON # Set timestamp in the trace files
TRACE_DIRECTORY_SERVER = <DIRECTORY> # Control trace file location
TRACE_FILELEN_SERVER =<n> #Control size of trace set in kilobytes eg 20480
TRACE_FILENO_SERVER =<n> #Control number of trace files per process
使用errorstack方法如下:
4。errorstack:設置errorstack捕捉失敗。這是特別有用當捕獲Oracle Net客戶端跟蹤是不可行的。
SQL> ALTER SESSION事件609 errorstack(3)地;
一旦被收集而錯誤轉載有一些痕跡:
SQL> ALTER SESSION事件609關地;
###############################################
關於此問題的解決方法有:
文檔:alert.log顯示ora-609與tns-12537:TNS:關閉連接(文檔ID 1538717.1)
可能原因:
客戶端卡住、崩潰;連接被防火牆殺死;客戶端超時設置;客戶端連接後立刻關閉;網路不穩定;
需要檢查客戶端dns。或/或中信息SQLNET:
在客戶家sqlnet.ora Oracle可能超時:
sqlnet.outbound_connect_time
sqlnet.recv_timeout
sqlnet.send_timeout
tcp_connect_timeout
客戶可能超時連接描述符(硬編碼在客戶端應用程序或客戶端dns,ORA):
connect_timeout

④ 如何通過strace獲取ftp的用戶名和密碼

1)遠程虛擬機FTP密碼查詢
登錄西部數碼或阿里雲官網,點擊虛擬主機管理,找到域名,所在FTP伺服器——管理,即可查看或修改FTP密碼,如圖:
ftp用戶名和密碼怎麼查
ftp用戶名和密碼怎麼查
ftp用戶名和密碼怎麼查
2)遠程主機FTP密碼查詢
遠程主機不同於虛擬主機,遠程主機可以使用遠程桌面連接,可以分配多個虛擬主機地址或承載多個域名不同的獨立網站。
FTP查詢方法:登錄開發商網址,伺服器管理——初始密碼,初始密碼即為FTP密碼。如圖:
ftp用戶名和密碼怎麼查
3)伺服器總FTP密碼查詢
伺服器總FTP賬號可以查看伺服器所有目錄文件,許可權大,安全性極低,慎重使用。
密碼設置及修改方法:計算機——管理——本地用戶和組——用戶,右鍵用戶屬性,即可設置或修改密碼。如圖:
ftp用戶名和密碼怎麼查
4)IIS下FTP密碼查詢
IIS下FTP可設置單個目錄,安全性高,在網站維護中使用較多。
密碼管理方法:
IIS伺服器——FTP站點,右鍵站點屬性——安全賬戶,即可管理密碼,如圖:
ftp用戶名和密碼怎麼查
ftp用戶名和密碼怎麼查
ftp用戶名和密碼怎麼查
ftp用戶名和密碼怎麼查
5)瀏覽器下FTP查詢
瀏覽器登錄FTP地址,也可以查詢或設置FTP目錄及密碼;
如圖:
ftp用戶名和密碼怎麼查
6
6)本地FTP密碼查詢
本地FTP使用較少,需要安裝虛擬伺服器環境,在IIS中配置FTP。
本地IIS——添加——添加FTP站點。如圖:

⑤ 如何解決Nginx服務自動關閉問題

首先排除是否為網路問題:檢查了iptable等。同時思考,如果真的是網路問題,不應該運行一段時間後,才出現無法接受新連接的現象。
為了驗證,當出現問題時,我又重新啟動Nginx,發現又可以接收新的請求了。也就是說出現問題時,只需要重啟Nginx就可以解決,那麼自然不是網路因素。
判定是否是Nginx本身的問題(不一定是指代碼包括我寫的配置文件):因為這個代理伺服器是為了測試fastsocket項目的穩定性,所以 Nginx是載入了fastsocket優化服務的。這時,就需要最純粹的Nginx環境。我去掉了fastsocket服務,然後再用同樣的配置啟動 Nginx。這時,就排除了Nginx本身的問題。那麼,究竟是否是fastsocket的bug呢?
這里先做一個小廣告: fastsocket是新浪主導的一個開源項目,其通過封裝socket套接字調用,無需改動服務程序,即可大幅提升服務程序性能。作者也是其中的維護者之一。這里小小推廣一下:https://github.com/fastos/fastsocket。當使用fastsocket默認載入參數時,nginx運行一段時間就無法接受新連接請求了。
定位fastsocket問題:fastsocket的大部分優化功能都是有功能開關的,默認會使用一些功能,同時可以在載入動態模塊時,使用參數指定是否打開開關。這時,先做實驗,從所有功能關閉開始,逐漸打開功能開關,最後定位到enable_listen_spawn功能打開時,就會出現問題。並多次做實驗,確定這是一個必現的問題。
當確定可以重現後,想這難道是一個fastsocket的bug嗎?於是,先跟林曉峰同學說了一聲,告訴他我的發現,畢竟fastsocket是他在sina時的工作,他最為熟悉代碼。他說這可能是Nginx的配置使用了accept_mutex。我的配置文件雖然沒有配置accept_mutex,但是沒想到Nginx的accept_mutex是默認打開的。但是他忘了為什麼會這樣了?依稀記得是Nginx hang在了mutex中,具體原因記不清了。所以fastsocket的說明也是要求disable accept_mutex。
因為我一直以來有這還不錯的求知慾,所以一定要搞清楚這個問題。同時我認為,如果真的是一啟用accept_mutex,fastsocket和nginx就會有兼容問題,那也應該算是fastsocket的bug,應該將其解決掉。
定位Nginx hang在什麼位置:這個很簡單,使用strace -p跟蹤Nginx的每個worer進程。發現大部分worker進程是在不斷的epoll_wait,而其中一個worker進程,始終停留在epoll_wait中。重試多次,每次都是停留在epoll_wait中。
現在已經確定了本次問題,當使用fastsocket的enable_listen_spawn功能時,也就是fastsocket自動為當前CPU創建本地的listen socket套接字時,就會出現問題。
解決問題
當定位到問題時,就需要一步一步的找到原因,查看為什麼一個worker進程始終停留在epoll_wait中。這時候,其實思考還是要優於動手。先思考,再動手,動手之後,看到結果,再做進一步思考。
查看該worker進程停留在epoll_wait的什麼位置:只能通過日誌形式來判斷hang在epoll_wait的哪個位置?這時,不能用內核普通的printk來列印日誌,不然就會淹沒於大量正常工作worker進程列印的日誌中。我們需要根據pid來列印日誌。
再做一個小廣告:我做了一個內核小工具[email protected]:gfreewind/unit_perf.git。是用來定位內核代碼的性能瓶頸工具,和一些輔助工具。大家覺得還可以的話,就給贊個星星。
它提供一個宏UP_PID_INFO_LOG用於列印指定PID的日誌,pid可以通過proc來指定。
這樣我在epoll_wait中增加了大量的日誌。在Nginx啟動後,通過proc指定就列印某個worker進程的日誌。
最後發現epoll_wait是因為指定了無限等待時間,所以該worker進程一直在hang住。
Nginx讓一個worker進程無限等待,這稍微顛覆了我對Nginx的認識。我認為Nginx一直都是使用無阻塞的系統調用,至少核心模塊是這樣處理的。那麼為什麼會出現這個現象呢?這時候,就需要思考,而不是動手了。
毫無疑問,accept_mutex是一個關鍵。它本身是用於均衡不同worker進程的負載。稍微閱讀一點Nginx相關的 代碼,就可以明白。在Nginx無法接收新連接請求時,一定是該輪到hang住的進程接收新連接請求。所以盡管其它進程沒有hang住,但是它們是無法接 受新請求,而能夠接收新請求的進程卻hang住,這樣就導致了問題的產生。
為什麼hang住的進程無法接收到新的請求呢?這時還是思考優先。首先要勾畫標準的內核TCP連接的過程,然後對比啟用fastsocket 後,TCP連接的過程。很可能是這兩者之間的區別,造成了問題。尤其是啟用了spawn socket時,與標准流程的不同。spawn socket時,實際上為每個cpu都創建了一個本地listen 套接字的hash表,與全局的listen表區分開。這樣一方面訪問全局hash表時需要的鎖,另一方面也做到了將TCP會話做到本地,可以盡量命中 cache。 對於同一個CPU,由於有兩個listen表的存在,所以在收到新的TCP連接請求時,必須先檢查本地的listen表,然後再檢查全局表。 根據這樣的流程和現象,應該是所有的連接請求,都被發到其它的CPU,並且匹配中了其它CPU的本地listen表,所以全局表中的listen socket套接字一直沒有被匹配到。
那麼hang住的進程,既沒有連接請求匹配本地listen表中的套接字,而全局表也一樣,因為被請求都被其它CPU命中了本地的套接字。
所以問題更為明朗了,hang住的進程所在的CPU不能收到任何新連接請求。
這時其實已經到了沖刺的時候了。開始的時候,我還想著,是否是fastsocket影響了數據包的分發,還想檢查一下代碼。但一想,還是先看看 RPS的設置吧——雖然我沒有設置網卡的任何RPS。結果出乎我意料,原來阿里雲ECS伺服器默認就把網卡的RPS設置了,唯一的外網網卡的RPS設置為 了0000,所以只有CPU 0能收到新連接請求,而另外的CPU1收不到任何的連接請求,這就造成了運行在CPU1上的worker進程hang住。
最後我修改了該網卡的RPS設置,使其可以將數據包分發到不同的CPU上。這樣在載入了fastsocket後,即使打開了accept_mutex,Nginx也可以正常工作了。
本次過程,雖然最後發現只是伺服器配置的問題,但整個兒過程還是收獲不少。唯一的遺憾,是還沒有定位Nginx對與epoll_wait的超時計算。開始的時候,都是500ms,後面因為什麼因素變成了無限。這留到有時間的時候,再閱讀Nginx源碼吧。

⑥ linux下運行程序內存不斷增加如何查詢是那段代碼出現的問題!

如果是源代碼級調試的話, 可選的方法有: 使用專門的調試工具, 譬如 Profile/Tuner 之類的; 使用現成通用工具, 譬如 strace 之類的; 在代碼中加入條件狀態輸出, 可以根據變化找到熱點 ...

⑦ 如何查看linux strace 排查定時器故障

可以使用yum -y install strace來安裝,centos系統安裝使用使用yum命令。 yum命令說明: yum命令是在Fedora和RedHat、centos以及SUSE中基於rpm的軟體包管理器,它可以使系統管理人員交互和自動化地更細與管理RPM軟體包,能夠從指定的伺服器自動...

⑧ sql連接不上伺服器,錯誤信息如下:

在大多數情況下,卸載Visual
Studio和。NET
4和重新安裝它們可以解決。
如果還不解決這個問題,你可以按照下面的步驟來解決此錯誤:
1。運行命令提示符,然後找到的DLL文件的位置,使用以下命令:
DIR
Microsoft.SqlServer.Diagnostics.STrace.dll/
S
2。復制DLL的名稱與位置。
3。以管理員身份運行VS
2008的命令提示符。
4。執行以下命令
GACUTIL-
I「{Microsoft.SqlServer.Diagnostics.STrace.dll
在第1步找到的完整路徑}」
如果在您的系統缺少DLL文件Microsoft.SqlServer.Diagnostics.STrace.dll,你可以復制從其他的地方。

⑨ sql sever2008連接不上伺服器,顯示錯誤信息如下

打開程序-->運行-->輸入
net
start
mssqlserver
命令
然後再重啟資料庫試試

熱點內容
安卓上哪裡下大型游戲 發布:2024-12-23 15:10:58 瀏覽:189
明日之後目前適用於什麼配置 發布:2024-12-23 14:56:09 瀏覽:56
php全形半形 發布:2024-12-23 14:55:17 瀏覽:829
手機上傳助手 發布:2024-12-23 14:55:14 瀏覽:733
什麼樣的主機配置吃雞開全效 發布:2024-12-23 14:55:13 瀏覽:830
安卓我的世界114版本有什麼 發布:2024-12-23 14:42:17 瀏覽:711
vbox源碼 發布:2024-12-23 14:41:32 瀏覽:279
詩經是怎麼存儲 發布:2024-12-23 14:41:29 瀏覽:661
屏蔽視頻廣告腳本 發布:2024-12-23 14:41:24 瀏覽:420
php解析pdf 發布:2024-12-23 14:40:01 瀏覽:820