আমি একটি উইন্ডোজ 2003 সার্ভারে একটি ওরাকল 11.2.0.3 ইনস্টলেশনের পরিষেবার নামটি পরিবর্তন করার চেষ্টা করছি।
ইনস্টলেশন চলাকালীন পরিষেবাটির নামটি ডিফল্ট ডোমেন দিয়ে সংজ্ঞায়িত করা হত তবে আমরা এ থেকে মুক্তি পেতে চাই।
দেখি এ পর্যন্ত কাজ করেছেন (এবং আগে কি কাজ করেছে) পরিষেবা নাম পরিবর্তন করতে mydb.foo.bar
করতে mydb
শুধুমাত্র:
alter system set service_names = 'mydb' scope = both;
alter database rename global_name to mydb;
যা কাজ করেছে বলে মনে হয়:
এসকিউএল> প্যারামিটারের নাম প্রদর্শন করুন নাম টাইপ মান ------------------------------------ ----------- --- --------------------------- db_name স্ট্রিং mydb ডিবি_উনিক_নাম স্ট্রিং মাইডিবি গ্লোবাল_নাম বুলিয়ান মিথ্যা উদাহরণ_নাম স্ট্রিং মাইডিবি পরিষেবা_নাম স্ট্রিং মাইডিবি b এসকিউএল>
(আমি উপরের আউটপুট থেকে কিছু সম্পত্তি সরিয়েছি যা প্রাসঙ্গিক নয়)
তারপরে alter system register
শ্রোতাদের সাথে পুনরায় নিবন্ধকরণ করতে ব্যবহার করুন ।
এটি কোনও প্রভাব দেখায়নি তাই আমি ডাটাবেস এবং শ্রোতার পুনরায় চালু করেছি, এখনও ভাগ্য নেই।
বর্তমান পরিস্থিতি নিম্নরূপ:
select name from v$active_services
আয়:
SERVICE_ID | নাম | আন্তঃজাল নাম ----------- + + ----------------- + + -------------------- 1 | এসওয়াইএস $ ব্যাকগ্রাউন্ড | 2 | এসওয়াইএস $ ব্যবহারকারী | 3 | mydb | mydb 5 | mydbXDB | mydbXDB 6 | mydb.foo.bar | mydb.foo.bar
সুতরাং কোনও কারণে পুরাতন পরিষেবার নামটি এখনও আছে এবং চলছে।
পরিষেবাটি ব্যবহার করে থামানোর চেষ্টা করার সময়
এসকিউএল> exec dbms_service.stop_service ('mydb.foo.bar'); পিএল / এসকিউএল প্রক্রিয়া সফলভাবে সম্পন্ন হয়েছে।
কোনও ত্রুটির খবর পাওয়া যায়নি, তবে পরিষেবাটি মোছার চেষ্টা করার সময়, ওরাকল আমাকে ছাড়তে দেবে না:
এসকিউএল> exec dbms_service.delete_service ('mydb.foo.bar'); BEGIN dbms_service.delete_service ('mydb.foo.bar'); শেষ; * লাইন 1 এ ত্রুটি ORA-44305: পরিষেবা mydb.foo.bar চলছে ORA-06512: "SYS.DBMS_SYS_ERROR" এ, লাইন 86 ORA-06512: "SYS.DBMS_SERVICE", 454 নম্বরে ORA-06512: "SYS.DBMS_SERVICE" এ, লাইন 343 ORA-06512: লাইন 1 এ
আমি যাচাই করেছি যে পরিষেবাটি ব্যবহার করে আমার কোনও মুক্ত সংযোগ নেই:
select count(*)
FROM v$session
where service_name = 'mydb.foo.bar';
ফিরে 0
(শূন্য)
আমি ওড়াদিম ব্যবহার করে উইন্ডোজ পরিষেবাটি আবারও তৈরি করেছিলাম, তবে কোনও ফলসই হয়নি।
একপর্যায়ে দৌড়ে গেলাম
alter system set service_names = 'mydb,mydb.foo.bar' scope = both;
আমার এখন দুজনেরই কারণ হতে পারে?
তবে কেবলমাত্র একটি নামেই পরিষেবা_নাম পরিবর্তন করার পরে, দ্বিতীয়টিরটি চলে যাওয়া উচিত ছিল, তাই না?
যদি আমি দ্বিতীয় পরিষেবাটি যেতে না পারি তবে দীর্ঘক্ষণের চেয়ে শর্ট সার্ভিসের নাম ব্যবহার করে শ্রোতার সাথে উদাহরণটি নিবন্ধন করা যথেষ্ট হবে।
আমি নিশ্চিত যে আমি বেশ সুস্পষ্ট কিছু মিস করছি, তবে এটি কী তা বুঝতে পারি না।