728x90

11.50.xC6 버전에서 추가된 기능


테이블 분할 변경 시 트랜잭션 강제 아웃 >> 일정 시간 지난 후, 자동으로 Exclusive Lock 획득

로깅 데이터베이스에서 ALTER FRAGMENT on TABLE 조작을 실행할 때 서버가 테이블에서 로크를 보유하거나 열려 있는 트랜잭션을 강제 아웃시킬 수 있도록 설정할 수 있습니다. 하루 24시간 실행되는 사용 중인 시스템에서 이를 실행할 수 있으며, 분할을 변경하기 전에 세션이 닫힐 때까지 기다리지 않아도 됩니다. 

서버가 트랜잭션을 강제 아웃시킬 수 있도록 설정하면 이 서버는 다른 사용자의 트랜잭션을 롤백합니다. 또한 ALTER FRAGMENT on TABLE 조작을 수행하는 세션이 롤백하는 동안 유지 커서를 닫습니다.

전제조건:

  • informix 사용자이거나 데이터베이스에서 DBA 권한이 있어야 합니다.
  • 테이블이 로깅 데이터베이스에 있어야 합니다.

테이블 분할을 변경할 때 트랜잭션을 강제 아웃시키는 방법:

  1. SET ENVIRONMENT문의 FORCE_DDL_EXEC 환경 옵션을 다음 값 중 하나로 설정하십시오.
    • ALTER FRAGMENT on TABLE문이 발행되는 경우 'on''on'또는 '1'을 사용하여 서버가 테이블에서 로크 및 배타적 액세스를 확보할 때까지 해당 테이블에서 로크를 보유하거나 열려 있는 트랜잭션을 강제 아웃시킬 수 있습니다.
    • 양수는 시간(초)을 나타냅니다. 숫자 값을 사용하여 서버는 테이블에서 배타적 액세스 및 배타적 로크를 확보할 때까지 또는 지정된 시간 제한이 발생할 때까지 트랜잭션을 강제 아웃시킬 수 있습니다. 서버가 지정된 시간에 따라 트랜잭션을 강제 아웃시킬 수 없는 경우, 서버는 트랜잭션 강제 아웃을 중지합니다.
    예를 들어, ALTER FRAGMENT on TABLE문이 발행될 때 FORCE_DDL_EXEC 환경 옵션이 100초동안 작동되도록 설정하려면 다음을 지정하십시오.
    SET ENVIRONMENT FORCE_DDL_EXEC '100';
  2. 트랜잭션을 강제 아웃시키기 전에 서버가 지정된 시간동안 기다리도록 하려면 로크 모드를 대기로 설정하십시오.
    예를 들어, 20초동안 대기하도록 로크 모드를 설정하려면 다음을 지정하십시오.
    SET LOCK MODE TO WAIT 20;

    자세한 정보는 로크 모드를 대기로 설정의 내용을 참조하십시오.

  3. 예를 들어, 분할을 첨부, 분리, 수정, 추가 또는 삭제하려면 ALTER FRAGMENT on TABLE문을 실행하십시오.

FORCE_DDL_EXEC 환경 옵션을 사용하여 ALTER FRAGMENT on TABLE 조작을 완료한 후 FORCE_DDL_EXEC 환경 옵션을 설정 해제할 수 있습니다. 예를 들어, 다음을 지정합니다.

SET ENVIRONMENT FORCE_DDL_EXEC 'OFF'

자세한 정보는 IBM Informix SQL 안내: 구문에서 FORCE_DDL_EXEC 환경 옵션에 대한 주제를 참조하십시오.


http://publib.boulder.ibm.com/infocenter/idshelp/v117/index.jsp?topic=/com.ibm.perf.doc/ids_prf_760.htm

http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/com.ibm.gsg.doc/ids_rel_241.htm&resultof=%22force_ddl_exec%22%20

http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/com.ibm.sqls.doc/ids_sqs_2072.htm&resultof=%22force_ddl_exec%22%20


728x90

+ Recent posts