#Mirroring

6 Followers · 137 Posts

Mirroring is an InterSystems technology for High Availability, Disaster Recovery and Database Backup and OLAP solutions.

Documentation.

New
Question Scott Roth · Apr 13

This past weekend we ran into something odd. When we failed over our mirror from 2022.1.3 to 2025.1.3 the one of the Business Rules that was on what became the Primary (2025.1.3), had a rule within it that was removed back in January. When the Failover occurred, we had to scramble to backup, disable, and remove the Rule that shouldn't have been there. 

Both the Data and Code live within the same IRIS.dat that is the main MIRROR database for that Namespace. 

If this happened to one Class file, could it happen to others we do not know about?

4
0 90
Question John Murray · Feb 27

I am configuring a set of Linux (RHEL 9) servers to operate as an IRIS 2025.1 mirror set. Mirroring traffic is using TLS, so each IRIS server has the necessary TLS configurations. However installation of ISCAgent on the dedicated arbiter host didn't make any mention of TLS or certificates. Nor did I find anything about this when searching IRIS documentation.

Am I missing something? Does the traffic between the IRIS hosts and the arbiter host use TLS? Should I be installing any certs on the arbiter host to facilitate secure communication?

2
0 83
Question Malcolm King · Jul 22, 2025

Hi all,

Just wondering if anyone has any experience with licensing in an HA mirroring environment. We have mirror setup with 2 DB servers (Primary and Backup), and a separate Arbiter using ISCAgent. We currently don't have a license server setup so users using our web app get interruptions and have to log in again if failover occurs. 

We have also see some spurious licensing issues when failover occurs and users are logging back in. So we were wondering if using a separate License server (possibly hosted on the Arbiter machine) would help alleviate these licensing issues?

4
0 147
Question Yaron Munz · May 16, 2025

Hello,

We had a weird behavior of task manager in mirror async backup-failover pair:

1. server 1 was primary, server 2 backup for over a month, as there was no automatic failover (switch) both had IRIS up for over a month
2. We manually switched making server 2 primary
3. The tasks that had this issue were set to "run on Primary only"
4. Task manager started to execute tasks every minute: we noticed that "Next scheduled time" is always calculated in past date, and progressing by the task interval (e.g. a task that supposed to run every hour will have "Next scheduled time" in the past e.g.

2
0 128
Question Mark Charlton · Jan 20, 2023

I've been trying for a while to come up with a set of tools to monitor the health of a mirror set and email a report nightly on the status of the mirror, or flag issues in real time.
Making sure that all the databases are caught up, that all the mirror members are online. 

I've tried a number of methods I've found to try to access the state of the mirror and mostly found they're internal or unsupported routes, (that when questioning WRC have swiftly been removed from the online documentation.).

2
0 545
Question Gordon Sjostrom · Oct 7, 2022

Basically the title, I couldn't find anything concrete in the documentation regarding this. The documentation states 'The user-defined ^ZMIRROR routine allows you to implement your own custom, configuration-specific logic and mechanisms for specific mirroring events, such as a failover member becoming primary.' I didn't see any more details on what exactly those mirroring events are besides a failover member becoming primary, which I wasn't sure if that included a DR async becoming primary.

2
0 272
Question Ephraim Malane · Apr 25, 2022

Hi All,

When I log into Backup  mirror member it becomes too slow to load and navigate, I tried to check message log and I saw the error message about Database mirror latency and database disk issue which when I check it looks fine to me. Please have a look at the below screenshots and advise what the issue could be.

When I run df -h through SSH :

200G is the volume size, 194G is used space, 6.5G is available space and 97% IS %Use

Datababase view from management portal for the same db volume

Disk space error message from message log:

The below error shows sometimes when the system tries to load

3
0 444
Question Mark OReilly · Mar 24, 2022

Hi:
The task Mirror Monitor Launch Task recently failed and is placed in Suspend leave. Although it says USER it is not known as a task for us. 

The code runs is HSSYS which is not our main system or namespace for production items. 

The task name is HS.Util.Mirror.Task runs 

If $system.Mirror.IsMember() Do ##class(HS.Util.MirrorMonitorAgent).StartAgent() and just says the description 

/// This is the task definition that Launches the mirror monitor on any mirrored instance

I don't understand why this task runs or what it does. I assume it has just suspeneded as the startAgent() failed.

1
0 522
Question Kamal Suri · Nov 23, 2021

Hi,

What's the best way to get list of members attached to a Mirror? 

In my scenario, in a Mirror set there are 5 members. 2 Failover, 2 DR Async and 1 R/W reporting.

On Primary, in the code I want to identify Backup member and then do my stuff.

And on Backup, in the code I want to identify DR Async and then do my stuff.

Basically the idea is to push file through code from Primary > Backup and then later files will be pushed from Backup > DR Async.

Regards

Kamal Suri

4
0 547
Question Kamal Suri · Nov 5, 2021

I want to write some code differently to run on Primary, Backup and DR depending upon their status.

If its Primary then do something, if Backup then something else and if DR then do something different from both Primary and Backup.

This can identified whether a system is Primary or Not Primary by calling below method

w $SYSTEM.Mirror.IsPrimary()

1 means Primary and 0 means Not Primary. But a Not Primary member may be a backup or a Async DR or a Async Reporting.

How to identify if a system is a DR or Backup or Reporting?

4
0 443
Question jennifer mccallum · Aug 4, 2021

Has anyone firstly got VIP working for mirroring in Azure?  We are pretty sure that this won't work but I wanted to verify it.

Has anyone used the Azure Load balancer to act as a Virtual IP and if so was a application gateway required.

Interested to know your experiences in getting this working.

9
0 837
Question Augusto Estefan · Jun 9, 2021

Hi,

I have a DR member and in this cache server the database "cachetemp" start to getting bigger without any reason (50GB that was all the free disk space we have)

In the members of the mirrors the cachetemp its ok and the size is 31MB.

I restarted the server because I read that the cachetemp database purge when restarting, but didnt happend.

Any recommendation to clean this database? can I just deleate the CACHE.DAT from this database?

Thanks!!!

4
0 1140
Question Augusto Estefan · Apr 15, 2021

Hi, 

I'm trying to add a DR async member to a mirror but when I add this member I get this messages in the mirror monitor (on the DR member):

The message im talking about is the "missing Mirrored Databases report".

The only step I did was the " System Administration -> Configuration -> Mirror Settings -> Join as Async" an fill the blanks. Maybe Im skipping a step? 

I dont get how to make this DBs start getting synchronized, the cconsole log dont show nothing 

Thanks a lot!!!

3
0 1015
Question Mufsi Hamza · Feb 18, 2021

When I create a TASK on the Primary mirror member and Try to create the same TASK in the backup mirror member,  It Gives me CSP Application error.

The TASK gets created in the Primary node without any errors and When creating in the Backup node it prompts the error.

It happens is IRIS and I didn't face this in CACHE.

Finally what I did is export the TASK in Primary and Imported in Backup.

Is this a feature of IRIS?

6
0 351
Question Luiz Raeder · Feb 1, 2021

In the context of IKO (Iris Kubernetes Operator) the question of Service not redirecting dynamically to the correct Pod is still pending.
In production this can be dangerous since an overload (or any other simpler problem) can cause you to change the main Pod and leave the application inoperable until we intervene.

Intersystems support warned that this is still an issue of IKO, but there are some possibilities that I am studying.

3
0 392
Question Dan Pahnke · Aug 12, 2020

I have a Read-Only Reporting Async with a Remote Database defined to a non-mirrored database on the primary failover member. I would like to update the non-mirrored database on the primary from the async; so far all my attempts fail with *protect* errors.

I found this page 

https://community.intersystems.com/post/execute-method-failover-member-…

and tried the SqlProc method. The procedure executed, no errors, but the change to the global was never made (or least not retained) either directly or through a JOBbed process. I wonder if I'm missing something in my configuration.

2
0 428
Question Oliver Wilms · Jun 3, 2020

Hello,

I work on deploying IRIS inside Docker container. I really like %Installer class can automate many steps. I want to establish an ECP connection to a mirror database and then define a remote database on the application server. I have already seen we can create local database and namespace in %Installer. What code is needed to establish ECP connection?

6
0 752
Question Jose Antonio Benitez · May 6, 2020

Hi, we have mirrored databases, now we have three nodes. Primary, backup, async. They are sync by journals and with some TB each node (expensive storage).

I would like to have a scenario where the two nodes (Primary and backup) have the same amount of messages (purge task of x days) , both as failover, but the asynchronous node should have more messaging, as much as the storage allows us. We want to use this node so provider can give support(search old messages), but not have databases in production that are so large that they are hardly consulted.

Any ideas?

Thanks in advance!

2
0 245
Question Jeffrey Drumm · Sep 17, 2019

I've created a scheduled task that dumps HL7 messages to flat files. It uses the OutputToLibraryStream() method of EnsLib.HL7.Message. I'd like to be able to run it on a mirror member host whether it's primary or backup.

When run against a database that's mounted read-only, it works fine. However, when I attempt to run it against a mirror backup database, I get the following error:

#5002: Cache error: <PROTECT>%LoadData+7^EnsLib.HL7.Message.1

Tracing that back to the source, I find:

Lock +(^EnsLib.H.

9
0 601
Question Guilherme Silva · Sep 13, 2019

I'm trying to create a simple mirror with two Cachés 2016.2.1.803 Instances,

but after i create the mirror with the primary and try to connect the fallouver server, i receive the following message:

ERRO #2071: Erro ao recuperar informações do conjunto espelho para 'BPLUS'. Erro: Connection failed: Unexpected error: <READ>SSLServer+191^MIRRORCTL

i'm not using ssl on this configuration, tried with arbiter and without, same effect.

Tried with Caché 2018.1 and Caché 2016.2.1, same problem.

Some tips?

Best,

2
0 1108
Question Marcus West · Aug 1, 2019

I've setup ODBC connection so I can access Cache data within SQL Server.

I want to be able to write SQL queries for internal monitoring purposes, similar to what's possible with SQL Server.  Specifically I want to be able to check mirroring status (i.e. check which is the current primary mirror member), check the status of any Ensemble productions (started/stopped), check the status of business hosts etc.  I want to do all of this from SQL Server to go with our other system monitoring solutions.

1
0 355
Question Mark Turner · Mar 15, 2019

I have a DR Mirror   with a WIJ that is 5 times as large as the Primary Failover member. My Read-Write Reporting mirror WIJs are the same size as the Primary.  I don't  know why the DR WIJ i so large and would like to shrink it to the same size as the others.  Any suggestions are welcome. Thanks!

3
0 637
Question Joao Palma · Mar 4, 2019

Hi guys

I've added a new mirrored failover member to an existing one.

They are both Arbiter controlled.

When I do Add database to mirror on the primary I'm always getting an error. Missing Mirrored database.

I followed everything in the documentation and always get the same error.

I've copied the CACHE.dat file after umounting the database on both servers. then mounted them.

Could you help me out?

Kind Regards

1
0 804