আমি আমাদের এসকিউএল সার্ভার বিকাশ কর্মীদের জন্য একটি টেস্ট পরিবেশ তৈরি করার প্রক্রিয়াধীন।
উত্পাদনে আমাদের কাছে 3 টি এসকিউএল সার্ভার SQL01
রয়েছে , মিরর করা বেশ কয়েকটি ডাটাবেস রয়েছে SQL02
। SQL03
"স্বয়ংক্রিয় ফেইলওভার সহ উচ্চ সুরক্ষা" বা সিঙ্ক্রোনাস কনফিগারেশনে সাক্ষী হিসাবে কাজ করে।
আমি তিনটি মেশিনকে পৃথক হার্ডওয়্যারে ভার্চুয়ালাইজ করার জন্য VMWare P2V ব্যবহার করেছি, মেশিনগুলির এসআইডি'র পুনর্গঠন করেছি এবং এই নতুন মেশিনগুলি থেকে আমাদের প্রোডাকশন সার্ভারের আইপি ঠিকানাগুলি ব্ল্যাকহুল করেছি।
আমি প্রথমদিকে প্রডাকশন সাক্ষী মেশিনকে ব্ল্যাকহোল করতে ভুলে গিয়েছিলাম, তাই টেস্ট মেশিনে থাকা ডেটাবেসগুলি এখনও SQL03
মেশিনটিকে সাক্ষী হিসাবে ব্যবহার করছিল । বিষয়টি লক্ষ্য করে, আমি সদ্য ভার্চুয়ালাইজড টেস্ট সাক্ষীর দিকে ইঙ্গিত করতে, এটি কল করার জন্য টেস্টে থাকা ডাটাবেসগুলি পুনরায় কনফিগার করার সিদ্ধান্ত নিয়েছি TEST03
।
নতুন সাক্ষীকে ব্যবহার করতে ডাটাবেসটি পুনরায় কনফিগার করতে আমি প্রাথমিক সার্ভারে নিম্নলিখিত কমান্ডটি প্রবেশ করলাম TEST01
:
ALTER DATABASE [TestDB] SET WITNESS = 'TCP://TEST03.domain.inet:5022';
প্রতিক্রিয়াটি অপ্রত্যাশিত ছিল:
The ALTER DATABASE command could not be sent to the remote server instance
'TCP://TEST03.domain.inet:5022'. The database mirroring configuration was
not changed. Verify that the server is connected, and try again.
কনফিগারেশনটি প্রোডাকশন মেশিনগুলিতে কাজ করে এবং টেস্ট মেশিনগুলিতে কোনওভাবেই পরিবর্তন করা হয়নি বলে এই ত্রুটি বার্তায় আমি খুব বিস্মিত হয়েছিলাম।
এটি কাজ করার জন্য আমাকে LOGIN
পরীক্ষার সাক্ষী তৈরি করতে হবে :
CREATE LOGIN [DOMAIN\SQLServiceAccount] FOR WINDOWS WITH DEFAULT_DATABASE [Master];
এবং GRANT
এটি CONNECT
প্রশ্নের শেষ পয়েন্টে অধিকার:
GRANT CONNECT ON ENDPOINT::Mirroring TO [DOMAIN\SQLServiceAccount];
আমি তখন পরীক্ষার পরিবেশে মিররযুক্ত ডেটাবেসগুলিকে সফলভাবে নতুন পরীক্ষার সাক্ষীর দিকে নির্দেশ করতে সক্ষম হয়েছি।
সুরক্ষা এর সাথে কী জড়িত তা দেখার জন্য আমি কীভাবে প্রযোজনীয় সাক্ষীর শেষ পয়েন্টটি পরিদর্শন করতে পারি?
আমি ধরে নিয়েছি এমন কিছু সিস্টেম ক্যাটালগ থাকতে হবে যা আমি পরিদর্শন করতে পারি, তবে বুকস অন-লাইনে এন্ডপয়েন্টসটির জন্য নির্দিষ্ট কিছু নেই বলে মনে হয়, এবং বিং ভাল, বিংলেস ...
অতিরিক্ত তথ্য:
SELECT ep.endpoint_id, p.class_desc, p.permission_name, ep.name, sp.name
FROM sys.server_permissions p
INNER JOIN sys.endpoints ep ON p.major_id = ep.endpoint_id
INNER JOIN sys.server_principals sp ON p.grantee_principal_id = sp.principal_id
WHERE class = '105';
আয়:
endpoint_id class_desc permission_name endpoint_name principal_name
2 ENDPOINT CONNECT TSQL Local Machine public
3 ENDPOINT CONNECT TSQL Named Pipes public
4 ENDPOINT CONNECT TSQL Default TCP public
5 ENDPOINT CONNECT TSQL Default VIA public
এবং:
SELECT name, endpoint_id, protocol_desc, type_desc, role_desc
FROM sys.database_mirroring_endpoints;
রিটার্নস:
name endpoint_id protocol_desc type_desc role_desc
Mirroring 65536 TCP DATABASE_MIRRORING WITNESS
sys.server_permissions
মিররিং শেষ পয়েন্ট অবজেক্টটির জন্য কোনও প্রবেশ নেই বলে মনে হয় । না major_id
এবং কোনও minor_id
মিল নেই 65536 Also এছাড়াও, সিস্টেম ডাটাবেসের কোনওটিতেই শেষ পয়েন্টের কোনও উল্লেখ নেই।
আমি ক্ষতিতে আছি