Data z obchodního

Tak jako každý den, otevíráte poštovního klienta s došlou poštou. Spam, spam, Peníze pro popálené děvčátko za šíření e-mailu, Oznámení o změně pravidel pro parkování v areálu, spam a vida, zpráva která vypadá legitimně:

On Sep 29 “Alexander Sale - Senior Sales Manager” wrote:

Hi DBA,

developers need Pgsql database for our sales app on db server 02. Please solve it and fill the db
with data from our previous sw (send me
backup of your db after finished).

ok?

thx

Alex


Alexander Sale
Sales IC
Enterprise Representative of ACME, Inc.
alexander.sale@acme.biz

I'm a signature virus. Please add me to your signature and help me spread!


On Sep 24 “Peter Bug - Java Programmer” wrote:

We need an instance of PostgreSQL on server db01.acme.biz, please provide us with connection string
for a new cluster via AF_UNIX socket and TCP/IP. We expect to use UTF-8, authentication via password.

New database name: `salesapp'
User name: `sales'
Password: `iaKnikIm5'

Thank you!

Information from NOD32
This message was checked by NOD32 Antivirus System for Linux Mail Server.
http://www.nod32.com


Information from NOD32
This message was checked by NOD32 Antivirus System for Linux Mail Server.
http://www.nod32.com



This document is intended for, and should only be read by, those persons to whom it is addressed. Its contents
are confidential and if you have received this message in error, please delete it and notify us immediately,
e-mail leaks@acme.example.com. Any form of reproduction, dissemination, copying, disclosure, modification,
distribution and / or publication of this message without our prior written consent is strictly prohibited.

Any views expressed in this message are those of the individual sender, and do not necessarily represent the
position of ACME. Furthermore ACME does not authorise or use e-mail for official contractual correspondence.
Nothing received in e-mail has any contractual validity.

ACME and each legal entity in ACME Corporation reserve the right to monitor all e-mail communications through
its networks.

This footnote also confirms that this email message has been checked for known computer viruses.

Information from NOD32
This message was checked by NOD32 Antivirus System for Linux Mail Server.
http://www.nod32.com

Takže máme nový úkol, rovnou ho vyřešíme.

Díky minulému postupu jsme systém ovládli a změnili heslo superuživatele:

username: root
password: hippo

Heslo uživatele zůstává:

username: dba
password: dba

Základní systém serveru db03 je úplně připravený, beží na Ubuntu 10.04 LTS, takže:

  • Nainstalujeme PostgreSQL,
  • nastavíme ho pro síťový přístup (zkuste dvě různé IP, localhost a eth0) a autentizaci heslem,
  • vytvoříme uživatele a databázi,
  • otestujeme navzájem možnost síťového spojení (s někým z kolegů),
  • uděláme zálohu, vykoušíme obnovu,
  • provedeme import dat.

Nástroje

Pár snad užitečných tipů:

  • Autentizace v PostgreSQL se dá nastavit v pg_hba.conf. (dokumentace)
  • Superuživatel PostgreSQL je systémový uživatel postgres. “Přepnout” se na něj dá pomocí su - postgres.
  • Databázový uživatel nebo databáze se dá vytvořit přímo z shellu, createdb, createuser.
  • Pěkný klient pro práci s PostgreSQL se jmenuje psql.
  • Automatická náhrada FOO za BAR: sed -i 's/FOO/BAR/' foobar.sql.
  • Datové typy v PostgreSQL jsou v dokumnetaci.
  • Detekci kódování souboru umožňuje pěkná nástroj enca: enca -L czech uknown-charset.txt, pro jeho instalaci musíme nejprve do /etc/apt/sources.list přidat řádek
    deb http://cz.archive.ubuntu.com/ubuntu/ maverick universe

    a udělat aptitude update.

  • Převod kódování pak zajistí nástroj recode: recode iso8859-1..utf8 known-charset.txt.

Řešení

  1. Instalace PostgreSQL jako minule,
  2. vytvoříme databázového uživatele
    • su - postgres
    • createuser -P sales,
  3. vytvoříme databázi
    • createdb -O sales -E UTF8 salesapp,
  4. vyzkoušíme odstaranění databáze
    • dropdb salesapp,
  5. otestujeme spojení
    • ifconfig
    • psql -H192.168.9.100 -U sales
    • \dt,
  6. vyzkoušíme zálohu a obnovu
    • pg_dump sales | gzip > sales.sql.gz
    • psql sales < sales.sql,
  7. provedeme konverzi
    • enca -L czech tanketa.sql,
    • recode latin2..utf8 t*sql,
  8. a import dat
    • elegantní import všech souborů s daty ls t*sql | while read file; do psql -d salesapp -f $file; done

Bonus

Vytvořte skript, který dokáže konvertovat databázi podobnou té testovací mezi Firebird (zdroj) a PostgreSQL (cíl). Konkrétní realizace je čistě na vás, nejdůležitější je bezpečnost dat a funkčnost. Výsledek bude otestován na vám neznámé, ale poměrně jednoduché tabulce, pokud koverze proběhne správně, máte to. ;)

 
2010-02-datazobchodniho.txt · Last modified: 2011-09-27 14:52 by ucitel
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki