كيو النسخ المتماثل العبيد متعددة

من Arabic Ikoula Wiki
مراجعة ١٧:٥٩، ٩ فبراير ٢٠١٧ بواسطة Ikbot (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
Jump to navigation Jump to search

ar:كيو النسخ المتماثل العبيد متعددة en:PostgreSQL replication slaves multi he:PostgreSQL שכפול עבדים רב ro:PostgreSQL replicare sclavi multi ru:PostgreSQL репликации рабы multi pl:PostgreSQL replikacji niewolników multi ja:PostgreSQL のレプリケーション スレーブ マルチ zh:PostgreSQL 复制奴隶多 de:PostgreSQL Replikation Sklaven multi nl:PostgreSQL replicatie slaven multi it:PostgreSQL replica schiavi multi pt:Multi de escravos de replicação PostgreSQL es:PostgreSQL replicación esclavos multi fr:Replication PostgreSQL multi slaves

هام: تمت ترجمة هذه المقال باستخدام برامج للترجمة الآلية, لقرائة النسخة الأصلية أنقر على الرابط

مقدمة | _-_. وتتناول هذه الصفحة تنفيذ تكرار كيو الدفق غير متزامن مع رئيسي واحد واثنين من العبيد. سيتم تكوين لدينا السلافية كالاستعداد الساخنة، وهذا يعني أنه سيكون من الممكن تنفيذ الاستعلامات | _-_. القراءة فقط | _-_. في هذه.

سياق هذا التنفيذ | _-_. لدينا | _-_. خوادم ديبيان | _-_. تحديث | _-_. ثم أننا في الاتصال بالإنترنت | _-_. نحن تنشيط العرض الموسع ونحن تحقق لدينا النسخ المتماثل | _-_. لدينا الكثير من أعمالنا | _-_. النسخ المتماثل مع خدمتنا السلافيين اثنين | _-_. | _-_. و | _-_. دائماً متصلاً بالإنترنت على الشريحة الرئيسية، إنشاء قاعدة بيانات اختبار | _-_. ت | _-_. تشيكريب | _-_. للتأكد من أن النسخ المتماثل وظيفية | _-_. تأكد أن قاعدة البيانات جيدا تكرارها على أعمالنا | _-_. السلافية | _-_. كذلك تلقائياً بحيث يتم نسخ قاعدة البيانات التي أنشأنا على الماجستير لدينا على أعمالنا السلافيين اثنين. | _-_. وسيكون لدينا ماجستير | _-_. | _-_. وسوف يكون عبدا | _-_. Postgres | _-_. وسوف يكون عبدا ثانية | _-_. وأشارت إلى أوامر وسيكون الجذر عند أنها تسبق من | _. _. وكما نظام المستخدم عند أنها تسبق من | _-_. تركيب شبكة الإنترنت والتكوين المسبق لكافة الملقمات ثلاثة: _! _ | جميع أوامر هذا الجزء يتم القيام به على كل من الملقمات. (وكخطوة أولى، من المستحسن أن يكون لديك ملف | _-_. المأهولة بالسكان مع اتصالات لكل ملقم، مثل هذا: _! _ | بتكييف مع عناوين ip وأسماء المضيفين من الملقمات الخاصة بك | _-_. إضافة إيداع كيو APT | _-_. ونحن استيراد المفتاح العمومي لهذا الإيداع | _-_. نقوم بتحديث ذاكرة التخزين المؤقت ملائمة تأخذ في الاعتبار الإيداع | _-_. ونحن تثبيت الحزمة كيو | _-_. تثبيت أحدث إصدار مستقر | _-_. في وقت كتابة هذا التقرير | _-_. يقوم بتعيين كلمة مرور | _-_. من اختياره لكن آمنة | _-_. ويولد زوج مفتاح سة | _-_. دون المرور | _-_. للمستخدم نظام | _-_. نحن نسخ المستخدم منذ وبين الجمهور كل ملقم سة مفتاح | _-_. ومنذ أول خادم | _-_. Postgres | _-_. وفي حالتنا: _! _ | الثاني | _-_. Postgres | _-_. بالنسبة لنا | _-_. وترويسيسيمي | _-_. Postgres | _-_. من الدورة الثانية إلى الملقم الأولى والثالثة | _-_. من الثالث إلى الخادم الأول والثاني | _-_. تكوين الشكل الرئيسي: _! _ | هل فقط سيد: _! _ | Postgres | _-_. وفي حالتنا: _! _ | نقوم بإنشاء الدور | _-_. نسخ متماثل للمستخدم: _! _ | ملاحظة: _! _ | علينا أن نحدد مهلة اتصال من | _-_. لأن لدينا | _-_. السلافية | _-_. نحن تحرير ملف التكوين الرئيسي لشبكة الإنترنت | _-_. لإعداد المبادئ التوجيهية التالية: _! _ | ملاحظة: _! _ | نحن تنشيط الأرشفة للخادم الثاني | _-_. تخصيص الملكية الفكرية الملقم الخاص بك | _-_. لمزيد من الاحتياطات، ولكن هذا ليس التزاما. ونحن أيضا تعريف hot_standby المعلمات، ينبغي تخفيض جيدا أن تجاهل على ماجستير، في هذه الحالة الرقيق في المستقبل. ) وهي الآن تنشر الملف مصادقة شبكة الإنترنت | _-_. لإضافة لدينا تخويل المستخدم للنسخ المتماثل للاتصال من أعمالنا السلافية أو السطر التالي في نهاية الملف: _-_ | الرجاء التكيف مع هذا الخط وفقا لاسم المستخدم الخاص بك النسخ المتماثل وشبكة | _-_. أو عناوين ip الخاصة بكل منها: _! _ | من الخاص بك السلافية | _-_. إعادة تشغيل خدمة الإنترنت أن تأخذ في الاعتبار أن التكوين | _-_. في جذر | _-_. وهذا ما يضمن أن الخدمة قد بدأت بنجاح | _-_. تكوين السلافية | _-_. على الرقيق الأولى | _-_. دعونا نتوقف عن خدمة الإنترنت | _-_. نحن تحرير ملف التكوين الرئيسي لشبكة الإنترنت | _-_. لتكوين نفس المبادئ التوجيهية كسيد، بالخياطة فقط عنوان ip الخاص بالرقيق الأولى قبل أن الرقيق الثانية في rsync أرشيف الأمر إذا كنت تريد تنشيطه أما | _-_. وهي الآن تنشر الملف مصادقة شبكة الإنترنت | _-_. لإضافة إذن المستخدم النسخ المتماثل لدينا بالاتصال من الخوادم الأخرى: _! _ | أنها سوف تفعل ذلك في حالة ينبغي تشجيع هذا الرقيق ماجستير | _-_. ملاحظة: _! _ | مع هذا التكوين مماثلة لتلك التي سيدنا يسمح بسهولة تعزيز هذا الرقيق كمعلم في حالة الحاجة.


عمليات أدناه، تسجيل الدخول كمستخدم النظام | _-_. نقوم بإنشاء دليل الوجهة وول المحفوظات الرئيسي | _-_. نقوم بإزالة الدليل البيانات كيو | _-_. يجعل النسخ الاحتياطي قاعدة | _-_. تخصيص ip الرئيسي الخاص بك واسم المستخدم الخاص بك من النسخ المتماثل :


، ستتم مطالبتك بكلمة المرور للمستخدم الخاص بك من النسخ المتماثل | _-_. يمكنك تكوين النسخ المتماثل بإنشاء الملف | _-_. مع المعلمات التالية: _! _ | ملاحظة: _! _ | الملف المشغل هو الملف الذي نقوم بإنشاء عندما نريد تكرار توقف الرقيق له، ويبدأ بقبول الكتاب المقدس عندما نريد الترويج له كسيد. قبل تعزيز تحطم الرقيق من سيدة، الرجاء التأكد من أن المجلد الرئيسي الأولى تأتي لا لتفادي أي عطب. 3 الجذر، فإننا نعود ونبدأ الخدمة: _! _ | وهذا ما يضمن أن الخدمة قد بدأت بنجاح | _-_. إذا نحن الاتصال سيدنا، يمكننا أن تحقق فعلا لدينا النسخ المتماثل بين سيد والرقيق الأولى وظيفية | _. _. وهو يربط سيدنا ونحن كنت متصلاً في postgres نظام المستخدم | _-_. ثم أننا في الاتصال بالإنترنت | _-_. نحن تنشيط العرض الموسع ونحن تحقق لدينا النسخ المتماثل | _-_. لدينا النسخ المتماثل تدفق غير متزامن مع الرقيق الأولى لدينا جيدة الصنع. وفي هذه المرحلة لدينا على درجة ماجستير النسخ المتماثل | _-_. الرقيق الكلاسيكية | _-_. واحد الرقيق تدفق غير متزامن | _-_. على الرقيق الثانية | _-_. تكرار نفس ما تم عمله على الرقيق الأولى من الواضح أن تكييف لها اسم المضيف في ملف recovery.conf والملكية الفكرية العنوان حسب ترتيب تسجيل الدخول في ملف التكوين الرئيسي إذا كنت ترغب أيضا في تمكين أرشفة على هذا الرقيق الثانية. 8 (ماجستير المراجعة والاختبار لدينا متعددة النسخ المتماثل السلاف | _-_. فإنه يتصل بالشريحة الرئيسية ويتم تسجيل دخولك مستخدم postgres) :

Postgres01 (10.1.1.75) : لإزالته، منذ سيد

Postgres02 (10.1.1.90) :

Postgres03 (10.1.1.199) :


"#"  "$".

/etc/hosts  ()  :
# cat /etc/hosts
127.0.0.1       localhost

10.1.1.75       postgres01
10.1.1.90       postgres02
10.1.1.199      postgres03


:
# echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/postgres.list


:
# gpg --keyserver pgpkeys.mit.edu --recv-key 7FCC7D46ACCC4CF8 && gpg -a --export 7FCC7D46ACCC4CF8 | apt-key add -
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: requesting key ACCC4CF8 from hkp server pgpkeys.mit.edu
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key ACCC4CF8: public key "PostgreSQL Debian Repository" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK


:
# apt-get update


( 9.5 ) :
# apt-get install postgresql


()  ()  :
# passwd postgres
# su - postgres
$ ssh-keygen


:


(postgres01 )  (postgres02 )  (postgres03) :
root@postgres01:~# su - postgres
postgres@postgres01:~$ ssh-copy-id postgres02
postgres@postgres01:~$ ssh-copy-id postgres03


:
root@postgres02:~# su - postgres
postgres@postgres02:~$ ssh-copy-id postgres01
postgres@postgres02:~$ ssh-copy-id postgres03


:
root@postgres03:~# su - postgres
postgres@postgres03:~$ ssh-copy-id postgres01
postgres@postgres03:~$ ssh-copy-id postgres02

(postgres01 ) :


/ :

# su - postgres
$ psql -c "CREATE USER repuser REPLICATION LOGIN CONNECTION LIMIT 2 ENCRYPTED PASSWORD '<mot de passe repuser>';"

 : 2 2


/etc/postgresql/9.5/main/postgresql.conf  :
listen_addresses = '*'
wal_level = hot_standby
archive_mode = on
archive_command = 'rsync -av %p postgres@<ip du premier slave>:/var/lib/postgresql/wal_archive/%f'
max_wal_senders = 2
wal_keep_segments = 256
hot_standby = on

: ()


/etc/postgresql/9.5/main/pg_hba.conf  :
hostssl replication     repuser <ip du réseau de vos serveurs>/24     md5

()


() :
# systemctl restart postgresql


:
root@postgres01:~# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
   Active: active (exited) since Thu 2016-06-02 12:06:28 CEST; 22s ago
  Process: 77056 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 77056 (code=exited, status=0/SUCCESS)


root@postgres01:~# ps -u postgres u
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
postgres  77038  0.0  4.4 227300 21836 ?        S    12:06   0:00 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.
postgres  77040  0.0  0.8 227300  4160 ?        Ss   12:06   0:00 postgres: checkpointer process
postgres  77041  0.0  1.0 227300  4968 ?        Ss   12:06   0:00 postgres: writer process
postgres  77042  0.0  1.7 227300  8776 ?        Ss   12:06   0:00 postgres: wal writer process
postgres  77043  0.0  1.3 227728  6708 ?        Ss   12:06   0:00 postgres: autovacuum launcher process
postgres  77044  0.0  0.6  82244  3392 ?        Ss   12:06   0:00 postgres: archiver process
postgres  77045  0.0  0.8  82244  4244 ?        Ss   12:06   0:00 postgres: stats collector process

:
# systemctl stop postgresql


/etc/postgresql/9.5/main/postgresql.conf  :
listen_addresses = '*'
wal_level = hot_standby
archive_mode = on
archive_command = 'rsync -av %p postgres@<ip du second slave>:/var/lib/postgresql/wal_archive/%f'
max_wal_senders = 2
wal_keep_segments = 256
hot_standby = on


/etc/postgresql/9.5/main/pg_hba.conf  () :
hostssl replication     repuser <ip du réseau de vos serveurs>/24     md5

 :


:
# su – postgres


:
$ mkdir /var/lib/postgresql/wal_archive


:
$ rm -rf /var/lib/postgresql/9.5/main


() :
$ pg_basebackup -h <ip de votre master> -D /var/lib/postgresql/9.5/main -U repuser -v -P --xlog


/var/lib/postgresql/9.5/main/recovery.conf  :
standby_mode = on
primary_conninfo = 'host=<ip de votre master> port=5432 user=repuser password=<mot de passe de repuser> sslmode=require application_name=<hostname de votre slave>'
trigger_file = '/var/lib/postgresql/9.5/postgres.trigger'

 :


:
# systemctl start postgresql


:
# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
   Active: active (exited) since Thu 2016-06-02 12:53:42 CEST; 1min 6s ago
  Process: 8894 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 8894 (code=exited, status=0/SUCCESS)


# ps -u postgres u
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
postgres   8878  0.0  4.4 227308 21892 ?        S    12:53   0:00 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.
postgres   8879  0.0  1.1 227376  5700 ?        Ss   12:53   0:00 postgres: startup process   recovering 00000001000000000000000
postgres   8880  0.0  0.8 227308  4140 ?        Ss   12:53   0:00 postgres: checkpointer process
postgres   8881  0.0  1.0 227308  5236 ?        Ss   12:53   0:00 postgres: writer process
postgres   8882  0.0  0.6  82252  3316 ?        Ss   12:53   0:00 postgres: stats collector process
postgres   8883  0.0  1.7 238064  8520 ?        Ss   12:53   0:00 postgres: wal receiver process   streaming 0/30003E0


:
:
# su - postgres


:
$ psql


:
postgres=# \x
Expanded display is on.
postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid              | 78879
usesysid         | 16384
usename          | repuser
application_name | postgres02
client_addr      | 10.1.1.90
client_hostname  |
client_port      | 49009
backend_start    | 2016-06-02 12:53:36.641823+02
backend_xmin     |
state            | streaming
sent_CRElocation    | 0/30004C0
write_location   | 0/30004C0
flush_location   | 0/30004C0
replay_location  | 0/30004C0
sync_priority    | 0
sync_state       | async

/ ()

:
# su – postgres
:
$ psql


:
postgres=# \x
Expanded display is on.
postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid              | 78879
usesysid         | 16384
usename          | repuser
application_name | postgres02
client_addr      | 10.1.1.90
client_hostname  |
client_port      | 49009
backend_start    | 2016-06-02 12:53:36.641823+02
backend_xmin     |
state            | streaming
sent_location    | 0/5000140
write_location   | 0/5000140
flush_location   | 0/5000140
replay_location  | 0/5000140
sync_priority    | 0
sync_state       | async
-[ RECORD 2 ]----+------------------------------
pid              | 82725
usesysid         | 16384
usename          | repuser
application_name | postgres03
client_addr      | 10.1.1.199
client_hostname  |
client_port      | 51754
backend_start    | 2016-06-02 14:31:43.759683+02
backend_xmin     |
state            | streaming
sent_location    | 0/5000140
write_location   | 0/5000140
flush_location   | 0/5000140
replay_location  | 0/5000140
sync_priority    | 0
sync_state       | async
2  (postgres02 03).


(ex : )  :
postgres=# CREATE DATABASE checkrep;


2  :
root@postgres02:~# su - postgres
postgres@postgres02:~$ psql
psql (9.5.3)
Type "help" for help.

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 checkrep  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)


root@postgres03:~# su - postgres
postgres@postgres03:~$ psql
psql (9.5.3)
Type "help" for help.

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 checkrep  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)



:
postgres=# DROP DATABASE checkrep;



ليس مسموح لك بأن تنشر تعليقا.