আমি কি ওরাকল ডাটাবেসের এসআইডি পরিবর্তন করতে পারি?


18

সার্ভারটি হল ওরাকল ডেটাবেস 11 জি এন্টারপ্রাইজ সংস্করণ প্রকাশ 11.1.0.7.0 - 64 বিট

সার্ভারে টেস্ট ডাটাবেসের এসআইডি পরিবর্তন করার কোনও সহজ ও দ্রুত উপায় আছে?

বাদ দেওয়া এবং ডাটাবেস পুনরুদ্ধার করা আমার জন্য একটি বিকল্প। তবে আমি এমন কিছু বিষয় খুঁজছি যা কম সময়ের জন্য প্রয়োজন।

ক্লায়েন্ট tnsnames.ora- এ নাম নির্ধারণ করার জন্য অন্য বিকল্পটি ত্রুটির ঝুঁকিতে রয়েছে, কারণ তারা কেন্দ্রীয়ভাবে প্রশাসনিক নয়।

এসকিউএল-সার্ভারে ড্রপ এবং ডেটাবেস তৈরির সময়ের সাথে তুলনা করে, নতুন ওરેકল ডাটাবেস তৈরি করতে প্রয়োজনীয় সময়ের পরিমাণ অত্যধিক বেশি। এসকিউএল-সার্ভারের উপরে আপনি এসকিউএল-সার্ভারের উদাহরণগুলির নাম পরিবর্তন করতে পারেন। [সাধারণত আপনি যেখানে এসকিউএল-সার্ভার চলছে সেই সার্ভারটির পুনরায় নামকরণ করুন এবং আপনি সার্ভারটিরও পুনরায় নামকরণ না করা পর্যন্ত কিছু সমস্যা রয়েছে]।


আপনি উল্লেখ করেছেন যে আপনি ডাটাবেসগুলি ড্রপ এবং পুনরায় তৈরি করতে পারেন। আপনার কি প্রযোজনার ডাটাবেসে অ্যাক্সেস রয়েছে এবং এটির ব্যাকআপ রয়েছে? আপনি একই সাথে ডাটাবেসটি পুনরায় তৈরি করতে এবং এসআইডি পরিবর্তন করতে আরএমএন এবং সদৃশ কমান্ডটি ব্যবহার করতে পারেন।
সুমনিবোট

না আমি বিকাশের জন্য ডিবিএ এবং কিছু পরীক্ষার ওরাকল ডাটাবেস হিসাবে কাজ করি না।
bernd_k

2
আপনি যখন এসকিউএল সার্ভারে একটি ডাটাবেস ব্যবহার করবেন আপনি সাধারণত ওরাকলে একটি স্কিমা (= ব্যবহারকারী) ব্যবহার করেন। একই নামের অর্থ এই দুটি পৃথিবীতে একই জিনিসটির অর্থ নয়
a_horse_with_no_name

উত্তর:


13

যেহেতু 9i dbnewid ইউটিলিটি (এনআইডি) ডাটাবেসের নাম পরিবর্তন করতে (এবং প্রয়োজনে ডিবিআইডি) ব্যবহার করা যেতে পারে। যদি ডাটাবেসের নাম পরিবর্তন করা হয় তবে কেবল রিসেটলোগের প্রয়োজন নেই:

  • মাউন্ট মোডে 1 স্টার্টআপ ডাটাবেস

    shutdown immediate
    startup mount
  • ডাটাবেসের নাম পরিবর্তন করতে 2 রান এনআইডি:

    nid target=sys/syspassword@dbtns dbname=newname setname=YES
  • মাউন্ট মোডে 3 শাটডাউন এবং ডাটাবেস শুরু করুন:

    shutdown immediate
    startup mount
  • db_nameস্পাইলে 4 পরিবর্তন (বা ফাইল সম্পাদনা করার ক্ষেত্রে ফাইলে):

    alter system set db_name=newname scope=spfile;
  • 5 পাসওয়ার্ড ফাইল পুনরায় তৈরি করুন:

    orapwd file=orapwnewname password=syspassword
  • 6 স্টার্টআপ ডাটাবেস

    startup
  • 7 পোস্ট পুনঃনামকরণ পদক্ষেপ:

    change SID in listener.ora
    correct tnsnames.ora
    remove old trace directories
    change /etc/oratab (UNIX) or rename windows service using oradim

1
আমি এইভাবে একটি উইন্ডোজ সার্ভারে 4 ওরাকল ডাটাবেসটির নামকরণ করেছি। খুঁজছেন dbnewid ইউটিলিটি আমি দেখেছি oracle-base.com/articles/9i/DBNEWID.php যা কিছু অতিরিক্ত ব্যাখ্যা দিলেন।
bernd_k

1
প্রশ্নটি যখন ছিল তখন এটি একটি ভাল উত্তর: কীভাবে একটি ডাটাবেসটির নামকরণ করবেন। প্রশ্নটি হল: কীভাবে একটি এসআইডি পরিবর্তন করবেন।
আইকে_জেলফ

17

আপনাকে নিয়ন্ত্রণ ফাইলটি পুনরায় তৈরি করতে হবে

কাউনাইন আহমেদের এই পোস্টটিতে প্রয়োজনীয় পদক্ষেপগুলি বর্ণনা করা হয়েছে:

  1. কর: ট্রেস করতে ডাটাবেস ব্যাকআপ কন্ট্রোল ফাইল পরিবর্তন;
  2. ব্যাকগ্রাউন্ড-ডাম্প-গন্তব্য ট্রেসফিল ​​থেকে "কন্ট্রোল কন্ট্রিল ফাইল" কমান্ডটি বের করুন।
  3. শাটডাউন ডিবি।
  4. আপনার init.ora এ DB- নাম পরিবর্তন করুন এবং init.ora পরিবর্তন করুন
  5. এসআইডি পরিবর্তন করুন / ইত্যাদি / ওরাতাব বা / ভেরি / অপ্ট / ওরাকল / ওরাতাব
  6. আপনার পরিবেশে এসআইডি পরিবর্তন করুন এবং এটি উত্স করুন
  7. মাউন্ট-স্ট্যাটাস স্টার্টআপ মাউন্টে ডাটাবেস শুরু করুন
  8. অবস্থান 2 থেকে বিবৃতি দিয়ে নিয়ন্ত্রণ ফাইলটি পুনরায় তৈরি করুন।
  9. গ্লোবাল_নামের নতুন নামকরণের জন্য 10-এ পরিবর্তন করুন ডাটাবেসটি 10 ​​অনুসারে টিএনএস-কনফিগারেশন পরিবর্তন করুন $ ORACLE_HOME / নেটওয়ার্ক / অ্যাডমিন / *। বা SID এবং GLOBAL_NAME এর জন্য দেখুন

থ্রেডে রেফারেন্সযুক্ত অন্যান্য সরঞ্জাম রয়েছে।

আস্কটমের একটি পোস্ট এখানে প্রক্রিয়াটি আরও বিশদে উল্লেখ করে। এটি 10 ​​জি এর জন্য হলেও এটি এখনও কাজ করা উচিত।


5
উইন্ডোজ ব্যবহারকারীদের জন্য লক্ষণীয় বিষয় হল, নতুন পরিষেবা সেটআপ করার জন্য আপনাকে "ওড়াদিম" ইউটিলিটিও ব্যবহার করতে হবে।
Rew

9

হ্যাঁ, আপনি পারেন এবং এটিও বেশ সহজ।

ওরাকলে, ORACLE_SID কেবল ওরাকল ইনস্ট্যান্সের জন্য নাম এবং এটি DBNAME এর সাথে খুব বেশি কিছু করার নেই। পিআরডি নামের একটি ডাটাবেস, কোনও বৈধ নাম সহ দৃষ্টান্ত ব্যবহার করে পরিবেশিত হতে পারে। এসআইডি এবং ডিবিএনএম-এর মধ্যে সরাসরি কোনও সংযোগ নেই। এই সংযোগটি পরামিতিগুলি ব্যবহার করে তৈরি করা হয়েছে।

পরামিতি ফাইলটি $ {ORACLE_SID} .ora বা spfile {{ORACLE_SID} .ora হিসাবে চিহ্নিত হয় পরামিতি ফাইলটিতে পরামিতি ডিবি_নাম হয়। এখানেই ওরাকল ইনস্ট্যান্স এবং ডাটাবেসের মধ্যে সংযোগ তৈরি করা হয়েছে।

সুতরাং, আপনাকে একটি কন্ট্রোল ফাইলটি নতুন করে তৈরি করার দরকার নেই, আপনার নিড ব্যবহার করার দরকার নেই, আপনার প্যারামিটারফাইলে সঠিক নাম রয়েছে কিনা তা নিশ্চিত করুন, পুরানো ওরাকল ইনস্ট্যান্সটি নামিয়ে আনুন এবং ওআরএসিএলএসএসআইডি সেট করার পরে নতুন ওরাকল ইনস্ট্যান্স শুরু করুন make নতুন ওরাকল ইনস্ট্যান্স নামে। প্যারামিটারফাইল এবং পাসওয়ার্ড ফাইল উভয়ই তাদের নামের অংশ হিসাবে $ {ORACLE_SID using ব্যবহার করে খুঁজে পাওয়া যায়।

কন্ট্রোল ফাইলটি পুনরায় তৈরি করা কেবল তখনই প্রয়োজন যখন DBNAME পরিবর্তন করতে হয়। ক্লোন অপারেশনের পরে এনআইডি দরকার হয় যেখানে উত্স ডাটাবেসের ব্যাকআপগুলিকে আঘাত করতে পারে এমন দুর্ঘটনা রোধ করতে আপনার ডিবিআইডি পরিবর্তন করতে হবে।


+1 তবে আমি এখনও নিশ্চিত নই যে আমি DB_NAME কেও পরিবর্তন করতে চাই।
bernd_k

আপনি যদি চান: অবশ্যই, আপনি অন্যান্য উত্তরগুলি কীভাবে এটি করবেন তা সঠিকভাবে ব্যাখ্যা করেছে। কোন কারণে আপনি এটি করবেন? ডিবি_নাম খুব শারীরিক। Db_name জানা একটি ডিবিএর পক্ষে ভাল তবে বেশিরভাগের ক্ষেত্রে এটি অপ্রাসঙ্গিক। একটি সাধারণ একীভূত পদ্ধতির আপনার কাছে অনেক পরিষেবা পরিবেশন করে একটি ডেটাবেস থাকে। একটি পরিষেবা - অ্যাপ্লিকেশন - এটি কোন ডাটাবেসটি চলছে তা যত্ন নেওয়ার দরকার নেই।
আইক_জেলফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.