kb:pg:priprema_za_migraciju

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
kb:pg:priprema_za_migraciju [2018/04/10 12:11] – [Instalacija Postgres baze podataka na server] nessakb:pg:priprema_za_migraciju [2019/12/11 11:08] – [Priprema drajvera] nessa
Line 1: Line 1:
 ====== Priprema za migraciju na Postgres ====== ====== Priprema za migraciju na Postgres ======
  
-===== Instalacija Postgres baze podataka na server ===== +  * [[:kb:pg:postgres_instalacija_linux|Instalacija na Linux operativnom sistemu]] 
- +  * [[:kb:pg:postgres_instalacija_windows|Instalacija na Windows operativnom sistemu]]
-Prilikom instalacije PostreSQL baze podataka obratiti pažnji na sledeće: +
- +
-  * bazu podataka ne smeštati u Program Files lokaciju, već u zaseban direktorijum (nikako u postojeći Balans dir.) na disku na kom ima dovoljno mesta i koji je pokriven bekapom. +
-  * prilikom instalacije biće zatraženo definisanje super-user lozinke za **postgres**  korisnika (sa svim ovlašćenjima) - ova lozinka ne sme da bude trivijalna, i zna je samo administrator servera +
-  * za korisnike Balansa otvariti tri userabalans_admin, balans_user, balans_reports +
-  * nakon instalacije ne zaboraviti konfigurisanje Postgres servera za pristup iz mreže (podrazumevano, samo lokalni računar mu može pristupiti), editovanjem **pg_hba**  fajla \\ dodavanjem redova \\ **host all all 192.168.0.0/24 md5**  za IPv4 konekcije (promeniti prve 2 vrednosti 192.168 prema stanju u lokalnoj mreži) i **host all all fe80::/10 md5**  za IPv6 konekcije. +
-  * ne zaboraviti i otvaranje TCP/IP porta za pristup bazi u firewall-u servera +
  
 ==== Napomena kod zadavanja pristupnih lozinki bazi podataka ==== ==== Napomena kod zadavanja pristupnih lozinki bazi podataka ====
Line 22: Line 14:
   * Migracija podataka nije invazivna za Jet baze, ali nije dobro raditi na aktivnim bazama jer može doći do promene podataka u toku izvoza u SQL   * Migracija podataka nije invazivna za Jet baze, ali nije dobro raditi na aktivnim bazama jer može doći do promene podataka u toku izvoza u SQL
   * Prvo se migriraju arhive, pa tek onda tekuća baza   * Prvo se migriraju arhive, pa tek onda tekuća baza
 +
 ===== Priprema drajvera ===== ===== Priprema drajvera =====
  
-Na kompjuteru sa koga će se prebacivati podaci iz JET baze podataka ili na kome će raditi Balans 4 treba instalirati 32bitni PostgreSQL ODBC driver. \\  \\ Opciono: \\ Kroz //Administrative tools –> ODBC data sources (32 bit)//  treba napraviti //System DSN//, čiji naziv može biti proizvoljan (npr. **PostgreSQL35W**) i podesiti mu svojstva u skladu sa {{:kb:uputstva:postgres_odbc_driver.png?linkonly|ovim primerom.}}  \\  \\ {{:bal:znanje_32.png?nolink&32x32  }}Detalji o svim parametrima Postgres ODBC drajvera nalaze se na ovoj adresi: [[http://psqlodbc.projects.pgfoundry.org/docs/config.html|http://psqlodbc.projects.pgfoundry.org/docs/config.html]]+Na kompjuteru sa koga će se prebacivati podaci iz JET baze podataka ili na kome će raditi Balans 4 treba instalirati 32bitni PostgreSQL ODBC driver.\\ 
 +\\ 
 +Opciono:\\ 
 +Kroz //Administrative tools –> ODBC data sources (32 bit)// treba napraviti //System DSN// koristeći unicode PostgreSQL ODBC driver, čiji naziv može biti proizvoljan (npr. **PostgreSQL35W**) i podesiti mu svojstva u skladu sa {{:kb:pg:pgs_dsn.png?linkonly|ovim primerom.}} \\ 
 +\\ 
 +{{:bal:znanje_32.png?nolink&32x32  }}Detalji o svim parametrima Postgres ODBC drajvera nalaze se na ovoj adresi: [[http://psqlodbc.projects.pgfoundry.org/docs/config.html|http://psqlodbc.projects.pgfoundry.org/docs/config.html]]
  
-=====   Opcije drajvera koje utiču na Crystal Reports izveštaje   ===== 
  
-|**Use Declare/Fetch** |Treba uključiti na mašinama gde se okida greška //"Out of memory while reading tuples"// kada je rezultat sa mnogo slogova, jer DSN pokuša da uvuče sve slogove iz rezultata pre nego što ga vrati Crystal-u| +===== Opcije drajvera koje utična Crystal Reports izveštaje =====
-|**True is -1** | |+
  
-{{:bal:ideja_32.png?nolink&32x32  }}Povezivanje Balansa na Postgres bazu može se izvesti i bez registrovanja **Postgres ODBC DSN**  tako što se u korenu foldera sa bazama podataka (..\Balans\Data\) napravi fajl **PgODBC.txt**  u kome se u //šifrovanom obliku//  navedu osnovni parametri pristupa serveru.+|**Use Declare/Fetch** |Kada se DSN koristi za Crystal treba **uključiti** na mašinama gde se okida greška //"Out of memory while reading tuples"// kada je rezultat sa mnogo slogova, jer DSN pokuša da uvuče sve slogove iz rezultata pre nego što ga vrati Crystal-u. Kada se DSN koristi za Balans treba **isključiti** jer se okida greška na WITH jfrom ... iskazima.| 
 +|**True is -1** |Treba **isključiti uvek** jer zbunjuje Crystal, a Balans radi u obe varijante.| 
 + 
 +{{:bal:ideja_32.png?nolink&32x32  }}Povezivanje Balansa na Postgres bazu može se izvesti i bez registrovanja **Postgres ODBC DSN** tako što se u korenu foldera sa bazama podataka (..\Balans\Data\) napravi fajl **PgODBC.txt** u kome se u //šifrovanom obliku// navedu osnovni parametri pristupa serveru.
  
 Primer parametara veze Primer parametara veze
Line 39: Line 38:
 </code> </code>
  
-Čitanje fajla **PgODBC.txt vrši**  //BLRBasic.dll //i dodaje ostala svojstva (//UseDeclareFetch, BoolsAsChar, TrueIsMinus1 itd//). pre ostvarivanja veze sa Postgres bazom. Ostali moduli kojima treba direktna konekcija na Postgres bazu (npr. //BLRReports.dll//) mogu dobiti sadržaj fajla **PgODBC.txt **od objekta klase //BLRBasic.SyBal2//  i po potrebi zadati ostala svojstva konekcije.+Čitanje fajla **PgODBC.txt vrši** //BLRBasic.dll //i dodaje ostala svojstva (//UseDeclareFetch, BoolsAsChar, TrueIsMinus1 itd//). pre ostvarivanja veze sa Postgres bazom. Ostali moduli kojima treba direktna konekcija na Postgres bazu (npr. //BLRReports.dll//) mogu dobiti sadržaj fajla **PgODBC.txt **od objekta klase //BLRBasic.SyBal2// i po potrebi zadati ostala svojstva konekcije. 
 + 
 +\\ 
  
 ===== Pravljenje "linkova" između PGS shema/baza (imitacija linkova u JET bazama) ===== ===== Pravljenje "linkova" između PGS shema/baza (imitacija linkova u JET bazama) =====
  
-U PostgreSQL-u ne postoje linkovi u smislu JET baza (pokazivači na tabele u drugim bazama) - umesto toga se koriste //[[https://wiki.postgresql.org/wiki/Foreign_data_wrappers|Foreign Data Wraperi//]]//, koji mogu spojiti baze sa istog ili različitih servera.+U PostgreSQL-u ne postoje linkovi u smislu JET baza (pokazivači na tabele u drugim bazama) - umesto toga se koriste //[[https://wiki.postgresql.org/wiki/Foreign_data_wrappers|Foreign Data Wraperi//]]// , koji mogu spojiti baze sa istog ili različitih servera.
  
 ==== Linkovanje na arhive u istoj bazi ==== ==== Linkovanje na arhive u istoj bazi ====
  
-Za razliku od JET-a, gde su arhive bile zasebne baze podataka, u Postgresu su one samo //scheme//  unutar iste baze.  Kako su u istoj bazi, nema potrebe za linkovanjem već im se pristupa navodjenjem imena sheme ispred imena baze. Na primer:+Za razliku od JET-a, gde su arhive bile zasebne baze podataka, u Postgresu su one samo //scheme//  unutar iste baze. Kako su u istoj bazi, nema potrebe za linkovanjem već im se pristupa navodjenjem imena sheme ispred imena baze. Na primer:
  
 <code> <code>
Line 75: Line 77:
 Ako se u neku od FDW tabela doda kolona ona se (verovatno) neće videti u upitima jer je nema u FDW definiciji koju treba ponovo napraviti ako je moguće jer će možda komanda DROP FOREIGN TABLE xxx okinuti grešku da se koristi u nekim upitima. Nisam isprobao. Ako se u neku od FDW tabela doda kolona ona se (verovatno) neće videti u upitima jer je nema u FDW definiciji koju treba ponovo napraviti ako je moguće jer će možda komanda DROP FOREIGN TABLE xxx okinuti grešku da se koristi u nekim upitima. Nisam isprobao.
  
-Napomena: JET linkovi na ne JET baze (npr. SQL Server) **ne mogu se preneti**  u PGS jer postojeća rešenja kao što je [[http://pgxn.org/dist/tds_fdw/|tds_fdw]] ne podržavaju upis u SQL Server tabelu. \\ +Napomena: JET linkovi na ne JET baze (npr. SQL Server) **ne mogu se preneti**  u PGS jer postojeća rešenja kao što je [[http://pgxn.org/dist/tds_fdw/|tds_fdw]] ne podržavaju upis u SQL Server tabelu. Zato je jednostavnije napraviti link iz SQL Servera na PGS server pomoću PGS ODBC driver-a [[https://www.mssqltips.com/sqlservertip/3662/sql-server-and-postgresql-linked-server-configuration--part-2/|www.mssqltips.com/sqlservertip/3662/sql-server-and-postgresql-linked-server-configuration--part-2/]]
-Zato je jednostavnije napraviti link iz SQL Servera na PGS server pomoću PGS ODBC driver-a \\ +
-[[https://www.mssqltips.com/sqlservertip/3662/sql-server-and-postgresql-linked-server-configuration--part-2/|www.mssqltips.com/sqlservertip/3662/sql-server-and-postgresql-linked-server-configuration--part-2/]]+
  
 ===== Priprema drajvera ===== ===== Priprema drajvera =====
  
-Na kompjuteru sa koga će se prebacivati podaci iz JET baze podataka ili na kome će raditi Balans 4 treba instalirati 32bitni PostgreSQL ODBC driver.\\ +Na kompjuteru sa koga će se prebacivati podaci iz JET baze podataka ili na kome će raditi Balans 4 treba instalirati 32bitni PostgreSQL ODBC driver. Opciono: Kroz //Administrative tools –> ODBC data sources (32 bit)//  treba napraviti //System DSN//, čiji naziv može biti proizvoljan (npr. **PostgreSQL35W**) i podesiti mu svojstva u skladu sa {{:kb:uputstva:postgres_odbc_driver.png?linkonly|ovim primerom.}} {{:bal:znanje_32.png?nolink&32x32  }}Detalji o svim parametrima Postgres ODBC drajvera nalaze se na ovoj adresi: [[http://psqlodbc.projects.pgfoundry.org/docs/config.html|http://psqlodbc.projects.pgfoundry.org/docs/config.html]]
-\\ +
-Opciono:\\ +
-Kroz //Administrative tools –> ODBC data sources (32 bit)// treba napraviti //System DSN//, čiji naziv može biti proizvoljan (npr. **PostgreSQL35W**) i podesiti mu svojstva u skladu sa {{:kb:uputstva:postgres_odbc_driver.png?linkonly|ovim primerom.}} \\ +
-\\ +
-{{:bal:znanje_32.png?nolink&32x32  }}Detalji o svim parametrima Postgres ODBC drajvera nalaze se na ovoj adresi: [[http://psqlodbc.projects.pgfoundry.org/docs/config.html|http://psqlodbc.projects.pgfoundry.org/docs/config.html]]+
  
 ===== Opcije drajvera koje utiču na Crystal Reports izveštaje ===== ===== Opcije drajvera koje utiču na Crystal Reports izveštaje =====
Line 93: Line 88:
 |**True is -1** | | |**True is -1** | |
  
-{{:bal:ideja_32.png?nolink&32x32  }}Povezivanje Balansa na Postgres bazu može se izvesti i bez registrovanja **Postgres ODBC DSN** tako što se u korenu foldera sa bazama podataka (..\Balans\Data\) napravi fajl **PgODBC.txt** u kome se u //šifrovanom obliku// navedu osnovni parametri pristupa serveru.+{{:bal:ideja_32.png?nolink&32x32  }}Povezivanje Balansa na Postgres bazu može se izvesti i bez registrovanja **Postgres ODBC DSN**  tako što se u korenu foldera sa bazama podataka (..\Balans\Data\) napravi fajl **PgODBC.txt**  u kome se u //šifrovanom obliku//  navedu osnovni parametri pristupa serveru.
  
 Primer parametara veze Primer parametara veze
Line 101: Line 96:
 </code> </code>
  
-Čitanje fajla **PgODBC.txt vrši** //BLRBasic.dll //i dodaje ostala svojstva (//UseDeclareFetch, BoolsAsChar, TrueIsMinus1 itd//). pre ostvarivanja veze sa Postgres bazom. Ostali moduli kojima treba direktna konekcija na Postgres bazu (npr. //BLRReports.dll//) mogu dobiti sadržaj fajla **PgODBC.txt **od objekta klase //BLRBasic.SyBal2// i po potrebi zadati ostala svojstva konekcije.+Čitanje fajla **PgODBC.txt vrši**  //BLRBasic.dll //i dodaje ostala svojstva (//UseDeclareFetch, BoolsAsChar, TrueIsMinus1 itd//). pre ostvarivanja veze sa Postgres bazom. Ostali moduli kojima treba direktna konekcija na Postgres bazu (npr. //BLRReports.dll//) mogu dobiti sadržaj fajla **PgODBC.txt **od objekta klase //BLRBasic.SyBal2//  i po potrebi zadati ostala svojstva konekcije. 
 ===== Pravljenje "linkova" između PGS shema/baza (imitacija linkova u JET bazama) ===== ===== Pravljenje "linkova" između PGS shema/baza (imitacija linkova u JET bazama) =====
  
-U PostgreSQL-u ne postoje linkovi u smislu JET baza (pokazivači na tabele u drugim bazama) - umesto toga se koriste //[[https://wiki.postgresql.org/wiki/Foreign_data_wrappers|Foreign Data Wraperi//]]// , koji mogu spojiti baze sa istog ili različitih servera.+U PostgreSQL-u ne postoje linkovi u smislu JET baza (pokazivači na tabele u drugim bazama) - umesto toga se koriste //[[https://wiki.postgresql.org/wiki/Foreign_data_wrappers|Foreign Data Wraperi//]]//, koji mogu spojiti baze sa istog ili različitih servera.
  
 ==== Linkovanje na arhive u istoj bazi ==== ==== Linkovanje na arhive u istoj bazi ====
  
-Za razliku od JET-a, gde su arhive bile zasebne baze podataka, u Postgresu su one samo //scheme// unutar iste baze. Kako su u istoj bazi, nema potrebe za linkovanjem već im se pristupa navodjenjem imena sheme ispred imena baze. Na primer:+Za razliku od JET-a, gde su arhive bile zasebne baze podataka, u Postgresu su one samo //scheme//  unutar iste baze. Kako su u istoj bazi, nema potrebe za linkovanjem već im se pristupa navodjenjem imena sheme ispred imena baze. Na primer: 
 <code> <code>
 SELECT * FROM "2015".Racuni SELECT * FROM "2015".Racuni
 </code> </code>
  
-<sup>*)</sup>  Ime šeme je uokvireno u znake navoda zato što počinje brojem, a ne slovom, kako je podrazumevano očekivano.+<sup>*)</sup>   Ime šeme je uokvireno u znake navoda zato što počinje brojem, a ne slovom, kako je podrazumevano očekivano
 + 
 +Tako imamo da se umesto JET linka **Racuni2015**  može napraviti //pogled//  **Racuni2015**, iako bi najbolje bilo prepraviti takve upite da koriste //šeme//  umesto //pogleda//.
  
-Tako imamo da se umesto JET linka **Racuni2015** može napraviti //pogled// **Racuni2015**, iako bi najbolje bilo prepraviti takve upite da koriste //šeme// umesto //pogleda//. 
 ==== Linkovanje na baze/arhive u drugim bazama ==== ==== Linkovanje na baze/arhive u drugim bazama ====
  
  • kb/pg/priprema_za_migraciju.txt
  • Last modified: 2020/03/09 12:12
  • by nessa