Files
rtgs/sim/reconcile.sql
rtgs 58ca23b5d9 Initialize RTGS prototype repository
3센터 A-A-A RTGS 실시간총액결제 프로토타입 최초 버전관리 시작.
- backend: Kotlin/Gradle 멀티모듈(sequencer, common, 채널/센터 모듈)
- frontend: Vite + TS
- infra: docker-compose, prometheus/grafana, ELK 네이티브 스크립트
- loadtest(k6), sim(장애/순서/정합성 시나리오), docs(PoC 보고서/복원력방안)
2026-07-15 15:37:32 +09:00

25 lines
1.2 KiB
SQL

-- RTGS 계층 대사 리포트 (S1 정합성).
-- 실행: psql -h localhost -p 5433 -U rtgs -d rtgs -f reconcile.sql
\pset border 2
\echo ''
\echo '== 1) 계좌 총액 (보존 불변식: 이체 전후 항상 동일해야 함) =='
SELECT sum(balance) AS total_balance, count(*) AS accounts FROM account;
\echo '== 2) 거래 상태 분포 =='
SELECT status, count(*) AS cnt FROM transfer GROUP BY status ORDER BY status;
\echo '== 3) 미완결 잔류 (ACSP/PDNG에 머문 건 = 있으면 이상) =='
SELECT count(*) AS stuck FROM transfer WHERE status IN ('PDNG','ACSP');
\echo '== 4) 원장 vs 조회사본 대사 (ACCC 건수 일치해야) =='
SELECT (SELECT count(*) FROM transfer WHERE status='ACCC') AS ledger_accc,
(SELECT count(*) FROM settlement_view WHERE final_status='ACCC') AS view_accc;
\echo '== 5) 선저널 대사 (정산건 <= journal_log 기록건) =='
SELECT (SELECT count(*) FROM transfer WHERE status IN ('ACSP','ACCC')) AS settled,
(SELECT count(*) FROM journal_log) AS journal_rows;
\echo '== 6) 잔액 음수 계좌 (있으면 이중지급/오류) =='
SELECT count(*) AS negative_accounts FROM account WHERE balance < 0;
\echo ''