공통 데이터베이스 작업
RDS for Db2 DB 인스턴스에서 데이터베이스를 생성, 삭제 또는 복원할 수 있습니다. 데이터베이스를 생성, 삭제 또는 복원하려면 더 높은 수준의 SYSADM
권한이 필요하며, 이 권한은 마스터 사용자가 사용할 수 없습니다. 대신 Amazon RDS 저장 프로시저를 사용하세요.
또한 모니터링, 유지 관리, 데이터베이스 정보 수집과 같은 일반적인 관리 작업을 수행할 수 있습니다.
주제
데이터베이스 생성
RDS for Db2 DB 인스턴스에서 데이터베이스를 만들려면 rdsadmin.create_database
저장 프로시저를 직접 호출합니다. 자세한 내용은 IBM Db2 설명서의 CREATE DATABASE 명령
참고
db2_compatibility_vector
파라미터를 수정하려는 경우 데이터베이스를 만들기 전에 파라미터를 수정합니다. 자세한 내용은 db2_compatibility_vector 파라미터 설정 섹션을 참조하세요.
데이터베이스를 생성하려면
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.create_database
를 직접 호출하여 데이터베이스를 생성합니다. 자세한 내용은 rdsadmin.create_database 섹션을 참조하세요.db2 "call rdsadmin.create_database('
database_name
')" -
(선택 사항) 만들려는 각 데이터베이스에 대해
rdsadmin.create_database
를 직접 호출하여 추가 데이터베이스를 만듭니다. 각 Db2 DB 인스턴스에는 최대 50개의 데이터베이스를 포함할 수 있습니다. 자세한 내용은 rdsadmin.create_database 섹션을 참조하세요.db2 "call rdsadmin.create_database('
database_name
')" -
(선택 사항) 다음 방법 중 하나를 사용하여 데이터베이스가 만들어졌는지 확인합니다.
-
rdsadmin.list_databases
을 호출합니다. 자세한 내용은 rdsadmin.list_databases 섹션을 참조하세요. -
다음 SQL 명령을 실행합니다.
db2 "select varchar(r.task_type,25) as task_type, r.database_name, varchar(r.lifecycle,15) as lifecycle, r.created_at, r.database_name, varchar(bson_to_json(task_input_params),256) as input_params, varchar(r.task_output,1024) as task_output from table(rdsadmin.get_task_status(null,null,'create_database')) as r order by created_at desc"
-
데이터베이스 설정 구성
RDS for Db2 DB 인스턴스에서 데이터베이스용 설정을 구성하려면 rdsadmin.set_configuration
저장 프로시저를 직접 호출합니다. 예를 들어, 복원 작업 중에 생성할 버퍼나 버퍼 조작기 개수를 구성할 수 있습니다.
데이터베이스 설정을 구성하려면
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
(선택 사항)
rdsadmin.show_configuration
을 직접 호출하여 현재 구성 설정을 확인합니다. 자세한 내용은 rdsadmin.show_configuration 섹션을 참조하세요.db2 "call rdsadmin.show_configuration('
name
')" -
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
저장 프로시저를 직접 호출합니다.
데이터베이스의 로그 보존을 구성하려면
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
(선택 사항)
rdsadmin.show_archive_log_retention
을 직접 호출하여 현재 로그 보존 구성을 확인합니다. 자세한 내용은 rdsadmin.show_archive_log_retention 섹션을 참조하세요.db2 "call rdsadmin.show_archive_log_retention( ?, '
database_name
')" -
rdsadmin.set_archive_log_retention
을 직접 호출하여 데이터베이스의 로그 보존을 구성합니다. 자세한 내용은 rdsadmin.set_archive_log_retention 섹션을 참조하세요.db2 "call rdsadmin.set_archive_log_retention( ?, '
database_name
', 'archive_log_retention_hours
')"
로그 정보 나열
사용된 총 스토리지 크기와 같은 세부 정보를 포함하여 아카이브 로그 파일에 대한 세부 정보를 나열하려면 rdsadmin.list_archive_log_information
저장 프로시저를 호출합니다.
데이터베이스에 대한 로그 정보를 나열하려면 다음과 같이 합니다.
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.list_archive_log_information
을 호출하여 로그 파일 정보 목록을 반환합니다. 자세한 내용은 rdsadmin.list_archive_log_information 섹션을 참조하세요.db2 "call rdsadmin.list_archive_log_information( ?, '
database_name
')"
데이터베이스 비활성화
RDS for Db2 DB 인스턴스에서 데이터베이스를 비활성화하려면 rdsadmin.deactivate_database
저장 프로시저를 직접적으로 호출합니다.
기본적으로 Amazon RDS는 RDS for Db2 DB 인스턴스에서 데이터베이스를 만들 때 데이터베이스를 활성화합니다. 자주 사용하지 않는 데이터베이스를 비활성화하여 메모리 리소스를 절약할 수 있습니다.
데이터베이스를 비활성화하는 방법
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.deactivate_database
를 직접 호출하여 데이터베이스를 비활성화합니다. 자세한 내용은 rdsadmin.deactivate_database 섹션을 참조하세요.db2 "call rdsadmin.deactivate_database( ?, '
database_name
')"
데이터베이스 활성화
독립형 RDS for Db2 DB 인스턴스에서 데이터베이스를 활성화하려면 rdsadmin.activate_database
저장 프로시저를 직접적으로 호출합니다.
기본적으로 Amazon RDS는 RDS for Db2 DB 인스턴스에서 데이터베이스를 만들 때 데이터베이스를 활성화합니다. 자주 사용하지 않는 데이터베이스를 비활성화하여 메모리 리소스를 보존한 다음 나중에 비활성화된 데이터베이스를 활성화할 수 있습니다.
데이터베이스를 활성화하는 방법
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.activate_database
를 직접 호출하여 데이터베이스를 활성화합니다. 자세한 내용은 rdsadmin.activate_database 섹션을 참조하세요.db2 "call rdsadmin.activate_database( ?, '
database_name
')"
데이터베이스 재활성화
데이터베이스를 재활성화하려면 rdsadmin.reactivate_database
저장 프로시저를 직접적으로 호출하세요. 데이터베이스 구성을 변경한 후 RDS for Db2 DB 인스턴스에서 데이터베이스를 재활성화해야 할 수 있습니다. 데이터베이스를 재활성화해야 하는지 확인하려면 데이터베이스에 연결하고 db2 get db cfg show detail
을 실행합니다.
데이터베이스 구성을 변경한 후 이 저장 프로시저를 직접적으로 호출하여 독립형 RDS for Db2 DB 인스턴스에서 데이터베이스를 재활성화할 수도 있습니다. 또는 먼저 rdsadmin.deactivate_database
저장 프로시저를 직접적으로 호출한 다음 rdsadmin.activate_database
저장 프로시저를 직접적으로 호출하여 독립형 RDS for Db2 DB 인스턴스에서 데이터베이스를 재활성화할 수 있습니다. 자세한 내용은 데이터베이스 비활성화 및 데이터베이스 활성화(을)를 참조하세요.
데이터베이스를 재활성화하려면
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.reactivate_database
를 직접적으로 호출하여 데이터베이스를 재활성화합니다. 자세한 내용은 rdsadmin.reactivate_database 섹션을 참조하세요.db2 "call rdsadmin.reactivate_database( ?, '
database_name
')"
데이터베이스 삭제
RDS for Db2 DB 인스턴스에서 데이터베이스를 삭제하려면 rdsadmin.drop_database
저장 프로시저를 직접 호출합니다. 자세한 내용은 IBM Db2 설명서의 데이터베이스 삭제
참고
특정 조건이 충족되는 경우에만 저장 프로시저를 직접 호출하여 데이터베이스를 삭제할 수 있습니다. 자세한 내용은 사용 노트rdsadmin.drop_database
용 를 참조하십시오.
데이터베이스를 삭제하려면
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.drop_database
를 직접 호출하여 데이터베이스를 삭제합니다. 자세한 내용은 rdsadmin.drop_database 섹션을 참조하세요.db2 "call rdsadmin.drop_database('
database_name
')"
데이터베이스 복원
Amazon S3 버킷에서 RDS for Db2 DB 인스턴스로 데이터베이스를 이동하려면 rdsadmin.restore_database
저장 프로시저를 직접 호출합니다. 자세한 내용은 IBM Db2 설명서의 RESTORE DATABASE 명령
데이터베이스를 복원하려면
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
(선택 사항)
rdsadmin.show_configuration
을 직접 호출하고 현재 구성 설정을 확인하여 복원 작업을 최적화합니다. 자세한 내용은 rdsadmin.show_configuration 섹션을 참조하세요.db2 "call rdsadmin.show_configuration('
name
')" -
rdsadmin.set_configuration
을 직접 호출하여 복원 작업을 최적화하도록 설정을 구성합니다. 이러한 값을 명시적으로 설정하면 대량 데이터가 있는 데이터베이스를 복원할 때 성능이 향상될 수 있습니다. 자세한 내용은 rdsadmin.set_configuration 섹션을 참조하세요.db2 "call rdsadmin.set_configuration( '
name
', 'value
')" -
rdsadmin.restore_database
를 호출하여 데이터베이스를 복원합니다. 자세한 내용은 rdsadmin.restore_database 섹션을 참조하세요.db2 "call rdsadmin.restore_database( ?, '
database_name
', 's3_bucket_name
', 's3_prefix
',restore_timestamp
, 'backup_type
')" -
(선택 사항)
rdsadmin.list_databases
를 직접 호출하고 복원된 데이터베이스가 나열되었는지 확인하여 데이터베이스가 복원되었는지 확인합니다. 자세한 내용은 rdsadmin.list_databases 섹션을 참조하세요. -
rdsadmin.rollforward_database
를 직접 호출하여 데이터베이스를 다시 온라인 상태로 만들고 추가 트랜잭션 로그를 적용합니다. 자세한 내용은 rdsadmin.rollforward_database 섹션을 참조하세요.db2 "call rdsadmin.rollforward_database( ?, '
database_name
', 's3_bucket_name
',s3_prefix
, 'rollforward_to_option
', 'complete_rollforward
')" -
이전 단계에서
complete_rollforward
를FALSE
로 설정한 경우에는rdsadmin.complete_rollforward
를 직접 호출하여 데이터베이스를 다시 온라인 상태로 전환하는 작업을 완료해야 합니다. 자세한 내용은 rdsadmin.complete_rollforward 섹션을 참조하세요.db2 "call rdsadmin.complete_rollforward( ?, '
database_name
')"
데이터베이스 나열
rdsadmin.list_databases
사용자 정의 함수를 직접 호출하여 Amazon RDS for Db2에서 실행되는 모든 데이터베이스를 나열할 수 있습니다.
데이터베이스를 나열하는 방법
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.list_databases
를 직접 호출하여 데이터베이스를 나열합니다. 자세한 내용은 rdsadmin.list_databases 섹션을 참조하세요.db2 "select * from table(rdsadmin.list_databases())"
데이터베이스에 대한 정보 수집
RDS for Db2 DB 인스턴스에서 데이터베이스에 대한 정보를 수집하려면 rdsadmin.db2pd_command
저장 프로시저를 직접적으로 호출합니다. 이 정보를 사용하면 데이터베이스를 모니터링하거나 문제를 해결할 수 있습니다.
데이터베이스에 대한 정보를 수집하려면 다음과 같이 하세요.
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.db2pd_command
를 직접 호출하여 데이터베이스에 대한 정보를 수집합니다. 자세한 내용은 rdsadmin.db2pd_command 섹션을 참조하세요.db2 "call rdsadmin.db2pd_command('
db2pd_cmd
')"
데이터베이스의 애플리케이션 강제 종료
RDS for Db2 인스턴스의 데이터베이스에서 애플리케이션을 강제 종료하려면 rdsadmin.force_application
저장 프로시저를 직접적으로 호출합니다. 데이터베이스 유지 관리를 수행하기 전에 데이터베이스에서 애플리케이션을 강제로 제거해야 합니다.
데이터베이스의 애플리케이션을 강제 종료하려면 다음과 같이 하세요.
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여
rdsadmin
데이터베이스에 연결합니다. 다음 예제에서master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
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
스크립트를 사용하여 성능 보고서를 생성하려면
-
RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 Db2 데이터베이스에 연결합니다. 다음 예제에서
master_username
및master_password
를 사용자 자체 정보로 대체합니다.db2 connect to rdsadmin
master_username
usingmaster_password
-
rdsadmin.create_bufferpool
을 호출하여 페이지 크기가 4096인 버퍼 풀db2monbp
를 생성합니다. 자세한 내용은 rdsadmin.create_bufferpool 섹션을 참조하세요.db2 "call rdsadmin.create_bufferpool('
database_name
','db2monbp',4096)" -
rdsadmin.create_tablespace
을 호출하여db2monbp
버퍼 풀을 사용하는 임시 테이블스페이스db2montmptbsp
를 생성합니다. 자세한 내용은 rdsadmin.create_tablespace 섹션을 참조하세요.db2 "call rdsadmin.create_tablespace('database_name',\ 'db2montmptbsp','db2monbp',4096,1000,100,'T')"
-
db2mon.sh
스크립트를 열고 데이터베이스 연결에 대한 줄을 수정합니다.-
다음과 같은 줄을 제거합니다.
db2 -v connect to $dbName
-
이전 단계의 줄을 다음 줄로 바꿉니다. 다음 예제에서
master_username
및master_password
를 RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호로 대체합니다.db2 -v connect to $dbName user
master_username
usingmaster_password
-
다음과 같은 줄을 제거합니다.
db2 -v create bufferpool db2monbp db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp db2 -v drop tablespace db2montmptbsp db2 -v drop bufferpool db2monbp
-
-
db2mon.sh
스크립트를 실행하여 지정된 간격으로 보고서를 출력합니다. 다음 예제에서absolute_path
는 스크립트 파일의 전체 경로로,rds_database_alias
는 데이터베이스 이름으로,seconds
는 보고서 생성 사이의 시간(0~3,600초)으로 바꿉니다.absolute_path
/db2mon.shrds_database_alias
seconds
| tee -a db2mon.out예시
다음 예제는 스크립트 파일이
home
디렉터리 아래의perf
디렉터리에 있음을 보여줍니다./home/db2inst1/sqllib/samples/perf/db2mon.sh
rds_database_alias
seconds
| tee -a db2mon.out -
버퍼 풀과
db2mon.sh
파일용으로 생성된 테이블스페이스를 삭제합니다. 다음 예제에서master_username
및master_password
를 RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호로 대체합니다.database_name
을 데이터베이스의 이름으로 바꿉니다. 자세한 내용은 rdsadmin.drop_tablespace 및 rdsadmin.drop_bufferpool(을)를 참조하세요.db2 connect to rdsadmin user
master_username
usingmaster_password
db2 "call rdsadmin.drop_tablespace('database_name
','db2montmptbsp')" db2 "call rdsadmin.drop_bufferpool('database_name
','db2monbp')"