जैसा कि आप परिणामों के पृष्ठ प्राप्त करते रहते हैं, मैं मान रहा हूं कि आपने सत्र को SQL * प्लस में शुरू किया है। अगर ऐसा है, तो आसान काम है ctrl . को बैश करना + ब्रेक कई बार, कई बार रुकने तक।
अधिक जटिल और अधिक सामान्य तरीके (ओं) को मैं नीचे विस्तार से बताता हूं ताकि बढ़ती क्रूरता/बुराई हो। पहला शायद आपके लिए काम करेगा लेकिन अगर ऐसा नहीं होता है तो आप सूची में नीचे जा सकते हैं।
इनमें से अधिकतर अनुशंसित नहीं हैं और इसके अनपेक्षित परिणाम हो सकते हैं।
ObiWanKenobi के उत्तर और ALTER SESSION दस्तावेज़ीकरण के अनुसार
alter system kill session 'sid,serial#';
sid
को खोजने के लिए , सत्र आईडी, और serial#
, सीरियल नंबर, निम्न क्वेरी चलाएँ - OracleBase से सारांशित - और अपना सत्र खोजें:
select s.sid, s.serial#, p.spid, s.username, s.schemaname
, s.program, s.terminal, s.osuser
from v$session s
join v$process p
on s.paddr = p.addr
where s.type != 'BACKGROUND'
यदि आप एक आरएसी चला रहे हैं तो आपको कई उदाहरणों को ध्यान में रखते हुए इसे थोड़ा बदलना होगा, inst_id
यही उनकी पहचान करता है:
select s.inst_id, s.sid, s.serial#, p.spid, s.username
, s.schemaname, s.program, s.terminal, s.osuser
from Gv$session s
join Gv$process p
on s.paddr = p.addr
and s.inst_id = p.inst_id
where s.type != 'BACKGROUND'
यदि आप RAC नहीं चला रहे हैं तो यह क्वेरी भी काम करेगी।
यदि आप पीएल/एसक्यूएल डेवलपर जैसे टूल का उपयोग कर रहे हैं तो सत्र विंडो भी इसे ढूंढने में आपकी सहायता करेगी।
थोड़े मजबूत "किल" के लिए आप IMMEDIATE कीवर्ड निर्दिष्ट कर सकते हैं, जो डेटाबेस को लेनदेन पूरा होने की प्रतीक्षा नहीं करने का निर्देश देता है:
alter system kill session 'sid,serial#' immediate;
<एच3>2. ओएस स्तर - SIGTERM जारी करें kill pid
यह मानता है कि आप लिनक्स या किसी अन्य * निक्स संस्करण का उपयोग कर रहे हैं। एक SIGTERM ऑपरेटिंग सिस्टम से विशिष्ट प्रक्रिया के लिए एक टर्मिनेट सिग्नल है जो इसे चलना बंद करने के लिए कहता है। यह प्रक्रिया को इनायत से समाप्त करने की कोशिश करता है।
इसे गलत करने के परिणामस्वरूप आप आवश्यक OS प्रक्रियाओं को समाप्त कर सकते हैं इसलिए टाइप करते समय सावधान रहें।
आप pid
पा सकते हैं , प्रक्रिया आईडी, निम्न क्वेरी चलाकर, जो आपको टर्मिनल जैसी उपयोगी जानकारी भी बताएगी जिससे प्रक्रिया चल रही है और उपयोगकर्ता नाम जो इसे चला रहा है ताकि आप सुनिश्चित कर सकें कि आपने सही चुना है।
select p.*
from v$process p
left outer join v$session s
on p.addr = s.paddr
where s.sid = ?
and s.serial# = ?
एक बार फिर, यदि आप आरएसी चला रहे हैं तो आपको इसे थोड़ा बदलना होगा:
select p.*
from Gv$process p
left outer join Gv$session s
on p.addr = s.paddr
where s.sid = ?
and s.serial# = ?
where
बदलना क्लॉज टू where s.status = 'KILLED'
आपको पहले से ही समाप्त हो चुकी प्रक्रिया को खोजने में मदद मिलेगी जो अभी भी "चल रही" है।
kill -9 pid
उसी pid
का उपयोग करना आपने 2 में उठाया, एक सिगकिल ऑपरेटिंग सिस्टम से एक विशिष्ट प्रक्रिया के लिए एक संकेत है जो प्रक्रिया को तुरंत समाप्त करने का कारण बनता है। टाइप करते समय एक बार फिर सावधान रहें।
यह शायद ही कभी आवश्यक होना चाहिए। यदि आप डीएमएल या डीडीएल कर रहे थे तो यह किसी भी रोलबैक को संसाधित होने से रोक देगा और मई विफलता की स्थिति में डेटाबेस को एक सुसंगत स्थिति में पुनर्प्राप्त करना कठिन बना देता है।
<ब्लॉकक्वॉट>शेष सभी विकल्प सभी सत्रों को मार देंगे और आपके डेटाबेस में परिणाम देंगे - और 6 और 7 सर्वर के मामले में भी - अनुपलब्ध हो जाएंगे। इनका उपयोग केवल अति आवश्यक होने पर ही किया जाना चाहिए...
<एच3>4. ओरेकल - डेटाबेस को शट डाउन करेंshutdown immediate
यह वास्तव में SIGKILL . की तुलना में विनम्र है , हालांकि स्पष्ट रूप से यह आपकी विशिष्ट प्रक्रिया के बजाय डेटाबेस में सभी प्रक्रियाओं पर कार्य करता है। यह हमेशा है अपने डेटाबेस के प्रति विनम्र होना अच्छा है।
डेटाबेस को शट डाउन करना केवल आपके डीबीए की सहमति से ही किया जाना चाहिए, यदि आपके पास एक है। डेटाबेस का उपयोग करने वाले लोगों को भी बताना अच्छा लगता है।
यह डेटाबेस को बंद कर देता है, सभी सत्रों को समाप्त कर देता है और एक rollback
करता है सभी अप्रतिबंधित लेनदेन पर। यदि आपके पास बड़े अप्रतिबंधित लेनदेन हैं जिन्हें वापस रोल करने की आवश्यकता है तो इसमें कुछ समय लग सकता है।
5. ओरेकल - डेटाबेस को शट डाउन करें (कम अच्छा तरीका)
shutdown abort
यह लगभग SIGKILL . के समान है , हालांकि एक बार फिर डेटाबेस में सभी प्रक्रियाओं पर। यह सब कुछ तुरंत रोकने और मरने के लिए डेटाबेस के लिए एक संकेत है - एक कठिन दुर्घटना। यह सभी सत्रों को समाप्त करता है और कोई रोलबैक नहीं करता है; इस वजह से इसका मतलब यह हो सकता है कि डेटाबेस startup
. में अधिक समय लेता है दोबारा। आग लगाने वाली भाषा के बावजूद shutdown abort
शुद्ध बुराई नहीं है और इसे सामान्य रूप से सुरक्षित रूप से इस्तेमाल किया जा सकता है।
पहले की तरह लोगों को पहले संबंधित लोगों को सूचित करें।
<एच3>6. ओएस - सर्वर को रीबूट करेंreboot
जाहिर है, यह न केवल डेटाबेस को रोकता है बल्कि सर्वर भी सावधानी के साथ और डीबीए, डेवलपर्स, क्लाइंट और उपयोगकर्ताओं के अलावा आपके sysadmins की सहमति के साथ उपयोग करता है।
<एच3>7. ओएस - अंतिम चरणमैंने रिबूट किया है काम नहीं किया... एक बार जब आप इस स्तर पर पहुंच जाते हैं तो आप बेहतर उम्मीद करते हैं कि आप वीएम का उपयोग कर रहे हैं। हमने इसे हटा दिया...