firebird:firebird3
Obsah
Firebird3
Instalace Windows
- rozzipovat Firebird-3.0.8.33535-0_x64.zip
- spustit jako Admin cmd
- install_service.bat
- isql -user sysdba employee
- create user SYSDBA password 'SomethingCryptic'; commit; exit;
- povolit firewall port 3050
Instalace Linux
- nastavit .obis_profile + .bashrc
apt install zsh useradd -m -g users -G sudo -s /bin/zsh obis passwd obis #pridat contrib do /etc/apt/sources.list sudo apt update sudo apt-get install libtommath1 libncurses5 vim mc unzip lftp ttf-mscorefonts-installer liblua5.3-0 cd /usr/lib/x86_64-linux-gnu/ sudo ln -s libtommath.so.1 libtommath.so.0 sudo dpkg-reconfigure locales cd /tmp wget https://github.com/FirebirdSQL/firebird/releases/download/... #http://firebirdsql.org/en/firebird-3-0/ tar -xzvf Firebird-3.0 cd /tmp/Firebird-3.0 sudo ./install.sh #nastavuje heslo sysdba sudo systemctl status firebird-superserver.service sudo /opt/firebird/bin/changeServerMode.sh sudo vim /lib/systemd/system/firebird-classic.socket #zmenit post 3050 sudo systemctl restart firebird-classic.socket echo "show version;" | isql localhost:employee sudo usermod -d /home/firebird firebird sudo mkdir -p /home/firebird/fdbs sudo chown firebird:firebird /home/firebird -R sudo chmod g+rwX /home/firebird/fdbs sudo tar -xzvf /tmp/data.tar.gz -C /home/firebird/fdbs sudo chown firebird:firebird /home/firebird -R sudo usermod -a -G firebird obis isql localhost:/home/firebird/fdbs/licence.fdb isql /home/firebird/fdbs/licence.fdb
OBIS
unzip install/obis-client-64bit.zip tar -xzvf install/obis-client-64bit.tar.gz vim etc/obisrc.xml cd lualib5.3/lib/x86_64-Linux ln -s ssl.so.3.0.0 ssl.so ln -s openssl.so.3.0.0 openssl.so ./bin64/passwd -dbpass $ISC_PASSWORD ./bin64/licencec -list
SAMBA
sudo apt-get install samba sudo vim /etc/samba/smb.conf sudo smbpasswd -a obis sudo systemctl restart smbd.service
smb.conf
preserve case = yes [obis] comment = Obis path = /mnt/data/obis5 writeable = yes create mode = 664 directory mode = 775 guest ok = no #valid users = @users [obisdoc] comment = Obis dokumenty path = /mnt/data/obisdoc writeable = yes create mode = 664 directory mode = 775 guest ok = no #valid users = @users
Instalace/upgrade FB2->3 Linux
- nejprve zazalohovat databaze pomoci gbak 2.5, po instalaci FB3 se restoruje pomoci gbak 3
sudo apt-get install libtommath1 libncurses5 cd /usr/lib/x86_64-linux-gnu/ sudo ln -s libtommath.so.1 libtommath.so.0 sudo systemctl stop cron wget https://github.com/FirebirdSQL/firebird/releases/download/... #https://firebirdsql.org/en/firebird-3-0/ tar -xzvf Firebird-3.0 cd /tmp/Firebird-3.0 gbak -V localhost:/home/firebird/licence.fdb /mnt/backup/licence25.fbk gbak -V localhost:/home/firebird/data.fdb /mnt/backup/data25.fbk sudo mv /etc/xinetd.d/firebird /$HOME/ sudo systemctl restart xinetd.service sudo systemctl status xinetd.service sudo mv /opt/firebird /opt/firebird25.bk sudo killall fb_inet_server sudo ./install.sh #nastavuje heslo sysdba sudo systemctl status firebird-superserver.service sudo /opt/firebird/bin/changeServerMode.sh sudo systemctl status firebird-classic.socket echo "show version;" | isql localhost:employee.fdb sudo mv /home/firebird/*.fdb /tmp/ gbak -R -V /mnt/backup/licence25.fbk localhost:/home/firebird/licence.fdb gbak -R -V /mnt/backup/data25.fbk localhost:/home/firebird/data.fdb sudo systemctl start cron sudo systemctl status cron
Změna hesla sysdba
ALTER USER sysdba password 'heslo'; SELECT SEC$USER_NAME, SEC$PLUGIN FROM sec$users;
SLES 15
* FB3 vyzaduje ICU 52, ktere neni v repo (nelze instalovat z tar.gz)
sudo zypper install firebird
Script na vytvoreni backup a restore scriptu DB ODS 11->12
create_fbupgrade_scripts.sh
#!/bin/bash #etc/obisrc.xml - presunout data.fdb na prvni misto #uzivatel musi mit pravo zapisu do /firebird/fdbs - jinak nejede restore rychle lokalne ale pomalu pres remote #vytvoreni scriptu pro prevod: create_fbupgrade_scripts.sh [-d dataname] [/tmp/firebird64] #pro pomocnou embed verzi 2.5 - prevod zapomenutych DB #nasledne pouziti: [dellog_all_db.sh]; backup_all_db.sh; move_all_db.sh; instalace FB3; restore_all_db.sh #vytvoreni /tmp/firebird64 - verze 2.5 embed pro zapomenute databaze: # cd /tmp/ # lftp ftp.epos.cz -e "get obis/firebird-clients/259/linux64-embed.tgz; exit" # tar -xzvf linux64-embed.tgz #zkopirovat DB do /tmp/data.fdb #./create_fbupgrade_scripts.sh -d data-tmp /home/kaja/obis4git/firebird25 # nasledne: backup_restore_all_db.sh #databaze velikost 1.6GB backup 60sec, restore 100sec, backup+restore 100sec (dellog_all_db zrychluje minimalne - 15sec) . `dirname $0`/setenv.sh [ -d $BACKUPPATH ] || echo "ERROR: BACKUPPATH "$BACKUPPATH" neexistuje" [ -d $SCRIPTSDIR ] || echo "ERROR: SCRIPTSDIR "$SCRIPTSDIR" neexistuje" touch $DATABASEPATH/fb3_upgrade if [ $? -ne 0 ]; then echo "ERROR: nelze zapisovat do $DATABASEPATH" fi if [ "$1" = "-d" ]; then `$ROOTDIR/bin64/loginc -syspass "$SYSPASS" -dataname $2 -exec "$ROOTDIR/bin64/setisc.sh"` ALLDB="$ISC_DATABASE" shift 2 else `$ROOTDIR/bin64/loginc -syspass "$SYSPASS" -licence -exec "$ROOTDIR/bin64/setisc.sh"` LICDB=$ISC_DATABASE `$ROOTDIR/bin64/loginc -syspass "$SYSPASS" -alldata -exec "$ROOTDIR/bin64/setisc.sh"` ALLDB="$LICDB;$ISC_DATABASE" fi #echo $ALLDB DELLOGSCRIPT=$SCRIPTSDIR/dellog_all_db.sh BACKUPSCRIPT=$SCRIPTSDIR/backup_all_db.sh MOVESCRIPTS=$SCRIPTSDIR/move_all_db.sh RESTORESCRIPT=$SCRIPTSDIR/restore_all_db.sh echo "#!/bin/sh" | tee $DELLOGSCRIPT $BACKUPSCRIPT $MOVESCRIPTS $RESTORESCRIPT > /dev/null chmod +x $DELLOGSCRIPT $BACKUPSCRIPT $MOVESCRIPTS $RESTORESCRIPT if [ "$1" = "" ]; then FBOLD=$FIREBIRD else FBOLD=$1 echo "export FIREBIRD=$FBOLD" | tee -a $DELLOGSCRIPT $BACKUPSCRIPT > /dev/null echo "export LD_LIBRARY_PATH=$FBOLD/lib" | tee -a $DELLOGSCRIPT $BACKUPSCRIPT > /dev/null BACKUPRESTORESCRIPT=$SCRIPTSDIR/backup_restore_all_db.sh echo "#!/bin/sh" > $BACKUPRESTORESCRIPT chmod +x $BACKUPRESTORESCRIPT shift fi FBNEW=$FIREBIRD while IFS=';' read -ra DBS; do for DB in "${DBS[@]}"; do LOCDB=${DB#*:} DBFN=`basename $LOCDB .fdb` cat <<EOF >> $DELLOGSCRIPT LIMIT=100 echo "delete log $LOCDB" echo "delete from common_log where datum<CURRENT_DATE-\$LIMIT;" | $FBOLD/bin/isql $LOCDB echo "delete from common_syslog where datum<CURRENT_DATE-\$LIMIT;" | $FBOLD/bin/isql $LOCDB EOF cat <<EOF >>$BACKUPSCRIPT echo "backup $LOCDB log /tmp/$DBFN-25.log" rm -f /tmp/$DBFN-25.log $FBOLD/bin/gbak -z -b -g -v -y /tmp/$DBFN-25.log $LOCDB $BACKUPPATH/$DBFN.fbk ls -lh $BACKUPPATH/$DBFN.fbk EOF cat <<EOF >>$MOVESCRIPTS mv $LOCDB $BACKUPPATH/$DBFN.ods11.fdb ls -lh $BACKUPPATH/$DBFN.ods11.fdb EOF cat <<EOF >>$RESTORESCRIPT echo "restore $LOCDB log /tmp/$DBFN-30.log" rm -f /tmp/$DBFN-30.log $FBNEW/bin/gbak -z -c -v -y /tmp/$DBFN-30.log $BACKUPPATH/$DBFN.fbk $LOCDB sudo chown firebird:firebird $LOCDB echo "show version;" | $FBNEW/bin/isql $DB | tail -n 1 EOF if [ "$BACKUPRESTORESCRIPT" != "" ]; then cat <<EOF >>$BACKUPRESTORESCRIPT echo "backup + restore $LOCDB log /tmp/$DBFN-25.log /tmp/$DBFN-30.log" rm -f /tmp/$DBFN-25.log /tmp/$DBFN-30.log mv $LOCDB $LOCDB.ods11 FIREBIRD=$FBOLD LD_LIBRARY_PATH=$FBOLD/lib $FBOLD/bin/gbak -z -b -g -v -y /tmp/$DBFN-25.log $LOCDB.ods11 stdout | pv | $FBNEW/bin/gbak -z -c -v -y /tmp/$DBFN-30.log stdin $LOCDB sudo chown firebird:firebird $LOCDB echo "show version;" | $FBNEW/bin/isql $DB | tail -n 1 EOF fi done done <<< "$ALLDB" cat << EOF | tee -a $RESTORESCRIPT $BACKUPRESTORESCRIPT > /dev/null echo "Vytvarim zalohy backup-firebird 0-2" sudo -u firebird $SCRIPTSDIR/backup-firebird.sh 0 sudo -u firebird $SCRIPTSDIR/backup-firebird.sh 1 sudo -u firebird $SCRIPTSDIR/backup-firebird.sh 2 EOF
Prevod zapomenutych databazi ODS 11.2->12 po instalaci FB3
- pro embed firebird 3 se NENASTAVUJE promenna FIREBIRD
cd /tmp/ lftp ftp.epos.cz -e "get obis/firebird-clients/259/linux64-embed.tgz; exit" tar -xzvf linux64-embed.tgz export FIREBIRD=/tmp/firebird64 export LD_LIBRARY_PATH=/tmp/firebird64/lib /tmp/firebird64/bin/gbak -B /tmp/datapok2.fdb stdout | /opt/firebird/bin/gbak -R -V stdin /tmp/datapok3.fdb
FB_3_Migration_Guide_rev120.pdf
Nastavení kompatibility
firebird.conf
#Kompatibilita s klienty v2.5 AuthServer = Srp, Legacy_Auth UserManager = Srp, Legacy_UserManager WireCrypt = Enabled #Pro testování RemoteServicePort = 3055
Nastavení hesla pro uživatele SYSDBA
service firebird-superserver stop isql -u SYSDBA security3.fdb #pro klienty v2.5 ALTER USER SYSDBA PASSWORD 'Heslo' USING PLUGIN Legacy_UserManager; #pro klienty v3 ALTER USER SYSDBA PASSWORD 'Heslo' USING PLUGIN Srp; COMMIT; #seznam uživatelů SELECT * FROM SEC$USERS; service firebird-superserver start
Klient
apt-get install libtommath0
Převod zpět ODS 12->11.2
- pomoci gbak z FB3 backup/restore z FB3 na FB2.5 přes remote protokol
- nezapomenout explicitně napsat port 3050 při restore (jinak gbak z 3.5 použije port z FB3/firebird.conf)
- při povoleni legacy auth lze použít i gbak z FB2.5
firebird/firebird3.txt · Poslední úprava: 2024/10/22 08:16 autor: Karel Petrů