কীভাবে দ্রুত স্টার্টআপ / শাটডাউন ওরাকল 11?


9

আমি ভাবছি যে কোনও ওরাকল ডিবি ডিমন (ওরাকল ১১.২, একটি পরীক্ষা মেশিনে ইনস্টল করা) সঠিকভাবে স্টার্টআপ / শাটডাউন করার দ্রুততম উপায় কী?

আমার এটি সি / সি ++ প্রোগ্রামগুলির জন্য প্রয়োজন যা ওসিআই / প্রো * সি এপিআই ব্যবহার করে।

আমি এটি চাই কারণ পোস্টগ্রিএসকিউএলএর প্রারম্ভিক গতিতে আমি অভ্যস্ত, এবং ডেমনটি ভার্চুয়াল মেশিনে চলে যা কেবল পরীক্ষার ক্ষেত্রে শুরু হয় (অন-ডিমান্ড)।

বর্তমানে আমি এটির মতো স্ক্রিপ্ট করছি - প্রারম্ভকালীন:

sqlplus /nolog <<EOF
connect / as sysdba
startup
quit
EOF
lsnrctl start
emctl start dbconsole

এবং শাটডাউন:

emctl stop dbconsole
lsnrctl stop
sqlplus /nolog <<EOF
connect / as sysdba
shutdown
quit
EOF

এটি কাজ করে - প্রোগ্রামগুলি প্রত্যাশা অনুযায়ী কাজ করে - তবে এই পদ্ধতিটি বেশ ধীর।

ওরাকল ডিবি সেন্টোস .3.৩ এ চালিত, এটি নিখরচায় (যেমন-ইন-বিয়ার) উপলব্ধ 'স্ট্যান্ডার্ড সংস্করণ'।

উত্তর:


8

আপনি dbstart/ dbshutস্ক্রিপ্টগুলি ব্যবহার করতে পারেন যা একটি ওরাকল ইনস্টল সহ আসে। তারা অধীনে উপলব্ধ $ORACLE_HOME/bin

নতুন ইনস্টল করার পরে আপনাকে /etc/oratabফাইলটি সম্পাদনা করতে হবে:

# cat /etc/oratab
# format: $ORACLE_SID:$ORACLE_HOME:N|Y
my_sid:/home/juser/app/juser/product/11.2.0/dbhome_1:N
# sed -i 's/:N$/:Y/' /etc/oratab
# grep my_sid /etc/oratab
my_sid:/home/juser/app/juser/product/11.2.0/dbhome_1:Y

তারপরে আপনি স্ক্রিপ্টগুলি এর মতো ব্যবহার করতে পারেন:

$ whoami
juser
$ dbstart $ORACLE_HOME
$ # execute DB jobs ...
$ dbshut $ORACLE_HOME

dbstart প্রো * সি / ওসিআই প্রোগ্রামগুলির জন্য প্রয়োজনীয় সমস্তগুলি এনেছে।

প্রশ্নে উল্লিখিত কাস্টম পদ্ধতির উপরে dbstart/ ব্যবহার dbshutউন্নতি:

method                time    called tools
―――――――――――――――――――――――――――――――――――――――――――――――――――――
dbstart              5.7 s    lsnrctl, sqlplus
dbshut               5.7 s    lsnrctl, sqlplus
custom startup      27.9 s    lsnrctl, sqlplus, emctl
custom shutdown     31.0 s    lsnrctl, sqlplus, emctl

(একটি কোর i7 / 2.8GHz সিস্টেমে বার, ধীরে ধীরে স্পিনিং হার্ড ডিস্ক)

কিভাবে dbstart / dbshut কাজ করে

একটি dbstart $ORACLE_HOME$কল মূলত: সমান

$ lsnrctl start
$ echo -e 'connect / as sysdba\nstartup\nquit'| sqlplus /nolog

এবং একটি dbshut $ORACLE_HOME$মূলত:

$ lsnrctl stop
$ echo -e 'connect / as sysdba\nshutdown\nquit'| sqlplus /nolog

(আপনি যদি সবকিছু দিয়ে শাটডাউন করে যাচাই করতে পারেন ps aux | grep 'tnsl\|ora')

লক্ষ্য করুন যে কমান্ডগুলির ক্রমটি গুরুত্বপূর্ণ। এর অর্থ যখন lsnrctl startস্ক্যালপ্লাস-স্টার্টআপ কমান্ডের পরে মৃত্যুদন্ড কার্যকর করা হয় তখন প্রো * সি / ওসিআই প্রোগ্রামটি এখনও অপ্রাপ্য টিএনএস-শ্রোতার অভিযোগ করে।

এবং এটি হ'ল প্রশ্নটির কমান্ড সিকোয়েন্সের সাথে ঠিক একই সমস্যা - যেখানে emctl startস্রেফ ভুল ক্রমটি কার্যকর করা হয় কারণ এটি টিএনএস-শ্রোতার সেটআপ অংশটি ঠিক করে।

আরও লক্ষ করুন যে প্রো * সি / ওসিআই প্রোগ্রামগুলি সম্পাদন করার জন্য ইএমসিটিএল পরিষেবাটির প্রয়োজন নেই।


1

আপনার এটার দরকার কেন? কারণ কি? শাটডাউন করার জন্য আপনার কাছে 3 টি বিকল্প রয়েছে:

  • প্লেইন shutdown- সেশন শেষ হওয়ার জন্য অপেক্ষা করে
  • shutdown immediate - রোলব্যাক এবং শেষ সেশন (রোলব্যাক সমাপ্তির জন্য অপেক্ষা করে)
  • shutdown abort - সমস্ত কিছু মেরে ফেলে - সাধারণত ডাটাবেসের শুরুতে কিছুটা পুনরুদ্ধার করতে হয়।

PS: আপনার চালানোর জন্য সম্ভবত এন্টারপ্রাইজ ম্যানেজারের দরকার নেই, যদি কেবলমাত্র পরীক্ষার জন্য আপনার ডাটাবেসের প্রয়োজন হয়। ওরাকল dbstart/ dbshutস্ক্রিপ্টগুলি ব্যবহার করুন । আপনার যদি সত্যিই EM দরকার হয় তবে এটি ব্যাকগ্রাউন্ডে শুরু করুন।


0

ইয়াসির-আরসানুকায়েভ : আপনি কি আপনার ভিএম এর ডিস্কে তার অবস্থা সংরক্ষণ করে থামিয়ে (স্থগিত) করতে পারেন?

কলিন-টি-হার্ট : এটি যদি কোনও পরীক্ষার মেশিন হয় তবে একটি স্ন্যাপশট তৈরি করুন। মেশিনটি শুরু করুন এবং ওরাকল ব্যবহার করে শুরু করুনdbstart। কাজটি শেষ হয়ে গেলে কেবল মেশিনটি জোর করে বন্ধ করুন এবং স্ন্যাপশটে রোলব্যাক করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.