이 섹션에서는 Cloud SQL 인스턴스의 저장 프로시저에 대해 설명합니다.
저장 프로시져에는 재사용할 수 있는 SQL 코드가 포함되어 있습니다.
저장 프로시져를 실행하려면 CALL 명령어를 사용하고 다음 변수를 바꿉니다.
- procedure_name은 저장 프로시져 이름입니다.
CALL procedure_name(parameters);
저장 프로시저를 만들려면 CREATE PROCEDURE 및 CREATE FUNCTION 문을 참조하세요.
Cloud SQL에서는 CREATE FUNCTION 문을 지원하지 않습니다. 자세한 내용은 Cloud SQL에 지원되지 않는 MySQL 기능을 참조하세요.
mysql.addSecondaryIdxOnReplica
mysql.addSecondaryIdxOnReplica
구문
mysql.addSecondaryIdxOnReplica(IDXTYPE, IDXNAME, TABLENAME, IDXDEFINITION, IDXOPTION)
설명
데이터베이스에 보조 색인을 추가합니다. 이 저장 프로시져는 CREATE INDEX DDL 문의 래퍼입니다.
- IDXTYPE - 만들 색인 유형입니다. 예를 들어 UNIQUE를 전달하여 고유한 색인을 만듭니다.
- IDXNAME - 색인의 이름입니다.
- TABLENAME - schema.name 형식의 테이블 이름입니다.
- IDXDEFINITION - 색인의 정의입니다. 바깥쪽 괄호를 포함하지 마세요.
- IDXOPTION - 색인 생성 시 전달할 추가 옵션입니다. 예를 들어 MySQL 8.0에서는 보이지 않는 색인을 위해 INVISIBLE을 전달할 수 있습니다.
mysql.dropSecondaryIdxOnReplica
구문
mysql.dropSecondaryIdxOnReplica(IDXNAME, TABLENAME, IDXOPTION)
설명
데이터베이스에 보조 색인을 삭제합니다. 이 저장 프로시져는 DROP INDEX DDL 문의 래퍼입니다.
- IDXNAME - 색인의 이름입니다.
- TABLENAME - schema.name 형식의 테이블 이름입니다.
- IDXOPTION - 색인을 삭제할 때 전달할 추가 옵션입니다. 예를 들어 INPLACE와 같은 알고리즘 옵션입니다.
mysql.skipReplicationError
구문
mysql.skipReplicationError()
설명
외부 서버 복제 중에 발생한 복제 오류를 건너뛴 후 복제를 재개합니다.
복제 오류가 발생하고 I/O 및 SQL 스레드가 중지된 경우에만 이 저장 프로시져를 실행할 수 있습니다.
이 저장 프로시져는 다음 작업을 실행합니다.
GTID 또는 바이너리 로그 위치 기반 복제가 사용되고 있는지 확인합니다.
병렬 복제가 사용되고 있는 경우 저장 프로시져는 먼저
START_SLAVE_UNTIL_SQL_AFTER_MTS_GAPS또는START_REPLICA UNTIL_SQL_AFTER_MTS_GAPS를 호출하여 적용된 트랜잭션에 실패한 트랜잭션까지 간격이 없는지 확인합니다. 그런 다음 프로시져는 복제 구성을 일시적으로 단일 스레드로 설정합니다.바이너리 로그 위치 기반 복제의 경우 프로시져는
SQL_SLAVE_SKIP_COUNTER또는SQL_REPLICA_SKIP_COUNTER = 1을 설정하여 현재 트랜잭션을 건너뜁니다.GTID 기반 복제의 경우 저장 프로시져는
gtid_executed상태 변수의 정보를 기반으로 현재 실패한 트랜잭션의 GTID를 결정합니다. 그런 다음 프로시져는 빈 트랜잭션을 삽입하여 해당 GTID를 백필합니다.이전에 병렬 복제가 사용 중지된 경우 병렬 복제가 다시 사용 설정됩니다.
저장 프로시져는 복제를 재개합니다.
mysql.skip_replication_error_history 테이블은 이 저장 프로시져의 모든 호출을 로깅합니다.
다음 단계
- Cloud SQL 읽기 복제본에 색인을 추가 및 삭제하는 방법 알아보기