да статья грамотная, но есть глючек в табличке - не знаю что такое Partial index но Inverted index у оракла есть. Tablespace & Schema у mssql будет только в юконе.
Много чего в постгри не хватает (тот же бекап).
В системных таблицах черт ногу сломит. Но решения ооооочень интересные
(триггера и функции на всем что компилится и интерпретируется
это круто). И ведь работает, как ни странно!
Статья весьма полезна для тех кто задает такой вопрос.
читаем статью...
vvvvvvvvv
Репликация также повышает надежность PostgreSQL. Существует несколько систем репликации, например, Slony, который является свободным и самым используемым решением, поддерживает master-slaves репликацию. Ожидается, что Slony-II будет поддерживать multi-master режим.
---
это я не вкурил ? или кто-то статью не читал даже?(а тем более доки)
Нет, по поводу бэкапа я имел ввиду нечто более разумное
нежели полное каждодневное копирование 10 гиговой базы.
Разве что нибудь наподобие инкрементального копирования уже появилось?
На пальцах просто..
>Кстати, а кто-нибудь на пальцах может рассказать что такое репликация? И что она позволяет делать?
Репликация, это такая сложная и гемороидальная штука, которой пользуются разработчики субд за неимением дешевых каналов связи и хорошего клиентского софта.
Используется для создания дерева из отдельно стоящих субд
(по одной на удаленное подразделение) периодически сливающих всю инфу в корень (центральный офис) с последующим распределением обновлений по ветвям.
Основа - состаавной ключ из 2х полей в любой реплицируемой таблице (автоинкремент и имя подразделения например)
Slony-I не входит в состав postgresql. Я бы не сказал, что это самое используемое решение для репликации postgresql, скорее самое используемое open-source решение, но недостатков у него все же хватает.
> Репликация, это такая сложная и гемороидальная штука, которой пользуются разработчики субд за неимением дешевых каналов связи и хорошего клиентского софта. Используется для создания дерева из отдельно стоящих субд (по одной на удаленное подразделение) периодически сливающих всю инфу в корень (центральный офис) с последующим распределением обновлений по ветвям.
Репликация (синхронизация) - процесс приведения данных электронных таблиц двух (или более - teodor) БД в идентичное состояние.
Репликацию можно классифицировать по разному. В рамках данной статьи возьму на себя смелость остановиться на следующем варианте:
I. По направлению репликации. Если данные изменяются только в одной из БД, а в другой данные только хранятся и не подвергаются изменениям, то такую репликацию будем называть однонаправленной или односторонней. Если же данные могут изменяться и вводиться на всех БД, то такой вид репликации будем называть мультинаправленной или многосторонней.
II. По времени проведения сеанса репликации. Если данные должны быть засинхронизированны немедленно после изменений, то такую репликацию будем называть репликация реального времени. Если же процесс репликации запускается по какому либо событию во времени или по отмашке администратора БД, то такой вид репликации назовем отложенная репликация.
III. По способу передачи информации во время процесса репликации. Если соединение серверов, хранящих распределенные БД, происходит при помощи программы клиента, которая с одной стороны коннектится к своему серверу, а с другого конца имеет прямую связь с БД другого сервера и может подключиться напрямую к данным другого сервера, для прямого изменения и анализа реплицируемых данных с обеих концов, имея при этом гарантированный устойчивый канал связи (ADSL, выделенный канал, двупроводная линия Dial-Up и пр.), то такой вид синхронизации назовем прямым. Если же канал неустойчивый и не гарантирует устойчивую связь без падений во время процесса синхронизации и данные приходится передавать цельными пачками, при этом принимающая сторона во время закачки и анализа данных не имеет немедленной возможности опросить источник при возникновении на ее взгляд сомнительных моментов, а решение "Что делать?" принимать в любом случае нужно, то такой вид
синхронизации будем называть недетерминированной или вероятностной.
IV. По способу анализа реплицируемой информации. Если ядро алгоритма работает по принципу сравнения записей одной таблицы с записями другой, и на основании этого принимается решение о синхронизации, то такой процесс будем называть репликацией по текущему состоянию. Если в базе предусмотрен журнал вносимых изменений в БД, и алгоритм репликации переносит измененя по дельтам изменений накопленным в журнале, то такой процесс назовем дельта репликацией.
Это для академиков. А просили на пальцах :). Я больше не по теоретическим книжкам, а по сайбейсовским докам. C "недетерменированностью" у меня туго... А после того что ты запостил, я засомневался даже(и как оно у меня все работало?)
Это все равно что про майского жука, который летает потому как не хнает законов физики :)
Здоровски!
Орфографические ошибки бы подчистить и хороший материал для истории.
ЛОР однако исправляется в лучшую сторону :)
Учитывая появление хороших исторических статей предлагается на LOR создать раздел "История OpenSource" и туда помещать подобные материалы. В качестве первых кандидатов можно включить "история Linux" опубликованная на LinuxCenter http://www.linuxcenter.ru/lib/articles/lh-00.phtml и туда же поместить и эту статью о постгресе. Получится хороший исторический раздел.
ЛОР, как и любой сайт делают живые люди - вопрос стоит в тех кто сюда заглядывает и насколько они знают о linux. Просто народ больше узнал о linux, как принято говорить в бизнесе - лояльность пользователей к марке растет :)
> Если же канал неустойчивый и не гарантирует устойчивую связь без падений во время процесса синхронизации и данные приходится передавать цельными пачками, при этом принимающая сторона во время закачки и анализа данных не имеет немедленной возможности опросить источник при возникновении на ее взгляд сомнительных моментов, а решение "Что делать?" принимать в любом случае нужно, то такой вид синхронизации будем называть недетерминированной или вероятностной.
Не очень понятно, что за такие сомнительные моменты. Вот взять, например, ораклиную ручную репликацию (для точности, например, Oracle Dataguard из Oracle 9.2.0.5). Передаются изменения, накопленные в журнале (archived logs). Передаются пачками. В случае ручной репликации - руками администратора или скриптом. Какая там недетерминированность?
$ apt-cache show cl-sql-postgresql
Package: cl-sql-postgresql
Priority: extra
Section: devel
Installed-Size: 132
Maintainer: Kevin M. Rosenberg <kmr@debian.org>
Architecture: all
Source: cl-sql
Version: 3.1.2-1
Provides: cl-sql-backend
Depends: cl-sql (>= 3.1.2-1), postgresql-dev, cl-sql-uffi (>= 3.1.2-1)
Filename: pool/main/c/cl-sql/cl-sql-postgresql_3.1.2-1_all.deb
Size: 37406
MD5sum: 6677f4ba257e31cb0558d2a5f93605cf
Description: CLSQL database backend, PostgreSQL
This package enables you to use the CLSQL data access package
with PostgreSQL databases.
CLSQL is a Common Lisp interface to SQL databases.