공통 데이터베이스 작업 - Amazon Relational Database Service

공통 데이터베이스 작업

RDS for Db2 DB 인스턴스에서 데이터베이스를 생성, 삭제 또는 복원할 수 있습니다. 데이터베이스를 생성, 삭제 또는 복원하려면 더 높은 수준의 SYSADM 권한이 필요하며, 이 권한은 마스터 사용자가 사용할 수 없습니다. 대신 Amazon RDS 저장 프로시저를 사용하세요.

또한 모니터링, 유지 관리, 데이터베이스 정보 수집과 같은 일반적인 관리 작업을 수행할 수 있습니다.

데이터베이스 생성

RDS for Db2 DB 인스턴스에서 데이터베이스를 만들려면 rdsadmin.create_database 저장 프로시저를 직접 호출합니다. 자세한 내용은 IBM Db2 설명서의 CREATE DATABASE 명령을 참조하세요.

참고

Amazon RDS 콘솔 또는 AWS CLI를 사용하여 RDS for Db2 DB 인스턴스를 만들 때 데이터베이스의 이름을 지정하지 않은 경우 저장 프로시저를 직접 호출하여 데이터베이스를 만들 수 있습니다. 자세한 내용은 사용 노트rdsadmin.create_database용 를 참조하십시오.

데이터베이스를 생성하려면
  1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 rdsadmin 데이터베이스에 연결합니다. 다음 예제에서 master_usernamemaster_password를 사용자 자체 정보로 대체합니다.

    db2 "connect to rdsadmin user master_user using master_password"
  2. rdsadmin.create_database를 직접 호출하여 데이터베이스를 생성합니다. 자세한 내용은 rdsadmin.create_database 단원을 참조하십시오.

    db2 "call rdsadmin.create_database('database_name')"

데이터베이스 설정 구성

RDS for Db2 DB 인스턴스에서 데이터베이스용 설정을 구성하려면 rdsadmin.set_configuration 저장 프로시저를 직접 호출합니다. 예를 들어, 복원 작업 중에 생성할 버퍼나 버퍼 조작기 개수를 구성할 수 있습니다.

데이터베이스 설정을 구성하려면
  1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 rdsadmin 데이터베이스에 연결합니다. 다음 예제에서 master_usernamemaster_password를 사용자 자체 정보로 대체합니다.

    db2 "connect to rdsadmin user master_user using master_password"
  2. (선택 사항) rdsadmin.show_configuration을 직접 호출하여 현재 구성 설정을 확인합니다. 자세한 내용은 rdsadmin.show_configuration 단원을 참조하십시오.

    db2 "call rdsadmin.show_configuration('name')"
  3. rdsadmin.set_configuration을 직접 호출하여 데이터베이스 설정을 구성합니다. 자세한 내용은 rdsadmin.set_configuration 단원을 참조하십시오.

    db2 "call rdsadmin.set_configuration( 'name', 'value')"

데이터베이스 파라미터 수정

Amazon RDS for Db2는 데이터베이스 관리자 구성 파라미터, 레지스트리 변수, 데이터베이스 구성 파라미터 등 세 가지 유형의 파라미터를 사용합니다. 처음 두 유형은 파라미터 그룹을 통해 업데이트하고 마지막 유형은 rdsadmin.update_db_param 저장 프로시저를 통해 업데이트할 수 있습니다.

참고

기존 파라미터 값만 수정할 수 있습니다. RDS for Db2는 지원하지 않는 파라미터 새로 추가할 수 없습니다.

이러한 파라미터 및 파라미터 값 수정 방법에 대한 자세한 내용은 Amazon RDS for Db2 파라미터 섹션을 참조하세요.

로그 보존 구성

Amazon RDS에서 RDS for Db2 데이터베이스용 로그 파일을 보관하는 기간을 구성하려면 rdsadmin.set_archive_log_retention 저장 프로시저를 직접 호출합니다.

데이터베이스의 로그 보존을 구성하려면
  1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 rdsadmin 데이터베이스에 연결합니다. 다음 예제에서 master_usernamemaster_password를 사용자 자체 정보로 대체합니다.

    db2 "connect to rdsadmin user master_user using master_password"
  2. (선택 사항) rdsadmin.show_archive_log_retention을 직접 호출하여 현재 로그 보존 구성을 확인합니다. 자세한 내용은 rdsadmin.show_archive_log_retention 단원을 참조하십시오.

    db2 "call rdsadmin.show_archive_log_retention( ?, 'database_name')"
  3. rdsadmin.set_archive_log_retention을 직접 호출하여 데이터베이스의 로그 보존을 구성합니다. 자세한 내용은 rdsadmin.set_archive_log_retention 단원을 참조하십시오.

    db2 "call rdsadmin.set_archive_log_retention( ?, 'database_name', 'archive_log_retention_hours')"

데이터베이스 삭제

RDS for Db2 DB 인스턴스에서 데이터베이스를 삭제하려면 rdsadmin.drop_database 저장 프로시저를 직접 호출합니다. 자세한 내용은 IBM Db2 설명서의 데이터베이스 삭제를 참조하세요.

참고

특정 조건이 충족되는 경우에만 저장 프로시저를 직접 호출하여 데이터베이스를 삭제할 수 있습니다. 자세한 내용은 사용 노트rdsadmin.drop_database용 를 참조하십시오.

데이터베이스를 삭제하려면
  1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 rdsadmin 데이터베이스에 연결합니다. 다음 예제에서 master_usernamemaster_password를 사용자 자체 정보로 대체합니다.

    db2 "connect to rdsadmin user master_user using master_password"
  2. rdsadmin.drop_database를 직접 호출하여 데이터베이스를 삭제합니다. 자세한 내용은 rdsadmin.drop_database 단원을 참조하십시오.

    db2 "call rdsadmin.drop_database('database_name')"

데이터베이스 복원

RDS for Db2 DB 인스턴스에서 데이터베이스를 복원하려면 rdsadmin.restore_database 저장 프로시저를 직접 호출합니다. 자세한 내용은 IBM Db2 설명서의 RESTORE DATABASE 명령을 참조하세요.

참고

Amazon RDS 콘솔 또는 AWS CLI를 사용하여 RDS for Db2 DB 인스턴스를 만들 때 데이터베이스의 이름을 지정하지 않은 경우 저장 프로시저를 직접 호출하여 데이터베이스를 복원할 수 있습니다. 자세한 내용은 사용 노트rdsadmin.restore_database용 를 참조하십시오.

데이터베이스를 복원하려면
  1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 rdsadmin 데이터베이스에 연결합니다. 다음 예제에서 master_usernamemaster_password를 사용자 자체 정보로 대체합니다.

    db2 "connect to rdsadmin user master_user using master_password"
  2. (선택 사항) rdsadmin.show_configuration을 직접 호출하고 현재 구성 설정을 확인하여 복원 작업을 최적화합니다. 자세한 내용은 rdsadmin.show_configuration 단원을 참조하십시오.

    db2 "call rdsadmin.show_configuration('name')"
  3. rdsadmin.set_configuration을 직접 호출하여 복원 작업을 최적화하도록 설정을 구성합니다. 이러한 값을 명시적으로 설정하면 대량 데이터가 있는 데이터베이스를 복원할 때 성능이 향상될 수 있습니다. 자세한 내용은 rdsadmin.set_configuration 단원을 참조하십시오.

    db2 "call rdsadmin.set_configuration( 'name', 'value')"
  4. rdsadmin.restore_database를 호출하여 데이터베이스를 복원합니다. 자세한 내용은 rdsadmin.restore_database 단원을 참조하십시오.

    db2 "call rdsadmin.restore_database( ?, 'database_name', 's3_bucket_name', 's3_prefix', restore_timestamp, 'backup_type')"
  5. rdsadmin.rollforward_database를 직접 호출하여 데이터베이스를 다시 온라인 상태로 만들고 추가 트랜잭션 로그를 적용합니다. 자세한 내용은 rdsadmin.rollforward_database 단원을 참조하십시오.

    db2 "call rdsadmin.rollforward_database( ?, 'database_name', 's3_bucket_name', s3_prefix, 'rollfoward_to_option', 'complete_rollforward')"
  6. 이전 단계에서 complete_rollforwardFALSE로 설정한 경우에는 rdsadmin.complete_rollforward를 직접 호출하여 데이터베이스를 다시 온라인 상태로 전환하는 작업을 완료해야 합니다. 자세한 내용은 rdsadmin.complete_rollforward 단원을 참조하십시오.

    db2 "call rdsadmin.complete_rollforward( ?, 'database_name')"

데이터베이스에 대한 정보 수집

데이터베이스에 대한 정보를 수집하려면 rdsadmin.db2pd_command 저장 프로시저를 직접 호출합니다. 이 정보를 사용하면 데이터베이스를 모니터링하거나 문제를 해결할 수 있습니다.

데이터베이스에 대한 정보를 수집하려면 다음과 같이 하세요.
  1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 rdsadmin 데이터베이스에 연결합니다. 다음 예제에서 master_usernamemaster_password를 사용자 자체 정보로 대체합니다.

    db2 "connect to rdsadmin user master_username using master_password"
  2. rdsadmin.db2pd_command를 직접 호출하여 데이터베이스에 대한 정보를 수집합니다. 자세한 내용은 rdsadmin.db2pd_command 단원을 참조하십시오.

    db2 "call rdsadmin.db2pd_command('db2pd_cmd')"

데이터베이스의 애플리케이션 강제 종료

RDS for Db2 데이터베이스에서 애플리케이션을 강제 종료하려면 rdsadmin.force_application 저장 프로시저를 직접 호출합니다. 데이터베이스 유지 관리를 수행하기 전에 데이터베이스에서 애플리케이션을 강제로 제거해야 합니다.

데이터베이스의 애플리케이션을 강제 종료하려면 다음과 같이 하세요.
  1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 rdsadmin 데이터베이스에 연결합니다. 다음 예제에서 master_usernamemaster_password를 사용자 자체 정보로 대체합니다.

    db2 "connect to rdsadmin user master_username using master_password"
  2. rdsadmin.force_application을 직접적으로 호출하여 데이터베이스의 애플리케이션을 강제 종료합니다. 자세한 내용은 rdsadmin.force_application 단원을 참조하십시오.

    db2 "call rdsadmin.force_application( ?, 'applications')"

성능 보고서 생성

프로시저 또는 스크립트를 사용하여 성능 보고서를 생성할 수 있습니다. 프로시저 사용에 대한 자세한 내용은 IBM Db2 설명서의 DBSUMMARY 프로시저 - 시스템 및 애플리케이션 성능 지표에 대한 요약 보고서 생성을 참조하세요.

Db2는 ~sqllib/sample/perf 디렉터리에 db2mon.sh 파일을 포함합니다. 스크립트를 실행하면 합리적인 비용으로 광범위한 SQL 지표 보고서를 생성할 수 있습니다. db2mon.sh 파일 및 관련 스크립트 파일을 다운로드하려면 IBM db2-samples GitHub 리포지토리의 perf 디렉터리를 참조하세요.

스크립트를 사용하여 성능 보고서를 생성하려면
  1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 Db2 데이터베이스에 연결합니다. 다음 예제에서 master_usernamemaster_password를 사용자 자체 정보로 대체합니다.

    db2 connect to rdsadmin user master_username using master_password
  2. rdsadmin.create_bufferpool을 호출하여 페이지 크기가 4096인 버퍼 풀 db2monbp를 생성합니다. 자세한 내용은 rdsadmin.create_bufferpool 단원을 참조하십시오.

    db2 "call rdsadmin.create_bufferpool('database_name','db2monbp',4096)"
  3. rdsadmin.create_tablespace을 호출하여 db2monbp 버퍼 풀을 사용하는 임시 테이블스페이스 db2montmptbsp를 생성합니다. 자세한 내용은 rdsadmin.create_tablespace 단원을 참조하십시오.

    db2 "call rdsadmin.create_tablespace('database_name',\ 'db2montmptbsp','db2monbp',4096,1000,100,'T')"
  4. db2mon.sh 스크립트를 열고 데이터베이스 연결에 대한 줄을 수정합니다.

    1. 다음과 같은 줄을 제거합니다.

      db2 -v connect to $dbName
    2. 이전 단계의 줄을 다음 줄로 바꿉니다. 다음 예제에서 master_usernamemaster_password를 RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호로 대체합니다.

      db2 -v connect to $dbName user master_username using master_password
    3. 다음과 같은 줄을 제거합니다.

      db2 -v create bufferpool db2monbp db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp db2 -v drop tablespace db2montmptbsp db2 -v drop bufferpool db2monbp
  5. db2mon.sh 스크립트를 실행하여 지정된 간격으로 보고서를 출력합니다. 다음 예제에서 absolute_path는 스크립트 파일의 전체 경로로, rds_database_alias는 데이터베이스 이름으로, seconds는 보고서 생성 사이의 시간(0~3,600초)으로 바꿉니다.

    absolute_path/db2mon.sh rds_database_alias seconds | tee -a db2mon.out

    예시

    다음 예제는 스크립트 파일이 home 디렉터리 아래의 perf 디렉터리에 있음을 보여줍니다.

    /home/db2inst1/sqllib/samples/perf/db2mon.sh rds_database_alias seconds | tee -a db2mon.out
  6. 버퍼 풀과 db2mon.sh 파일용으로 생성된 테이블스페이스를 삭제합니다. 다음 예제에서 master_usernamemaster_password를 RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호로 대체합니다. database_name을 데이터베이스의 이름으로 바꿉니다.

    db2 connect to rdsadmin user master_username using master_password db2 "call rdsadmin.drop_tablespace('database_name','db2montmptbsp')" db2 "call rdsadmin.drop_bufferpool('database_name','db2monbp')"