25Jun/09Off

Postgresql tools

1, pgpool

http://pgpool.projects.postgresql.org/

2, pgtop

http:pgfoundry.org/projects/pgtop/
[box]:/usr/ports/databases/pgtop# make install clean

[box]:#pgtop -u DBUSER -d DATAB ASE -s 1

3, pgtune

http://pgfoundry.org/projects/pgtune/
pgtune -i /space/pgsql/data/postgresql.conf -o postgresql.conf -T Web

4, pgfouine

http://pgfouine.projects.postgresql.org/

5, phppgadmin

http://phppgadmin.sourceforge.net/

6, MicroOLAP Database Designer for PostgreSQL

http://www.microolap.com/products/database/postgresql-design

7, pg_controldata

[box] pg_controldata /space/pgsql/data
8, DreamCoder for PostgreSQL
http://www.sqldeveloper.net/database-tools/postgresql/overview.html
25Jun/09Off

Tíz technológia amit mindenképp ismerned kell

Tíz technológia amit mindenképp ismerned kell, ha unix környezetben fejlesztés phpban:

1, OOP PHP

Nincs mit túl ragozni rajta. Ha most vágsz bele a PHP-ba, csak és kizárólag OOP alapú tutorialt olvass. A procedural PHPnak legalább annyi lét jogosultsága van mint az OOPnak, de az OOP tudásod mindig fontosabb lesz.

2, FreeBSD

Sokat lehet vitázni, hogy ez valóban fontos és mennyire technológia, de jó ha képben vagy vele, egészen biztosan összefogsz vele futni nagy forgalmú rendszerek kapcsán. Ha nagyon cutting edge akarsz lenni, figyelj oda az OpenSolarisra. (Figyeld a post dátumát!) A 64bites rendszerben van még pár idegesítő elmaradás ami különösen APC és postgre esetén jön elő.

3, SQL (MySQL, Postgresql)

Önmagáért beszél. Nagyon kevés rendszer létezik jelenleg, amiben ilyen vagy olyan módon ne lenne sql backend. Ez előreláthatólag jó pár évig így lesz, minden perc amit sql nyelvel és adatbáziskezelők lelkivilágával töltesz, jól kifizetődő.

4, Memcached

Per pillanat az egyik legfontosabb technológia a memória alapú cache. Az SSD drivektól javulást várok performance terén de sokat kell még aludnunk ahhoz, hogy serverinkben 1-2 terrányi SSD kapjon helyett. PHP esetén meglehetősen primitív technológiáról van szó, nem nehéz, de rengeteg performance jellegű problémát megold. Érdemes a sessiont is itt tárolni.

5, ZFS

Performance. File System. Tudd, hogy mi hozható ki belőle, szükséged lesz a tudásra, mikor az üzemeltetést kell meggyőzni a használatáról.

6, HTTP (apache, lightthpd)

Sokan csak tudják, hogy a web http-n keresztül zajlik. Muszáj megértened a http-t működését ahhoz, hogy maximális performancet tudja kihozni minden rétegből ami egy egyszerű weblap generálás és kiszolgálás alatt a dolgozik.

7, Smarty

Masszív, kiforrt, ennek következtében baromi erőforrás igényes template rendszer. Ha egyszer már valamit lecachelt magának akkor kellően gyors, igy mindenképp ismerendő és használandó, már csak azért is, hogy lásd és megértsd a fájl alapú cache rendszereket.

9, PEAR

Kicsit öreg, kicsit lassú, de megbizható. És főleg baromi gyors kódolást tesz lehetővé. Sok munkahelyen alap, hogy ismerd. A használata már nem annyira, de oldschool kóderek szívesen szivatjak a interjún a kezdőt, vajon ismeri-e? Jah, a lényeg. Előre megirt, szabadon használható PHP kódgyűjtemény. De ha átnézed, képben leszel.
http://pear.php.net/

10, SVN, (git, cvs)

Verzió követő, kódkonfliktus kezelő. Teamwork alapja, rengeteg plusz pontot kaphatsz, ha nem azzal töltőd idődet, hogy az svn alapjait tanulod.
20May/09Off

how to pear mdb2 statement prepare, execute, free

mdb2 = new &MDB2::factory($dsn, $options);
$sql = 'SELECT * FROM schema.table WHERE valueinteger = ? AND valuetext = ? AND valueboolean = ?';
$types = array('integer', 'text', 'boolean');
$statement = $mdb2->prepare($sql, $types);
$data = array('integer', 'text', true);
$resultset = $statement->execute($data);
$statement->free();
while ($rows = $resultset->fetchRow(MDB2_FETCHMODE_ASSOC)) {
//todo
}

19May/09Off

how to get back new value postgresql after insert

INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
RETURNING did;
19May/09Off

how to dump postgresql pg_dump

pg_dump -U dbuser -d databasetodump -Fc -f /pathtodumpdir/dumpfilename.sql

19May/09Off

Failed system call was shmget postgresql freebsd

DETAIL:  Failed system call was shmget(key=xxx, size=xxx, xxx).

HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently xxxxxx bytes), reduce PostgreSQL's shared_buffers parameter (currently xxxxx) and/or its max_connections parameter (currently xxx).

If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.

The PostgreSQL documentation contains more information about shared memory configuration.

solution: raise semaphores number

$ sysctl -w kern.ipc.shmall=32768
$ sysctl -w kern.ipc.shmmax=134217728
$ sysctl -w kern.ipc.semmap=256
more info
edit sysctl.conf:
kernel.shmall = xxxx
kernel.shmmax = xxxx
18May/09Off

The database cluster was initialized without HAVE_INT64_TIMESTAMP but the server was compiled with HAVE_INT64_TIMESTAMP.

FATAL:  database files are incompatible with server
DETAIL:  The database cluster was initialized without
HAVE_INT64_TIMESTAMP but the server was compiled with
HAVE_INT64_TIMESTAMP.
HINT:  It looks like you need to recompile or initdb.

solution: deinstall postgre, reinstall postgre without

"INTDATE Builds with 64-bit date/time type (server)"
postgresql_have_int64_timestamp