المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

معلومات أساسية

المشكلة

إجراء نقل sessionMgr من أولوية Primary و Change SessionMgr في مجموعة نسخة متماثلة

الاقتراب رقم 1

الاقتراب الثاني

المقدمة

يصف هذا المستند إجراء نقل sessionMgr من الدور الأساسي وتغيير أولوية sessionMgr في مجموعة النسخ المتماثلة ل Cisco Policy Suite (CPS).

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- لينكس

- CPS

- مونغو دي بي

cisco يوصي أن أنت ينبغي يتلقى امتياز جذر منفذ إلى CPS CLI.

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- CPS 20.2

- MongoDB الإصدار 3.6.17

- UCS-B

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

يستخدم CPS MongoDB حيث يتم تشغيل العمليات أحادية الإتجاه على SessionMgr Virtual Machine (VMs) لتكوين بنية قاعدة البيانات الأساسية الخاصة به. يحتوي على مجموعات نسخ متماثلة متعددة لأغراض مختلفة، وهي Admin ومستودع ملف تعريف المشترك (SPR) والرصيد والجلسة وإعداد التقارير والمراجعة.

مجموعة النسخ المتماثلة في MongoDB هي مجموعة من العمليات أحادية الإتجاه التي تحافظ على نفس مجموعة البيانات. توفر مجموعات النسخ المتماثلة إمكانية تكرار فائقة وقابلية توفر عالية.من خلال نسخ متعددة من البيانات على خوادم قواعد بيانات مختلفة، فإنها تسمح بعمليات قراءة LoadShare.

تحتوي مجموعة النسخ المتماثلة على عدة عقد تحمل بيانات وعقدة وسيط واحدة بشكل إختياري. من العقد التي تحمل البيانات، يتم إعتبار عقدة أساسية لعضو واحد فقط، بينما يتم إعتبار العقد الأخرى عقد ثانوية (يمكن أن تحتوي مجموعة النسخ المتماثلة على العديد من العقد الثانوية). تقوم العقدة الأساسية بمعالجة كافة عمليات الكتابة.

تقوم الشركات الثانوية بنسخ سجلات العمليات الأساسية (oplog) وتطبيق العمليات على مجموعات البيانات الخاصة بها بحيث تعكس مجموعات بيانات الشركات التابعة مجموعة بيانات المراكز الرئيسية. في حالة عدم توفر الأساسي، يجري الشخص الثانوي المؤهل انتخابات لاختيار نفسه للأساسي الجديد. يشارك حكم في الانتخابات لكنه لا يملك بيانات.

للحصول على حالة مجموعات النسخ المتماثلة، قم بتشغيل الأمر diagnostics.sh —get_r من ClusterManager أو pcrfclient.

يتم تزويد هنا عينة من مجموعة النسخ المتماثلة ie. set07.

| SET NAME - PORT : IP ADDRESS - REPLICA STATE - HOST NAME - HEALTH - LAST SYNC -PRIORITY

|----------------------------------------------------------------------------------------------------------------------------------------|

| SESSION:set07 |

| Status via arbitervip:27727 sessionmgr01:27727 sessionmgr02:27727 |

| Member-1 - 27727 : - SECONDARY - sessionmgr01 - ON-LINE - 0 sec - 2 |

| Member-2 - 27727 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

| Member-3 - 27727 : - PRIMARY - sessionmgr02 - ON-LINE - -------- - 3 |

|----------------------------------------------------------------------------------------------------------------------------------------|

للحصول على معلومات تكوين مجموعة النسخ المتماثلة، أستخدم هذه الخطوات.

الخطوة 1. قم بتسجيل الدخول إلى عضو MongoDB الأساسي لمجموعة النسخ المتماثلة هذه. قم بتشغيل هذا الأمر من ClusterManager.

Command template:

#mongo --host <sessionmgrXX> --port <Replica Set port>

Sample command:

#mongo --host sessionmgr02 --port 27727

الخطوة 2. قم بتشغيل الأمر للحصول على معلومات تكوين مجموعة النسخ المتماثلة.

set07:PRIMARY> rs.conf()

{

"_id" : "set07",

"version" : 2,

"members" : [

{

"_id" : 0,

"host" : "sessionmgr01:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 2,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 1,

"host" : "arbitervip:27727",

"arbiterOnly" : true,

"buildIndexes" : true,

"hidden" : false,

"priority" : 0,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 2,

"host" : "sessionmgr02:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 3,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

}

],

"settings" : {

"chainingAllowed" : true,

"heartbeatIntervalMillis" : 2000,

"heartbeatTimeoutSecs" : 1,

"electionTimeoutMillis" : 10000,

"catchUpTimeoutMillis" : -1,

"catchUpTakeoverDelayMillis" : 30000,

"getLastErrorModes" : {

},

"getLastErrorDefaults" : {

"w" : 1,

"wtimeout" : 0

},

"replicaSetId" : ObjectId("61cdb17a80b097a2e7604c97")

}

}

set07:PRIMARY>

ملاحظة: يعمل SessionMgr ذو الأولوية العليا في مجموعة النسخ المتماثلة كعضو أساسي.

المشكلة

لنفترض أن جلسة عمل تقوم بأداء دور عضو أساسي في مجموعة أو أكثر من مجموعات النسخ المتماثلة وفي هذه الحالات يجب نقل دور مجموعة النسخ المتماثلة الأساسي إلى جلسة عمل أخرى،

1. عند تنفيذ أي نشاط يتضمن إيقاف تشغيل VM لجلسة العمل هذه، لانتقال سلس.

2. إذا تدهورت صحة جلسة العمل بسبب سبب ما، للحفاظ على الوظيفة المناسبة لمجموعة النسخ المتماثلة مع بعض جلسات عمل أخرى صحيحة.

إجراء نقل sessionMgr من أولوية Primary و Change SessionMgr في مجموعة نسخة متماثلة

الاقتراب رقم 1

هنا تغيرت أولوية sessionMgr في مجموعة نسخ متماثلة مباشرة على مستوى MongoDB. فيما يلي الخطوات لنقل sessionMg02 من دور أساسي في set07.

الخيار 1. تغيير أولوية sessionMgr02.

الخطوة 1. قم بتسجيل الدخول إلى عضو MongoDB الأساسي لمجموعة النسخ المتماثلة هذه.

Command template:

#mongo --host <sessionmgrXX> --port <Replica Set port>

Sample command:

#mongo --host sessionmgr02 --port 27727

الخطوة 2. قم بتشغيل الأمر للحصول على معلومات تكوين مجموعة النسخ المتماثلة.

set07:PRIMARY> rs.conf()

{

"_id" : "set07",

"version" : 2,

"members" : [

{

"_id" : 0, -----> Position 0

"host" : "sessionmgr01:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 2,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 1, -----> Position 1

"host" : "arbitervip:27727",

"arbiterOnly" : true,

"buildIndexes" : true,

"hidden" : false,

"priority" : 0,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 2, -----> Position 2

"host" : "sessionmgr02:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 3,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

}

],

"settings" : {

"chainingAllowed" : true,

"heartbeatIntervalMillis" : 2000,

"heartbeatTimeoutSecs" : 1,

"electionTimeoutMillis" : 10000,

"catchUpTimeoutMillis" : -1,

"catchUpTakeoverDelayMillis" : 30000,

"getLastErrorModes" : {

},

"getLastErrorDefaults" : {

"w" : 1,

"wtimeout" : 0

},

"replicaSetId" : ObjectId("61cdb17a80b097a2e7604c97")

}

}

set07:PRIMARY>

ملاحظة: لاحظ وضع الدورة المعنية في إخراج rs.conf().

الخطوة 3. قم بتشغيل هذا الأمر لنقل الوحدة الطرفية إلى وضع التكوين.

set07:PRIMARY> cfg = rs.conf()

{

"_id" : "set07",

"version" : 2,

"members" : [

{

"_id" : 0,

"host" : "sessionmgr01:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 2,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 1,

"host" : "arbitervip:27727",

"arbiterOnly" : true,

"buildIndexes" : true,

"hidden" : false,

"priority" : 0,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 2,

"host" : "sessionmgr02:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 3,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

}

],

"settings" : {

"chainingAllowed" : true,

"heartbeatIntervalMillis" : 2000,

"heartbeatTimeoutSecs" : 1,

"electionTimeoutMillis" : 10000,

"catchUpTimeoutMillis" : -1,

"catchUpTakeoverDelayMillis" : 30000,

"getLastErrorModes" : {

},

"getLastErrorDefaults" : {

"w" : 1,

"wtimeout" : 0

},

"replicaSetId" : ObjectId("61cdb17a80b097a2e7604c97")

}

}

set07:PRIMARY>

الخطوة 4. قم بتشغيل هذا الأمر لتغيير أولوية sessionMgr.

Command template:

cfg.members[X].priority = X --> put the position here in [].

sample command:

cfg.members[2].priority = 1

هنا sessionMGR02 هو حاليا العضو الأساسي وموضعه 2 والأولوية هي 3.

من أجل نقل جلسة العمل هذه من الدور الرئيسي، قم بتوفير أقل رقم أولوية أكبر من 0 ولكن أقل من أولوية عضو ثانوي لديه أعلى أولوية، على سبيل المثال. 1 في هذا الأمر.

set07:PRIMARY> cfg.members[2].priority = 1

1

set07:PRIMARY>

الخطوة 5. قم بتشغيل هذا الأمر لتنفيذ التغيير.

set07:PRIMARY> rs.reconfig(cfg)

{

"ok" : 1,

"operationTime" : Timestamp(1641528658, 1),

"$clusterTime" : {

"clusterTime" : Timestamp(1641528658, 1),

"signature" : {

"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

"keyId" : NumberLong(0)

}

}

}

2022-01-07T04:10:57.280+0000 I NETWORK [thread1] trying reconnect to sessionmgr02:27727 (192.168.10.140) failed

2022-01-07T04:10:57.281+0000 I NETWORK [thread1] reconnect sessionmgr02:27727 (192.168.10.140) ok

set07:SECONDARY>

الخطوة 6. قم بتشغيل الأمر مرة أخرى للتحقق من التغييرات في أولوية sessionMgr.

set07:SECONDARY> rs.conf()

{

"_id" : "set07",

"version" : 3,

"members" : [

{

"_id" : 0,

"host" : "sessionmgr01:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 2,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 1,

"host" : "arbitervip:27727",

"arbiterOnly" : true,

"buildIndexes" : true,

"hidden" : false,

"priority" : 0,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 2,

"host" : "sessionmgr02:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 1, --> Here priority has been changed from 3 to 1.

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

}

],

"settings" : {

"chainingAllowed" : true,

"heartbeatIntervalMillis" : 2000,

"heartbeatTimeoutSecs" : 1,

"electionTimeoutMillis" : 10000,

"catchUpTimeoutMillis" : -1,

"catchUpTakeoverDelayMillis" : 30000,

"getLastErrorModes" : {

},

"getLastErrorDefaults" : {

"w" : 1,

"wtimeout" : 0

},

"replicaSetId" : ObjectId("61cdb17a80b097a2e7604c97")

}

}

set07:SECONDARY>

الخطوة 7. قم بتشغيل الأمر diagnostics.sh —get_r من ClusterManager أو pcrfclient للتحقق من التغييرات في حالة مجموعة النسخ المتماثلة.

| SET NAME - PORT : IP ADDRESS - REPLICA STATE - HOST NAME - HEALTH - LAST SYNC - PRIORITY |

------------------------------------------------------------------------------------------------------------------------------------------

| SESSION:set07 |

| Status via arbitervip:27727 sessionmgr01:27727 sessionmgr02:27727 |

| Member-1 - 27727 : - PRIMARY - sessionmgr01 - ON-LINE - -------- - 2 |

| Member-2 - 27727 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

| Member-3 - 27727 : - SECONDARY - sessionmgr02 - ON-LINE - 0 sec - 1 |

|----------------------------------------------------------------------------------------------------------------------------------------|

الآن، ترى أن جلسة العملMGR02 قد انتقلت إلى الثانوية. in order to جعلت sessionMGR02 عضو أساسي مرة أخرى، ركضت الخطوات آنفة الذكر 1. إلى 5. مع هذا أمر في خطوة 4.

CFG.MEMBERS[2].Priority = أي رقم أكبر من 2 ولكن أقل من 1001 —> ضع أولوية أعلى من أولوية العضو الأساسي الحالي وهو 2 في العينة.

set07:PRIMARY> cfg.members[2].priority = 5

5

set07:PRIMARY> rs.reconfig(cfg)

{

"ok" : 1,

"operationTime" : Timestamp(1641531450, 1),

"$clusterTime" : {

"clusterTime" : Timestamp(1641531450, 1),

"signature" : {

"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

"keyId" : NumberLong(0)

}

}

}

2022-01-07T04:57:31.247+0000 I NETWORK [thread1] trying reconnect to sessionmgr01:27727 (192.168.10.139) failed

2022-01-07T04:57:31.247+0000 I NETWORK [thread1] reconnect sessionmgr01:27727 (192.168.10.139) ok

set07:SECONDARY>

قم بتشغيل الأمر للتحقق من التغييرات في أولوية sessionMgr.

set07:SECONDARY> rs.conf()

{

"_id" : "set07",

"version" : 4,

"members" : [

{

"_id" : 0,

"host" : "sessionmgr01:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 2,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 1,

"host" : "arbitervip:27727",

"arbiterOnly" : true,

"buildIndexes" : true,

"hidden" : false,

"priority" : 0,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 2,

"host" : "sessionmgr02:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 5, --> Here priority has been changed from 1 to 5.

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

}

],

"settings" : {

"chainingAllowed" : true,

"heartbeatIntervalMillis" : 2000,

"heartbeatTimeoutSecs" : 1,

"electionTimeoutMillis" : 10000,

"catchUpTimeoutMillis" : -1,

"catchUpTakeoverDelayMillis" : 30000,

"getLastErrorModes" : {

},

"getLastErrorDefaults" : {

"w" : 1,

"wtimeout" : 0

},

"replicaSetId" : ObjectId("61cdb17a80b097a2e7604c97")

}

}

set07:SECONDARY>

قم بتشغيل الأمر diagnostics.sh —get_r من ClusterManager أو pcrfclient للتحقق من التغييرات في حالة مجموعة النسخ المتماثلة.

| SET NAME - PORT : IP ADDRESS - REPLICA STATE - HOST NAME - HEALTH - LAST SYNC -PRIORITY

|----------------------------------------------------------------------------------------------------------------------------------------|

| SESSION:set07 |

| Status via arbitervip:27727 sessionmgr01:27727 sessionmgr02:27727 |

| Member-1 - 27727 : - SECONDARY - sessionmgr01 - ON-LINE - 14 sec - 2 |

| Member-2 - 27727 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

| Member-3 - 27727 : - PRIMARY - sessionmgr02 - ON-LINE - -------- - 5 |

|----------------------------------------------------------------------------------------------------------------------------------------|

الآن، يمكنك أن ترى أن SessionMgr02 أصبح أساسي مرة أخرى.

الخيار 2. قم بتغيير أولوية الجلسات الثانوية الأخرى من أجل جعلها عضوا أساسيا. ها هو ذا سيسيسينج mgr01.

لجعل sessionMGR01 عضوا أساسيا، قم بتشغيل الخطوات المذكورة أعلاه من 1. إلى 5. في الخيار 1. باستخدام هذا الأمر في الخطوة 4.

cfg.members[0].priority = أي رقم أكبر من 3 ولكن أقل من 1001 —> ضع أولوية أعلى من أولوية العضو الأساسي الحالي وهي "3" في العينة.

set07:PRIMARY> cfg.members[0].priority = 4

4

set07:PRIMARY> rs.reconfig(cfg)

{

"ok" : 1,

"operationTime" : Timestamp(1641540587, 1),

"$clusterTime" : {

"clusterTime" : Timestamp(1641540587, 1),

"signature" : {

"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

"keyId" : NumberLong(0)

}

}

}

2022-01-07T07:29:46.141+0000 I NETWORK [thread1] trying reconnect to sessionmgr02:27727 (192.168.10.140) failed

2022-01-07T07:29:46.142+0000 I NETWORK [thread1] reconnect sessionmgr02:27727 (192.168.10.140) ok

set07:SECONDARY>

قم بتشغيل الأمر لتأكيد التغييرات.

set07:SECONDARY> rs.conf()

{

"_id" : "set07",

"version" : 4,

"members" : [

{

"_id" : 0,

"host" : "sessionmgr01:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 4, --> Here priority has been changed from 2 to 4.

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 1,

"host" : "arbitervip:27727",

"arbiterOnly" : true,

"buildIndexes" : true,

"hidden" : false,

"priority" : 0,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 2,

"host" : "sessionmgr02:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 3,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

}

],

"settings" : {

"chainingAllowed" : true,

"heartbeatIntervalMillis" : 2000,

"heartbeatTimeoutSecs" : 1,

"electionTimeoutMillis" : 10000,

"catchUpTimeoutMillis" : -1,

"catchUpTakeoverDelayMillis" : 30000,

"getLastErrorModes" : {

},

"getLastErrorDefaults" : {

"w" : 1,

"wtimeout" : 0

},

"replicaSetId" : ObjectId("61cdb17a80b097a2e7604c97")

}

}

set07:SECONDARY>

قم بتشغيل الأمر diagnostics.sh —get_r من Cluster Manager أو pcrfInt للتحقق من التغييرات في حالة مجموعة النسخ المتماثلة.

| SET NAME - PORT : IP ADDRESS - REPLICA STATE - HOST NAME - HEALTH - LAST SYNC -PRIORITY

|----------------------------------------------------------------------------------------------------------------------------------------|

| SESSION:set07 |

| Status via arbitervip:27727 sessionmgr01:27727 sessionmgr02:27727 |

| Member-1 - 27727 : - PRIMARY - sessionmgr01 - ON-LINE - -------- - 4 |

| Member-2 - 27727 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

| Member-3 - 27727 : - SECONDARY - sessionmgr02 - ON-LINE - 0 sec - 3 |

|----------------------------------------------------------------------------------------------------------------------------------------|

الآن، يمكنك أن ترى أن SessionMgr01 أصبحت أساسي، بينما SessionMgr02 أصبحت ثانوية.

in order to جعلت sessionMGR02 كعضو أساسي مرة أخرى، ركضت الخطوات آنفة الذكر 1. إلى 5. في خيار 1 مع هذا أمر في خطوة 4.

cfg.members[0].priority = أي رقم أقل من 3 ولكنه أكبر من 0 —> ضع الأولوية أقل من تلك الخاصة ب sessionMGR02 وهي "3" في العينة.

set07:PRIMARY> cfg.members[0].priority = 1

1

set07:PRIMARY> rs.reconfig(cfg)

{

"ok" : 1,

"operationTime" : Timestamp(1641531450, 1),

"$clusterTime" : {

"clusterTime" : Timestamp(1641531450, 1),

"signature" : {

"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

"keyId" : NumberLong(0)

}

}

}

2022-01-07T08:34:31.165+0000 I NETWORK [thread1] trying reconnect to sessionmgr01:27727 (192.168.10.139) failed

2022-01-07T08:34:31.165+0000 I NETWORK [thread1] reconnect sessionmgr01:27727 (192.168.10.139) ok

set07:SECONDARY>

قم بتشغيل هذا الأمر للتحقق من التغييرات في أولوية sessionMgr.

set07:SECONDARY> rs.conf()

{

"_id" : "set07",

"version" : 4,

"members" : [

{

"_id" : 0,

"host" : "sessionmgr01:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 1, --> Here priority has been changed from 4 to 1.

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 1,

"host" : "arbitervip:27727",

"arbiterOnly" : true,

"buildIndexes" : true,

"hidden" : false,

"priority" : 0,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 2,

"host" : "sessionmgr02:27727",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 3,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

}

],

"settings" : {

"chainingAllowed" : true,

"heartbeatIntervalMillis" : 2000,

"heartbeatTimeoutSecs" : 1,

"electionTimeoutMillis" : 10000,

"catchUpTimeoutMillis" : -1,

"catchUpTakeoverDelayMillis" : 30000,

"getLastErrorModes" : {

},

"getLastErrorDefaults" : {

"w" : 1,

"wtimeout" : 0

},

"replicaSetId" : ObjectId("61cdb17a80b097a2e7604c97")

}

}

set07:SECONDARY>

قم بتشغيل الأمر diagnostics.sh —get_r من ClusterManager أو pcrfclient للتحقق من التغييرات في حالة مجموعة النسخ المتماثلة.

| SET NAME - PORT : IP ADDRESS - REPLICA STATE - HOST NAME - HEALTH - LAST SYNC -PRIORITY

|----------------------------------------------------------------------------------------------------------------------------------------|

| SESSION:set07 |

| Status via arbitervip:27727 sessionmgr01:27727 sessionmgr02:27727 |

| Member-1 - 27727 : - SECONDARY - sessionmgr01 - ON-LINE - 14 sec - 1 |

| Member-2 - 27727 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

| Member-3 - 27727 : - PRIMARY - sessionmgr02 - ON-LINE - -------- - 3 |

|----------------------------------------------------------------------------------------------------------------------------------------|

الآن، يمكنك أن ترى أن sessionMgr02 أصبح أساسي، في حين أن sessionMgr01 ثانوي.

الاقتراب الثاني

يمكنك إستخدام مجموعة برامج CPS النصية set_priority.sh من ClusterManager لتغيير أولوية sessionMGR في مجموعة النسخ المتماثلة. بشكل افتراضي، يتم تعيين أولوية الأعضاء بالترتيب (بأولوية أعلى) كما هو محدد في /etc/broadhop/mongoConfig.cfg في ClusterManager.

خذ على سبيل المثال مجموعة07.

[root@installer broadhop]# cat mongoConfig.cfg

[SESSION-SET2]

SETNAME=set07

OPLOG_SIZE=5120

ARBITER=arbitervip:27727

ARBITER_DATA_PATH=/var/data/sessions.7

MEMBER1=sessionmgr02:27727

MEMBER2=sessionmgr01:27727

DATA_PATH=/var/data/sessions.1/2

[SESSION-SET2-END]

للحصول على حالة مجموعة النسخ المتماثلة، قم بتشغيل الأمر diagnostics.sh —get_r من ClusterManager أو pcrfclient.

| SET NAME - PORT : IP ADDRESS - REPLICA STATE - HOST NAME - HEALTH - LAST SYNC - PRIORITY |

|----------------------------------------------------------------------------------------------------------------------------------------|

| SESSION:set07 |

| Status via arbitervip:27727 sessionmgr01:27727 sessionmgr02:27727 |

| Member-1 - 27727 : - SECONDARY - sessionmgr01 - ON-LINE - 0 sec - 2 |

| Member-2 - 27727 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

| Member-3 - 27727 : - PRIMARY - sessionmgr02 - ON-LINE - -------- - 3 |

|----------------------------------------------------------------------------------------------------------------------------------------|

عند مقارنة النتائج المذكورة أعلاه، يمكنك أن ترى أن sessionMGR02 هو العضو الأول[MEMBER1] في المجموعة 07 في /etc/broadhop/mongoConfig.cfg، وبالتالي فإن sessionMGR02 هو العضو الأساسي في المجموعة 07 بشكل افتراضي.

يتم تزويد هنا بخيارات CPS عالية التوفر التي تستخدم البرنامج النصي set_priority.sh لنقل sessionMGR02 من دور العضو الأساسي في set07.

الخطوة 1. قم بتعيين الأولوية بترتيب تصاعدي.

Command template:

sh set_priority.sh --db arg --replSet arg --asc

where ,

--db arg --> arg is database name

[all|session|spr|admin|balance|report|portal|audit|bindings|session_configs|bindings_configs|spr_configs]

--replSet arg -->arg is <setname>

Sample command:

sh set_priority.sh --db session --replSet set07 --asc

[root@installer ~]# sh set_priority.sh --db session --replSet set07 --asc

Set priorities is in progress. check log /var/log/broadhop/scripts/set_priority.log to know the status

Setting priority for Replica-Set: SESSION-SET2

INFO Parsing Mongo Config file

INFO Priority set operation is completed for SESSION-SET2

INFO Priority set to the Database members is finished

INFO Validating if Priority is set correctly for Replica-Set: SESSION-SET2

WARNING Mongo Server trying to reconnect while getting config. Attempt #1

INFO Validated Priority is set correctly for Replica-Set: SESSION-SET2

Primary member sessionmgr01:27727 found for Replica SESSION-SET2

Set priorities process successfully completed.

[root@installer ~]#

الخطوة 2. قم بتشغيل الأمر diagnostics.sh —get_r من ClusterManager أو pcrfclient للتحقق من التغيير.

| SET NAME - PORT : IP ADDRESS - REPLICA STATE - HOST NAME - HEALTH - LAST SYNC - PRIORITY |

|----------------------------------------------------------------------------------------------------------------------------------------|

| SESSION:set07 |

| Status via arbitervip:27727 sessionmgr01:27727 sessionmgr02:27727 |

| Member-1 - 27727 : - PRIMARY - sessionmgr01 - ON-LINE - -------- - 3 |

| Member-2 - 27727 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

| Member-3 - 27727 : - SECONDARY - sessionmgr02 - ON-LINE - 0 sec - 2 |

|----------------------------------------------------------------------------------------------------------------------------------------|

الآن، أصبح sessionMGR01 العضو الأساسي حيث تم تعيين الأولوية بترتيب تصاعدي كما هو محدد في /etc/broadhop/mongoConfig.cfg.

in order to جعلت sessionMGR02 عضو أساسي مرة أخرى، قم بتشغيل هذا الأمر.

[root@installer ~]# sh set_priority.sh --db session --replSet set07

Set priorities is in progress. check log /var/log/broadhop/scripts/set_priority.log to know the status

Setting priority for Replica-Set: SESSION-SET2

INFO Parsing Mongo Config file

INFO Priority set operation is completed for SESSION-SET2

INFO Priority set to the Database members is finished

INFO Validating if Priority is set correctly for Replica-Set: SESSION-SET2

WARNING Mongo Server trying to reconnect while getting config. Attempt #1

INFO Validated Priority is set correctly for Replica-Set: SESSION-SET2

Primary member sessionmgr02:27727 found for Replica SESSION-SET2

Set priorities process successfully completed.

[root@installer ~]#

ملاحظة: بشكل افتراضي، تم تعيين الأولوية بترتيب تنازلي.

قم بتشغيل الأمر diagnostics.sh —get_r من ClusterManager أو pcrfclient للتحقق من التغيير.

| SET NAME - PORT : IP ADDRESS - REPLICA STATE - HOST NAME - HEALTH - LAST SYNC - PRIORITY |

|----------------------------------------------------------------------------------------------------------------------------------------|

| SESSION:set07 |

| Status via arbitervip:27727 sessionmgr01:27727 sessionmgr02:27727 |

| Member-1 - 27727 : - SECONDARY - sessionmgr01 - ON-LINE - 0 sec - 2 |

| Member-2 - 27727 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

| Member-3 - 27727 : - PRIMARY - sessionmgr02 - ON-LINE - -------- - 3 |

|----------------------------------------------------------------------------------------------------------------------------------------|

الآن، يمكنك أن ترى أن sessionMgr02 أصبح أساسي، في حين أن sessionMgr01 ثانوي.