programing

오라클 - dblink 위에 커밋?

closeapi 2023. 11. 2. 21:45
반응형

오라클 - dblink 위에 커밋?

user smith로 Oracle 데이터베이스에 연결하여 다음 3개의 명령을 실행하면 다음과 같습니다.

update smith.tablea
set col_name = 'florence' where col_id = 8;

insert into bob.other_table@mylink
values ('blah',2,'uncle','new');

commit;

로컬 테이블(smith.tablea)에 대한 업데이트와 원격 db 테이블(bob.other_table)에 대한 삽입이 모두 커밋되었다는 뜻입니까, 아니면 로컬 테이블에 대한 업데이트만 커밋되었다는 뜻입니까?

참고: 'mylink'는 원격 데이터베이스로의 링크를 나타냅니다.

설명서에서

오라클 2단계 커밋 메커니즘은 분산 트랜잭션을 발행하는 사용자에게 완전히 투명합니다.사실, 사용자들은 거래가 분산되어 있는지조차 알 필요가 없습니다.트랜잭션의 종료를 나타내는 COMIT 문은 트랜잭션을 커밋하기 위해 2단계 커밋 메커니즘을 자동으로 트리거합니다.데이터베이스 응용프로그램 본문 내에 분산 트랜잭션을 포함하기 위해 코딩이나 복잡한 문 구문이 필요하지 않습니다.

네, 모든 것이 잘 되면 두 가지 작업이 모두 완료됩니다.

이 경우 트랜잭션은 원격 트랜잭션과 로컬 트랜잭션이 성공한 경우에만 작동해야 합니다.

분산 트랜잭션에 대한 자세한 정보:

http://docs.oracle.com/cd/B19306_01/server.102/b14231/ds_txnman.htm

언급URL : https://stackoverflow.com/questions/9582125/oracle-commit-over-dblink

반응형