++Update: August 2, 2018

This article provides a reference architecture as a sample for providing robust performing and highly available applications based on InterSystems Technologies that are applicable to Caché, Ensemble, HealthShare, TrakCare, and associated embedded technologies such as DeepSee, iKnow, Zen and Zen Mojo.

Azure has two different deployment models for creating and working with resources: Azure Classic and Azure Resource Manager. The information detailed in this article is based on the Azure Resource Manager model (ARM).

12 4
0 11.7K

Hi, this post was initially written for Caché. In June 2023, I finally updated it for IRIS. If you are revisiting the post since then, the only real change is substituting Caché for IRIS! I also updated the links for IRIS documentation and fixed a few typos and grammatical errors. Enjoy :)

19 24
5 10.4K

Mirroring 101

Caché mirroring is a reliable, inexpensive, and easy to implement high availability and disaster recovery solution for Caché and Ensemble-based applications. Mirroring provides automatic failover under a broad range of planned and unplanned outage scenarios, with application recovery time typically limited to seconds. Logical data replication eliminates storage as a single point of failure and a source of data corruption. Upgrades can be executed with little or no downtime.

9 22
2 7.1K

++ Update: August 1, 2018

The use of the InterSystems Virtual IP (VIP) address built-in to Caché database mirroring has certain limitations. In particular, it can only be used when mirror members reside the same network subnet. When multiple data centers are used, network subnets are not often “stretched” beyond the physical data center due to added network complexity (more detailed discussion here). For similar reasons, Virtual IP is often not usable when the database is hosted in the cloud.

Network traffic management appliances such as load balancers (physical or virtual) can be used to achieve the same level of transparency, presenting a single address to the client applications or devices. The network traffic manager automatically redirects clients to the current mirror primary’s real IP address. The automation is intended to meet the needs of both HA failover and DR promotion following a disaster.

14 12
4 5.9K

In this article, we’ll build a highly available IRIS configuration using Kubernetes Deployments with distributed persistent storage instead of the “traditional” IRIS mirror pair. This deployment would be able to tolerate infrastructure-related failures, such as node, storage and Availability Zone failures. The described approach greatly reduces the complexity of the deployment at the expense of slightly extended RTO.

23 16
6 3.2K
Question
· Oct 30, 2016
ISCAgent debug

Good day!
Is there an opportunity to debug the ISCAgent behaviour (in Linux)? ISCAgent uses /etc/iscagent/iscagent.conf as configuration file, but in docs I've found a description only for two parameters (port number and interface - http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...). Other parameters I can see by running /usr/local/etc/cachesys/ISCAgentCtrl status:

1 8
0 2.5K

In this post, I am going to detail how to set up a mirror using SSL, including generating the certificates and keys via the Public Key Infrastructure built in to Caché. The goal of this is to take you from new installations to a working mirror with SSL, including a primary, backup, and DR async member, along with a mirrored database. I will not go into security recommendations or restricting access to the files. This is meant to just simply get a mirror up and running.

5 7
0 2.4K
Article
· Nov 4, 2022 9m read
VIP in AWS

If you're running IRIS in a mirrored configuration for HA in AWS, the question of providing a Mirror VIP (Virtual IP) becomes relevant. Virtual IP offers a way for downstream systems to interact with IRIS using one IP address. Even when a failover happens, downstream systems can reconnect to the same IP address and continue working.

11 5
4 2.1K
Question
· Mar 23, 2017
problem with Mirroring

Hello, Thanks in advance for all replies. I have been practicing setting up mirroring between two development servers in preparation for mirroring our production server in a few weeks. I started by setting the servers up with minimum security which worked easily, then I set it up in lock down mode again without any issues. Now I am setting it up in lockdown mode with encryption and this one is testing me. I have everything setup but my async dr member cannot connect to the primary.

from cconsole.log

0 14
0 1.8K

ISCAgent is automatically installed with Cache, runs as a service and can be configured to
start with the system. This is fine – but the complication comes when this is on VCS clusters with
Mirroring on. When installing a Single Instance of Cache in a Cluster, point number 2. Says “Create
a link from /usr/local/etc/cachesys to the shared disk. This forces the Caché registry and all
supporting files to be stored on the shared disk resource you have configured as part of the
service group.”

0 14
0 1.5K

In this post, I am going to detail how to set up a mirror using SSL, including generating the certificates and keys via the Public Key Infrastructure built in to InterSystems IRIS Data Platform. I did a similar post in the past for Caché, so feel free to check that out here if you are not running InterSystems IRIS. Much like the original, the goal of this is to take you from new installations to a working mirror with SSL, including a primary, backup, and DR async member, along with a mirrored database. I will not go into security recommendations or restricting access to the files. This is meant to just simply get a mirror up and running. Example screenshots are taken on a 2018.1.1 version of IRIS, so yours may look slightly different.

8 3
4 1.3K

Mirror Outage Procedures

Caché mirroring is a reliable, inexpensive and easy to implement high availability and disaster recovery solution for Caché and Ensemble-based applications. This article provides an overview of recommended procedures for dealing with a variety of planned and unplanned mirror outage scenarios.

5 0
1 1K

Hi,

Can a Cache Mirror be used in the cloud ? (ie stand up a Primary and Backup member instances in a High Availability Cache Mirroring configuration)

I'm investigating the validity of this configuration, because I was of the understanding that this may not possible due to these cloud servers not (typically) having fixed ip addresses, which interferes with the Virtual IP settings for the mirror set.

Is this correct, and if there are workarounds (like Load Balancing ?) can I have details on how this should be configured ?

1 8
0 863
Question
· Sep 13, 2019
Mirror Problem with SSL

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,

0 2
0 799

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!!!

0 4
0 739
Article
· Aug 4, 2021 3m read
IRIS Mirror in the cloud (AWS)

I have been working on redesigning a Health Connect production which runs on a mirrored instance of Healthshare 2019. We were told to take advantage of containers. We got to work on IRIS 2020.1 and split the database part from the Interoperability part. We had the IRIS mirror running on EC2 instances and used containers to run IRIS interoperability application. Eventually we decided to run the data tier in containers as well.

12 14
2 697
Question
· Aug 2, 2016
Use of $ZUTIL(49) is deprecated

Hi all,

I'm using $ZUTIL(49) to get information of the databases I want to add to a mirror. This information is passed to ##class(SYS.Mirror).CatchupDB(plstPathDatabases) in order to Catchup all databases addes to a Mirror.

0 11
0 689
Question
· Aug 18, 2016
Read only Async mirror setup

I have setup an async reporting mirror member with Read only access. My problem is that if I try to do any sql reporting against that data I am getting errors. I am sure that this is because the DB is read only, but I had assumed that setting up a reporting mirror would handle this.

I there a setting or mapping I am missing?

0 7
0 661

Hey everyone.

I have noticed that my backup mirror is warning that the MirrorDatabaseLatencyTime is having a bad time (time in ms is 3000, and warnvalue is 3000). While I look into what may be causing this latency between the two servers, I was considering if reducing the size of the journal files would improve this value in any way.

My assumption is that reducing the file size would mean that the frequency of the journal files being created would be increased, but the reduced size would mean that the transfer and application of each file would be reduced.

0 2
0 583

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?

0 3
0 571
Question
· Mar 4, 2019
Missing Mirrored Database

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

0 1
0 569