Kamal Suri · Jan 23, 2024 go to post

Hi Scott,

This is the best practice to do the changes on other mirror members before doing on Primary member. Before making changes in your DR and Backup nodes, it's recommended to test the process in a controlled environment that mimics your production setup. Take a backup of IRISSYS.DAT before making any changes. This ensures that you have a recovery point in case anything goes wrong.

Kamal Suri · Oct 11, 2022 go to post

You can increase "Quality of Service Timeout (msec)" in mirror properties to give Healthshare more time to wait before doing a failover. 

Kamal Suri · May 29, 2022 go to post

Hi Ankur,

If you want to open Management portal over IRIS internal apache then you need to follow below,

Modify below file

/iris_install_directory/httpd/conf/httpd-local.conf

Add ssl configuration like below (you need to have ssl certificate files) changing port as per your requirements

Listen 57773
<VirtualHost *:57773>
    SSLEngine on

            ServerName  fully_qualified_host_name

#   Server Certificate:

SSLCertificateFile /path_to_SSL_folder/filename.crt

#   Server Private Key:

            SSLCertificateKeyFile /path_to_SSL_folder /filename.key

#   Server Certificate Chain:

            SSLCertificateChainFile /path_to_SSL_folder /filename.crt

#   Certificate Authority (CA):

            SSLCACertificateFile /path_to_SSL_folder /filename.crt

Restart instance, Management portal should open over ssl with port mentioned in above file.

https://fully_qualified_host_name:57773/csp/sys/UtilHome.csp

But but if you need to open this on OS apache then first you need to configure SSL at OS level. 

Regards

Kamal Suri

Kamal Suri · Dec 3, 2021 go to post

Hi James,

Try export/import from below registry location

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Intersystems\Cache\Servers

Regards

Kamal

Kamal Suri · Jan 26, 2021 go to post

Hi Evgenii,

Individual backup of each database or group of databases is possible through a custom routine. Below is the code of one of the routine we used long time back to split database backup to multiple disks. You just need to mention database names in each dblist. But as Dmitriy mentioned external backup (snapshot) is the best approach to follow.

// ***********
ZBACKUP      // Multiple Enviroment Backup Routine     
     // Start Backup of Individual Enviroments
    do dblist1           //Backup DB-A, DB-B, DB-C (do dblist1^ZBACKUP)
    do dblist2           //Backup DB-D, DB-E (do dblist2^ZBACKUP)     
    do dblist3        //Backup DB-F, DB-G, DB-H, DB-I (do dblist3^ZBACKUP)
    quit 

dblist1
        S TYPE="F"        ;'C'umlative incremental, 'F'ull, 'E'xternal full backup
     S DESCR="Full Backup"   ; Free form text string, may be NULL This is stored in the backup label and in the history global and describes the backup
     S MODE="NOISY"         ; "NOISY" - Default, print all text on terminal. "QUIET" - Only display text related to abnormal conditions
    S KILJRN="Y"        ; "Y" Switch the journal file after backup "N" ignored
    S CLRJRN="Y"        ; "Y" - Switch the journal file. "N" - ignored
    S SWJRN="Y"         ; "Y" - Switch the journal file after backup "N" - Do not switch the journal file. Note that this is overridden if clrjrn or kiljrn is "Y"      S BACKUPPATH="Path_to-Backup_Directory"
     S LOGPATH="Path_to_Backup-Log_Directory" 
     s DB="DB-A_DB-B_DB-C_"
      s DATE=$ZD($H,8)_"_"_$tr($zt($p($h,",",2),1),":","")
      s BKPFILE=BACKUPPATH_DB_DATE_".cbk"
     s LOGFILE=LOGPATH_DB_DATE_".log"
     s INTTIME=$p($h,",",2)      //PURGE Database List
    do ##class(Backup.General).ClearDatabaseList()      //Populate Database List
    s bkp=##class(Backup.General).AddDatabaseToList("DB-A")
    s bkp=##class(Backup.General).AddDatabaseToList("DB-B")
    s bkp=##class(Backup.General).AddDatabaseToList("DB-C")         //Perform Backup
        D BACKUP^DBACK("",TYPE,DESCR,BKPFILE,KILJRN,LOGFILE,MODE,CLRJRN,SWJRN,"") ;BACKUP(argfile,EXTTYP,DESCRIPTION,outdev,kiljrn,logfile,mode,clrjrn,swjrn,nwjrnfil,quietimeout,taskname)
    do ##class(Backup.General).ClearDatabaseList()         
    quit

dblist2
        S TYPE="F"        ;'C'umlative incremental, 'F'ull, 'E'xternal full backup
     S DESCR="Full Backup"   ; Free form text string, may be NULL This is stored in the backup label and in the history global and describes the backup
     S MODE="NOISY"         ; "NOISY" - Default, print all text on terminal. "QUIET" - Only display text related to abnormal conditions
    S KILJRN="Y"        ; "Y" Switch the journal file after backup "N" ignored
    S CLRJRN="Y"        ; "Y" - Switch the journal file. "N" - ignored
    S SWJRN="Y"         ; "Y" - Switch the journal file after backup "N" - Do not switch the journal file. Note that this is overridden if clrjrn or kiljrn is "Y"      S BACKUPPATH="Path_to-Backup_Directory"
     S LOGPATH="Path_to_Backup-Log_Directory" 
     s DB="DB-D_DB-E_"
      s DATE=$ZD($H,8)_"_"_$tr($zt($p($h,",",2),1),":","")
      s BKPFILE=BACKUPPATH_DB_DATE_".cbk"
     s LOGFILE=LOGPATH_DB_DATE_".log"
     s INTTIME=$p($h,",",2)      //PURGE Database List
    do ##class(Backup.General).ClearDatabaseList()      //Populate Database List
    s bkp=##class(Backup.General).AddDatabaseToList("DB-D")
    s bkp=##class(Backup.General).AddDatabaseToList("DB-E")     //Perform Backup
    D BACKUP^DBACK("",TYPE,DESCR,BKPFILE,KILJRN,LOGFILE,MODE,CLRJRN,SWJRN,"") ;BACKUP(argfile,EXTTYP,DESCRIPTION,outdev,kiljrn,logfile,mode,clrjrn,swjrn,nwjrnfil,quietimeout,taskname)
    do ##class(Backup.General).ClearDatabaseList()         
    quit

dblist3
        S TYPE="F"        ;'C'umlative incremental, 'F'ull, 'E'xternal full backup
     S DESCR="Full Backup"   ; Free form text string, may be NULL This is stored in the backup label and in the history global and describes the backup
     S MODE="NOISY"         ; "NOISY" - Default, print all text on terminal. "QUIET" - Only display text related to abnormal conditions
    S KILJRN="Y"        ; "Y" Switch the journal file after backup "N" ignored
    S CLRJRN="Y"        ; "Y" - Switch the journal file. "N" - ignored
    S SWJRN="Y"         ; "Y" - Switch the journal file after backup "N" - Do not switch the journal file. Note that this is overridden if clrjrn or kiljrn is "Y"      S BACKUPPATH="Path_to-Backup_Directory"
     S LOGPATH="Path_to_Backup-Log_Directory" 
     s DB="DB-F_DB-G_DB-H_DB-I_"
      s DATE=$ZD($H,8)_"_"_$tr($zt($p($h,",",2),1),":","")
      s BKPFILE=BACKUPPATH_DB_DATE_".cbk"
     s LOGFILE=LOGPATH_DB_DATE_".log"
     s INTTIME=$p($h,",",2)      //PURGE Database List
    do ##class(Backup.General).ClearDatabaseList()      //Populate Database List
    s bkp=##class(Backup.General).AddDatabaseToList("DB-F")
    s bkp=##class(Backup.General).AddDatabaseToList("DB-G")
    s bkp=##class(Backup.General).AddDatabaseToList("DB-H")
    s bkp=##class(Backup.General).AddDatabaseToList("DB-I")     //Perform Backup
    D BACKUP^DBACK("",TYPE,DESCR,BKPFILE,KILJRN,LOGFILE,MODE,CLRJRN,SWJRN,"") ;BACKUP(argfile,EXTTYP,DESCRIPTION,outdev,kiljrn,logfile,mode,clrjrn,swjrn,nwjrnfil,quietimeout,taskname)
    do ##class(Backup.General).ClearDatabaseList()         
    quit
// ***********