Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

Oracle E-Business Suite OATM 테이블스페이스 모델과 마이그레이션 유틸리티 활용 가이드

이 글에서는 OATM(Oracle Applications Tablespace Model) 마이그레이션 유틸리티를 사용하여 Oracle E-Business Suite 11i 버전 데이터베이스를 OATM으로 전환하는 과정을 안내합니다. 해당 유틸리티는 모든 제품을 위한 12개의 로컬 관리 방식(locally managed) 테이블스페이스를 제공합니다.

소개

OATM은 Oracle Applications에 도입된 모델로, 통합 테이블스페이스 모델(consolidated tablespace model)이라고도 불립니다. 임시(temporary), 시스템(system), undo 세그먼트용 시스템 테이블스페이스 3개를 포함하여 총 12개의 통합 테이블스페이스를 사용하며, 로컬 관리 방식 테이블스페이스를 지원합니다. OATM은 Release 11i.10에서 처음 도입되었으며, 그 이전 버전의 Oracle E-Business Suite에서는 각 제품마다 데이터용과 인덱스용으로 두 개의 테이블스페이스가 개별 할당되는 구조였습니다.

OATM 마이그레이션 유틸리티는 메뉴 기반 PERL 프로그램과 일련의 사이징 추정 보고서로 구성되어 있습니다. 이를 통해 Oracle E-Business Suite 애플리케이션 스키마를 한 번에 전체 마이그레이션하거나, 단계적으로 스키마별로 마이그레이션할 수 있습니다. Oracle은 한 번에 전체를 마이그레이션하는 방식을 권장하지만, 이 경우 상당한 다운타임과 디스크 공간이 필요합니다. 또한 Oracle은 부분적인 테이블스페이스 마이그레이션을 지원하지 않으므로, 스키마별로 단계적 마이그레이션을 진행하더라도 최종적으로는 모든 스키마를 마이그레이션해야 합니다.

OATM의 주요 장점은 다음과 같습니다.

  • 더 적고 통합된 테이블스페이스 운영
  • 로컬 관리 방식 테이블스페이스 지원
  • 객체별 I/O 특성 반영
  • 마이그레이션 후 불필요한 공간 회수
  • Real Application Cluster(RAC) 지원

이어지는 섹션에서는 마이그레이션을 위한 사전 준비 사항, OATM 마이그레이션 유틸리티 설치 방법, 그리고 실제 마이그레이션 수행 절차를 살펴보겠습니다.

OATM 마이그레이션 사전 준비 사항

OATM 마이그레이션을 시작하기 전에 다음 작업을 수행해야 합니다.

  • 사용 중인 Oracle 데이터베이스 버전이 RDBMS 9.2.0.4 이상인지 확인합니다.

  • 데이터베이스 버전이 9.2.0.6이라면 다음 명령을 실행합니다.
    $FND_TOP/patch/115/sql/fndupglb.sql

  • 마이그레이션 대상에서 제외하고 싶은 커스텀 스키마(예: Oracle Applications에 등록된 비(非)Oracle 스키마)가 있다면, 해당 스키마를 비활성화(disable)하여 등록을 해제합니다. 비활성화할 만한 스키마의 예로는 XXBOL, XXCON 등이 있습니다.

  • CTXSYS 스키마는 APPS 스키마가 아니므로 아래 절차에 따라 별도로 등록해야 합니다.

    1. 메뉴에서 System Administrator Responsibility -> Security -> ORACLE -> Register를 선택합니다.
    2. Schema CTXSYS를 선택하고 권한(privilege)을 Enabled로 설정합니다.

OATM 마이그레이션 유틸리티 설치

이 섹션에서는 유틸리티 설치 절차를 단계별로 설명합니다.

1단계: 패치 적용 및 환경 설정

설치를 시작하려면 다음 작업을 수행합니다.

  • 패치 3942506을 적용하여 OATM 마이그레이션 스크립트인 $FND_TOP/bin/fndtsmig.pl을 확보합니다.
  • Oracle Note 404954.1에 명시된 필수 파라미터를 확인합니다.
  • 데이터베이스를 no archive log 모드로 전환합니다.

2단계: 데이터베이스 파라미터 변경

OATM 마이그레이션을 시작하기 전에 다음 파라미터 값을 조정합니다.

  • undo_retention=10200
  • job_queue_processes=0
  • aq_tm_processes=0
  • db_files=1500 (OATM에 필수)

아래와 같이 SQL 명령을 실행하여 설정을 변경할 수 있습니다.

$ sqlplus '/as sysdba'
SQL> alter system set undo_retention=10200 scope=spfile;
SQL> alter system set job_queue_processes=0 scope=spfile;
SQL> alter system set aq_tm_processes=0 scope=spfile;
SQL> alter system set db_files=1500 scope=spfile;

파라미터 설정이 정상적으로 적용되었는지 확인하기 위해 데이터베이스를 종료한 후 다시 시작합니다.

3단계: 임시 테이블스페이스 크기 조정 및 데이터베이스 정리

설치를 마무리하려면 임시(temp) 테이블스페이스의 크기를 50GB 이상으로 조정하고, tools, undo 등 기타 테이블스페이스를 포함한 데이터베이스를 정리합니다.

4단계: OATM 마이그레이션 유틸리티 실행

실제 마이그레이션을 수행하려면 이 섹션의 단계를 따릅니다.

Step 1: 마이그레이션 스크립트 실행

마이그레이션을 시작하려면 다음 명령을 실행합니다.

$FND_TOP/bin> perl fndtsmig.pl

Main Menu

1. Migration Sizing Reports
2. Create New Tablespaces
3. Generate Migration Commands
4. Execute Migration Commands
5. Run Migration Status Reports
6. Run Post Migration Steps
7. Run Customization Steps
8. Run Migration in Batch Mode

Please enter your option -

Step 2: 신규 테이블스페이스에 필요한 공간 산정

메인 메뉴에서 1. Migration Sizing Reports를 선택하여 OATM 마이그레이션 완료에 필요한 공간 크기를 확인합니다.

1. Generate a Report with the list of all the Oracle
   Application product schemas that can be migrated
2. Calculate total space required by each new tablespace to
   Migrate all Oracle Application product schemas (relevant
   for a complete migration)
3. Calculate total space required by each new tablespace to
   migrate each Oracle Application product schema (relevant
   for a schema-by-schema migration)
4. Calculate total space required by each Oracle Applications
   schema, with details for each object
5. Display Sizing Exception report

Please enter your option -
Press Return key to continue...

이 메뉴에서 2. Calculate total space required ...를 선택하면 필요한 공간 요구량을 산출할 수 있습니다. 사이징 보고서를 바탕으로 필요한 스토리지 공간을 확보한 뒤 다음 단계로 진행합니다.

이러한 보고서는 새로 생성될 테이블스페이스에 필요한 공간을 가늠하는 데 도움을 주며, 어떤 마이그레이션 방식이 환경에 가장 적합한지 판단하는 데도 유용합니다.

Step 3: 테이블스페이스 생성 스크립트 작성

메인 메뉴에서 2. Create New Tablespaces를 선택하여 새 테이블스페이스를 생성합니다.

Create New Tablespaces

1. Generate new tablespace creation script
2. Create new tablespaces
Please enter your option -

Press Return key to continue...

이 메뉴에서 1. Generate new tablespace creation script를 선택하여 생성 스크립트를 작성합니다.

Step 4: Invalid Indexes 보고서 생성

Invalid Indexes 보고서를 생성하려면 먼저 메인 메뉴에서 3. Generate Migration Commands를 선택합니다.

Generate Migration Commands

Generation of Migration commands including disable/enable
commands for triggers, constraints, policies, stop/start for queues.

1. Invalid Indexes Report. Please correct/drop these before
   generating migration commands
2. Generate migration commands for all schemas
3. Generate migration commands for a list of schemas

[Q]uit        [B]ack        [N]ext

Please enter your option -

Press Return key to continue.

그런 다음 1. Invalid Indexes Report.를 선택하여 보고서를 생성합니다.

Report created /oracldb/oracledbappl/admin/oracldb/log/fndinvld.txt

Step 5: 커스텀 스키마 비활성화 및 CTXSYS 스키마 활성화

앞선 "사전 준비 사항" 섹션에서 설명한 대로 커스텀 스키마 비활성화와 CTXSYS 스키마 활성화를 아직 수행하지 않았다면, 이 단계에서 처리합니다.

Step 6: 전체 스키마용 마이그레이션 스크립트 생성

Generate Migration Commands 메뉴에서 2. Generate migration commands for all schemas를 선택하여 마이그레이션 스크립트를 생성합니다.

Generating Migration commands for all schemas. This may take upto 30min. Please wait...

Press Return key to continue...

Step 7: CTXSYS용 마이그레이션 명령 생성

Generate Migration Commands 메뉴에서 3. Generate migration commands for a list of schemas를 선택하여 CTXSYS 스키마용 마이그레이션 명령을 생성합니다. 프롬프트가 나타나면 CTXSYS를 입력합니다.

Please enter your option -  3
Enter a comma separated list of Schema names: CTXSYS

Step 8: 자동 확장(autoextend) 옵션 설정

마이그레이션 중 발생할 수 있는 문제를 예방하려면, 새로 생성되는 모든 데이터 파일에 대해 autoextend 옵션을 ON으로 설정합니다. 아래 명령을 실행합니다.

SQL> spool autoextend_ts.sql
SQL> select 'alter database datafile ''' || file_name || ''' ' || ' autoextend on;' from dba_data_files;
SQL> spool off

$ autoextend_ts.sql

Step 9: 마이그레이션 명령 실행 및 상태 보고서 확인

메인 메뉴에서 4. Execute Migration Commands를 선택하여 마이그레이션 명령을 실행합니다.

Execute Migration Commands

Execution of Migration commands including disable
commands for triggers constraints, stop/start for queues.

PLEASE TAKE A COMPLETE BACKUP OF THE DATABASE BEFORE MIGRATION

1. Migrate all Schemas
2. Migrate a list of Schemas
3. Migrate CTXSYS Schema

Note: Migrate CTXSYS schema when no other migration process is in progress.
Please enter your option -

Press Return key to return to the menu...

이 메뉴에서 1. Migrate all Schemas를 선택합니다. 프롬프트가 나타나면 전체 스키마 마이그레이션을 위해 Y를 입력하고, 병렬 프로세스 수로 8을 입력합니다.

Are you sure you want to migrate all schemas[N]: Y
Enter the maximum number of parallel processes for oracledb[8]: 8
Starting the Migration process for all schemas. Please wait...

결론

OATM은 테이블스페이스 수가 적어 관리가 용이하고, 효율적인 공간 활용 등 여러 이점을 제공합니다. 이러한 효율성은 다른 마이그레이션 모델이 사용하는 사전(dictionary-managed) 방식 테이블스페이스가 아닌, 로컬 관리 방식 테이블스페이스를 지원하기 때문에 얻을 수 있습니다.

OATM은 R12 버전에서 필수 요건이므로, R12로 업그레이드하기 전에 먼저 OATM으로 전환하는 것이 좋습니다. 또한 Real Application Clusters(RAC)를 구현할 때 추가적인 이점을 누릴 수 있습니다.

OATM 마이그레이션 유틸리티에 대한 자세한 내용은 Note 248857.1 - OATM Release 11i - Tablespace Migration Utility 문서를 참조하시기 바랍니다.

궁금한 점이나 의견이 있다면 피드백 탭을 통해 남겨 주세요.