• Feed RSS

Pages

ટ્રનઝેક્શન લોગ ફૂલ શા માટે થાય છે અને તેના ઉપાય શા છે?
આ એક એવો સવાલ છે કે જેના માટે દરેક ફોરુમ્સ માં પુછાય છે જેના માટે વધુ માં વધુ બ્લોગ લખવામાં આવ્યા છે, હું પોતે પણ આ વીશે અગાઉ મારા બ્લોગ માં લખી ચુક્યો છું! આ અગાઉ જ્યારે લખ્યું હતું એ ફક્ત લીંક અને ટુંકાણ માં માહિતી હતી પરંતુ આ વખતે મારો પ્રયાસ આવો છે કે વીગતે માહિતી પ્રસ્તુત કરું.

ટ્રનઝેક્શન લોગ નું ફૂલ થઈ જવું એ એક એવી સમસ્યા છે કે જે સામાન્ય છે અને લગભગ દરેક ડેતાબેઝ એડમીન પોતાની કરિયર માં એક વખત તો આ આનુંભાવે જ છે. તો હવે તમને થતું હશે કે
૧ આ ટ્રનઝેક્શન લોગ શું છે ?
૨ શા માટે ટ્રનઝેક્શન લોગ ફૂલ થાય છે?
૩ શા માટે મારા સર્વર પર આ સમસ્યા છે?
૪ આ સમસ્યા નો ઉપાય શું છે?

અહા, આ બધું મને સમાજ નથી પડી, વારુ તો હવે આને વિગતે સમજીએ અને આ માટે એ સમજવું અનિવાર્ય છે કે "ટ્રનઝેક્શન લોગ" શું છે? અને એનું મહત્વ શું છે? "ટ્રનઝેક્શન લોગ" આ શબ્દ માજ "એનો અર્થ છે, "ટ્રનઝેક્શન" એટલે "આપ - લે" - "માહિતી ની આપલે" જ્યારે "લોગ" નો અર્થ થાય છે "નોધવું"
"ટ્રનઝેક્શન લોગ" નું કાર્ય એ છે કે જયારે જ્યારે આપને એસ કયું એલ સર્વર પર કોઈ પણ ટ્રનઝેક્શન કરીએ તે દરેક ની નોંધ રાખવી। આમ કરવા માટે નું કારણ એ છે કે આપણા જે કોઈ પણ ડેટા સ્ટોર કરીએ તે "કન્સીસટંત સ્ટેત" માં હોવા જોઈયે, તદુપરાંત "ટ્રનઝેક્શન લોગ" ની મદદ થી આપણે "ડીઝાસ્ટર રીકવરી" પ્લાન કરી શકીએ છીએ; દાખલા તરીકે "લોગ શીપીંગ", " ડેટાબેઝ મીરરીંગ" તેમજ "પોઈન્ટ ઇન ટાઈમ રીકવરી" (આ બધા વિષે હું નવા આર્ટીકલ માં વિગતે જણાવીશ)


તો હવે આપણે જાણીએ છે કે "ટ્રનઝેક્શન લોગ" નું મહત્વ શું છે અને તે શું કરે છે, હવે જાણીએ કે તે ફૂલ શા માટે થાય છે અને કઈ રીતે એને અટકાવી શકાય.

"ટ્રનઝેક્શન લોગ ફૂલ થાય જવાના કારણ અને એના ઉપાય"

૧ "ટ્રનઝેક્શન કમિટેડ નથી"
-> એપ્લીકેશન કોડીંગ કરતી વખતે એ વાત નું ખાસ ધ્યાન રાખો કે દરેક "ટ્રનઝેક્શન" ને તમે બીગીન અને કમીટ માં આવરી લો। આમ કરવાથી તમારા દરેક "ટ્રનઝેક્શન" કમીટ થશે અને "કન્સીસટંત" રહેશે, અને તમને "બ્લોકીંગ" ની મુસીબત થી પણ છુટકારો મળશે

૨. "ટ્રનઝેક્શન ઓપન નથી પણ લાંબા સમય થી એક્ટીવ છે"

--> આ એવા ટ્રનઝેક્શન છે કે, જયારે યુઝર કોઈ ક્વેરી કરી રહ્યો હતો અને કોઈ કારણવશ એનું કમ્પ્યુટર હેંગ થઇ ગયું અથવાતો રીબુટ કે શટડાઉન થઇ ગયું હોઈ અને નેટવર્ક આ માહિતી એસ કયું એલ સર્વર ને પહોચાડી શકતું નથી જેથી ડેટાબેઝ સર્વર એવું સમજે છે કે "ટ્રનઝેક્શન ઓપન નથી પણ લાંબા સમય થી એક્ટીવ છે" આવા પ્રકાર ના સેશન ડીબીસીસી ઈનપુટબફર(એસ્પિઆઇડિ) થી કિલ કરી શકાય છે પરંતુ સાવચેતી થી કેમકે ઘણી વખત આ પ્રોસેસ ૪ ગણો સમય લે છે ખાસ કરી ને જ્યારે રોલબેક થાય છે. કિલ કમાંડ કેવી રીતે કામ કરે છે તે જાણ વા માટે વાંચો


૩. "ઇન્ડેક્ષ્ ક્રિએટ કરતી વખતે કે મોડીફાઇ કરતી વખતે"

--> મારા મત મુજબ આ સૌથી અગત્ય નો મુદ્દો છે; ઇન્ડેક્ષ્ ક્રિએટ કરતી વખતે કે મોડીફાઇ કરતી વખતે ખાસ ધ્યાન રાખો કારણકે આ ઓપરેશન ફુલ્લી લોગ્ડ છે અને ૧૫૦% જગ્યા હોવી જરૂરી છે દાખલા તરીકે જો તમારા ટેબલ ની સાઈઝ ૧ જીબી છે તો તમારી પાસે ૧.૫ જીબી જગ્યા ફ્રિ હોવી જરૂરી છે. તદુપરાંત, જયારે પણ તમે ડીબીસીસી ડીબીરીઇન્ડેક્ષ્ એક્ઝીક્યુંટ કરો છો ત્યારે એ ઇન્ડેક્ષ્ ને ડ્રોપ કરી ને રીક્રીએટ કરે છે* (જો તમે ઇન્ડેક્ષ્ નું નામ નથી આપતા તો આ ટેબલ ના બધાજ ઇન્ડેક્ષ્ પર આ ઓપરેશન થશે). હું એવી સલાહ આપીશ કે તમે જયારે રીઇન્ડેક્ષ્ કરવાના હોઉં તે પહેલા ડીબીસીસી શોકોન્તીગ અથવા તો સીસ.ડીમ_ડીબી_ઇન્ડેક્ષ્_ફીઝીકલ_સ્ટેટસ નું આઉટપુટ વાંચો અને આ માહિતી ના આધારે ઇન્ડેક્ષ્ રીક્રિએટ અથવા તો ડીબીરીઇન્ડેક્ષ્ કરો.

૪. "બલ્ક ઓપરેશન"

--> બલ્ક ઓપરેશન લોગ્ડ ઓપરેશન હોવાના કારણે લોગ ફાઈલ ની સાઈઝ વધે છે, માટે જયારે પણ બલ્ક ઓપરેશન કરો ત્યારે તમે આ નાના ચંક માં કરી શકો તો ઘણું સારું.

૫. "ઓટો ગ્રોથ"

--> ઓટો ગ્રોથ ઓપ્શન જો કાળજી પૂર્વક કન્ફિગર કરવામાં નહી આવ્યું હોય તો આ ખરેખર એક મોટી મુશ્કેલી છે કેમકે જો ડેટાબેઝ સાઈઝ હ્યુજ હોઈ જેમકે ૧૦૦+ગીગ્સ અથવા વધારે હોઈ અને જો તમે ઓટો ગ્રોથ ઓપ્શન % માં રાખ્યું હોઈ તો તમે તમરી ડિસ્ક આઈ/ઓ વધી જશે અને પરફોર્મન્સ માં નોંધપાત્ર ઘટાડો વર્તાશે, વધુ અહી વાંચો


૬. "ગ્રુપ બાય અથવા ઓર્ડર બાય "

--> આપને બધાજ જાણીએ છે કે ગ્રુપ બાય અથવા ઓર્ડર બાય રીઝુલ્ત ને રિસોર્ટ કરે છે જે અને આ માટે પણ જગ્યા રોકાય છે અને માટે જો અનિવાર્ય હોય તો j ગ્રુપ બાય અથવા ઓર્ડર બાય નો ઉપયોગ કરો

૭. " ટ્રનઝેક્શન રેપ્લીકેશન"

--> જો તમે ટ્રનઝેક્શન રેપ્લીકેશન ક્ન્ફીગર કર્યું હોઈ અને કોઈ કારણવશ અમુક ટ્રનઝેક્શન કે જે રેપ્લીકેશન માટે માર્ક છે પણ રેપ્લીકેટ નથી થયા તે બધા જ તમારા ટ્રનઝેક્શન લોગ માં હોઈ છે અને જગ્યા રોકે છે, માટે ટ્રનઝેક્શન રેપ્લીકેશન મોનીટર ઓપન કરો અને રેપ્લીકેશન સિંક કરો.

૮. "ટ્રનઝેક્શન લોગ બેકઅપ નથી થયું"

--> ટ્રનઝેક્શન લોગ બેકઅપ એ સૌથી અસરકારક ઉપાય છે કે જે ટ્રનઝેક્શન લોગ ને શેપ માં રાખે છે દાખલા તરીકે દર ૧૫ મિનીટ બાદ ટ્રનઝેક્શન લોગ બેકઅપ શીડ્યુલ કરો.


સાર: ટ્રનઝેક્શન લોગ, દરેક ટ્રનઝેક્શન ને લોગ કરે છે અને જો તમે તમારા ડેટાબેઝ ને ફૂલ રીકવરી મોડ માં રાખ્યો હોઈ તો ટ્રનઝેક્શન લોગ ફૂલ થઇ જવાની શક્યતા ઘણી વધુ છે, માટે હમેશા ટ્રનઝેક્શન લોગ બેકઅપ શેડ્યુલ કરો.

અંગ્રેજી વર્ઝન: http://www.sql-server-citation.com/2009/08/how-to-get-rid-off-from-transaction-log.html

વાચક મિત્રો,

આજે હું નવો બ્લોગ શરુ કરું છું અને આ માટે ઘણા ઉત્સાહ અને આનંદ ની લાગણી અનુભવું છું, કેમકે આ બ્લોગ હું ગુજરાતી માં લખવાનો છું કે જે કદાચ પહેલો ગુજરાતી બ્લોગ હશે જે એસ કયું એલ સરવર માટે લખાતો હશે. ભવિષ્ય માં હું એસ કયું એલ સરવર માટે એક પુસ્તક પણ પ્રકાશિત કરવાની ઈચ્છા ધરાવું છું. મારો એક બ્લોગ કે જે હું એસ કયું એલ સરવર (અંગ્રેજી માં) પર લખું છું http://www.sql-server-citation.com/ અને ઘણો જ પોપ્યુલર છે તેને ૨૦૦૭ થી અત્યાર સુધી આ બ્લોગ પર ૧૬૫૦૦ કરતા પણ વધુ હીટ મળી છે.

આશા રાખું કે મારો આ પ્રયાસ પણ સફળ રહે, અને મારા એસ કયું એલ સરવર (ગુજરાતી) બ્લોગ કે જે સર્વ પ્રથમ ગુજરાતી બ્લોગ છે ને વાચકો પસંદ કરે.

-- હેમંતગીરી એસ. ગોસ્વામી