files: guest.need_update:: "/etc/localtime" handle => "timezone_link", comment => "Timezone link", link_from => ln_s("/usr/share/zoneinfo/Asia/Novosibirsk");
Monday, March 26, 2012
cfengine3: howto make a symlink
Friday, March 23, 2012
Fresh presentation about PostgreSQL performance tuning (2012)
PostgreSQL
Performance Tuning
BRUCE MOMJIAN (Senior Database Architect in EnterpriseDB)
Source: http://momjian.us/main/presentations/overview.html
There is lot's of other interesting stuff also.
Copy on Google: https://docs.google.com/open?id=0B1Mh3B-dAA04NXcyOVZJSEtUZ0M0c0FFMkF0T0hKQQ
Labels:
postgres
Saturday, March 17, 2012
Три поросёнка. (китайский вариант)
Жили-были три маленьких свиньи. Целыми днями они только и делали что играли.
Узнали они о так называемой Серой Угрозе. Линь-линь построил домик из соломы...
Лян-Лян - из листьев и какашек...
А премудрый Люнь-Люнь стал закладывать фундамент, чтобы выстроить настоящий крепкий дом.
Сокращение сроков производства с потерей качества позволила Линь-Линю и Лян-Ляну продолжить веселье.
Люнь-Люнь же старательно строил крепость из кирпичей...
И вот однажды, когда Люнь-Люнь докладывал шестой уровень...
Он почувствовал, что за его работой кто-то пристально наблюдает...
...Тут и сказочке конец.
(from trinixy.ru)
Labels:
joke
Monday, March 12, 2012
a script to remove old partitions from a zabbix database
This script searches the database (postgres) for the most old tables and removes if they are old enough. Only for %Y_%m_%d format.
#!/usr/bin/python import sys; #import datetime; from datetime import datetime, date, time, timedelta, tzinfo; import time; import psycopg2; ###### User params ######## TABLES = ( "history", "history_log", "history_uint", "history_str" ); MONTH = 3; LIMIT = 3; db_params = "host='localhost' dbname='zabbix' user='zabbix' password='xxx'"; ##### End of User params ## th_mth_ago = (datetime.today() - timedelta(MONTH*365/12)).strftime("%Y_%m_%d"); log_ft = "%Y-%m-%d %H:%M:%S"; def pg(curs,table,q): cnds = []; curs.execute(q); for row in curs: cnds.append(row[0]); return cnds; def main(): conn = psycopg2.connect(db_params); curs = conn.cursor(); print "%s" %(datetime.now().strftime(log_ft)); for table in TABLES: table_long = "partitions." + table + "_" + th_mth_ago; query = "SELECT tablename FROM pg_tables WHERE schemaname='partitions' AND tablename like '" + table + "%' order by tablename limit " + str(LIMIT); candidates = pg(curs,table,query); if candidates: print "\n %s oldest tables:" % (LIMIT); for c_table in candidates: sys.stdout.write( '\n\t' + c_table + ''); ct = str.rsplit(c_table,table+"_"); candidate_time = ct[1]; dt = datetime.strptime(candidate_time,"%Y_%m_%d"); # print dt.strftime("%Y_%m_%d"); if (dt.strftime("%Y_%m_%d") < th_mth_ago): sys.stdout.write(' is older then tree months.\n'); try: q1 = "ALTER TABLE partitions." + table + "_" + dt.strftime("%Y_%m_%d") + " NO INHERIT " + table; print "%s: %s;" %(datetime.now().strftime(log_ft),q1); curs.execute(q1); except: print "%s: No inheritance!"%(datetime.now().strftime(log_ft)); conn.rollback(); pass; sys.exc_clear(); try: q2 = "DROP RULE route_" + dt.strftime("%Y_%m_%d") + " ON " + table; print "%s: %s;" %(datetime.now().strftime(log_ft),q2); curs.execute(q2); except: print "%s: No INSERT rule!" %(datetime.now().strftime(log_ft)); conn.rollback(); pass; sys.exc_clear(); conn.commit(); q3 = "DROP TABLE partitions." + table + "_" + dt.strftime("%Y_%m_%d") + " CASCADE"; print "%s: %s;" %(datetime.now().strftime(log_ft),q3); curs.execute(q3); conn.commit(); print "%s: OK" %(datetime.now().strftime(log_ft)); print "\n%s: Finished" % (datetime.now().strftime(log_ft)); curs.close() conn.close() sys.stdout.flush() sys.stderr.flush() if __name__ == "__main__": sys.exit(main()) # author: crypt # url: http://crypt47.blogspot.com # EOF
Wednesday, March 7, 2012
Subscribe to:
Posts (Atom)