To jest zestaw materiałów będący integralną częścią video szkolenia. Zawiera instrukcje oraz skrypty i pliki konfiguracyjne użyte podczas nagrania, umożliwiając tym samym samodzielne wykonanie przykładów z nagrania.
##Przygotowanie środowiska roboczego
Ubuntu 18.04
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get install docker-ce
Centos/Fedora/Redhat
yum install docker
Ubuntu 18.04
sudo systemctl start docker
Centos/Fedora/Redhat
sudo systemctl start docker
Do katalogu /tmp/materialy
wgrać zawartość katalogu materialy
tego repozytorium, lub poprawić ścieżkę dostępu przy wywołaniu komendy
docker run --name lab -e POSTGRES_PASSWORD=postgres -v /tmp/materialy:/var/lib/postgresql/materialy -d postgres
docker ps
docker exec -it lab bash
docker stop lab
docker start lab
docker exec -it lab bash
po ówczesnym zalogowaniu do kontenera
chown -R postgres: /var/lib/postgresql
apt update
apt install vim links -y
mkdir prod
mkdir test
initdb -D prod
initdb -D test
echo 'export PATH=/usr/lib/postgresql/11/bin/:$PATH' >> .bash_profile
source .bash_profile
modyfikacja parametrów w plikach konfiguracyjnych :
test/postgresql.conf : port=6001
prod/postgresql.conf : port=6002
w obu plikach :
logging_collector=on
log_directory='log'
log_filename='postgresql-%Y-%m-%d.log
modyfikacja linii w plikach konfiguracyjnych:
test/pg_hba.conf : host all all 127.0.0.1/32 md5
prod/hba.conf : host all all 127.0.0.1/32 md5
pg_ctl -D test/ start
pg_ctl -D prod/ start
psql -p 6001
SHOW port
SHOW data_directory;
\c
\q
psql -p 6002
SHOW port
SHOW data_directory;
\c
\q
psql -p 6001 -f scripts/create_test.sql
psql -p 6002 -h localhost -U user_prod db_prod
\i scripts/create_prod.sql
\q
sprawdzenie:
psql -p 6001 -h localhost -U user_test db_test
\c
SHOW port;
\q
psql -p 6002 -h localhost -U user_prod db_prod
\c
SHOW port;
\q
cp materialy/.bash_profile ./
cat .bash_profile
source .bash_profile
psql
SHOW port;
SHOW data_directory;
\q
zmiana wartości zmiennych w pliku .bash_profile
export PGPORT=6002
export PGUSER=user_prod
export PGDATABASE=db_prod
wczytanie zmian
source .bash_profile
psql
SHOW port;
ustawienia eliminujące potrzebę wpisywania hasła
cp materialy/.pgpass ./
cat .pgpass
cp materialy/.psqlrc ./
cat .psqlrc
cp materialy/.pg_service.conf ./
psql ”service=db_test”
show port;
\q
psql ”service=db_prod”
show port;
\q
cat materialy/scripts/gexec.sh
materialy/scripts/gexec.sh
psql "service=db_test" -c "\dt"
psql "service=db_test" -c "SELECT * FROM tabela4"
psql "service=db_prod" -c "\dt"
psql "service=db_test"
\! psql "service=db_prod" -c "SELECT * FROM tabela6"
\! psql "service=db_prod" -c "\dt"
\p
SELECT * FROM tabela9;
\p
\e
zmiana zapytania, wyjście z vim'a :wq
\e
:w zapytanie.sql
mkdir raporty
psql „service=db_test” -f materialy/scripts/raporty.sql
\pset
SELECT * FROM tabela1;
\pset border 2
SELECT * FROM tabela1;
zmiana ustawień
\pset title lista
SELECT * FROM tabela1;
\pset format unaligned
SELECT * FROM tabela1;
\pset fieldsep ‘,’
\pset recordsep '|'
\pset tuples_only on
SELECT * FROM tabela1;
SELECT * FROM tabela1 \g raporty/raport.csv
\! cat raport/raport.csv
\pset tuples_only off
\pset format html
\pset tableattr ‘cellpadding=”5”’
SELECT * FROM tabela1;
SELECT * FROM tabela1 \g raporty/raport.html
\! links raporty/raport.html
\o raporty/raport.html
SELECT * FROM tabela1;
SELECT * FROM tabela1;
SELECT * FROM tabela1;
\! links raporty/raport.html
\o
SELECT * FROM tabela1;
\! links raporty/raport.html
materialy/scripts/raporty1.sh
vi raporty/test1.rap
psql „service=db_test” -f materialy/scripts/raporty1.sql
testowy.rap
vi raporty/testowy.rap
psql „service=db_prod” -f materialy/scripts/raporty1.sql
produkcja.rap
vi raporty/produkcja.rap
\timing
SELECT *, pg_sleep(1) FROM tabela1 \g
SELECT *, pg_sleep(1) FROM tabela1 \gdesc
SELECT * FROM tabela1 \watch 1