← All posts tagged PostgreSQL

Graf

Bucardo при репликации жрет ~400 мб на каждый процесс. А процессов этих чуть более чем дофига.
Результат — отожрана вся физическая оператива и 4 Гб свопа. Юзвери жалуются, ибо им все тормозит.
Решение очень русское, докупаем ЕЩЕ 16Гб оперы, пусть он, ссука, ею подавится...

Graf

Посчитали количество возможных айдишников в базе.
И количество добавляемых записей в год.
В самом херовом случае на 100 миллионов лет хватит

Для репликации решили каждому серверу давать диапазон по квадриллиону
Хватит на over 9000 серверов.

Graf

Я зопилил возможность из PostgreSQL напрямую обращаться к MSSQL.
Нужен pl/python и установленный в системе pymssql. И еще нужно создать тип

а дальше — тривиально

— Function: test3()

— DROP FUNCTION test3();

CREATE OR REPLACE FUNCTION test3()
RETURNS SETOF st_vetitems AS
$BODY$import pymssql
try:
connms = pymssql.connect(host='server', user='user', password='password', database='db', charset='utf8')
except pymssql.DatabaseError:
print;
curms = connms.cursor()
curms.execute(""" SELECT * FROM [mira71].[dbo].[v_items] ORDER BY "No" """);
rowms = curms.fetchone()
arr = []
while rowms:
myrow = []
for col in rowms:
if isinstance(col, basestring ):
col = col.encode('utf-8')
myrow.append(col)
arr.append(myrow)
rowms = curms.fetchone()
return arr$BODY$
LANGUAGE plpythonu VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION test3() OWNER TO pigfarm;

Graf

не собирайте его без флага pg_legacytimestamp
Иначе хрен запустится, ибо ВНЕЗАПНО становится несовместим формат базы.
С другой стороны, с флагом система подвержена проблеме 2038