Set isolation to committed read
Set isolation to committed read last committed
Вторичные серверы, на которых задан уровень изоляции Committed Read (чтение принятого), могут читать локально принятые данные. Они также могут читать данные, принятые на первичном сервере, когда они становятся доступны и принимаются на вторичном сервере. Программы, соединяющиеся со вторичным сервером, получают данные, принятые в настоящий момент на вторичном сервере. Дополнительную информацию об особенностях разработки клиентов, устанавливающих соединения с серверами баз данных, на которых используется репликация данных, смотрите в разделе Разработка клиентов групп репликации данных.Уровень изоляции по умолчанию на вторичных серверах - Dirty Read (грязное чтение); но если задать уровень изоляции явным образом, будет включен правильный уровень изоляции: Dirty Read (грязное чтение), Committed Read (чтение принятого) или Committed Read Last Committed (чтение принятого при последнем принятии).
Уровни изоляции Repeatable Read (многократное чтение) и Cursor Stability (стабильность на уровне курсора) не поддерживаются. Оператор SET ISOLATION, используемый в сочетании с уровнями Cursor Stability и Repeatable Read, игнорируется.
После запуска вторичного сервера клиентские программы соединяются с сервером, только после принятия или отката всех транзакций, открытых в начальной контрольной точке.
Если параметр конфигурации UPDATABLE_SECONDARY выключен (то есть, если он не задан или если ему присвоено значение 0), вторичный сервер репликации данных будет работать в режиме только-чтения. В этом случае на вторичных серверах будут доступны только уровни изоляции транзакций DIRTY READ или READ UNCOMMITTED.
Если параметр UPDATABLE_SECONDARY включен (то есть, если для него задано допустимое число соединений, больше нуля), то вторичный сервер репликации данных сможет поддерживать уровни изоляции транзакций COMMITTED READ, COMMITTED READ LAST COMMITTED и COMMITTED READ, а также переменную среды сеанса USELASTCOMMITTED. Операции записи на обновляемом вторичном сервере будут поддерживаться только для операторов SQL DML (операторы DELETE, INSERT, UPDATE и MERGE) и утилиты dbexport. (Помимо UPDATABLE_SECONDARY, нужно также задать параметры конфигурации STOP_APPLY и USELASTCOMMITTED для включения операций записи для утилиты dbexport на вторичном сервере репликации данных.)
Для просмотра параметров уровня изоляции используйте команду onstat -g ses или onstat -g sql. Дополнительную информацию см. в руководстве IBM Informix Administrator's Reference.