Difference between revisions of "FAQ:NewInstancePostgreSQL"

From Wiki_dbSQWare
Jump to: navigation, search
m
m
Line 35: Line 35:
  
 
=====Explanation of "DbAlias" (the unique dbSQWare key)=====
 
=====Explanation of "DbAlias" (the unique dbSQWare key)=====
The dbSQWare key must be unique and consistent with what has been configured for the gvsqw_DbAlias variable in sqwora_GlobalVar.cfg!<br/>
+
The dbSQWare key must be unique and consistent with what has been configured for the gvsqw_DbAlias variable in sqwpg_GlobalVar.cfg!<br/>
We'll use a variable, MYSQL_SID, which has no value for PostgreSQL but will identify the instance in dbSQWare.<br/>
+
We'll use a variable, POSTGRES_SID, which has no value for PostgreSQL but will identify the instance in dbSQWare.<br/>
 
By convention, we often use MYS "_" APPLI "_" ENV.<br/>
 
By convention, we often use MYS "_" APPLI "_" ENV.<br/>
Example: MYS_THISAPPS_PRD or MYS_THISOTHERAPPS_DEV ...<br/>
+
Example: PG_THISAPPS_PRD or PG_THISOTHERAPPS_DEV ...<br/>
But nothing is imposed; you choose what "suits you"! You just need to set the MYSQL_SID variable in the PostgreSQL account profile with the desired value.<br/>
+
But nothing is imposed; you choose what "suits you"! You just need to set the POSTGRES_SID variable in the PostgreSQL account profile with the desired value.<br/>
  
 
=====Explanation of statuses=====
 
=====Explanation of statuses=====
Line 151: Line 151:
 
bash:
 
bash:
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
# From : mysql@my_mysql_host
+
# From : postgres@my_postgres_host
 
type bash
 
type bash
 
#or
 
#or
Line 158: Line 158:
 
rsync:
 
rsync:
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
# From : mysql@my_mysql_host
+
# From : postgres@my_postgres_host
 
type rsync
 
type rsync
 
#or
 
#or
Line 168: Line 168:
 
<br>
 
<br>
 
RedHat / CentOS / ... :
 
RedHat / CentOS / ... :
<syntaxhighlight lang="sh" line># From : root@my_mysql_host
+
<syntaxhighlight lang="sh" line># From : root@my_postgres_host
 
yum install -y bash rsync
 
yum install -y bash rsync
 
#or
 
#or
Line 175: Line 175:
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
  
# From : root@my_mysql_host
+
# From : root@my_postgres_host
 
apt install -y bash rsync
 
apt install -y bash rsync
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 181: Line 181:
 
====Unix user modification====
 
====Unix user modification====
 
Adapt to your machine type (sudo if you're not root).
 
Adapt to your machine type (sudo if you're not root).
Modify the homedir (not mandatory, but avoids ending up in /var/lib/mysql):
+
Modify the homedir (not mandatory, but avoids ending up in /var/lib/postgresql):
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
# From : root@my_mysql_host
+
# From : root@my_postgres_host
mkdir -p /home/mysql
+
mkdir -p /home/postgres
chown mysql:mysql /home/mysql
+
chown mysql:mysql /home/postgres
chmod 750 /home/mysql
+
chmod 750 /home/postgres
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
 
##Stop instance (service mysql/mariadb stop -- or -- systemctl stop mysql/mariadb)
 
##Stop instance (service mysql/mariadb stop -- or -- systemctl stop mysql/mariadb)
usermod -d /home/mysql mysql -s /bin/bash
+
usermod -d /home/postgres mysql -s /bin/bash
 
##Start instance (service mysql/mariadb start -- or -- systemctl start mysql/mariadb)
 
##Start instance (service mysql/mariadb start -- or -- systemctl start mysql/mariadb)
  
 
#Or directly vi /etc/passwd !
 
#Or directly vi /etc/passwd !
example : mysql:x:1004:989::/home/mysql:/bin/bash
+
example : postgres:x:5432:5432::/home/postgres:/bin/bash
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Assign a passwd to the mysql user (otherwise the key exchange connection will not work!):<syntaxhighlight lang="sh" line>
+
Assign a passwd to the postgres user (otherwise the key exchange connection will not work!):<syntaxhighlight lang="sh" line>
# From : root@my_mysql_host
+
# From : root@my_postgres_host
 
passwd mysql
 
passwd mysql
</syntaxhighlight>
 
 
====Creating a specific PostgreSQL account for dbSQWare (for local connection)====
 
Adapt to your needs depending on what you want to do...<br/>
 
 
Example for local connection :
 
<syntaxhighlight lang="sql" line>
 
grant all privileges on *.* to 'DBSDBA'@'localhost' IDENTIFIED BY 'DoNotSetThisPassword!' with grant option;
 
 
/* or */
 
create user 'DBSDBA'@'localhost' IDENTIFIED BY 'DoNotSetThisPassword!';
 
grant all privileges on *.* to 'DBSDBA'@'localhost' with grant option;
 
</syntaxhighlight>
 
 
<syntaxhighlight lang="sh" line>
 
# From : mysql@my_mysql_host
 
#Then, create the .my.cnf file to allow connection without using passwd
 
echo "[client]
 
password = DoNotSetThisPassword!
 
" >> $HOME/.my.cnf
 
chmod 600 $HOME/.my.cnf
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
====Deployment of SSH key(s) from SQWareCentral to the target machine(s)====
 
====Deployment of SSH key(s) from SQWareCentral to the target machine(s)====
 
There are two ways to proceed:
 
There are two ways to proceed:
*An automatic one (from dbsqware@sqwarebox, but it requires you to know the password of the oracle Unix account)
+
*An automatic one (from dbsqware@sqwarebox, but it requires you to know the password of the postgres Unix account)
*A manual one that you apply on each oracle Unix account
+
*A manual one that you apply on each postgres Unix account
/!\ The password of your oracle Unix account must have been initialized, otherwise key-based authentication will not work!
+
/!\ The password of your postgres Unix account must have been initialized, otherwise key-based authentication will not work!
  
 
=====Deployment of SSH key(s): batch method=====
 
=====Deployment of SSH key(s): batch method=====
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
menu_mys GenDeplSshKeys_SQWareCentral GenLstInstanceNew
+
menu_pg GenDeplSshKeys_SQWareCentral GenLstInstanceNew
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Verify that this is indeed the list you want to deploy, then choose option 1 ...<br/>
 
Verify that this is indeed the list you want to deploy, then choose option 1 ...<br/>
Line 238: Line 217:
  
 
=====Deployment of SSH key(s): manual method=====
 
=====Deployment of SSH key(s): manual method=====
<syntaxhighlight lang="sh" line># From : mysql@my_mysql_host
+
<syntaxhighlight lang="sh" line># From : postgres@my_postgres_host
 
if [ ! -r $HOME/.ssh/id_rsa ]
 
if [ ! -r $HOME/.ssh/id_rsa ]
 
then
 
then
Line 252: Line 231:
 
====SSH connection test from SQWareCentral====
 
====SSH connection test from SQWareCentral====
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
menu_mys TestSshConnection GenLstInstanceNew
+
menu_pg TestSshConnection GenLstInstanceNew
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
====Test of prerequisites on the target host (bash+rsync) via SSH from SQWareCentral====
 
====Test of prerequisites on the target host (bash+rsync) via SSH from SQWareCentral====
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
menu_mys TestSysPrerequisites GenLstInstanceNew
+
menu_pg TestSysPrerequisites GenLstInstanceNew
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 264: Line 243:
  
 
#If deployment on "unique" user
 
#If deployment on "unique" user
menu_mys DeplScripts GenLstUniqueNew
+
menu_pg DeplScripts GenLstUniqueNew
  
 
#If deployment on "instance" user, the one specified in SQWareRepository
 
#If deployment on "instance" user, the one specified in SQWareRepository
menu_mys DeplScripts GenLstInstanceNew
+
menu_pg DeplScripts GenLstInstanceNew
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 276: Line 255:
  
 
*An automatic one (from dbsqware@sqwarebox)
 
*An automatic one (from dbsqware@sqwarebox)
*A manual one that you apply on each mysql Unix account
+
*A manual one that you apply on each postgres Unix account
  
 
=====Adding the dbSQWare environment: batch method=====
 
=====Adding the dbSQWare environment: batch method=====
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
menu_mys AdddbSQWareProfile GenLstInstanceNew
+
menu_pg AdddbSQWareProfile GenLstInstanceNew
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Check that this is indeed the list you want to deploy, then choose 1 ...<br/>  
 
Check that this is indeed the list you want to deploy, then choose 1 ...<br/>  
Line 287: Line 266:
 
=====Adding the dbSQWare environment: manual method=====  
 
=====Adding the dbSQWare environment: manual method=====  
 
Add the following lines to ~/.profile or ~/.bash_profile
 
Add the following lines to ~/.profile or ~/.bash_profile
<syntaxhighlight lang="sh" line># From : mysql@my_mysql_host
+
<syntaxhighlight lang="sh" line># From : postgres@my_postgres_host
  
 
#dbSQWare
 
#dbSQWare
Line 299: Line 278:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=====Adding the variable MYSQL_SID=====
+
=====Adding the variable POSTGRES_SID=====
Add the MYSQL_SID variable in the ~/.profile or ~/.bash_profile
+
Add the POSTGRES_SID variable in the ~/.profile or ~/.bash_profile
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
# From : mysql@my_mysql_host
+
# From : postgres@my_postgres_host
export MYSQL_SID=MYS_INST_PRD
+
export POSTGRES_SID=MYS_INST_PRD
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
====Test sendmail (Non mandatory)====
 
====Test sendmail (Non mandatory)====
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
menu_mys TestSendmail GenLstInstanceNew
+
menu_pg TestSendmail GenLstInstanceNew
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 314: Line 293:
 
/!\ Only instances that will be in "ON" status!
 
/!\ Only instances that will be in "ON" status!
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
 
<syntaxhighlight lang="sh" line># From : dbsqware@sqwarebox
menu_mys TestInstConnectionOnNoMail GenLstInstanceNew
+
menu_pg TestInstConnectionOnNoMail GenLstInstanceNew
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 333: Line 312:
 
This account must be registered under the Unix account mysql@sqwarebox...<br/>
 
This account must be registered under the Unix account mysql@sqwarebox...<br/>
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
  vi /home/mysql/.passwd_mysql
+
  vi /home/postgres/.passwd_mysql
 
  DbAlias;UserName;Passwd;HostName;Port
 
  DbAlias;UserName;Passwd;HostName;Port
 
  MYS_INST_PRD;DBSDBA;DoNotSetThisPassword!;srvdbmys01;3306
 
  MYS_INST_PRD;DBSDBA;DoNotSetThisPassword!;srvdbmys01;3306
Line 341: Line 320:
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
 
# From : dbsqware@sqwarebox
 
# From : dbsqware@sqwarebox
menu_mys TestInstConnectionDistNoMail GenLstInstanceNew
+
menu_pg TestInstConnectionDistNoMail GenLstInstanceNew
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 349: Line 328:
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
 
# From : dbsqware@sqwarebox
 
# From : dbsqware@sqwarebox
menu_mys GenDefConf_SQWareProduction GenLstInstanceNew
+
menu_pg GenDefConf_SQWareProduction GenLstInstanceNew
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 367: Line 346:
 
===Operation (stats, backups, etc.) for "ON" instances===
 
===Operation (stats, backups, etc.) for "ON" instances===
 
====Generating SQWareProduction configs====
 
====Generating SQWareProduction configs====
If you followed the instance insertion procedure, this part is already done by step "menu_mys GenDefConf_SQWareProduction GenLstInstanceNew".<br/>
+
If you followed the instance insertion procedure, this part is already done by step "menu_pg GenDefConf_SQWareProduction GenLstInstanceNew".<br/>
 
You can check with the next chapter.<br/>
 
You can check with the next chapter.<br/>
 
<br/>
 
<br/>
Line 377: Line 356:
  
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
#Source de l'env si multi-instance (from mysql@my_mysql_host)
+
#Source de l'env si multi-instance (from postgres@my_postgres_host)
 
e MYS_INST_PRD
 
e MYS_INST_PRD
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 383: Line 362:
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
 
too
 
too
./sqwmys_GenerateCreateInstance.ksh -dbsOnly
+
./sqwpg_GenerateCreateInstance.ksh -dbsOnly
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Vérifier que ce qui est proposé est bon et tapez « y » si c’est le cas.<br/>
 
Vérifier que ce qui est proposé est bon et tapez « y » si c’est le cas.<br/>
Line 394: Line 373:
 
e MYS_INST_PRD
 
e MYS_INST_PRD
 
cfg
 
cfg
cat sqwmys_Jobs.cfg
+
cat sqwpg_Jobs.cfg
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 400: Line 379:
 
#############################################
 
#############################################
 
#IndicDba: Gather DBAs indicators
 
#IndicDba: Gather DBAs indicators
IndicDba:$gvsqw_MysBin/sqwmys_GatherIndicators.ksh -I MYS_INST_PRD
+
IndicDba:$gvsqw_MysBin/sqwpg_GatherIndicators.ksh -I MYS_INST_PRD
  
 
#Dump: backup all databases with mysqlDump
 
#Dump: backup all databases with mysqlDump
Dump:$gvsqw_MysBin/sqwmys_DumpAllDatabases.ksh -I MYS_INST_PRD -Exec
+
Dump:$gvsqw_MysBin/sqwpg_DumpAllDatabases.ksh -I MYS_INST_PRD -Exec
  
 
#Optimize : optimize tables for all databases
 
#Optimize : optimize tables for all databases
Optimize:$gvsqw_MysBin/sqwmys_OptimizeAllDatabases.ksh -I MYS_INST_PRD -Exec
+
Optimize:$gvsqw_MysBin/sqwpg_OptimizeAllDatabases.ksh -I MYS_INST_PRD -Exec
  
 
#Analyse : analyze tables for all databases
 
#Analyse : analyze tables for all databases
Analyze:$gvsqw_MysBin/sqwmys_AnalyzeAllDatabases.ksh -I MYS_INST_PRD -Exec
+
Analyze:$gvsqw_MysBin/sqwpg_AnalyzeAllDatabases.ksh -I MYS_INST_PRD -Exec
  
 
#XtraFull: Backup full with XtraBackup
 
#XtraFull: Backup full with XtraBackup
XtraFull:$gvsqw_MysBin/sqwmys_XtraBackup.ksh -I MYS_INST_PRD -Type full -Exec
+
XtraFull:$gvsqw_MysBin/sqwpg_XtraBackup.ksh -I MYS_INST_PRD -Type full -Exec
  
 
#XtraInc: Backup incremental with XtraBackup
 
#XtraInc: Backup incremental with XtraBackup
XtraInc:$gvsqw_MysBin/sqwmys_XtraBackup.ksh -I MYS_INST_PRD -Type inc -Exec
+
XtraInc:$gvsqw_MysBin/sqwpg_XtraBackup.ksh -I MYS_INST_PRD -Type inc -Exec
  
 
#MariaFull: Backup full with MariaBackup
 
#MariaFull: Backup full with MariaBackup
MariaFull:$gvsqw_MysBin/sqwmys_MariaBackup.ksh -I MYS_INST_PRD -Type full -Exec
+
MariaFull:$gvsqw_MysBin/sqwpg_MariaBackup.ksh -I MYS_INST_PRD -Type full -Exec
  
 
#MariaInc: Backup incremental with MariaBackup
 
#MariaInc: Backup incremental with MariaBackup
MariaInc:$gvsqw_MysBin/sqwmys_MariaBackup.ksh -I MYS_INST_PRD -Type inc -Exec
+
MariaInc:$gvsqw_MysBin/sqwpg_MariaBackup.ksh -I MYS_INST_PRD -Type inc -Exec
  
 
#PurgeAlert: Rotate error log
 
#PurgeAlert: Rotate error log
PurgeAlert:$gvsqw_MysBin/sqwmys_PurgeAlert.ksh -I MYS_INST_PRD
+
PurgeAlert:$gvsqw_MysBin/sqwpg_PurgeAlert.ksh -I MYS_INST_PRD
 
</syntaxhighlight>
 
</syntaxhighlight>
  
This is a configuration file used by the sqwmys_RunJob.ksh script to execute actions.<br/>
+
This is a configuration file used by the sqwpg_RunJob.ksh script to execute actions.<br/>
 
<br/>
 
<br/>
 
File for a default cron job $HOME/CrontabRef_MYS_INST_PRD:
 
File for a default cron job $HOME/CrontabRef_MYS_INST_PRD:
Line 434: Line 413:
 
## MYS_INST_PRD
 
## MYS_INST_PRD
 
#Purge alert
 
#Purge alert
00 08 * * 0 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwmys_RunJob.ksh -I MYS_INST_PRD -A PurgeAlert > $HOME/tmp/PurgeAlert_MYS_INST_PRD.log 2>&1'
+
00 08 * * 0 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A PurgeAlert > $HOME/tmp/PurgeAlert_MYS_INST_PRD.log 2>&1'
 
# Dump
 
# Dump
00 20 * * * bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwmys_RunJob.ksh -I MYS_INST_PRD -A Dump > $HOME/tmp/Dump_MYS_INST_PRD.log 2>&1'
+
00 20 * * * bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A Dump > $HOME/tmp/Dump_MYS_INST_PRD.log 2>&1'
 
# Optimize
 
# Optimize
00 04 * * 6 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwmys_RunJob.ksh -I MYS_INST_PRD -A Optimize > $HOME/tmp/Optimize_MYS_INST_PRD.log 2>&1'
+
00 04 * * 6 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A Optimize > $HOME/tmp/Optimize_MYS_INST_PRD.log 2>&1'
 
# Analyze
 
# Analyze
00 05 * * 6 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwmys_RunJob.ksh -I MYS_INST_PRD -A Analyze > $HOME/tmp/Analyze_MYS_INST_PRD.log 2>&1'
+
00 05 * * 6 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A Analyze > $HOME/tmp/Analyze_MYS_INST_PRD.log 2>&1'
 
# XtraBackup
 
# XtraBackup
#00 21 * * 6  bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwmys_RunJob.ksh -I MYS_INST_PRD -A XtraFull > $HOME/tmp/XtraFull_MYS_INST_PRD.log 2>&1'
+
#00 21 * * 6  bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A XtraFull > $HOME/tmp/XtraFull_MYS_INST_PRD.log 2>&1'
#00 21 * * 1-5 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwmys_RunJob.ksh -I MYS_INST_PRD -A XtraInc > $HOME/tmp/XtraInc_MYS_INST_PRD.log 2>&1'
+
#00 21 * * 1-5 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A XtraInc > $HOME/tmp/XtraInc_MYS_INST_PRD.log 2>&1'
 
# MariaBackup
 
# MariaBackup
#00 21 * * 6  bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwmys_RunJob.ksh -I MYS_INST_PRD -A MariaFull > $HOME/tmp/MariaFull_MYS_INST_PRD.log 2>&1'
+
#00 21 * * 6  bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A MariaFull > $HOME/tmp/MariaFull_MYS_INST_PRD.log 2>&1'
#00 21 * * 1-5 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwmys_RunJob.ksh -I MYS_INST_PRD -A MariaInc > $HOME/tmp/MariaInc_MYS_INST_PRD.log 2>&1'
+
#00 21 * * 1-5 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A MariaInc > $HOME/tmp/MariaInc_MYS_INST_PRD.log 2>&1'
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 478: Line 457:
  
 
Examples :
 
Examples :
  mysql@my_mysql_host:$HOME/admin/MYS_INST_PRD/logs/DumpAllDatabases (MYS_DBA_PRD) $ bin
+
  postgres@my_postgres_host:$HOME/admin/MYS_INST_PRD/logs/DumpAllDatabases (MYS_DBA_PRD) $ bin
 
  total 100
 
  total 100
 
  drwxr-x---  2 dbsqware dba 4096 Sep  6 14:09 .
 
  drwxr-x---  2 dbsqware dba 4096 Sep  6 14:09 .
 
  drwxr-x--- 15 dbsqware dba  187 Aug 16 15:50 ..
 
  drwxr-x--- 15 dbsqware dba  187 Aug 16 15:50 ..
  -rwxr-x---  1 dbsqware dba 2957 Aug 16 15:50 sqwmys_AnalyzeAllDatabases.ksh
+
  -rwxr-x---  1 dbsqware dba 2957 Aug 16 15:50 sqwpg_AnalyzeAllDatabases.ksh
  -rwxr-x---  1 dbsqware dba 2514 Aug 16 15:50 sqwmys_AnalyzeDatabase.ksh
+
  -rwxr-x---  1 dbsqware dba 2514 Aug 16 15:50 sqwpg_AnalyzeDatabase.ksh
  -rwxr-x---  1 dbsqware dba 2608 Aug 16 15:50 sqwmys_CheckAllDatabases.ksh
+
  -rwxr-x---  1 dbsqware dba 2608 Aug 16 15:50 sqwpg_CheckAllDatabases.ksh
  -rwxr-x---  1 dbsqware dba 2257 Aug 16 15:50 sqwmys_CheckDatabase.ksh
+
  -rwxr-x---  1 dbsqware dba 2257 Aug 16 15:50 sqwpg_CheckDatabase.ksh
  -rwxr-x---  1 dbsqware dba 5418 Aug 16 15:50 sqwmys_CopyDumpAllDatabases.ksh
+
  -rwxr-x---  1 dbsqware dba 5418 Aug 16 15:50 sqwpg_CopyDumpAllDatabases.ksh
  -rwxr-x---  1 dbsqware dba 5324 Aug 16 15:50 sqwmys_CopyDumpDatabase.ksh
+
  -rwxr-x---  1 dbsqware dba 5324 Aug 16 15:50 sqwpg_CopyDumpDatabase.ksh
  -rwxr-x---  1 dbsqware dba 5610 Sep  6 10:45 sqwmys_CopyMariaBackup.ksh
+
  -rwxr-x---  1 dbsqware dba 5610 Sep  6 10:45 sqwpg_CopyMariaBackup.ksh
  -rwxr-x---  1 dbsqware dba 5594 Sep  6 14:08 sqwmys_CopyXtraBackup.ksh
+
  -rwxr-x---  1 dbsqware dba 5594 Sep  6 14:08 sqwpg_CopyXtraBackup.ksh
  -rwxr-x---  1 dbsqware dba 3248 Aug 16 15:50 sqwmys_DumpAllDatabases.ksh
+
  -rwxr-x---  1 dbsqware dba 3248 Aug 16 15:50 sqwpg_DumpAllDatabases.ksh
  -rwxr-x---  1 dbsqware dba 3541 Aug 16 15:50 sqwmys_DumpDatabase.ksh
+
  -rwxr-x---  1 dbsqware dba 3541 Aug 16 15:50 sqwpg_DumpDatabase.ksh
  lrwxrwxrwx  1 dbsqware dba  36 Jan  2  2022 sqwmys_ExecSQL.ksh -> ../../generic/bin/sqwgen_ExecSQL.ksh
+
  lrwxrwxrwx  1 dbsqware dba  36 Jan  2  2022 sqwpg_ExecSQL.ksh -> ../../generic/bin/sqwgen_ExecSQL.ksh
  -rwxr-x---  1 dbsqware dba 2455 Aug 16 15:50 sqwmys_GatherIndicators.ksh
+
  -rwxr-x---  1 dbsqware dba 2455 Aug 16 15:50 sqwpg_GatherIndicators.ksh
  -rwxr-x---  1 dbsqware dba 2454 Aug 16 15:50 sqwmys_GatherStructure.ksh
+
  -rwxr-x---  1 dbsqware dba 2454 Aug 16 15:50 sqwpg_GatherStructure.ksh
  -rwxr-x---  1 dbsqware dba 3043 Aug 16 15:50 sqwmys_MariaBackup.ksh
+
  -rwxr-x---  1 dbsqware dba 3043 Aug 16 15:50 sqwpg_MariaBackup.ksh
  lrwxrwxrwx  1 dbsqware dba  38 Jan  2  2022 sqwmys_NetBackup.ksh -> ../../generic/bin/sqwgen_NetBackup.ksh
+
  lrwxrwxrwx  1 dbsqware dba  38 Jan  2  2022 sqwpg_NetBackup.ksh -> ../../generic/bin/sqwgen_NetBackup.ksh
  -rwxr-x---  1 dbsqware dba 2959 Aug 16 15:50 sqwmys_OptimizeAllDatabases.ksh
+
  -rwxr-x---  1 dbsqware dba 2959 Aug 16 15:50 sqwpg_OptimizeAllDatabases.ksh
  -rwxr-x---  1 dbsqware dba 2522 Aug 16 15:50 sqwmys_OptimizeDatabase.ksh
+
  -rwxr-x---  1 dbsqware dba 2522 Aug 16 15:50 sqwpg_OptimizeDatabase.ksh
  lrwxrwxrwx  1 dbsqware dba  40 Jan  2  2022 sqwmys_ParallelRun.ksh -> ../../generic/bin/sqwgen_ParallelRun.ksh
+
  lrwxrwxrwx  1 dbsqware dba  40 Jan  2  2022 sqwpg_ParallelRun.ksh -> ../../generic/bin/sqwgen_ParallelRun.ksh
  -rwxr-x---  1 dbsqware dba 2252 Aug 16 15:50 sqwmys_PurgeAlert.ksh
+
  -rwxr-x---  1 dbsqware dba 2252 Aug 16 15:50 sqwpg_PurgeAlert.ksh
  -rwxr-x---  1 dbsqware dba 3855 Aug 16 15:50 sqwmys_RestoreAllDatabases.ksh
+
  -rwxr-x---  1 dbsqware dba 3855 Aug 16 15:50 sqwpg_RestoreAllDatabases.ksh
  -rwxr-x---  1 dbsqware dba 3463 Aug 16 15:50 sqwmys_RestoreDatabase.ksh
+
  -rwxr-x---  1 dbsqware dba 3463 Aug 16 15:50 sqwpg_RestoreDatabase.ksh
  -rwxr-x---  1 dbsqware dba 3825 Aug 16 15:50 sqwmys_RotateLogSlowQuery.ksh
+
  -rwxr-x---  1 dbsqware dba 3825 Aug 16 15:50 sqwpg_RotateLogSlowQuery.ksh
  lrwxrwxrwx  1 dbsqware dba  40 Jan  2  2022 sqwmys_RsyncBackup.ksh -> ../../generic/bin/sqwgen_RsyncBackup.ksh
+
  lrwxrwxrwx  1 dbsqware dba  40 Jan  2  2022 sqwpg_RsyncBackup.ksh -> ../../generic/bin/sqwgen_RsyncBackup.ksh
  lrwxrwxrwx  1 dbsqware dba  35 Jan  2  2022 sqwmys_RunJob.ksh -> ../../generic/bin/sqwgen_RunJob.ksh
+
  lrwxrwxrwx  1 dbsqware dba  35 Jan  2  2022 sqwpg_RunJob.ksh -> ../../generic/bin/sqwgen_RunJob.ksh
  -rwxr-x---  1 dbsqware dba 3025 Aug 16 15:50 sqwmys_XtraBackup.ksh
+
  -rwxr-x---  1 dbsqware dba 3025 Aug 16 15:50 sqwpg_XtraBackup.ksh
  
  mysql@my_mysql_host:$HOME/SQWareProduction/mysql/bin (MYS_INST_PRD) $  
+
  postgres@my_postgres_host:$HOME/SQWareProduction/mysql/bin (MYS_INST_PRD) $  
  ./sqwmys_DumpAllDatabases.ksh -h
+
  ./sqwpg_DumpAllDatabases.ksh -h
 
   
 
   
  Sourcing sqwmys_Global.lib v2023.06 SQWareProduction for PostgreSQL (dbSQWare) ...
+
  Sourcing sqwpg_Global.lib v2023.06 SQWareProduction for PostgreSQL (dbSQWare) ...
 
   
 
   
  Usage: sqwmys_DumpAllDatabases.ksh [-h] -I instance [+ options]
+
  Usage: sqwpg_DumpAllDatabases.ksh [-h] -I instance [+ options]
 
   
 
   
 
  DESCRIPTION
 
  DESCRIPTION
     sqwmys_DumpAllDatabases.ksh dump databases in parallel
+
     sqwpg_DumpAllDatabases.ksh dump databases in parallel
 
  SUPPORT
 
  SUPPORT
 
     MySql  supported versions: 5.0 <= v <= 8
 
     MySql  supported versions: 5.0 <= v <= 8
Line 527: Line 506:
 
       -s                : Display samples of usage.
 
       -s                : Display samples of usage.
 
       -P  Nb threads    : Number of threads in parallel (by default 2).
 
       -P  Nb threads    : Number of threads in parallel (by default 2).
       -RD directory      : Directory to write dump file (default /backups/mysql/$MYSQL_SID).
+
       -RD directory      : Directory to write dump file (default /backups/mysql/$POSTGRES_SID).
 
       -ID listdb        : List of databases to be dumped (by default all).
 
       -ID listdb        : List of databases to be dumped (by default all).
 
       -ED listdb        : List of databases to exclude from dump.
 
       -ED listdb        : List of databases to exclude from dump.

Revision as of 13:31, 28 April 2025

Work In Progress

Contents

Generalties


Nuvola apps important.png
Warning:
Before anything, don't go further if you don't have read the first section "dbSQWare Concepts " !.

In this chapter, we will consider that SQWareCentral has been installed on dbsqware@sqwarebox.

Limits of this section

This chapter only deals with adding a new instance to a base that is already configured and functional.
Use the portions that apply to your environment, and choose either the automatic or manual method as desired

General operating procedure for integrating a new PostgreSQL instance

There will potentially be one or two connection cases to handle.

  • "local" for Unix machines (or those with Cygwin) where you'll be running PostgreSQL on the machine hosting the instance (SSH connection from dbsqware@sqwarebox).
  • "remote" for cases where you don't have SSH access to the machine (Windows, RDS, etc.).

Classic steps:

  • Setting up the environment
  • Checking system prerequisites for the "local" part (bash + rsync)
  • Manual tests
  • Deployment of the instance

You will see that these steps can be handled one by one or in batches!

Integration of an PostgreSQLinstance

Setting up the environment

General

Explanation of "DbAlias" (the unique dbSQWare key)

The dbSQWare key must be unique and consistent with what has been configured for the gvsqw_DbAlias variable in sqwpg_GlobalVar.cfg!
We'll use a variable, POSTGRES_SID, which has no value for PostgreSQL but will identify the instance in dbSQWare.
By convention, we often use MYS "_" APPLI "_" ENV.
Example: PG_THISAPPS_PRD or PG_THISOTHERAPPS_DEV ...
But nothing is imposed; you choose what "suits you"! You just need to set the POSTGRES_SID variable in the PostgreSQL account profile with the desired value.

Explanation of statuses
  • An "open" instance will be handled in "local" mode, meaning we will connect with mysql locally on the machine hosting the instance (ssh access from dbsqware@sqwarebox), status "ON".
  • An instance where we don’t have local unix access will be managed in "remote" mode (like Windows, RDS, ...), status "DIST".
  • The "OFF" status makes the instance "disappear" from the web view.
  • The "NEW" status is used as an intermediate status between the beginning and the end of setting up a new instance.
  • All other statuses allow the instance to be displayed in the repository (especially "KEEP") but will not be taken into account by the automatic processes.


Resume of statuses :

Status Description
ON locale under Unix (the most common)
DIST remote-only management
KEEP temporary status, during maintenance for example or before complete deletion
NEW temporary status, during configuration
OFF visual removal of the instance (without deleting its configuration)
XXX not supported...

Instance declaration in SQWareRepository with SQWareWeb

We will declare the new instance from the SQWareWeb administration interface.
Admin dbSQWare


Declare the new instance with the status "NEW" (Add or Duplicate).
Ajout d'une instance Ajout par duplication d'une instance
Add a new instance by duplicate an other one. Explanation of the fields :

Fields Description
Db Alias Unique key that identifies the instance in dbSQWare (no value for PostgreSQL).
Dbms Name Type of SGBD
Virtual Host Virtual Host (same as Host if not clustered)

.

Host Name Hostname of the instance
User Name User associated with the instance
Port Listening port of the instance.
Comments A brief description of what the instance hosts
Status Instance status (see above for explanations).
Contact A contact if needed
Environnement Instance environment (PRD, PPR, REC, DEV, TST, ...)
Client Used only for filtering (enter a client name and/or department and/or service...)
GlobalHost Free field in which the hypervisor host is often entered, for example.
Custom1 Free field 1
Custom2 Free field 2
Regenerate the reference files of SQWareCentral.

Type the following command which will generate the reference files:

1 # From : dbsqware@sqwarebox
2 gen_all

Specific procedure for the "local" part (status ON)

/!\ Only instances that will be in the "ON" status !

Verification of system prerequisites for the "local" part (bash + rsync)

Since SQWareProduction is mainly written in bash shell and synchronized from SQWareCentral using rsync, we therefore need "bash" and "rsync" to be installed !

Verification

Adapt to your username and machine name.

bash:

1 # From : postgres@my_postgres_host
2 type bash
3 #or
4 which bash

rsync:

1 # From : postgres@my_postgres_host
2 type rsync
3 #or
4 which rsync
Installation

Adapt to your machine type (use sudo if you are not root).

RedHat / CentOS / ... :

1 # From : root@my_postgres_host
2 yum install -y bash rsync
3 #or
4 dnf install -y bash rsync

Ubuntu / Debian / ... :

1 # From : root@my_postgres_host
2 apt install -y bash rsync

Unix user modification

Adapt to your machine type (sudo if you're not root). Modify the homedir (not mandatory, but avoids ending up in /var/lib/postgresql):

1 # From : root@my_postgres_host
2 mkdir -p /home/postgres
3 chown mysql:mysql /home/postgres
4 chmod 750 /home/postgres
1 ##Stop instance (service mysql/mariadb stop -- or -- systemctl stop mysql/mariadb)
2 usermod -d /home/postgres mysql -s /bin/bash
3 ##Start instance (service mysql/mariadb start -- or -- systemctl start mysql/mariadb)
4 
5 #Or directly vi /etc/passwd !
6 example : postgres:x:5432:5432::/home/postgres:/bin/bash

Assign a passwd to the postgres user (otherwise the key exchange connection will not work!):

1 # From : root@my_postgres_host
2 passwd mysql

Deployment of SSH key(s) from SQWareCentral to the target machine(s)

There are two ways to proceed:

  • An automatic one (from dbsqware@sqwarebox, but it requires you to know the password of the postgres Unix account)
  • A manual one that you apply on each postgres Unix account

/!\ The password of your postgres Unix account must have been initialized, otherwise key-based authentication will not work!

Deployment of SSH key(s): batch method
1 # From : dbsqware@sqwarebox
2 menu_pg GenDeplSshKeys_SQWareCentral GenLstInstanceNew

Verify that this is indeed the list you want to deploy, then choose option 1 ...
=> Enter the Unix password when prompted !

Deployment of SSH key(s): manual method
1 # From : postgres@my_postgres_host
2 if [ ! -r $HOME/.ssh/id_rsa ]
3 then
4 ssh-keygen -t rsa -N ''''''' -f $HOME/.ssh/id_rsa
5 fi
6 chmod go-w $HOME
7 echo "ssh-rsa AAAAB......XSPpdV11 dbsqware@sqwarebox" >>$HOME/.ssh/authorized_keys
8 chmod 700 $HOME/.ssh
9 chmod 600 $HOME/.ssh/authorized_keys

=> Put the correct key in the "echo" (the one from dbsqware@sqwarebox)

SSH connection test from SQWareCentral

1 # From : dbsqware@sqwarebox
2 menu_pg TestSshConnection GenLstInstanceNew

Test of prerequisites on the target host (bash+rsync) via SSH from SQWareCentral

1 # From : dbsqware@sqwarebox
2 menu_pg TestSysPrerequisites GenLstInstanceNew

Deployment of SQWareProduction

1 # From : dbsqware@sqwarebox
2 
3 #If deployment on "unique" user
4 menu_pg DeplScripts GenLstUniqueNew
5 
6 #If deployment on "instance" user, the one specified in SQWareRepository
7 menu_pg DeplScripts GenLstInstanceNew

For "unique" user, it is the "standard" user. By default, we set it to "mysql", and it can be modified in SQWareCentral.

Adding the dbSQWare environment to ~/.profile or ~/.bash_profile

Once again, there are two ways to proceed:

  • An automatic one (from dbsqware@sqwarebox)
  • A manual one that you apply on each postgres Unix account
Adding the dbSQWare environment: batch method
1 # From : dbsqware@sqwarebox
2 menu_pg AdddbSQWareProfile GenLstInstanceNew

Check that this is indeed the list you want to deploy, then choose 1 ...
=> In ~/.profile or ~/.bash_profile, change the following variable with the appropriate value: gvsqw_Env='XXX'

Adding the dbSQWare environment: manual method

Add the following lines to ~/.profile or ~/.bash_profile

 1 # From : postgres@my_postgres_host
 2 
 3 #dbSQWare
 4 export gvsqw_MysBin=$HOME/SQWareProduction/mysql/bin
 5 export gvsqw_Env='PRD'
 6 lvsqw_IsTerminal=$(tty 2>&1 >/dev/null;echo $?)
 7 if [ "$lvsqw_IsTerminal" = "0" ] && [ -r $gvsqw_MysBin/../etc/.profile_confort ]
 8 then
 9 . $gvsqw_MysBin/../etc/.profile_confort
10 fi
Adding the variable POSTGRES_SID

Add the POSTGRES_SID variable in the ~/.profile or ~/.bash_profile

1 # From : postgres@my_postgres_host
2 export POSTGRES_SID=MYS_INST_PRD

Test sendmail (Non mandatory)

1 # From : dbsqware@sqwarebox
2 menu_pg TestSendmail GenLstInstanceNew

"Manual" connection test to the PostgreSQL instance ("local" connection)

/!\ Only instances that will be in "ON" status!

1 # From : dbsqware@sqwarebox
2 menu_pg TestInstConnectionOnNoMail GenLstInstanceNew

Specific Procedure for the "Remote" Port (DIST Status)

Creating a Specific PostgreSQL Account (dbSQWare) (For Remote Connections)

Example for a "Remote" Connection

1 grant all privileges on *.* to 'DBSDBA'@'%' IDENTIFIED BY 'DoNotSetThisPassword!' with grant option;
2 
3 /* or */
4 create user 'DBSDBA'@'%' IDENTIFIED BY 'DoNotSetThisPassword!';
5 grant all privileges on *.* to 'DBSDBA'@'%' with grant option;
6 flush privileges;

You can enter any username and password you like!
This account must be registered under the Unix account mysql@sqwarebox...

1  vi /home/postgres/.passwd_mysql
2  DbAlias;UserName;Passwd;HostName;Port
3  MYS_INST_PRD;DBSDBA;DoNotSetThisPassword!;srvdbmys01;3306

Test "remote" connection

1 # From : dbsqware@sqwarebox
2 menu_pg TestInstConnectionDistNoMail GenLstInstanceNew

Starting the Instance

Generating the Default SQWareProduction Configuration

/!\ Only instances that will be in "ON" status!

1 # From : dbsqware@sqwarebox
2 menu_pg GenDefConf_SQWareProduction GenLstInstanceNew

Update SQWare Repository

In the dbSQWare repository via the administration console, update the status of the new PostgreSQL instance (currently NEW) to the desired value (ON, DIST).

Testing the "Recovery" of Indicators

At this point, you can test the recovery of missing indicators (in principle, only the instances you have just integrated!).

1 # From : dbsqware@sqwarebox
2 ## for those with status "ON"
3 repind_mys
4 ## for those with status "DIST"
5 repind_mys_dist

Operation (stats, backups, etc.) for "ON" instances

Generating SQWareProduction configs

If you followed the instance insertion procedure, this part is already done by step "menu_pg GenDefConf_SQWareProduction GenLstInstanceNew".
You can check with the next chapter.

Connect to the machine that has the “PostgreSQL” instance and type the following commands:

1 # From dbsqware@vmyswarebox
2 c MYS_INST_PRD
1 #Source de l'env si multi-instance (from postgres@my_postgres_host)
2 e MYS_INST_PRD
1 too
2 ./sqwpg_GenerateCreateInstance.ksh -dbsOnly

Vérifier que ce qui est proposé est bon et tapez « y » si c’est le cas.
A ce moment, vous avez généré les fichiers de configuration par défaut de SQWareProduction.

Explanations

The previous steps created some default files. ($HOME/MYS_INST_PRD/sqwConfig)

1 #Enter the instance name
2 e MYS_INST_PRD
3 cfg
4 cat sqwpg_Jobs.cfg
 1 #############################################
 2 #IndicDba: Gather DBAs indicators
 3 IndicDba:$gvsqw_MysBin/sqwpg_GatherIndicators.ksh -I MYS_INST_PRD
 4 
 5 #Dump: backup all databases with mysqlDump
 6 Dump:$gvsqw_MysBin/sqwpg_DumpAllDatabases.ksh -I MYS_INST_PRD -Exec
 7 
 8 #Optimize : optimize tables for all databases
 9 Optimize:$gvsqw_MysBin/sqwpg_OptimizeAllDatabases.ksh -I MYS_INST_PRD -Exec
10 
11 #Analyse : analyze tables for all databases
12 Analyze:$gvsqw_MysBin/sqwpg_AnalyzeAllDatabases.ksh -I MYS_INST_PRD -Exec
13 
14 #XtraFull: Backup full with XtraBackup
15 XtraFull:$gvsqw_MysBin/sqwpg_XtraBackup.ksh -I MYS_INST_PRD -Type full -Exec
16 
17 #XtraInc: Backup incremental with XtraBackup
18 XtraInc:$gvsqw_MysBin/sqwpg_XtraBackup.ksh -I MYS_INST_PRD -Type inc -Exec
19 
20 #MariaFull: Backup full with MariaBackup
21 MariaFull:$gvsqw_MysBin/sqwpg_MariaBackup.ksh -I MYS_INST_PRD -Type full -Exec
22 
23 #MariaInc: Backup incremental with MariaBackup
24 MariaInc:$gvsqw_MysBin/sqwpg_MariaBackup.ksh -I MYS_INST_PRD -Type inc -Exec
25 
26 #PurgeAlert: Rotate error log
27 PurgeAlert:$gvsqw_MysBin/sqwpg_PurgeAlert.ksh -I MYS_INST_PRD

This is a configuration file used by the sqwpg_RunJob.ksh script to execute actions.

File for a default cron job $HOME/CrontabRef_MYS_INST_PRD:

 1 ## mm(0-59) hh(0-23) dd(1-31) MM(0-12) DAY(0-sunday, 1-monday, ...) command
 2 ## MYS_INST_PRD
 3 #Purge alert
 4 00 08 * * 0 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A PurgeAlert > $HOME/tmp/PurgeAlert_MYS_INST_PRD.log 2>&1'
 5 # Dump
 6 00 20 * * * bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A Dump > $HOME/tmp/Dump_MYS_INST_PRD.log 2>&1'
 7 # Optimize
 8 00 04 * * 6 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A Optimize > $HOME/tmp/Optimize_MYS_INST_PRD.log 2>&1'
 9 # Analyze
10 00 05 * * 6 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A Analyze > $HOME/tmp/Analyze_MYS_INST_PRD.log 2>&1'
11 # XtraBackup
12 #00 21 * * 6   bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A XtraFull > $HOME/tmp/XtraFull_MYS_INST_PRD.log 2>&1'
13 #00 21 * * 1-5 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A XtraInc > $HOME/tmp/XtraInc_MYS_INST_PRD.log 2>&1'
14 # MariaBackup
15 #00 21 * * 6   bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A MariaFull > $HOME/tmp/MariaFull_MYS_INST_PRD.log 2>&1'
16 #00 21 * * 1-5 bash -c '. $HOME/.profile MYS_INST_PRD;$gvsqw_MysBin/sqwpg_RunJob.ksh -I MYS_INST_PRD -A MariaInc > $HOME/tmp/MariaInc_MYS_INST_PRD.log 2>&1'

Startup

Setting up cron:

1 mv $HOME/CrontabRef_MYS_INST_PRD $HOME/CrontabRef
2 vi $HOME/CrontabRef
3 crontab $HOME/CrontabRef
4 crontab -l

Update the file CrontabRef  :

1 crontab -l > $HOME/CrontabRef
2 cat $HOME/CrontabRef

Useful commands

alias : e DBALIAS => source env for the instance bin, etc, too ... => to go to the standard SQWareProduction tree cbin, cetc, ctoo ... => to go to the custom SQWareProduction tree log => SQWareProduction logs dmp => go to the backup paths

Some script options: -h => online help -s => online examples -Exec => when present; if not set, only outputs commands without executing them.

Examples :

postgres@my_postgres_host:$HOME/admin/MYS_INST_PRD/logs/DumpAllDatabases (MYS_DBA_PRD) $ bin
total 100
drwxr-x---  2 dbsqware dba 4096 Sep  6 14:09 .
drwxr-x--- 15 dbsqware dba  187 Aug 16 15:50 ..
-rwxr-x---  1 dbsqware dba 2957 Aug 16 15:50 sqwpg_AnalyzeAllDatabases.ksh
-rwxr-x---  1 dbsqware dba 2514 Aug 16 15:50 sqwpg_AnalyzeDatabase.ksh
-rwxr-x---  1 dbsqware dba 2608 Aug 16 15:50 sqwpg_CheckAllDatabases.ksh
-rwxr-x---  1 dbsqware dba 2257 Aug 16 15:50 sqwpg_CheckDatabase.ksh
-rwxr-x---  1 dbsqware dba 5418 Aug 16 15:50 sqwpg_CopyDumpAllDatabases.ksh
-rwxr-x---  1 dbsqware dba 5324 Aug 16 15:50 sqwpg_CopyDumpDatabase.ksh
-rwxr-x---  1 dbsqware dba 5610 Sep  6 10:45 sqwpg_CopyMariaBackup.ksh
-rwxr-x---  1 dbsqware dba 5594 Sep  6 14:08 sqwpg_CopyXtraBackup.ksh
-rwxr-x---  1 dbsqware dba 3248 Aug 16 15:50 sqwpg_DumpAllDatabases.ksh
-rwxr-x---  1 dbsqware dba 3541 Aug 16 15:50 sqwpg_DumpDatabase.ksh
lrwxrwxrwx  1 dbsqware dba   36 Jan  2  2022 sqwpg_ExecSQL.ksh -> ../../generic/bin/sqwgen_ExecSQL.ksh
-rwxr-x---  1 dbsqware dba 2455 Aug 16 15:50 sqwpg_GatherIndicators.ksh
-rwxr-x---  1 dbsqware dba 2454 Aug 16 15:50 sqwpg_GatherStructure.ksh
-rwxr-x---  1 dbsqware dba 3043 Aug 16 15:50 sqwpg_MariaBackup.ksh
lrwxrwxrwx  1 dbsqware dba   38 Jan  2  2022 sqwpg_NetBackup.ksh -> ../../generic/bin/sqwgen_NetBackup.ksh
-rwxr-x---  1 dbsqware dba 2959 Aug 16 15:50 sqwpg_OptimizeAllDatabases.ksh
-rwxr-x---  1 dbsqware dba 2522 Aug 16 15:50 sqwpg_OptimizeDatabase.ksh
lrwxrwxrwx  1 dbsqware dba   40 Jan  2  2022 sqwpg_ParallelRun.ksh -> ../../generic/bin/sqwgen_ParallelRun.ksh
-rwxr-x---  1 dbsqware dba 2252 Aug 16 15:50 sqwpg_PurgeAlert.ksh
-rwxr-x---  1 dbsqware dba 3855 Aug 16 15:50 sqwpg_RestoreAllDatabases.ksh
-rwxr-x---  1 dbsqware dba 3463 Aug 16 15:50 sqwpg_RestoreDatabase.ksh
-rwxr-x---  1 dbsqware dba 3825 Aug 16 15:50 sqwpg_RotateLogSlowQuery.ksh
lrwxrwxrwx  1 dbsqware dba   40 Jan  2  2022 sqwpg_RsyncBackup.ksh -> ../../generic/bin/sqwgen_RsyncBackup.ksh
lrwxrwxrwx  1 dbsqware dba   35 Jan  2  2022 sqwpg_RunJob.ksh -> ../../generic/bin/sqwgen_RunJob.ksh
-rwxr-x---  1 dbsqware dba 3025 Aug 16 15:50 sqwpg_XtraBackup.ksh
postgres@my_postgres_host:$HOME/SQWareProduction/mysql/bin (MYS_INST_PRD) $ 
./sqwpg_DumpAllDatabases.ksh -h

Sourcing sqwpg_Global.lib v2023.06 SQWareProduction for PostgreSQL (dbSQWare) ...

Usage: sqwpg_DumpAllDatabases.ksh [-h] -I instance [+ options]

DESCRIPTION
   sqwpg_DumpAllDatabases.ksh dump databases in parallel
SUPPORT
   MySql   supported versions: 5.0 <= v <= 8
   MariaDB supported versions: 5.5 <= v <= 11.6

PARAMETERS
     -I  instance       : Target instance to mysqldump.
OPTIONS
     -h  help           : Display the full usage.
     -s                 : Display samples of usage.
     -P  Nb threads     : Number of threads in parallel (by default 2).
     -RD directory      : Directory to write dump file (default /backups/mysql/$POSTGRES_SID).
     -ID listdb         : List of databases to be dumped (by default all).
     -ED listdb         : List of databases to exclude from dump.
     -IL likeclause     : Like clause to generate databases list (example: 'db%').
     -EL likeclause     : Like clause to exclude databases (example: 'nodb%').
     -HI Nb_Generations : Number of generations to keep (by default 2).
     -WCD  whereclause  : Where clause to generate databases list.
     -AGR  Nb sec       : Nb of seconds between two runs (by default 1s).
     -AGE  Nb sec       : Nb of seconds between two checks of end (by default 10s).
     -FRT  return_code  : Force return code value on error.
     -Opt  option       : Additional options for mysqldump.
     -Dist              : For distant connection to database (change $gvsqw_ConnectString to $gvsqw_DistConnectString ).
     -AddMail email     : Email address to add at 'xxx'.
     -SendReport        : Send execution log report.
     -NoMail            : Deactivate sendmail on error xxx (by default, send on error).
     -Locale   locale   : Force Locale for help display (fr,en).
     -Consistent        : Lock for consistent mode (by default, no lock).
     -Exec              : Execute commands (default, display generated commands)


Enjoy !