Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / 10 лаба / postgresql.pdf
Скачиваний:
96
Добавлен:
03.06.2015
Размер:
647.69 Кб
Скачать

2.6. Заключение

$rubyrep replicate -c myrubyrep.conf Verifying RubyRep tables

Checking for and removing rubyrep triggers from unconfigured tables Verifying rubyrep triggers of configured tables

Starting replication

Exception caught: Thread#join: deadlock 0xb76ee1ac - mutual join(0xb758cfac)

Это проблема с запусками потоков в Ruby. Решается двумя способами:

1.Запускать rubyrep через JRuby (тут с потоками не будет проблем)

2.Пофиксить rubyrep патчем:

--- /Library/Ruby/Gems/1.8/gems/rubyrep-1.1.2/lib/rubyrep/ replication_runner.rb 2010-07-16 15:17:16.000000000 -0400

+++ ./replication_runner.rb 2010-07-16 17:38:03.000000000 -0400 @@ -2,6 +2,12 @@

require ’optparse’ require ’thread’ +require ’monitor’

+

+class Monitor

+alias lock mon_enter

+alias unlock mon_exit +end

module RR

#This class implements the functionality of the ’replicate’ command.

@@-94,7 +100,7 @@

#Initializes the waiter thread used for replication pauses

#and processing

#the process TERM signal.

def init_waiter

- @termination_mutex = Mutex.new

+ @termination_mutex = Monitor.new @termination_mutex.lock

@waiter_thread ||= Thread.new {@termination_mutex.lock; self.termination_requested = true}

%w(TERM INT).each do |signal|

2.6Заключение

Репликация — одна из важнейших частей крупных приложений, которые работают на PostgreSQL. Она помогает распределять нагрузку на

57

2.6. Заключение

базу данных, делать фоновый бэкап одной из копий без нагрузки на центральный сервер, создавать отдельный сервер для логирования и м.д.

В главе было рассмотрено несколько видов репликации PostgreSQL. Нельзя четко сказать какая лучше всех. Slony-I — громоздкая и сложная в настройке система, но имеющая в своем арсенале множество функций, таких как поддержка каскадной репликации, отказоустойчивости (failover) и переключение между серверами (switchover). В тоже время Londiste не обладает подобным функционалом, но компактный и прост в установке. Bucardo — система которая может быть или master-master, или masterslave репликацией, но не может обработать огромные обьекты, нет отказоустойчивости(failover) и переключение между серверами (switchover). RubyRep, как для master-master репликации, очень просто в установке и настройке, но за это ему приходится расплачиватся скоростью работы — самый медленный из всех (синхронизация больших обьемов данных между таблицами).

58

Соседние файлы в папке 10 лаба
  • #
    03.06.2015256 б3710.x.sql
  • #
    03.06.201518.15 Кб40B-tree
  • #
    03.06.2015350 б38create_index.sql
  • #
    03.06.2015160 б38drop_index.sql
  • #
    03.06.2015348.71 Кб38northwind.postgre.sql
  • #
    03.06.2015647.69 Кб96postgresql.pdf
  • #
    03.06.201519.47 Кб39Индексы
  • #
    03.06.201523.14 Кб41Инструкция по оптимизации Postresql 8.x
  • #
    03.06.201519.34 Кб41Композитные индексы
  • #
    03.06.201531.68 Кб37Оптимизация запросов - статья из Википедии
  • #
    03.06.201513.81 Кб41Типы индексов