BBahmni 한국어 매뉴얼검색
한국어 번역 완료
한국어English

Backup/Restore commands

About the Feature

Bahmni has different artifacts in the system like patient documents, patient images, DB data etc. There is a possibility that unwanted events may happen such as hard drive failure or data loss due to some wrong SQL (eg: delete sql) mistakenly run by an user. Bahmni as a product should provide mechanism to backup all the artifacts so that if any unwanted event happen then we should be able to recover from the backup so that business continue as usual at the earliest.

Right now Bahmni backup mechanism supports two categories name file backup and database backup. Below is the list of supported items

  1. Patient images
  2. Document images
  3. Uploaded files
  4. Uploaded lab results
  5. PACS images
  6. Report module generated files by Queue feature
  7. MySQL databases
  8. Postgres databases

Old Way of Backup and Restore

Old Way Backup

When the backup tools for MySQL and Postgres are not installed then the backup will fall back to by using following commands. The following commands will achieve same as mentioned in old way of DB backups.관련 문서: Automated DB backups of Bahmni

Please replace the inventory_file_name with appropriate file name. For example, in the below examples local is the inventory file name.

Full Openelis/clinlims DB Backup (Old way)
bahmni -i local backup --backup_type=db  --options=clinlims
Full Openerp DB Backupup (Old way)
bahmni -i local backup --backup_type=db  --options=openerp
Full Openmrs DB Backup (Old Way)
bahmni -i local backup --backup_type=db  --options=openmrs
Uninstall Backup Tools
If backrest tools are already installed, then uninstall them to perform oldway backup.
To uninstall pgsql backup tool, execute the following commands

sudo rm -f /usr/bin/pgbackrest
sudo rm -f /usr/bin/pg_backrest
sudo rm -rf /usr/lib/perl5/BackRest
sudo rm -rf /usr/share/perl5/BackRest
sudo rm -rf /usr/lib/perl5/pgBackRest
sudo rm -rf /usr/share/perl5/pgBackRest

To uninstall mysql backup tool, execute the following command
yum list installed | grep xtrabackup|xargs yum remove -y

Old Way Restore

Please replace the inventory_file_name with appropriate file name. For example, in the below examples local is the inventory file name.

Restore clinlims/openelis database
bahmni -i local restore --restore_type=db --options=clinlims  --strategy=dump --restore_point=clinlims_dump_20170215-150418.sql.gz
Restore openerp database
bahmni -i local restore --restore_type=db --options=openerp  --strategy=dump --restore_point=openerp_dump_20170215-150418.sql.gz
Restore openmrs db (old way)
bahmni -i local restore --restore_type=db --options=openmrs --strategy=dump   --restore_point=openmrs_dump_20170221084218.sql.gz

Complete / Full Backup

In order to backup all the possible files and databases, please use the below mentioned command.

bahmni -i <inventory_file_name> backup --backup_type=all --options=all

Please replace the inventory_file_name with appropriate file name. For Example, in the below example local is the inventory file name.

Command to backup everything (databases, files)
bahmni -i local backup --backup_type=all --options=all

Schedule Backup:

In order to schedule a backup one can use --schedule option available in command line which adds cron entry for the user to run the command as per schedule.

Sample command
bahmni -i <inventory_file_name> backup --backup_type=<file/db> --options=<options_possible> --strategy=<strategy> --schedule "* * * * *"
Example Scheduling Full Backup command for Openmrs Database
bahmni -i local backup --backup_type=db --options=openmrs --strategy=full --schedule "30 2 * * 0"


    # Use the hash sign to prefix a comment
    # +---------------- minute (0 - 59)
    # |  +------------- hour (0 - 23)
    # |  |  +---------- day of month (1 - 31)
    # |  |  |  +------- month (1 - 12)
    # |  |  |  |  +---- day of week (0 - 7) (Sunday=0 or 7)
    # |  |  |  |  |
    # *  *  *  *  *  command to be executed

Mysql Backup:

There are different configurations for mysql database backup command as mentioned below

KeyDefault valueAvailable optionsMandatory
backup_typeallThis value should be db for database backupNo
optionsallThis Value can be either openmrs or bahmni-reports while taking mysql database backup.No
strategyfullPossible values are full, incr.No

Mysql Full Backup

One can take full backup of particular mysql database by mentioning the database name.

Sample command for Full backup of MySQL database
bahmni -i <inventory_file_name> backup --backup_type=db --options=<DBName>

Please replace the inventory_file_name with appropriate file name and DBName with the database name. For example, in the below examples local is the inventory file name.

Openmrs Database Full Backup
bahmni -i local backup --backup_type=db --options=openmrs
Bahmni Reports Database Full Backup
bahmni -i local backup --backup_type=db --options=bahmni_reports

Mysql Incremental Backup:

Apart from the full backup, there is an option to take incremental backup. In case of incremental backup, strategy should be "incr"

Sample Command for Incremental Backup
bahmni -i <inventory_file_name> backup --backup_type=db --options=<DBName>  --strategy=incr

Please replace the inventory_file_name with appropriate file name and DBName with the database name. For example, in the below examples local is the inventory file name.

Openmrs Database Incremental Backup
bahmni -i local backup --backup_type=db --options=openmrs  --strategy=incr
Bahmni Reports Database Incremental Backup
bahmni -i local backup --backup_type=db --options=bahmni_reports  --strategy=incr

Mysql Database Restore:

One can restore to any point (either full or incremental) in database given that the chosen restore points/files are available in configured restore path.

Sample Mysql restore command
bahmni -i <inventory_file_name> restore --restore_type=db --options=<DBName> --strategy=<dump/pitr> --restore_point=<Backup foldername>

Please replace the inventory_file_name with appropriate file name and DBName with the database name (either openmrs or bahmni_reports). For example, in the below examples local is the inventory file name.

There are different configurations for mysql database backup command as mentioned below. Please note that there are no default values for the below configurations

KeyDescriptionMandatory
restore_typeValue should be "db" (in case of database restore)Yes
optionsAvailable options for mysql database restore are "openmrs" or "bahmni_reports"Yes
strategyStrategyDescription
pitrIf the restore point value is the folder name of the backup.
dumpIf the restore point value is database entire dump gunzip file.
  • Value should be folder name of the backup file(It could be either incr/full).
  • If the strategy is dump, then value should be dump file name.

Mysql Dump Restore

One can restore the database by providing dump gunzip file.

Openmrs Database Dump Restore
bahmni -i local restore --restore_type=db --options=openmrs --strategy=dump   --restore_point=openmrs_dump_20170221084218.sql.gz

Mysql Full Restore

One can restore the database by providing full backup file.

Openmrs Database FULL PITR (Point In Time Restore)
bahmni -i local restore --restore_type=db --options=openmrs --strategy=pitr   --restore_point=20170220103125_full
Bahmni Reports Database FULL PITR (Point In Time Restore)
bahmni -i local restore --restore_type=db --options=bahmni_reports --strategy=pitr   --restore_point=20170220103125_full

Mysql Incremental Restore

One can restore the database by providing incremental backup file.

Openmrs Database INCREMENTAL PITR (Point In Time Restore)
bahmni -i local restore --restore_type=db --options=openmrs --strategy=pitr   --restore_point=20170330103125_incr
Bahmni Reports Database INCREMENTAL PITR (Point In Time Restore)
bahmni -i local restore --restore_type=db --options=bahmni_reports --strategy=pitr   --restore_point=20170330103125_incr

Pgsql Database Backup:

There are different configurations for postgres database backup command as mentioned below

KeyDefault valueAvailable optionsMandatory
backup_typeallThis value should be db for database backupNo
optionsallThis Value can be either postgres while taking pgsql database backup.No
strategyfullPossible values are full, incr.No

Postgres Full Backup

One can take full backup of particular postgres database by mentioning the database name under options which is postgres.

Sample command for Full backup of Postgres database
bahmni -i <inventory_file_name> backup --backup_type=db --options=<DBName>

Please replace the inventory_file_name with appropriate file name and DBName with the database name (postgres). For example, in the below examples local is the inventory file name.

Postgres Databases Full Backup
bahmni -i local backup --backup_type=db --options=postgres

Postgres Incremental Backup:

Apart from the full backup, there is an option to take incremental backup. In case of incremental backup, strategy should be "incr"

Sample Command for Incremental Backup
bahmni -i <inventory_file_name> backup --backup_type=db --options=<DBName>  --strategy=incr

Please replace the inventory_file_name with appropriate file name and DBName with the database name. For example, in the below examples local is the inventory file name.

Postgres Database Incremental Backup
bahmni -i local backup --backup_type=db --options=postgres  --strategy=incr

Pgsql Database Restore:

One can restore the entire pgsql backup at a time. In case of restoring an empty postgres database, first the db has to be restored using a full backup and then the desired incremental backup has to be applied on it.

Pgsql restore
bahmni -i <inventory_file_name> restore --restore_type=db --options=postgres --strategy=<pitr/dump>     --restore_point=<DB backup folder name>

There are different configurations for pgsql database backup command as mentioned below. Please note that there are no default values for the below configurations

KeyDescriptionMandatory
restore_typeValue should be "db" (in case of database restore)Yes
optionsvalue in case of pitr startegy is "postgres".value in case of dump strategy is "clinlims" or "openerp".Yes
strategyStrategyDescription
pitrIf the restore point value is the folder name of the backup.
dumpIf the restore point value is database entire dump gunzip file.
  • Value should be folder name of the backup file(It could be either incr/full).
  • If the strategy is dump, then value should be dump file name.

Postgres Dump Restore

Please replace the inventory_file_name with appropriate file name. For example, in the below examples local is the inventory file name.

Openerp Dump Restore

One can restore the database by providing dump gunzip file.

Openerp Database Dump Restore
bahmni -i local restore --restore_type=db --options=openerp --strategy=dump   --restore_point=openerp_dump_20170221084218.sql.gz

Openelis Dump Restore

OpenELIS (clinlims) Database Dump Restore
bahmni -i local restore --restore_type=db --options=openerp --strategy=dump   --restore_point=openerp_dump_20170221084218.sql.gz

Postgres Full Restore

One can restore the database by providing full backup file.

Postgres Database FULL PITR (Point In Time Restore)
bahmni -i local restore --restore_type=db --options=postgres --strategy=pitr  --restore_point=20170221-120904F

Postgres Incremental Restore

One can restore the database by providing incremental backup file.

Postgres Database Incremental PITR (Point In Time Restore)
bahmni -i local restore --restore_type=db --options=postgres --strategy=pitr   --restore_point= 20170221-121423F_20170222-124131I

Artifacts Backup

We can either take backup of all artifacts or individual artifacts. There are different configurations available as listed below

KeyDescriptionMandatory
backup_typeThis Value should be "file" incase of artifact backupyes
optionsValueDescription
allbackup all artifacts
patient_imagesbackup patient images only
document_imagesbackup document images only
uploaded-filesbackup uploaded files only
uploaded_resultsbackup uploaded results only
reportsbackup reports only
pacs_imagesbackup pacs images only

Artifacts Full Backup

Please replace local with appropriate inventory file name. For example, in the below examples local is the inventory file name.

Command to backup all artifacts
bahmni -i local backup --backup_type=file  --options=all

Artifacts Individual/Specific Backup

Please replace the inventory_file_name with appropriate file name and artifact_name with the relevant value.

Backup specific files
bahmni -i <inventory_file_name> backup --backup_type=file  --options=<artifact_name>
Commands to Backup specific files
bahmni -i local backup --backup_type=file  --options="patient_images" //for patient images
bahmni -i local backup --backup_type=file  --options="document_images" //for document images
bahmni -i local backup --backup_type=file  --options="uploaded-files" //for uploaded files
bahmni -i local backup --backup_type=file  --options="uploaded_results" //for uploaded results
bahmni -i local backup --backup_type=file  --options="reports" //for reports
bahmni -i local backup --backup_type=file  --options="pacs_images" //for pacs images

Artifacts Restore

We can either restore all artifacts or individual artifacts.There are different configurations available as listed below

KeyDescriptionMandatory
restore_typeThis Value should be "file" incase of artifact restoreyes
optionsValueDescription
allrestore all artifacts
patient_imagesrestore patient images only
document_imagesrestore document images only
uploaded-filesrestore uploaded files only
uploaded_resultsrestore uploaded results only
reportsrestore reports only
pacs_imagesrestore pacs images only

Artifacts Full Restore

Please replace local with appropriate inventory file name. For example, in the below examples local is the inventory file name.

Command to restore all artifacts
bahmni -i local restore --restore_type=file  --options=all

Artifacts Individual/Specific Restore

Please replace the inventory_file_name with appropriate file name and artifact_name with the relevant value.

Restore specific files
bahmni -i <inventory_file_name> restore --restore_type=file  --options=<artifact_name>
Example Commands to Restore specific files
bahmni -i local restore --restore_type=file --options="patient_images" //for patient images
bahmni -i local restore --restore_type=file  --options="document_images" //for document images
bahmni -i local backup --restore_type=file  --options="uploaded-files" //for uploaded files
bahmni -i local restore --restore_type=file  --options="uploaded_results" //for uploaded results
bahmni -i local restore --restore_type=file  --options="reports" //for reports
bahmni -i local restore --restore_type=file  --options="pacs_images" //for pacs images
원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗