• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Oracle History #9
 

Oracle History #9

on

  • 885 views

Oracle10g Database Creattion and upgrade to 10g

Oracle10g Database Creattion and upgrade to 10g

Statistics

Views

Total Views
885
Views on SlideShare
885
Embed Views
0

Actions

Likes
0
Downloads
9
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Oracle History #9 Oracle History #9 Document Transcript

    • http://www.ggola.com 장 경 상2. Creation & Upgrade (em).....................................................................................................2 2. Database Creation 유형.................................................................................................3 3. Using dbca (oracle template)................................................................................3 4. Using dbca (user defined template).....................................................................4 5. Manual 방식............................................................................................................5 6. Database Creation..........................................................................................................6 7. Environment...........................................................................................................6 8. Parameter 설정........................................................................................................7 9. SQL Scripts............................................................................................................10 10. Step 1............................................................................................................10 11. Step 2............................................................................................................11 12. Step 3............................................................................................................13 13. Step 4............................................................................................................17 14. Upgrade.......................................................................................................................21 15. Preparing Upgrade.............................................................................................21 16. DataBase Upgrade Assistant.............................................................................22 17. Upgrade Manually.............................................................................................45 18. Gather Optimizer Statistics........................................................................45 19. Upgrade Information 확인.........................................................................48 20. Upgrade 진행...............................................................................................53 21. Upgrade 부가 정보.....................................................................................60 22. em 설정 및 확인.........................................................................................................63 23. em Repository 생성............................................................................................63 24. em Ports...............................................................................................................65 25. Initialization Parameters...........................................................................................68 26. Basic Parameters.................................................................................................68 27. Deprecated(renamed) Parameters....................................................................69 28. Obsolete Parameters...........................................................................................70JKSPARK@HANAFOS.COM 1
    • http://www.ggola.com 장 경 상2. Creation & Upgrade (em)여기서는 oracle10g database를 생성하는 절차와 oracle9i에서 10g로upgrade하는 절차를 다룬다. 가급적 manual한 방법을 소개하려고 하나 oracle10g부터는 em이나assistant tool을 사용하는 GUI 환경의 방법들이 보다 더 일반화되고 있으며 특히나oracle은 oracle이 제공하는 GUI tool의 사용을 강조하고 있음을 기억하자.문자 그대로 oracle document들은 assistant의 사용을 ‘highly recommend’라고 표현하고 있으니 이제 GUI를 사용하여 여러 가지 configuration & management를 하는 작업들을 더 이상 무시할 수 없게 되었다.몇 가지 assistant들을 테스트를 해보니 이전에 비해 성능이나 interface 측면이 많이 좋아져서 사용상에 무리가 없어 보인다.CF. 예전에는 GUI를 사용하지 않고 직접 키보드를 두드리면서 작업을 하는 것이 보다더 고급(?)스러워 보였는지 모르겠지만 시대가 그렇지 않은 것 같다. 좀더 GUI에 익숙해지도록 노력하자.JKSPARK@HANAFOS.COM 2
    • http://www.ggola.com 장 경 상 2. Database Creation 유형 GUI화면을 하나씩 순서대로 dump를 떠서 보여줄 수 있지만 사실 별로 중요하지 않은 화면을 모두 보여주어서 책 두께만 채울 필요는 없을 것이다. 직접 해보면 누구나 이해 할 수 있는 화면들임으로 설명상 필요한 부분들만 화면 dump를 하였다. CF. database creation assistant는 ’$ORACLE_HOME/bin/dbca’ 이 file을 구동하면 된 다. 3. Using dbca (oracle template) 이 방법은 GUI를 통해 오라클이 제공하는 기본적인 몇 가지 database templates 중에서 하나를 선택하거나 ‘Custom Database’를 선택하여 여러분이 필요한 부분들을 수정 혹 은 설정한 후 database를 자동으로 만들 수 있도록 해준다.그림 2-1DBCA 실행창 CF. 위 화면은 최초 구동화면으로 database를 쉽게 생성할 수 있도록 되어있다. 물론, database를 설정하거나 삭제 또는 template의 수정 등도 위에서 보듯 선택적으로 작업 이 가능하다. 여기에서는 creation 부분만을 다루지만 만일 앞서 install시 database를 생 JKSPARK@HANAFOS.COM 3
    • http://www.ggola.com 장 경 상 성하였다면 위 화면에서 “Delete a Database”를 선택해서 그 결과를 한번 확인해보는 것도 좋겠다. 모든 datafile과 admin directory의 OFA 구조까지 모두 삭제되는 것을 알 수 있을 것이다. CF. Windows환경에서는 registry까지 정리를 해준다고 한다. 4. Using dbca (user defined template) 기본적으로 첫 번째 소개한 oracle template을 이용하는 방식과 같지만 여러분은 dbca 의 마지막 과정에서 database creation을 하지 않고 스스로 적절한 형태의 database 유 형을 만들어 이를 여러분이 명명하는 이름의 template로 저장할 수 있다. 아래 그림처 럼 맨 마지막 단계에서 “Create Database”의 선택을 해제하고 ‘Save as a Database Template”을 선택하여 이름을 주면 database는 생성하지 않고 template만 만들 수 있 다. 물론, 둘 다 선택해도 무방하다.그림 2-2DBCA 실행창 CF. 즉, 이렇게 잘 정의해 놓은 template을 가지고 있으면 어느 서버에서나 여러분의 구 미에 맞는 database를 쉽게 자동으로 만들 수 있게 된다. 이 template은 다음과 같이 확 인할 수 있는데 이를 oracle10g에서 seed database(종자 database)라 부른다. 아래의 예 에서 맨 마지막의 CRT10G.dbc는 위에서 직접 만든 seed database로서 위 방법을 통해 필자가 직접 저장해 놓은 template이다. JKSPARK@HANAFOS.COM 4
    • http://www.ggola.com 장 경 상 [NEWSVC]LIRACLE:/app/oracle> cd $ORACLE_HOME/assistants/dbca/templates [NEWSVC]LIRACLE:/app/oracle/product/10.1.0/assistants/dbca/templates> ls -ltr total 101668 -rwxr-xr-x 1 oracle dba 79699968 Feb 8 2004 Seed_Database.dfb -rwxr-xr-x 1 oracle dba 2867200 Feb 8 2004 Seed_Database.ctl -rw-r--r-- 1 oracle dba 5641 Jun 13 14:02 Transaction_Processing.dbc -rw-r--r-- 1 oracle dba 11981 Jun 13 14:02 New_Database.dbt -rw-r--r-- 1 oracle dba 5583 Jun 13 14:02 General_Purpose.dbc -rw-r--r-- 1 oracle dba 5703 Jun 13 14:02 Data_Warehouse.dbc -rw-r--r-- 1 oracle dba 974848 Jun 13 14:02 example.dmp -rw-r--r-- 1 oracle dba 20406272 Jun 13 14:03 example01.dfb -rw-r--r-- 1 oracle dba 5449 Jun 14 13:38 CRT10G.dbc 5. Manual 방식 말 그대로 scripts를 직접 구성해서 database를 만드는 것이다. 여기서는 이 방식으로 database를 직접 만들어 보겠다. CF. 물론, 이 scripts 역시 dbca를 통해 만들 수 있는데 scripts를 받기 위해선 아래 그림 처럼 ‘Custom Database’를 선택한 후 마지막 단계에서 script로 저장한다.그림 2-3DBCA 실행창 JKSPARK@HANAFOS.COM 5
    • http://www.ggola.com 장 경 상6. Database Creation앞서 어떻게 database를 만들 것인가에 대한 이야기를 끝냈다. 지금부터는 그 중에서manual 방식을 실제로 한번 해보자. 먼저 환경적인 부분을 정의하고 scripts를 수행할것이다.7. Environment최초 database를 만들기 위해선 기본 환경설정이 필요하다. 앞서 install부분에서 어지간한 환경설정은 이미 끝이 났지만 OFA와 같은 설정과 같은 몇 가지 작업을 먼저 해야함으로 다음 내역을 잘 따라 하기 바란다. 새로 만들어질 database의 SID를 database를“CRT10G”라고 가정하고 기본 admin directory를 만든다.[NEWSVC]LIRACLE:/app/oracle> mkdir -p ./admin/CRT10G[NEWSVC]LIRACLE:/app/oracle> mkdir -p ./admin/CRT10G/bdump[NEWSVC]LIRACLE:/app/oracle> mkdir -p ./admin/CRT10G/cdump[NEWSVC]LIRACLE:/app/oracle> mkdir -p ./admin/CRT10G/create[NEWSVC]LIRACLE:/app/oracle> mkdir -p ./admin/CRT10G/udump[NEWSVC]LIRACLE:/app/oracle> mkdir -p ./admin/CRT10G/pfile[NEWSVC]LIRACLE:/app/oracle> mkdir -p ./oradata/CRT10G다음으로 ORACLE_SID 환경 변수를 설정하고 /etc/oratab에 database entry를 추가하고 저장하자.[NEWSVC]LIRACLE:/app/oracle> export ORACLE_SID=CRT10G[CRT10G]LIRACLE:/app/oracle> vi /etc/oratab# This file is used by ORACLE utilities. It is created by root.sh# and updated by the Database Configuration Assistant when creating# a database.# A colon, :, is used as the field terminator. A new line terminates# the entry. Lines beginning with a pound sign, #, are comments.## Entries are of the form:# $ORACLE_SID:$ORACLE_HOME:<N|Y>:#JKSPARK@HANAFOS.COM 6
    • http://www.ggola.com 장 경 상# The first and second fields are the system identifier and home# directory of the database respectively. The third filed indicates# to the dbstart utility that the database should , "Y", or should not,# "N", be brought up at system boot time.## Multiple entries with the same $ORACLE_SID are not allowed.##CRT10G:/app/oracle/product/10.1.0:Y~~~~~~:wq[CRT10G]LIRACLE:/app/oracle> cd temp[CRT10G]LIRACLE:/app/oracle/temp>8. Parameter 설정initial parameter를 설정하자. 현재는 다음과 같이 설정하였다.[CRT10G]LIRACLE:/app/oracle/temp> cat ../admin/CRT10G/pfile/initCRT10G.ora# Basic database information parameters## Database and instance identificationglobal_names = truedb_domain = ""db_name = CRT10Ginstance_name = CRT10G## Compatible and other basic informationcompatibl = 10.1.0.2.0os_authent_prefix = ""nls_date_format = "YYYY/MM/DD"JKSPARK@HANAFOS.COM 7
    • http://www.ggola.com 장 경 상## Statistics, tracetimed_statistics = TRUE_trace_files_public = TRUE## Control file Configurationcontrol_files = ( "/app/oracle/oradata/CRT10G/controlCRT10G01.ctl", "/app/oracle/oradata/CRT10G/controlCRT10G02.ctl", "/app/oracle/oradata/CRT10G/controlCRT10G03.ctl" )## Optimizeroptimizer_mode = CHOOSEquery_rewrite_enabled = FALSE # unless using M-View query rewritestar_transformation_enabled = FALSE # query transformation or not# UNDO management parametersundo_management = AUTO # undo(rollback) management modeundo_retention = 1200 # for flashback query (now 20 minutes)undo_tablespace = UNDOTBS1# Memory and I/O 관련 parameters## Database block cache and I/Odb_block_size = 8192 # 8Kdb_cache_size = 209715200 # 200M## Redo log buffer sizelog_buffer = 5242880 # 5M## Shared and other poolsshared_pool_size = 104857600 # 100Mjava_pool_size = 52428800 # 50Mlarge_pool_size = 8388608 # 8M## PGA, Sort, Hash Joins, Bitmap Indexes and otherspga_aggregate_target = 104857600 # 100MJKSPARK@HANAFOS.COM 8
    • http://www.ggola.com 장 경 상workarea_size_policy = AUTO # oracle will control server process memory## Cursors and Library Cachecursor_sharing = SIMILAR # setting for unbinded SQL and histogramopen_cursors = 500session_cached_cursors = 200cursor_space_for_time = FALSE# Process, transactions, files, dump dest and parallel 관련 parameters## db file and multi iodb_files = 1000db_file_multiblock_read_count = 32## utl file and dump file destbackground_dump_dest = /app/oracle/admin/CRT10G/bdumpcore_dump_dest = /app/oracle/admin/CRT10G/cdumpuser_dump_dest = /app/oracle/admin/CRT10G/udumpbackground_core_dump = partialshadow_core_dump = partial## Job Queuesjob_queue_processes = 5## Processes, sessions, transactions, links and distributed txprocesses = 500 # setting roughlyopen_links = 4 # defaultdistributed_lock_timeout = 60 # default# Log and Recovery parameters## Redo log and recoveryfast_start_parallel_rollback = FALSEfast_start_mttr_target = 120log_checkpoint_timeout = 1800 # defaultJKSPARK@HANAFOS.COM 9
    • http://www.ggola.com 장 경 상# miscellaneous parameters## Security, auditing and queuing monitorremote_login_passwordfile = NONE # check password file or not[CRT10G]LIRACLE:/app/oracle/temp>9. SQL Scripts10. Step 1database를 nomount로 올리고 creation을 시작한다.아래 scripts를 보면 database생성과 동시에 sys 및 system user의 password를 변경하는 부분이 있다. 작업 편이를 위해 모두 ‘manager’로 설정하였지만 여러분은 여러분만의 것으로 수정하여 작업을 진행하기 바란다. 또한 character set 설정 역시 default 값“WE8ISO8859P1”로 설정되어 있다. 이 부분 역시 여러분이 원하는 것으로 바꾸어 설정해야 하는데 현재 한국어를 사용함으로 이 부분을 “KO16KSC5601”로 바꾸는 것이 적절할 것으로 생각된다.[CRT10G]LIRACLE:/app/oracle/temp> cat CreateDB.sqlconnect sys/change_on_install as sysdbaset echo onspool CreateDB.logstartup nomount pfile="/app/oracle/admin/CRT10G/pfile/initCRT10G.ora";CREATE DATABASE "CRT10G"MAXINSTANCES 8MAXLOGHISTORY 1MAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100DATAFILE /app/oracle/oradata/CRT10G/system01.dbf SIZE 300MREUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCALSYSAUX DATAFILE /app/oracle/oradata/CRT10G/sysaux01.dbf SIZE 120MREUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITEDDEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE /app/oracle/oradata/CRT10G/temp01.dbfSIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITEDJKSPARK@HANAFOS.COM 10
    • http://www.ggola.com 장 경 상UNDO TABLESPACE "UNDOTBS1" DATAFILE /app/oracle/oradata/CRT10G/undotbs01.dbfSIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITEDCHARACTER SET WE8ISO8859P1NATIONAL CHARACTER SET AL16UTF16LOGFILEGROUP 1 (/app/oracle/oradata/CRT10G/redo01.log) SIZE 10240K,GROUP 2 (/app/oracle/oradata/CRT10G/redo02.log) SIZE 10240K,GROUP 3 (/app/oracle/oradata/CRT10G/redo03.log) SIZE 10240KUSER SYS IDENTIFIED BY manager USER SYSTEM IDENTIFIED BY manager;spool off[CRT10G]LIRACLE:/app/oracle/temp> sqlplus /nologSQL*Plus: Release 10.1.0.2.0 - Production on Wed Jun 15 14:04:04 2005Copyright (c) 1982, 2004, Oracle. All rights reserved.SQL> @CreateDB.sqlConnected to an idle instance.……..……..Database created.……..SQL>CF. 위 작업을 하기 위해 여러분이 character set을 따로 결정할 때에는 해당 database가어떤 문자 또는 언어를 지원할 것이냐에 따르도록 한다. 즉 한글 data를 처리하는database라면 한글 character set을, 중국어를 처리할 것이라면 중국어 character set을,만약 다국어를 처리한다면 UTF8 과 같은 unicode character set을 사용하도록 한다.11. Step 2Default tablespace 생성 및 system dictionary등 catalog를 생성한다.Catalog는 상당한 시간이 소요될 것이니 특별한 error가 나타나는지를 꾸준히 보면서작업을 진행한다.SQL> !cat CreateDBFiles.sqlJKSPARK@HANAFOS.COM 11
    • http://www.ggola.com 장 경 상connect sys/manager as sysdbaset echo onspool CreateDBFiles.logCREATE TABLESPACE "USERS" LOGGING DATAFILE/app/oracle/oradata/CRT10G/users01.dbf SIZE 5M REUSE AUTOEXTENDON NEXT 1280K MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;ALTER DATABASE DEFAULT TABLESPACE "USERS";spool offSQL> @CreateDBFiles.sql……..Tablespace created.……..Database altered.……..SQL> !cat CreateDBCatalog.sqlconnect sys/manager as sysdbaset echo onspool CreateDBCatalog.log@/app/oracle/product/10.1.0/rdbms/admin/catalog.sql;@/app/oracle/product/10.1.0/rdbms/admin/catblock.sql;@/app/oracle/product/10.1.0/rdbms/admin/catproc.sql;@/app/oracle/product/10.1.0/rdbms/admin/catoctk.sql;@/app/oracle/product/10.1.0/rdbms/admin/owminst.plb;connect system/manager@/app/oracle/product/10.1.0/sqlplus/admin/pupbld.sql;spool offconnect system/managerset echo onspool sqlPlusHelp.log@/app/oracle/product/10.1.0/sqlplus/admin/help/hlpbld.sql helpus.sql;spool offJKSPARK@HANAFOS.COM 12
    • http://www.ggola.com 장 경 상SQL> @CreateDBCatalog.sql……..……..SQL>이제 기본 database 생성작업이 완료되었다.12. Step 3이제 여러 가지 오라클 기능을 사용할 수 있는 features를 설치한다.SQL> !cat JServer.sqlconnect sys/manager as sysdbaset echo onspool JServer.log@/app/oracle/product/10.1.0/javavm/install/initjvm.sql;@/app/oracle/product/10.1.0/xdk/admin/initxml.sql;@/app/oracle/product/10.1.0/xdk/admin/xmlja.sql;@/app/oracle/product/10.1.0/rdbms/admin/catjava.sql;@/app/oracle/product/10.1.0/rdbms/admin/catexf.sql;spool offSQL> @JServer.sql……..……..SQL> !cat ordinst.sqlconnect sys/manager as sysdbaset echo onspool ordinst.log@/app/oracle/product/10.1.0/ord/admin/ordinst.sql SYSAUX SYSAUX;spool offSQL> @ordinst.sql……..……..JKSPARK@HANAFOS.COM 13
    • http://www.ggola.com 장 경 상SQL> !cat interMedia.sqlconnect sys/manager as sysdbaset echo onspool interMedia.log@/app/oracle/product/10.1.0/ord/im/admin/iminst.sql;spool offSQL> @interMedia.sql……..……..SQL> !cat odmmetadata.sqlconnect sys/manager as sysdbaset echo onspool odmmetadata.log@/app/oracle/product/10.1.0/dm/admin/dminst1.sql SYSAUX TEMP /app/oracle/product/10.1.0/dm/admin;spool offSQL> @odmmetadata.sql……..……..SQL> !cat context.sqlconnect sys/manager as sysdbaset echo onspool context.log@/app/oracle/product/10.1.0/ctx/admin/catctx change_on_install SYSAUX TEMPNOLOCK;connect CTXSYS/change_on_install@/app/oracle/product/10.1.0/ctx/admin/defaults/dr0defin.sql AMERICAN;spool offSQL> @context.sql……..……..JKSPARK@HANAFOS.COM 14
    • http://www.ggola.com 장 경 상SQL> !cat xdb_protocol.sqlconnect sys/manager as sysdbaset echo onspool xdb_protocol.log@/app/oracle/product/10.1.0/rdbms/admin/catqm.sql change_on_install SYSAUXTEMP;connect sys/manager as sysdba@/app/oracle/product/10.1.0/rdbms/admin/catxdbj.sql;spool offSQL> @xdb_protocol.sql……..……..SQL> !cat cwmlite.sqlset echo onspool cwmlite.logconnect sys/manager as sysdba@/app/oracle/product/10.1.0/olap/admin/olap.sql SYSAUX TEMP;spool offSQL> @cwmlite.sql……..……..SQL> !cat spatial.sqlconnect sys/manager as sysdbaset echo onspool spatial.log@/app/oracle/product/10.1.0/md/admin/mdinst.sql;spool offSQL> @spatial.sql……..……..SQL> !cat odm.sqlJKSPARK@HANAFOS.COM 15
    • http://www.ggola.com 장 경 상connect sys/manager as sysdbaset echo onspool odm.log@/app/oracle/product/10.1.0/dm/admin/dminst2.sql;spool offSQL> @odm.sql……..……..SQL> !cat ultraSearch.sqlconnect sys/manager as sysdbaset echo onspool ultraSearch.log@/app/oracle/product/10.1.0/ultrasearch/admin/wk0install.sql SYS managerchange_on_install SYSAUX TEMP "" PORTAL false;spool offSQL> @ultraSearch.sql……..……..SQL> !cat emRepository.sqlconnect sys/manager as sysdbaset echo offspool emRepository.log@/app/oracle/product/10.1.0/sysman/admin/emdrep/sql/emreposcre/app/oracle/product/10.1.0 SYSMAN manager TEMP ON;spool offSQL> @emRepository.sql……..……..SQL> !cat ultraSearchCfg.sqlconnect sys/manager as sysdbaset echo onJKSPARK@HANAFOS.COM 16
    • http://www.ggola.com 장 경 상spool ultraSearchCfg.logalter user WKSYS account unlock identified by change_on_install;@/app/oracle/product/10.1.0/ultrasearch/admin/wk0config.sql change_on_install(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=LIRACLE)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=CRT10G))) false " ";spool offSQL> @ultraSearchCfg.sql……..……..SQL> exit13. Step 4이제 마지막 작업으로 symbolic link를 만들어 database를 restart하고 listener를 띄우자. Database가 restart되면 database내의 object의 recompile작업이 마지막으로 수행된다.[CRT10G]LIRACLE:/app/oracle/temp> cd $ORACLE_HOME/dbs[CRT10G]LIRACLE:/app/oracle/product/10.1.0/dbs> ln -s/app/oracle/admin/CRT10G/pfile/initCRT10G.ora initCRT10G.oraSQL> !cat postDBCreation.sqlconnect sys/manager as sysdbaset echo onspool postDBCreation.logconnect sys/manager as sysdbashutdown immediate;connect sys/manager as sysdbastartup ;select utl_recomp_begin: || to_char(sysdate, HH:MI:SS) from dual;execute utl_recomp.recomp_serial();select utl_recomp_end: || to_char(sysdate, HH:MI:SS) from dual;spool offexit;SQL> @postDBCreation.sqlJKSPARK@HANAFOS.COM 17
    • http://www.ggola.com 장 경 상……..……..SQL> spool offSQL> exit;Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -ProductionWith the Partitioning, OLAP and Data Mining options[CRT10G]LIRACLE:/app/oracle/temp> cat../product/10.1.0/network/admin/listener.ora# listener.ora Network Configuration File:#/app/oracle/product/10.1.0/network/admin/listener.oraLSN10G = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 21.111.200.84)(PORT = 1521)(QUEUESIZE = 1024)) ) )SID_LIST_LSN10G = (SID_LIST = (SID_DESC = (ORACLE_HOME = /app/oracle/product/10.1.0) (SID_NAME = CRT10G) ) )[CRT10G]LIRACLE:/app/oracle/temp> lsnrctl start lsn10gLSNRCTL for Linux: Version 10.1.0.2.0 - Production on 15-JUN-2005 18:21:15Copyright (c) 1991, 2004, Oracle. All rights reserved.Starting /app/oracle/product/10.1.0/bin/tnslsnr: please wait...JKSPARK@HANAFOS.COM 18
    • http://www.ggola.com 장 경 상TNSLSNR for Linux: Version 10.1.0.2.0 - ProductionSystem parameter file is /app/oracle/product/10.1.0/network/admin/listener.oraLog messages written to /app/oracle/product/10.1.0/network/log/lsn10g.logListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=21.111.200.84)(PORT=1521)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=21.111.200.84)(PORT=1521)(QUEUESIZE=1024)))STATUS of the LISTENER------------------------Alias lsn10gVersion TNSLSNR for Linux: Version 10.1.0.2.0 - ProductionStart Date 15-JUN-2005 18:21:15Uptime 0 days 0 hr. 0 min. 0 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /app/oracle/product/10.1.0/network/admin/listener.oraListener Log File /app/oracle/product/10.1.0/network/log/lsn10g.logListening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=21.111.200.84)(PORT=1521)))Services Summary...Service "CRT10G" has 1 instance(s).Instance "CRT10G", status UNKNOWN, has 1 handler(s) for this service...The command completed successfully[CRT10G]LIRACLE:/app/oracle/temp>CF. 현재 여러분이 필자가 수행한 위 step들을 그대로 따라 했다면 여러분의 profile에ORACLE_SID가 ‘NEWSVC’로 되어 있을 것이고 따라서 다음에도 계속 이 database를사용하려면 여러분의 profile을 수정해서 ‘CRT10G’로 바꾸어야 할 것이다. 여기서는 다음 장에서 설명하는 upgrade를 통한 database를 사용할 것이고 그 이름이 ‘NEWSVC’임으로 ‘CRT10G’ database를 계속 사용하려는 분은 헛갈리지 않도록 한다.이제 database 생성 작업이 모두 종료되었다. 이제부터 oracle10g를 사용할 수 있게 된JKSPARK@HANAFOS.COM 19
    • http://www.ggola.com 장 경 상셈이니 자못 기쁘기도 하다. 그러나, 가장 중요한 것은 oracle10g database를 만들어서그 이하 버전과 똑같이 사용하면 안 된다는 것이다. 10g를 쓰려면 10g의 기능을 알아야하는 법이니 정말 제대로 10g를 써보자.CF. database 버전만 upgrade해 놓고 큰일 치른 듯 착각하지 말자. Upgrade해 놓고서멀 어찌할 것인가. 항상 이야기 하지만 버전의 upgrade는 향상된 기능을 수반하지 않는한 알게 모르게 진행되는 patch 수준에 불과한 것이다. 아무리 어렵고 힘들게 작업을 했다 할지라도 이는 이유에 상관없이 DBA로서 별로 한 것도 없는 작은 업무일 뿐이며 경우에 따라선 upgrade가 더 나쁜 결과를 초래할 수도 있다.CF. Oracle version의 각 부분별 의미는 다음과 같다.Oracle Release Number10.1.0.4.0(1) Major database release number (2) Database maintenance release number (3) Application server release number (4) Component specific release number (5) Platform specific release numberJKSPARK@HANAFOS.COM 20
    • http://www.ggola.com 장 경 상14. Upgrade이전 버전의 database를 oracle10g로 upgrade하는 방법은 크게 말해 3가지다.Oracle10g로 database를 생성한 후 구 data를 옮기는 방법, 오라클이 제공하는 dbuaassistants를 이용하는 방법, 마지막으로 직접 manual 방식으로 처리하는 방법이 그것이다.물론, 구 버전의 database에서 export와 같은 utility를 통해 data를 받아서 data를 옮기는 방법이 가장 쉽고 간단하겠지만 실제 환경에서 그럴 정도의 작은 용량의 database를upgrade하는 문제는 별 issue가 될 것이 없다. 머 여기서 굳이 소개할 것도 없을 것이다. 다음은 data copy 수준으로 upgrade가 불가한 대용량 database를 upgrade하는데대한 설명이다.15. Preparing Upgrade Upgrade Steps일반적인 upgrade는 다 아시겠지만 다음의 절차를 통해 이루어진다.“upgrade 준비 upgrade process test  upgrade test database  productionupgrade 준비 upgrade production database  tuning and adjust new database”그러나 무엇보다 가장 우선하는 것은 최초 upgrade준비 시 new database의 newfeatures에 대한 전반적인 이해를 높이는 것이다. 그 과정에서 대상이 되는 database의특성을 파악하고 upgrade와 함께 병행 해야 할 자신만의 database upgrade 절차가 추가될 수 있기 때문이다. 물론, 그 누구도 upgrade가 진행되는 동안 대상 database에access를 해서는 안 된다. 반드시 listener를 내리고 모든 다른 접근을 막아야 한다. Direct upgradeOracle 8.0.6, 8.1.7, 9i(9.0.1, 9.2.0) 만이 oracle10g로 직접 upgrade가 가능함으로 그 이하버전은 먼저 직접 upgrade가 가능한 버전으로 upgrade를 진행한 후 작업을 해야 할 것이다.CF. 사실 제대로 database를 upgrade를 하려면 기존 database를 backup하고application test항목의 추출, 더불어 타 시스템과의 통합 및 성능측면의 점검요소 등도확인을 해야 한다. 물론, upgrade에 대한 스케쥴 관리도 해야 하니 정말 많은 시간이 소요될 수 있는 것이다. 그러나 여기서는 그런 시스템마다 다른 상황들을 다 다룰 수는 없음으로 database의 upgrade측면만을 설명한다. Reduce downtimeJKSPARK@HANAFOS.COM 21
    • http://www.ggola.com 장 경 상여러분이 oracle9i에서 oracle10g로 upgrade를 진행하는 동안의 downtime을 최소화 하고 싶다면 현재 upgrade 대상이 되는 database에 대해서 통계치 수집작업을 미리 수행하는 것도 좋은 방법이 될 수 있다. 이는 upgrade 방식과 무관하게 따로 진행이 가능하다. 이 부분은 나중에 “Upgrade Manually” 부분에서 따로 예시할 것이며 다음에 보여주는 “dbua”를 통한 upgrade의 예는 이 작업이 미리 수행이 되었다는 가정에서 출발한다.16. DataBase Upgrade AssistantOracle10g의 문서 그대로 ‘highly recommend’한다는 GUI를 통한 upgrade를 알아보자.Oracle9i에서 10g로의 upgrade를 위해 이 tool을 사용하기 위해선 ‘$ORACLE_HOME/bin/dbua’를 구동해야 한다. 대부분의 작업은 GUI 환경에서 다 check를 해주지만 작업전에 ‘SYSTEM’ tablespace내의 여유공간이 500MB이상이 되도록 datafile을 조절한 후upgrade 진행 중 생성되는 oracle10g의 새로운 기본 tablespace인 ‘SYSAUX’를 위해file system 500MB이상의 공간을 미리 확보해야 한다.다음은 앞서 본인이 직접 만들었던 database를 먼저 down시키고 기존에 존재하던oracle9i database를 upgrade하는 과정이다. 여러분은 각자의 상황에 맞게 아래 상황을유추해서 작업을 진행하기 바란다.[CRT10G]LIRACLE:/app/oracle/temp> sqlplus "/as sysdba"SQL*Plus: Release 10.1.0.2.0 - Production on Thu Jun 16 13:49:43 2005Copyright (c) 1982, 2004, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> shutdownDatabase closed.Database dismounted.ORACLE instance shut down.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -JKSPARK@HANAFOS.COM 22
    • http://www.ggola.com 장 경 상ProductionWith the Partitioning, OLAP and Data Mining options[CRT10G]LIRACLE:/app/oracle/temp> lsnrctl stop lsn10gLSNRCTL for Linux: Version 10.1.0.2.0 - Production on 16-JUN-2005 13:52:49Copyright (c) 1991, 2004, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=21.111.200.84)(PORT=1521)(QUEUESIZE=1024)))The command completed successfully[CRT10G]LIRACLE:/app/oracle/temp> more /etc/oratab# This file is used by ORACLE utilities. It is created by root.sh# and updated by the Database Configuration Assistant when creating# a database.# A colon, :, is used as the field terminator. A new line terminates# the entry. Lines beginning with a pound sign, #, are comments.## Entries are of the form:# $ORACLE_SID:$ORACLE_HOME:<N|Y>:## The first and second fields are the system identifier and home# directory of the database respectively. The third filed indicates# to the dbstart utility that the database should , "Y", or should not,# "N", be brought up at system boot time.## Multiple entries with the same $ORACLE_SID are not allowed.###NEWSVC:/app/oracle/product/9.2.0:NOMFSVR:/app/oracle/product/9.2.0:N#CRT10G:/app/oracle/product/10.1.0:N[CRT10G]LIRACLE:/app/oracle/temp>JKSPARK@HANAFOS.COM 23
    • http://www.ggola.com 장 경 상위에서 보듯이 ‘/etc/oratab’ 에는 총 3개의 database가 등록되어 있다. 마지막 한 개는앞서 만든 oracle10g이고 나머지 두 개는 과거에 있던 oracle9i이다. 현재 ‘#’을 통해 모두 주석처리를 하고 ‘OMFSVR’ database만을 남겨 두었다. 여기에 등록이 되어 있지 않으면 “dbua”를 구동해서 볼 수가 없을 것이다.이제 upgrade대상이 되는 oracle9i database를 구동하자. Profile을 변경해서ORACLE_HOME, ORACLE_SID등 필요한 모든 변수들을 oracle9i 환경으로 변경을 한후 database를 start한다.[CRT10G]LIRACLE:/app/oracle/temp> cd[CRT10G]LIRACLE:/app/oracle> vi .bash_profile# oracle os homeORACLE_BASE=/app/oracle; export ORACLE_BASE# oracle product homeORACLE_HOME=/app/oracle/product/9.2.0; export ORACLE_HOME# specify terminal and temp spaceORACLE_TERM=vt100; export ORACLE_TERMTMPDIR=$ORACLE_BASE/tmp; export TMPDIRTEMP=$ORACLE_BASE/tmp; export TEMP# default character setNLS_LANG=American_America.KO16KSC5601; export NLS_LANG# general pathPATH=$PATH:.:$ORACLE_HOME/binexport LANG=en_USexport DISPLAY=21.111.21.189:0.0# instance nameORACLE_SID=OMFSVR; export ORACLE_SIDPS1=[${ORACLE_SID}]`hostname`:$PWD> JKSPARK@HANAFOS.COM 24
    • http://www.ggola.com 장 경 상~~~~~~:wq[CRT10G]LIRACLE:/app/oracle> su - oraclePassword:[OMFSVR]LIRACLE:/app/oracle> sqlplus "/as sysdba"SQL*Plus: Release 9.2.0.1.0 - Production on Thu Jun 16 16:40:13 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area 238620792 bytesFixed Size 450680 bytesVariable Size 150994944 bytesDatabase Buffers 83886080 bytesRedo Buffers 3289088 bytesDatabase mounted.Database opened.SQL> exitDisconnected from Oracle9i Enterprise Edition Release 9.2.0.1.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.1.0 - Production[OMFSVR]LIRACLE:/app/oracle>JKSPARK@HANAFOS.COM 25
    • http://www.ggola.com 장 경 상이제 “dbua”를 구동하기 위해 다시 profile을 oracle10g 환경으로 변경하여 저장하자.[OMFSVR]LIRACLE:/app/oracle> exit[CRT10G]LIRACLE:/app/oracle> vi .bash_profile# oracle os homeORACLE_BASE=/app/oracle; export ORACLE_BASE# oracle product homeORACLE_HOME=/app/oracle/product/10.1.0; export ORACLE_HOME# specify terminal and temp spaceORACLE_TERM=vt100; export ORACLE_TERMTMPDIR=$ORACLE_BASE/tmp; export TMPDIRTEMP=$ORACLE_BASE/tmp; export TEMP# default character setNLS_LANG=American_America.KO16KSC5601; export NLS_LANG# general pathPATH=$PATH:.:$ORACLE_HOME/binexport LANG=en_USexport DISPLAY=21.111.21.189:0.0# instance nameORACLE_SID=OMFSVR; export ORACLE_SIDPS1=[${ORACLE_SID}]`hostname`:$PWD> ~~~~~~:wq[CRT10G]LIRACLE:/app/oracle>JKSPARK@HANAFOS.COM 26
    • http://www.ggola.com 장 경 상 이제 install 또는 “dbca” tool을 사용할 때처럼 다른 창에서 xmanager를 통해 “dbua” 를 구동하자. 다음은 최초 구동화면이다.그림 2-4DBUA 실행창 “Next”를 누르면 다음과 같이 upgrade 대상이 되는 database를 보여준다.그림 2-5DBUA 실행창 JKSPARK@HANAFOS.COM 27
    • http://www.ggola.com 장 경 상지금 upgrade하려는 database를 check하고 “Next”를 진행한다. 사실 1개만 있으면 위와 같이 저절로 선택이 되고 두 개 이상인 경우에만 선택을 할 수 있다. “Next”를 누른다.CF. 여러 개가 있다 하더라도 1개밖에 선택이 되지 않는다. 즉, 두 개 이상의 database를동시에 upgrade할 수는 없다.JKSPARK@HANAFOS.COM 28
    • http://www.ggola.com 장 경 상그림 2-6DBUA 실행창 잠깐 동안 database로부터 정보를 취합한 후 위와 같은 화면이 나온다. Oracle10g부터 ‘SYSTEM’ tablespace와 같이 default로 반드시 필요한 ‘SYSAUX’ tablespace를 만들기 위한 화면이다. 위치나 size정보 등을 확인 후 “Next”를 진행하자.그림 2-7DBUA 실행창 JKSPARK@HANAFOS.COM 29
    • http://www.ggola.com 장 경 상 위 화면은 upgrade가 종료된 후 invalid objects를 recompile할 것인가를 묻는 화면이 다. 안 하는 것 보다는 시간이 더 걸리겠지만 어차피 필요한 작업 임으로 recompile을 check하고 “Next”를 누른다.그림 2-8DBUA 실행창 이제 upgrade를 하려는 database의 backup여부를 묻는 화면이다. 이미 backup이 되어 있다면 첫 번째 option을 선택하면 되고 upgrade작업과 동시에 backup을 진행하려면 두 번째 option을 선택하면 된다. 현재는 upgrade test를 위해 만든 작은 용량의 database임으로 두 번째 option을 선택하였다. “Next”를 누른다. CF. 사실 upgrade 작업을 한다면 당연히 벌써 backup이 되어 있어야 한다. 그리고 대용 량 database를 많이 사용하는 요즘 위와 같이 upgrade 중간에 backup을 동시에 진행하 는 일은 거의 없을 것이다. JKSPARK@HANAFOS.COM 30
    • http://www.ggola.com 장 경 상그림 2-9DBUA 실행창 Upgrade 작업이 끝나면 database의 관리를 enterprise manager에서 어떻게 관리를 할 것인가를 묻는 화면이다. “Next”를 진행한다.그림 2-10DBUA 실행창 JKSPARK@HANAFOS.COM 31
    • http://www.ggola.com 장 경 상 여기서는 “DBSNMP, SYSMAN” 계정의 password를 설정하는 화면이다. Password를 설정한 후 “Next”를 누른다. CF. 만일 여러분이 이미 “DBSNMP” 계정을 따로 사용하고 있다면 두 번째 option을 선 택하여 현재 사용하고 있는 password를 입력해야 한다. 그렇지 않으면 새로 입력한 password로 기존의 password가 변경된다. 물론, 편의상 첫 번째 option을 통해 모든 password를 동일한 이름으로 설정하도록 한 후 나중에 변경해도 좋다. 각자 편한 방법 을 선택한다.그림 2-11DBUA 실행창 이제 upgrade를 위한 모든 준비가 끝나고 사용자로 하여금 설정이 제대로 되었는가를 종합적으로 점검하도록 정보를 보여준다. 무엇보다 좋은 점은 없어지는(deprecated & obsolete) parameter의 정보와 oracle10g의 기본 값이 증가로 인한 parameter value의 변화까지도 한꺼번에 보여줌으로써 나중에 후속작업의 어려움을 모두 덜어준다는 것 이다. 이제 “Finish”를 선택하자. CF. 이 시점에서 다시 다른 창으로 login하여 upgrade와 관련된 log 정보들을 확인할 수 있다. 다음과 같은 upgrade라는 directory에 종류별 log가 생성됨으로 upgrade가 진 행되는 동안 각자 이 log들을 지속적으로 살펴보도록 하자. [CRT10G]LIRACLE:/app/oracle> cd /app/oracle/admin/OMFSVR JKSPARK@HANAFOS.COM 32
    • http://www.ggola.com 장 경 상 [CRT10G]LIRACLE:/app/oracle/admin/OMFSVR> ls -l upgrade total 36 -rw-r--r-- 1 oracle dba 14643 Jun 17 10:10 sqls.log -rw-r--r-- 1 oracle dba 19058 Jun 17 10:10 trace.log [CRT10G]LIRACLE:/app/oracle/admin/OMFSVR> cd upgrade [CRT10G]LIRACLE:/app/oracle/admin/OMFSVR/upgrade>그림 2-12DBUA 실행창 이제 upgrade가 진행되면서 step별 상태가 나타난다. CF. upgrade 진행 중 문제가 발생하여 메시지가 나올 수 있다. 이 경우 ignore 또는 abort가 나오게 되는데 ignore button을 선택하는 경우엔 upgrade 종료 후 dbua를 통해 재 작업을 하지만 abort button을 선택하게 되면 backup받은 datafiles을 다시 restore하 여 upgrade를 재 진행해야 한다. JKSPARK@HANAFOS.COM 33
    • http://www.ggola.com 장 경 상그림 2-13DBUA 실행창 이제 upgrade 작업이 모두 수행되었다. “OK”를 선택하면 다음과 같이 작업결과를 보 여주는 화면이 나타난다. JKSPARK@HANAFOS.COM 34
    • http://www.ggola.com 장 경 상그림 2-14DBUA 실행창 위 화면에서는 전체적인 작업결과와 함께 변경된 parameter와 parameter file정보 등을 보여주며 upgrade step별 정상적 성공여부를 알려준다. 이제 “Close”를 통해 작업을 완 전히 종료하자. database upgrade가 완료되었다. 이제 터미널 작업 창에서 다음과 같이 parameter를 확인 한 후 listener도 올려서 접속 테스트를 해보자 다음을 보면 새로 upgrade된 database “OMFSVR”은 spfile을 사용하도록 되어있다. 필 요하다면 이를 변경하면 될 것이다. [CRT10G]LIRACLE:/app/oracle> cd $ORACLE_HOME/dbs [CRT10G]LIRACLE:/app/oracle/product/10.1.0/dbs> ls -ltr total 60 -rw-r--r-- 1 oracle dba 8385 Jun 13 13:57 init.ora JKSPARK@HANAFOS.COM 35
    • http://www.ggola.com 장 경 상-rw-r--r-- 1 oracle dba 12920 Jun 13 13:57 initdw.ora-rw-r----- 1 oracle dba 1544 Jun 15 14:05 hc_CRT10G.datlrwxrwxrwx 1 oracle dba 45 Jun 15 17:40 initCRT10G.ora ->/app/oracle/admin/CRT10G/pfile/initCRT10G.ora-rw-r----- 1 oracle dba 24 Jun 20 14:01 lkCRT10G-rw-rw---- 1 oracle dba 1544 Jun 20 18:00 hc_OMFSVR.dat-rw-r----- 1 oracle dba 3584 Jun 20 18:58 spfileOMFSVR.ora-rw-r--r-- 1 oracle dba 975 Jun 20 18:58 initOMFSVR.ora-rw-rw---- 1 oracle dba 24 Jun 20 18:59 lkOMFSVR[CRT10G]LIRACLE:/app/oracle/product/10.1.0/dbs> cd$ORACLE_HOME/network/admin[CRT10G]LIRACLE:/app/oracle/product/10.1.0/network/admin> vi listener.oraLSN10G = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 21.111.200.84)(PORT = 1521)(QUEUESIZE = 1024)) ) )LSNOMF = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 21.111.200.84)(PORT = 1523)(QUEUESIZE = 1024)) ) )SID_LIST_LSN10G = (SID_LIST = (SID_DESC = (ORACLE_HOME = /app/oracle/product/10.1.0) (SID_NAME = CRT10G) )JKSPARK@HANAFOS.COM 36
    • http://www.ggola.com 장 경 상 )SID_LIST_LSNOMF = (SID_LIST = (SID_DESC = (ORACLE_HOME = /app/oracle/product/10.1.0) (SID_NAME = OMFSVR) ) )~~~~~~:wq[CRT10G]LIRACLE:/app/oracle/product/10.1.0/network/admin> cd[CRT10G]LIRACLE:/app/oracle> lsnrctl start lsnomfLSNRCTL for Linux: Version 10.1.0.4.0 - Production on 21-JUN-2005 09:42:29Copyright (c) 1991, 2004, Oracle. All rights reserved.Starting /app/oracle/product/10.1.0/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 10.1.0.4.0 - ProductionSystem parameter file is /app/oracle/product/10.1.0/network/admin/listener.oraLog messages written to /app/oracle/product/10.1.0/network/log/lsnomf.logListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=21.111.200.84)(PORT=1523)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=21.111.200.84)(PORT=1523)(QUEUESIZE=1024)))STATUS of the LISTENERJKSPARK@HANAFOS.COM 37
    • http://www.ggola.com 장 경 상 ------------------------ Alias lsnomf Version TNSLSNR for Linux: Version 10.1.0.4.0 - Production Start Date 21-JUN-2005 09:42:30 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /app/oracle/product/10.1.0/network/admin/listener.ora Listener Log File /app/oracle/product/10.1.0/network/log/lsnomf.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=21.111.200.84)(PORT=1523))) Services Summary... Service "OMFSVR" has 1 instance(s). Instance "OMFSVR", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully [CRT10G]LIRACLE:/app/oracle> 이제 여러분의 client에서 다음의 그림처럼 접속을 해보자.그림 2-15SQL*Plus접속확인 JKSPARK@HANAFOS.COM 38
    • http://www.ggola.com 장 경 상확인을 선택하면…JKSPARK@HANAFOS.COM 39
    • http://www.ggola.com 장 경 상그림 2-16SQL*Plus접속확인 CF. 아직 tnsnames.ora설정이 안되어 있으면 먼저 oracle client를 설정하자. 위의 경우 port 1523을 사용하고 있다. 차후로 chapter 10에서는 이런 client의 설정이 없이도 database에 접속할 수 있는 방법을 설명할 것이다. 이제 테스트가 완료되었다. listener 및 database를 모두 내린 후 다음 작업을 위해 profile에서 ORACLE_SID와 ORACLE_HOME을 oratab file에서 instance정보를 수정 한 후 터미널을 완전히 닫자. 다음 테스트에서는 새로 접속을 한 후 작업을 시작할 것이 다. 이 작업은 여러분이 oracle9i database를 manually upgrade할 예정인 경우만 유용하 다. 만일 그러하다면 ORACLE_HOME, ORACLE_SID, oratab정보 등을 여러분이 현재 사용하고 있는 것으로 바꾸어야 한다. [CRT10G]LIRACLE:/app/oracle> export ORACLE_SID=OMFSVR [OMFSVR]LIRACLE:/app/oracle> lsnrctl stop lsnomf LSNRCTL for Linux: Version 10.1.0.4.0 - Production on 21-JUN-2005 09:50:18 JKSPARK@HANAFOS.COM 40
    • http://www.ggola.com 장 경 상Copyright (c) 1991, 2004, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=21.111.200.84)(PORT=1523)(QUEUESIZE=1024)))The command completed successfully[OMFSVR]LIRACLE:/app/oracle> sqlplus "/as sysdba"SQL*Plus: Release 10.1.0.4.0 - Production on Tue Jun 21 09:50:29 2005Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> shutdownDatabase closed.Database dismounted.ORACLE instance shut down.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 -ProductionWith the Partitioning, OLAP and Data Mining options[OMFSVR]LIRACLE:/app/oracle> vi .bash_profile# oracle os homeORACLE_BASE=/app/oracle; export ORACLE_BASE# oracle product homeORACLE_HOME=/app/oracle/product/9.2.0; export ORACLE_HOME# specify terminal and temp spaceORACLE_TERM=vt100; export ORACLE_TERMJKSPARK@HANAFOS.COM 41
    • http://www.ggola.com 장 경 상TMPDIR=$ORACLE_BASE/tmp; export TMPDIRTEMP=$ORACLE_BASE/tmp; export TEMP# default character setNLS_LANG=American_America.KO16KSC5601; export NLS_LANG# general pathPATH=$PATH:.:$ORACLE_HOME/binexport LANG=en_USexport DISPLAY=21.111.21.189:0.0# instance nameORACLE_SID=NEWSVC; export ORACLE_SIDPS1=[${ORACLE_SID}]`hostname`:$PWD> . .aliasumask 022~~~~~~:wq[OMFSVR]LIRACLE:/app/oracle> vi /etc/oratab# This file is used by ORACLE utilities. It is created by root.sh# and updated by the Database Configuration Assistant when creating# a database.# A colon, :, is used as the field terminator. A new line terminates# the entry. Lines beginning with a pound sign, #, are comments.JKSPARK@HANAFOS.COM 42
    • http://www.ggola.com 장 경 상## Entries are of the form:# $ORACLE_SID:$ORACLE_HOME:<N|Y>:## The first and second fields are the system identifier and home# directory of the database respectively. The third filed indicates# to the dbstart utility that the database should , "Y", or should not,# "N", be brought up at system boot time.## Multiple entries with the same $ORACLE_SID are not allowed.##NEWSVC:/app/oracle/product/9.2.0:N#CRT10G:/app/oracle/product/10.1.0:N#OMFSVR:/app/oracle/product/10.1.0:N~~~~~~~:wq[OMFSVR]LIRACLE:/app/oracle> exit이제 “dbua” upgrade 작업이 모두 종료되었다.사실 upgrade를 진행하던 중 마지막 upgrade가 시작되는 “upgrade step별 진행”과정에서 이상하게도 “Upgrading Oracle Server” step에서 더 이상 작업이 진행이 되지 않는 현상이 나타났다. 보기에는 progress 진행 율이 변하고 있어 더디게 진행이 되는 것같으나 log를 살펴보면 database start를 하지 않고 멈추어 있었다. 확인 결과 이 문제는BUG “3980572“과 연관이 있어 보이며 다음과 같은 결론을 얻었다.본 현상은 “Upgrading to Oracle 10.1.0.2 on RHEL3” 에서 나타나고 있는 문제로 현재작업환경과 일치한다. 즉, RedHat Enterprise Linux V3 platform에서 dbua로 upgradeJKSPARK@HANAFOS.COM 43
    • http://www.ggola.com 장 경 상하는 작업과정에서 “Oracle 10G (java v1.4.2_02) 와 RHEL3 에서 native threads 수행”문제라고 알려져 있다. 구체적인 내용은 “java process waiting on a futex system call andthe sqlplus process waiting on a read system call”로서 일종의 deadlock waiting현상이다.이는 다음과 같은 방식으로 현상을 확인할 수 있다. 먼저 ps 명령으로 dbua process를찾고 이 dbua가 수행하는 java process를 찾는다. 그리고 현재의 이 process id를 가지고상태를 확인한다[CRT10G]LIRACLE:/app/oracle/admin/OMFSVR/upgrade> ps -ef | grep dbuaoracle 16407 16378 0 15:06 pts/2 00:00:00 /bin/sh ./dbuaoracle 16576 16230 0 15:10 pts/0 00:00:00 grep dbua[CRT10G]LIRACLE:/app/oracle/admin/OMFSVR/upgrade> ps -ef | grep 16407oracle 16407 16378 0 15:06 pts/2 00:00:00 /bin/sh ./dbuaoracle 16408 16407 6 15:06 pts/2 00:00:15/app/oracle/product/10.1.0/jdk/jre//bin/java-Dsun.java2d.font.DisableAlgorithmicStyles=true -DORACLE_HOME=/app/oracle/product/10.1.0 -mx64m -classpath/app/oracle/product/10.1.0/assistants/dbma/jlib/dbma.jar:/app/oracle/product/10.1.0/jdk/jre//lib/rt.jar:/app/oracle/prodoracle 16578 16230 0 15:10 pts/0 00:00:00 grep 16407[CRT10G]LIRACLE:/app/oracle/admin/OMFSVR/upgrade> strace -p 16408Process 16408 attached - interrupt to quitfutex(0x8640028, FUTEX_WAIT, 10, NULLCTRL + CCF. 이런 상황에서는 수 차례 반복 테스트를 해보아도 도저히 해결이 되지 않았다. 따라서 보다 자세하게 “dbua”관련자료를 찾는 중에 version “10.1.0.4” patchset에서 dbua와관련하여 특정 upgrade patch가 존재하였음을 확인할 수 있었고 현재의 engine을 앞서소개한 oracle install과 같은 방식으로 patchset 10.1.0.4를 적용한 후 “dbua”를 다시 수행하여 문제를 해결할 수 있었다. 만일, 여러분이 위와 같은 동일한 문제를 겪는다면 최신의 patchset을 적용한 후 다시 수행하거나 다음 장에서 소개하는 “UpgradeManually”를 참조하여 직접 upgrade를 진행하자.JKSPARK@HANAFOS.COM 44
    • http://www.ggola.com 장 경 상17. Upgrade Manually18. Gather Optimizer Statistics다음은 oracle9i에서 upgrade를 수행하기 전에 downtime을 줄이기 위해 먼저 진행하는 선 작업을 설명한다. 이러한 통계작업을 미리 수행함으로써 upgrade 시간을 단축 시킬 수 있음으로 upgrade plan을 만들 때에는 이점을 미리 참고해야 할 것이다. 물론, 통계작업 과정에서 몇몇 schema들은 error가 날 수도 있다. 여러분이 oracle9i database를만들 때 설정하지 않은 components가 있다면 그 schema가 없을 수 있기 때문임으로이런 error는 무시하도록 하자.현재의 작업 과정은 oracle 계정으로 새로운 연결 창을 통해 oracle9i database를startup하여 step별로 작업을 시작하는 것을 보여준다.CF. 단, 아래의 통계작업은 “dbua”를 사용하는 경우에도 적용이 가능한 것이다.[NEWSVC]LIRACLE:/app/oracle> cd temp[NEWSVC]LIRACLE:/app/oracle/temp> sqlplus "/as sysdba"SQL*Plus: Release 9.2.0.1.0 - Production on Wed Jun 22 10:52:02 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area 374935832 bytesFixed Size 450840 bytesVariable Size 150994944 bytesDatabase Buffers 218103808 bytesRedo Buffers 5386240 bytesDatabase mounted.Database opened.SQL> !cat imp_stat.sqlJKSPARK@HANAFOS.COM 45
    • http://www.ggola.com 장 경 상spool imp_stat.lstgrant analyze any to sys;exec dbms_stats.gather_schema_stats(WMSYS,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(MDSYS,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(CTXSYS,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(XDB,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(WKSYS,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(LBACSYS,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(OLAPSYS,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(DMSYS,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(ODM,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(ORDSYS,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(ORDPLUGINS,options=>GATHER, estimate_percent=> dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascadeJKSPARK@HANAFOS.COM 46
    • http://www.ggola.com 장 경 상=> TRUE);exec dbms_stats.gather_schema_stats(SI_INFORMTN_SCHEMA,options=>GATHER,estimate_percent => dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZEAUTO, cascade => TRUE);exec dbms_stats.gather_schema_stats(OUTLN,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(DBSNMP,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(SYSTEM,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);exec dbms_stats.gather_schema_stats(SYS,options=>GATHER, estimate_percent =>dbms_stats.auto_sample_size, method_opt => FOR ALL COLUMNS SIZE AUTO, cascade =>TRUE);spool offSQL> @imp_stat.sqlGrant succeeded.PL/SQL procedure successfully completed.……………….PL/SQL procedure successfully completed.SQL> !cat exp_stat.sqlspool exp_stat.lstgrant analyze any to sys;exec dbms_stats.create_stat_table(SYS,dictstattab);exec dbms_stats.export_schema_stats(WMSYS,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(MDSYS,dictstattab,statown => SYS);JKSPARK@HANAFOS.COM 47
    • http://www.ggola.com 장 경 상exec dbms_stats.export_schema_stats(CTXSYS,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(XDB,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(WKSYS,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(LBACSYS,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(OLAPSYS,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(DMSYS,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(ODM,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(ORDSYS,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(ORDPLUGINS,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(SI_INFORMTN_SCHEMA,dictstattab,statown=> SYS);exec dbms_stats.export_schema_stats(OUTLN,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(DBSNMP,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(SYSTEM,dictstattab,statown => SYS);exec dbms_stats.export_schema_stats(SYS,dictstattab,statown => SYS);spool ofSQL> @exp_stat.sqlGrant succeeded.PL/SQL procedure successfully completed.……………….PL/SQL procedure successfully completed.SQL> exitDisconnected from Oracle9i Enterprise Edition Release 9.2.0.1.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.1.0 - Production[NEWSVC]LIRACLE:/app/oracle/temp>19. Upgrade Information 확인이제 oracle10g의 home directory로 이동하여 upgrade를 하기 전에 필요한 정보수집JKSPARK@HANAFOS.COM 48
    • http://www.ggola.com 장 경 상절차를 진행한다. 먼저 “ORACLE10g_HOME/rdbms/admin/utlu101i.sql”을 작업directory로 copy한 후 수행한다. 주의할 점은 아직 여러분은 upgrade가 되기 전 즉,oracle9i database 환경에서 작업 중이며 단지 위 SQL file만 oracle10g product home에서 가져왔다는 것이다.이 utility(SQL file)는 다음과 같은 조건들을 check한다.1. database name, version, compatibility2. redo logfile의 size (4MB 이상)3. system, temp등 upgrade와 관련한 tablespace의 공간점검4. 현재 database에 존재하는 partitioning, spatial과 같은 options5. parameter value의 변경이 필요한 사항 (shared_pool_size, java_pool_size등)6. oracle10g부터 이름이 바뀐 parameters 정보7. oracle10g부터 없어진 parameters 정보8. 현재 database에 존재하는 components 정보9. 새로운 tablespace SYSAUX에 대한 정보10. optimizer등 upgrade대한 종합적인 정보내역CF. 오라클 문서에 의하면 위 사항 외에도 clustering 구성여부, 현재 database의character set, upgrade가 수행되는 예측시간 등이 포함된다고 하나 실제로 수행하여 결과를 보면 이런 사항들은 나타나지 않았다.[NEWSVC]LIRACLE:/app/oracle/temp> cd/app/oracle/product/10.1.0/rdbms/admin[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/rdbms/admin> cp utlu101i.sql/app/oracle/temp/[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/rdbms/admin> cd/app/oracle/temp/[NEWSVC]LIRACLE:/app/oracle/temp> sqlplus "/as sysdba"SQL*Plus: Release 9.2.0.1.0 - Production on Wed Jun 22 14:16:06 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to an idle instance.SQL> spool upgrade_info.lstSQL> @utlu101i.sqlJKSPARK@HANAFOS.COM 49
    • http://www.ggola.com 장 경 상………………………PL/SQL procedure successfully completed.SQL> spool offSQL> !cat upgrade_info.lst.*************************************************************************Update Parameters: [Update Oracle Database 10.1 init.ora or spfile]*************************************************************************WARNING: --> "shared_pool_size" needs to be increased to at least "150944944"--> "pga_aggregate_target" is already at "104857600" calculated new value is"104857600"--> "large_pool_size" is already at "16777216" calculated new value is"16777216"WARNING: --> "java_pool_size" needs to be increased to at least "50331648".*************************************************************************Deprecated Parameters: [Update Oracle Database 10.1 init.ora or spfile]*************************************************************************-- No deprecated parameters found. No changes are required..*************************************************************************Obsolete Parameters: [Update Oracle Database 10.1 init.ora or spfile]*************************************************************************--> "hash_join_enabled"--> "undo_suppress_errors"--> "parallel_automatic_tuning".*************************************************************************…………………………………………JKSPARK@HANAFOS.COM 50
    • http://www.ggola.com 장 경 상…………………………………………*************************************************************************--> New "SYSAUX" tablespace.... minimum required size for database upgrade: 500 MBPlease create the new SYSAUX Tablespace AFTER the Oracle Database10.1 server is started and BEFORE you invoke the upgrade script.*************************************************************************………………………………………………………………SQL> exitDisconnected from Oracle9i Enterprise Edition Release 9.2.0.1.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.1.0 – Production[NEWSVC]LIRACLE:/app/oracle/temp>이제 위에서 만들어진 log file “upgrade_info.lst”를 확인하여 upgrade를 위해 필요한작업정보가 있는지를 확인하여 변경, 삭제 등의 지시사항을 따른다. 단, 새로운tablespace인 “SYSAUX” tablespace는 차후 직접 진행할 것이니 log file에서 이 내용은무시해도 좋다. 본 작업 대상이 되는 database의 경우 위에서처럼 몇몇 parameter의 수정을 요구하는 사항만 나와 있었다. 다음은 이런 수정작업을 진행한 후의 과정이다.먼저 환경과 관련된 file을 조정한다. 새로운 oracle10g home으로 parameter file관련 조정을 한다. 현재 작업은 “$ORACLE_HOME/dbs”의 parameter file을 사용함으로oracle10g home으로 새로운 symbolic link를 만들자. (RAC라면 모든 nodes에 이 작업이 진행되어야 할 것이며 upgrade는 1 node에서만 작업을 진행한다. 물론, parameter“CLUSTER_DATABASE”는 upgrade를 진행하는 동안은 “FALSE”로 되어 있어야 한다.) 조정이 끝나면 database를 down하고 oracle10g 환경으로 database를 upgrademode로 start한다.CF. 여러분이 password file을 사용하고 있다면 역시 이 file도 oracle10g환경으로 copyJKSPARK@HANAFOS.COM 51
    • http://www.ggola.com 장 경 상해야 하고 parameter file의 compatibility도 각자의 oracle10g version에 맞게 설정한다.물론, 이 값이 “9.2.0”보다 작으면 error가 return될 것이다.CF. upgrade 작업을 위해 oracle9i로 되어 있는 환경변수를 모두 oracle10g로 바꾼 후다음 작업을 진행한다. 일반적으로 “ORACLE_HOME”, “PATH”, “ORA_NLS33”,“LD_LIBRARY_PATH”등이 수정될 것이다.[NEWSVC]LIRACLE:/app/oracle/temp> cd ../product/10.1.0/dbs[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/dbs> ln -s/app/oracle/admin/NEWSVC/pfile/initNEWSVC.ora initNEWSVC.ora[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/dbs> cd /app/oracle/temp[NEWSVC]LIRACLE:/app/oracle/temp> sqlplus "/as sysdba"SQL*Plus: Release 9.2.0.1.0 - Production on Wed Jun 22 15:41:40 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.1.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.1.0 - ProductionSQL>shutdownDatabase closed.Database dismounted.ORACLE instance shut down.SQL> exitDisconnected from Oracle9i Enterprise Edition Release 9.2.0.1.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.1.0 - Production[NEWSVC]LIRACLE:/app/oracle/temp> cd[NEWSVC]LIRACLE:/app/oracle> vi .bash_profile# oracle os homeORACLE_BASE=/app/oracle; export ORACLE_BASE# oracle product homeJKSPARK@HANAFOS.COM 52
    • http://www.ggola.com 장 경 상ORACLE_HOME=/app/oracle/product/10.1.0; export ORACLE_HOME# specify terminal and temp spaceORACLE_TERM=vt100; export ORACLE_TERMTMPDIR=$ORACLE_BASE/tmp; export TMPDIRTEMP=$ORACLE_BASE/tmp; export TEMP# default character setNLS_LANG=American_America.KO16KSC5601; export NLS_LANG# general pathPATH=$PATH:.:$ORACLE_HOME/binexport LANG=en_USexport DISPLAY=21.111.21.189:0.0# instance nameORACLE_SID=NEWSVC; export ORACLE_SIDPS1=[${ORACLE_SID}]`hostname`:$PWD> ~~~~~~:wq[NEWSVC]LIRACLE:/app/oracle> exit20. Upgrade 진행앞서, 새로운 환경으로 접속을 하기 위하여 연결을 종료하였다. 이제 새로운 연결을 통해 다음 작업을 진행한다. 먼저 upgrade mode로 database를 start한 후 oracle10g의 새로운 기본 tablespace를 만들고 upgrade script를 수행한 후 check script를 수행하여 결과를 알아볼 것이다.[NEWSVC]LIRACLE:/app/oracle> cd tempJKSPARK@HANAFOS.COM 53
    • http://www.ggola.com 장 경 상[NEWSVC]LIRACLE:/app/oracle/temp> sqlplus "/as sysdba"SQL*Plus: Release 10.1.0.4.0 - Production on Wed Jun 22 16:42:30 2005Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to an idle instance.SQL> startup upgradeORACLE instance started.Total System Global Area 427819008 bytesFixed Size 779516 bytesVariable Size 212081412 bytesDatabase Buffers 209715200 bytesRedo Buffers 5242880 bytesDatabase mounted.Database opened.SQL> create tablespace sysaux datafile ‘/app/oracle/oradata/NEWSVC/sysaux01.dbf 2 size 500M extent management local 3 segment space management auto online;Tablespace created.SQL> spool upgrade.logSQL> @$ORACLE_HOME/rdbms/admin/u0902000.sql………………………………………………………………PL/SQL procedure successfully completed.JKSPARK@HANAFOS.COM 54
    • http://www.ggola.com 장 경 상…………………………………………TIMESTAMP--------------------------------------------------------------------------------COMP_TIMESTAMP DBUPG_END 2005-06-22 18:30:031 row selected.SQL> spool offSQL> @$ORACLE_HOME/rdbms/admin/utlu101s.sql TEXTPL/SQL procedure successfully completed.Oracle Database 10.1 Upgrade Status Tool 23-JUN-2005 09:13:12--> Oracle Database Catalog Views Normal successful completion--> Oracle Database Packages and Types Normal successful completion--> JServer JAVA Virtual Machine Normal successful completion--> Oracle XDK Normal successful completion--> Oracle Database Java Packages Normal successful completion--> Oracle XML Database Normal successful completion--> Oracle Workspace Manager Normal successful completion--> Oracle interMedia Normal successful completion--> Spatial Problem(s) detectedWARNING: ----> component status is not valid----> version is correct----> check upgrade log for errors----> script="?/md/admin/sdodbmig.sql"--> Oracle Text Normal successful completion--> Oracle Ultra Search Normal successful completionPL/SQL procedure successfully completed.SQL>JKSPARK@HANAFOS.COM 55
    • http://www.ggola.com 장 경 상위에서 upgrade check 결과를 보면 “Spatial”을 제외한 다른 부분은 문제가 없는 것으로 보인다. 사실 upgrade 대상이 되는 database에서 “Spatial” component는 원래install하지도 않았었기 때문에 당연한 결과로 보이며 upgrade와는 상관이 없음으로 다음 작업을 계속 진행한다.CF. upgrade script는 대상이 되는 database의 version에 따라 다름으로 반드시“$ORACLE_HOME/rdbms/admin/u0*.sql”을 확인하여 적절한 script를 선택하여야한다.Upgrade script가 완료 되었으니 database를 normal mode로 restart하고 recompilescript를 수행함으로써 이제 database upgrade 작업이 종료된다.SQL> shutdownDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 427819008 bytesFixed Size 779516 bytesVariable Size 212081412 bytesDatabase Buffers 209715200 bytesRedo Buffers 5242880 bytesDatabase mounted.Database opened.SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sqlTIMESTAMP--------------------------------------------------------------------------------COMP_TIMESTAMP UTLRP_BGN 2005-06-23 09:19:091 row selected.PL/SQL procedure successfully completed.JKSPARK@HANAFOS.COM 56
    • http://www.ggola.com 장 경 상TIMESTAMP--------------------------------------------------------------------------------COMP_TIMESTAMP UTLRP_END 2005-06-23 09:21:291 row selected.PL/SQL procedure successfully completed.Invoking Ultra Search Install/Upgrade validation procedure VALIDATE_WKUltra Search VALIDATE_WK done with no errorPL/SQL procedure successfully completed.SQL> shutdownDatabase closed.Database dismounted.ORACLE instance shut down.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 -ProductionWith the Partitioning, OLAP and Data Mining options[NEWSVC]LIRACLE:/app/oracle/temp>CF. recompile 작업이 끝나면 다음과 같은 SQL을 통해 문제가 있는 objects가 존재하는지를 직접 확인하여 필요한 작업들을 진행할 필요가 있다.“ SQL> select distinct object_name FROM dba_objects WHERE status= INVALID; “이제 network 설정을 하여 database를 다시 restart하여 완전한 접속 테스트를 해보자.향후 테스트의 원활함을 위해 아래 내역처럼 listener port설정을 그대로 설정 하도록하자.[NEWSVC]LIRACLE:/app/oracle/temp> cd $ORACLE_HOME/network/adminJKSPARK@HANAFOS.COM 57
    • http://www.ggola.com 장 경 상[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/network/admin> vi listener.ora# listener.ora Network Configuration File:/app/oracle/product/10.1.0/network/admin/listener.oraLSN10G = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 21.111.200.84)(PORT = 1523)(QUEUESIZE = 1024)) ) )LSNSVC = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 21.111.200.84)(PORT = 1521)(QUEUESIZE = 1024)) ) )SID_LIST_LSN10G = (SID_LIST = (SID_DESC = (ORACLE_HOME = /app/oracle/product/10.1.0) (SID_NAME = CRT10G) ) )SID_LIST_LSNSVC = (SID_LIST = (SID_DESC = (ORACLE_HOME = /app/oracle/product/10.1.0) (SID_NAME = NEWSVC) ) )JKSPARK@HANAFOS.COM 58
    • http://www.ggola.com 장 경 상~~~~:wq[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/network/admin> cd[NEWSVC]LIRACLE:/app/oracle> lsnrctl start lsnsvcLSNRCTL for Linux: Version 10.1.0.4.0 - Production on 23-JUN-2005 09:32:21Copyright (c) 1991, 2004, Oracle. All rights reserved.Starting /app/oracle/product/10.1.0/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 10.1.0.4.0 - ProductionSystem parameter file is /app/oracle/product/10.1.0/network/admin/listener.oraLog messages written to /app/oracle/product/10.1.0/network/log/lsnsvc.logListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=21.111.200.84)(PORT=1521)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=21.111.200.84)(PORT=1521)(QUEUESIZE=1024)))STATUS of the LISTENER------------------------Alias lsnsvcVersion TNSLSNR for Linux: Version 10.1.0.4.0 - ProductionStart Date 23-JUN-2005 09:32:21Uptime 0 days 0 hr. 0 min. 0 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /app/oracle/product/10.1.0/network/admin/listener.oraListener Log File /app/oracle/product/10.1.0/network/log/lsnsvc.logListening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=21.111.200.84)(PORT=1521)))JKSPARK@HANAFOS.COM 59
    • http://www.ggola.com 장 경 상Services Summary...Service "NEWSVC" has 1 instance(s). Instance "NEWSVC", status UNKNOWN, has 1 handler(s) for this service...The command completed successfully[NEWSVC]LIRACLE:/app/oracle> sqlplus "/as sysdba"SQL*Plus: Release 10.1.0.4.0 - Production on Thu Jun 23 09:32:49 2005Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area 427819008 bytesFixed Size 779516 bytesVariable Size 212081412 bytesDatabase Buffers 209715200 bytesRedo Buffers 5242880 bytesDatabase mounted.Database opened.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 -ProductionWith the Partitioning, OLAP and Data Mining options[NEWSVC]LIRACLE:/app/oracle> exit이제 upgrade 작업이 모두 종료되었다. 각자 SQL*Plus나 그 밖의 tool등으로 접속 테스트를 진행해 보자.21. Upgrade 부가 정보oracle10g로 upgrade가 되면 database내의 components와 그 정보들이 table로 관리되며 components의 dependency도 이를 통해 이루어진다. 이 table에는 version정보까지JKSPARK@HANAFOS.COM 60
    • http://www.ggola.com 장 경 상표시되어 upgrade 상태도 확인할 수 있다.SQL> select * from dba_server_registry;Oracle은 upgrade가 완료되면 components의 상태를 확인하는 scripts를 제공하는데 이는 다음과 같이 “$ORACLE_HOME/rdbms/admin/utlu101s.sql” 을 call함으로써 수행할 수 있다. 이 script를 수행하면 출력 format을 입력 받게 되는데 “XML,TEXT/TERM, BOTH”의 3가지 형태를 제공한다.SQL> conn sys/managerConnected.SQL> @$ORACLE_HOME/rdbms/admin/utlu101s.sqlPL/SQL procedure successfully completed.Enter value for 1: TEXTOracle Database 10.1 Upgrade Status Tool 12-JUL-2005 01:22:09 Oracle Database Catalog Views Normal successful completion Oracle Database Packages and Types Normal successful completion JServer JAVA Virtual Machine Normal successful completion Oracle XDK Normal successful completion Oracle Database Java Packages Normal successful completion Oracle XML Database Normal successful completion Oracle Workspace Manager Normal successful completion Oracle interMedia Normal successful completion Spatial Normal successful completion Oracle Text Normal successful completion Oracle Ultra Search Normal successful completion Oracle Enterprise Manager Normal successful completionNo problems detected during upgradePL/SQL procedure successfully completed.CF. 출력 format을 한번에 처리하기 위하여 다음과 같이 argument로 입력할 수도 있다.SQL> @$ORACLE_HOME/rdbms/admin/utlu101s.sql TEXTJKSPARK@HANAFOS.COM 61
    • http://www.ggola.com 장 경 상OCP point===============================================================1. direct upgrade를 위한 oracle version 4가지참조===============================================================spfile : o9i 153, 540pJKSPARK@HANAFOS.COM 62
    • http://www.ggola.com 장 경 상22. em 설정 및 확인23. em Repository 생성앞서 “dbua”로 upgrade를 진행하였을 때에는 중간에 해당 database를 em으로 관리할것인가를 묻고 이를 선택하는 화면이 있었다. 그러나 manual upgrade는 그런 과정이없기 때문에 em으로 관리를 하고자 한다면 다음과 같은 방식으로 repository를 만들어주어야 한다. 물론, 어떤 경우라도(굳이 upgrade가 아니더라도) oracle10g를 사용하면서em을 통한 관리를 하고자 하는데 repository가 없다면 이 부분은 필수작업이다.CF. em repository는 oracle10g의 new tablespace인 “SYSAUX”에 위치한다.작업은 interactive하게 묻고 답하는 형식으로 이루어 짐으로 적절한 값을 넣어주도록하자. 다음의 예를 보라.CF. 이 말은 곧 em으로 관리하고자 하는 instance는 각각 자신의 repository를 필요로한다는 말이 됨으로 한 서버에서 여러 개의 instance를 가지고 있다면 각각에 대하여em을 start해야 된다는 뜻이다.[NEWSVC]LIRACLE:/app/oracle> cd $ORACLE_HOME/bin[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/bin> emcaSTARTED EMCA at Fri Jun 24 17:28:10 KST 2005Enter the following information about the database to be configuredListener port number: 1521Database SID: NEWSVCService name: NEWSVCEmail address for notification:Email gateway for notification:Password for dbsnmp:Password for sysman:Password for sys:-----------------------------------------------------------------JKSPARK@HANAFOS.COM 63
    • http://www.ggola.com 장 경 상You have specified the following settingsDatabase ORACLE_HOME ................ /app/oracle/product/10.1.0Enterprise Manager ORACLE_HOME ................ /app/oracle/product/10.1.0Database host name ................ LIRACLEListener port number ................ 1521Database SID ................ NEWSVCService name ................ NEWSVCEmail address for notification ...............Email gateway for notification ...............-----------------------------------------------------------------Do you wish to continue? [yes/no]: yesJun 24, 2005 5:39:05 PM oracle.sysman.emcp.EMConfig updateReposVarsINFO: Updating file/app/oracle/product/10.1.0/sysman/emdrep/config/repository.variables ...Jun 24, 2005 5:51:21 PM oracle.sysman.emcp.EMConfig createRepositoryINFO: Creating repository ...Jun 24, 2005 5:51:21 PM oracle.sysman.emcp.EMConfig performINFO: Repository was created successfullyJun 24, 2005 5:51:35 PM oracle.sysman.emcp.EMConfig addPortEntriesINFO: Updating file /app/oracle/product/10.1.0/install/portlist.ini ...Jun 24, 2005 5:51:35 PM oracle.sysman.emcp.EMConfig updateEmdPropsINFO: Updating file /app/oracle/product/10.1.0/sysman/config/emd.properties ...Jun 24, 2005 5:51:37 PM oracle.sysman.emcp.EMConfig updateConfigFilesINFO: targets.xml file is updated successfullyJun 24, 2005 5:51:37 PM oracle.sysman.emcp.EMConfig updateEmomsPropsINFO: Updating file/app/oracle/product/10.1.0/sysman/config/emoms.properties ...Jun 24, 2005 5:51:37 PM oracle.sysman.emcp.EMConfig updateConfigFilesINFO: emoms.properties file is updated successfullyJun 24, 2005 5:51:39 PM oracle.sysman.emcp.EMConfig startOMSJKSPARK@HANAFOS.COM 64
    • http://www.ggola.com 장 경 상INFO: Starting the DBConsole ...Jun 24, 2005 5:53:26 PM oracle.sysman.emcp.EMConfig performINFO: DBConsole is started successfullyJun 24, 2005 5:53:27 PM oracle.sysman.emcp.EMConfig performINFO: >>>>>>>>>>> The Enterprise Manager URL is http://LIRACLE:5501/em<<<<<<<<<<<Enterprise Manager configuration is completed successfullyFINISHED EMCA at Fri Jun 24 17:53:27 KST 2005[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/bin>맨 마지막에 나타나는 URL을 사용하여 web browser로 연결을 할 수 있다.새로 등록된 repository를 이용하여 dbconsole의 stop/start가 원활이 이루어지는지 확인을 해보자.[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/bin> emctl stop dbconsoleTZ set to ROKOracle Enterprise Manager 10g Database Control Release 10.1.0.4Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.http://LIRACLE:5501/em/console/aboutApplicationStopping Oracle Enterprise Manager 10g Database Control ...... Stopped.[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/bin> emctl start dbconsoleTZ set to ROKOracle Enterprise Manager 10g Database Control Release 10.1.0.4Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.http://LIRACLE:5501/em/console/aboutApplicationStarting Oracle Enterprise Manager 10g Database Control ..................... started.------------------------------------------------------------------Logs are generated in directory/app/oracle/product/10.1.0/LIRACLE_NEWSVC/sysman/log[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/bin>24. em Ports위에서 설정한 em repository와 관련하여 port등의 환경설정과 관련된 부분들은 다음JKSPARK@HANAFOS.COM 65
    • http://www.ggola.com 장 경 상과 같이 $ORACLE_HOME/hostname_sid/ 위치에 있는 구조 중에서 특정 file“emoms.properties “ 에 저장이 되어있음으로 이를 확인하도록 한다.[NEWSVC]LIRACLE:/app/oracle> cd $ORACLE_HOME/LIRACLE_NEWSVC[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/LIRACLE_NEWSVC> cd sysman/config[NEWSVC]LIRACLE:/app/oracle/product/10.1.0/LIRACLE_NEWSVC/sysman/config> ls-ltrtotal 76-rw-r----- 1 oracle dba 4986 Jun 24 17:51 OUIinventories.add-rw-r----- 1 oracle dba 1303 Jun 24 17:51 emoms.properties-rw-r----- 1 oracle dba 1165 Jun 24 17:51 emomslogging.properties-rw-r----- 1 oracle dba 7074 Jun 24 17:51 emomsintg.xml-rw-r----- 1 oracle dba 11290 Jun 24 17:51 emd.properties.tzbak-rw-r----- 1 oracle dba 1265 Jun 24 17:51 emagentlogging.properties-rw-r----- 1 oracle dba 9892 Jun 24 17:51 b64InternetCertificate.txt-rw-r----- 1 oracle dba 11290 Jun 24 17:53 emd.properties.2005-06-24-17-53-19-rw-r----- 1 oracle dba 11308 Jun 24 17:53 emd.properties현재 사용중인 database server전체에 대하여 즉, 현재 설정된 instance를 기준으로 확인하는 것이 아니라 oracle10g가 install되어 있는 서버에서 전체 database를 대상으로각종 em관련 port를 확인하기 위해서는 다음과 같이한다.[NEWSVC]LIRACLE:/app/oracle/temp> cat $ORACLE_HOME/install/portlist.iniUltra Search HTTP port number =5620iSQL*Plus HTTP port number =5560Enterprise Manager Agent Port =Enterprise Manager Console HTTP Port (OMFSVR) = 5500Enterprise Manager Agent Port (OMFSVR) = 1830Enterprise Manager Console HTTP Port (NEWSVC) = 5501Enterprise Manager Agent Port (NEWSVC) = 1831앞으로 이 책에서 설명하는 em 화면은 대부분 “NEWSVC”의 port를 사용함으로 여러분은 각자 테스트하는 database와 port를 이 file에서 확인한 후 해당 port를 사용해야한다.JKSPARK@HANAFOS.COM 66
    • http://www.ggola.com 장 경 상OCP point===============================================================1. emca의 역할JKSPARK@HANAFOS.COM 67
    • http://www.ggola.com 장 경 상 25. Initialization Parameters Initialization parameters는 크게 두 가지로 나뉘어진다. 그 하나는 basic parameters로 서 database 생성, 관리와 연관된 가장 기초적인 parameters이고 그 나머지들은 advanced parameters로서 주로 database의 성능이나 기능과 관련된 것들이다. Deprecated parameters나 obsolete parameters를 사용하게 되면 instance start시 warning message와 함께 alert log에 그 내용들이 기록된다. 그러나 deprecated parameter는 정상적인 parameter처럼 작동한다. 이름이 바뀐 parameters는 가급적 빨 리 바꾸어 사용하도록 하자. 26. Basic Parameters 다음의 parameters는 모두 oracle10g에서 사용하는 basic parameters이다. Oracle이 사 용하는 parameters는 너무나 많고 또한 basic parameters 모두를 반드시 설정해야 하는 것은 아니지만 말 그대로 아래의 기본 parameters은 항상 유의해야 한다. 표 2-1 Parameter Description (default : modification) CLUSTER_DATABASE RAC enable을 결정 (FALSE : N) 기본 COMPATIBLE Oracle release 사용범위 (10.0.0 : N)Paramete CONTROL_FILES Control file정보 (OS dependent : N)r 와 설명 DB_BLOCK_SIZE Oracle DB block size (8192 : N) DB_CREATE_FILE_DEST OMF datafile location (X : Y) DB_CREATE_ONLINE_LOG_DEST_n OMF controlfile, redo log location (X : Y) DB_DOMAIN 분산환경에서의 논리적인 database 위치 (X : N) DB_NAME Database identifier로 DB 생성시 지정하며 8자리까지 가능 (X : N) DB_RECOVERY_FILE_DEST Flash recovery area 위치 (X : Y) DB_RECOVERY_FILE_DEST_SIZE Flash recovery area 크기 (X : Y) DB_UNIQUE_NAME 30자리까지 지정이 가능한 database의 unique한 이름을 보장하는 값 (DB_NAME or +ASM : N) INSTANCE_NUMBER RAC내 instance number (derived from instance start order : N) JOB_QUEUE_PROCESSES Job을 수행하는 최대 processes 수 (0 : Y) LOG_ARCHIVE_DEST_n Archive log 위치 (NULL : Y) LOG_ARCHIVE_DEST_STATE_n Archive log 위치의 valid check 및 action을 지정 (ENABLE : Y) NLS_LANGUAGE 일, 월등의 이름 및 message등을 display하 JKSPARK@HANAFOS.COM 68
    • http://www.ggola.com 장 경 상 는 기본 언어를 설정 (NLS_LANG 환경변 수 : Y)NLS_TERRITORY 날짜, 숫자, 화폐기호 등의 지역적인 관습을 설정 (OS dependent : Y)OPEN_CURSORS Session이 open할 수 있는 최대 cursor의 수 (50 : Y)PGA_AGGREGATE_TARGET PGA memory의 총 량 (10M 과 SGA의 20% 중 큰 값 : Y)PROCESSES Oracle에 동시에 연결 가능한 최대 OS processes의 수 (derived from PARALLEL_MAX_SERVERS : N)REMOTE_LISTENER Server instance와 다른 machine에 있는 listener의 network 이름 (X : Y)REMOTE_LOGIN_PASSWORDFILE Password file을 check하고 얼마나 많은 수 의 database가 password file을 사용할 것인 가를 설정 (NONE : N)ROLLBACK_SEGMENTS Rollback segment 지정 (public RBS : N)SESSIONS 연결 가능한 최대 session의 수 ((1.1 * PROCESSES) + 5 : N)SGA_TARGET SGA의 최대 size (0 : Y)SHARED_SERVERS Shared server환경에서 최초 start되는 server processes의 수 (0 : Y)STAR_TRANSFORMATION_ENABLED Cost-based query변환을 start query에 적용 할 것인가를 결정 (FALSE : Y)UNDO_MANAGEMENT Undo 관리를 자동화할 것인가를 결정 (MANUAL : N)UNDO_TABLESPACE Instance start시 최초 사용할 undo tablespace의 이름 (처음 사용 가능한 undo tablespace : Y)27. Deprecated(renamed) Parametersdatabase에서 이 정보를 알아내려면 다음과 같은 SQL을 사용하면 된다.SQL> select name from v$parameter where isdeprecated = TRUE;(1) Release 10.1BUFFER_POOL_KEEP (변경 DB_KEEP_CACHE_SIZE)BUFFER_POOL_RECYCLE (변경 DB_RECYCLE_CACHE_SIZE)GLOBAL_CONTEXT_POOL_SIZELOCK_NAME_SPACELOG_ARCHIVE_STARTJKSPARK@HANAFOS.COM 69
    • http://www.ggola.com 장 경 상MAX_ENABLED_ROLESPARALLEL_AUTOMATIC_TUNINGPLSQL_COMPILER_FLAGS (변경 PLSQL_CODE_TYPE and PLSQL_DEBUG)(2) Release 9.2DRS_START (변경 DG_BROKER_START)(3) Release 9.0.1FAST_START_IO_TARGET (변경 FAST_START_MTTR_TARGET)MTS_CIRCUITS (변경 CIRCUITS)MTS_DISPATCHERS (변경 DISPATCHERS)MTS_MAX_DISPATCHERS (변경 MAX_DISPATCHERS)MTS_MAX_SERVERS (변경 MAX_SHARED_SERVERS)MTS_SERVERS (변경 SHARED_SERVERS)MTS_SESSIONS (변경 SHARED_SERVER_SESSIONS)PARALLEL_SERVER (변경 CLUSTER_DATABASE)PARALLEL_SERVER_INSTANCES (변경 CLUSTER_DATABASE_INSTANCES)28. Obsolete Parameters(1) Release 10.1DBLINK_ENCRYPT_LOGINHASH_JOIN_ENABLEDLOG_PARALLELISMMAX_ROLLBACK_SEGMENTSMTS_CIRCUITSMTS_DISPATCHERSMTS_LISTENER_ADDRESSMTS_MAX_DISPATCHERSMTS_MAX_SERVERSMTS_MULTIPLE_LISTENERSMTS_SERVERSMTS_SERVICEMTS_SESSIONSJKSPARK@HANAFOS.COM 70
    • http://www.ggola.com 장 경 상OPTIMIZER_MAX_PERMUTATIONSORACLE_TRACE_COLLECTION_NAMEORACLE_TRACE_COLLECTION_PATHORACLE_TRACE_COLLECTION_SIZEORACLE_TRACE_ENABLEORACLE_TRACE_FACILITY_NAMEORACLE_TRACE_FACILITY_PATHPARTITION_VIEW_ENABLEDPLSQL_NATIVE_C_COMPILERPLSQL_NATIVE_LINKERPLSQL_NATIVE_MAKE_FILE_NAMEPLSQL_NATIVE_MAKE_UTILITYROW_LOCKINGSERIALIZABLETRANSACTION_AUDITINGUNDO_SUPPRESS_ERRORS(2) Release 9.2DISTRIBUTED_TRANSACTIONSMAX_TRANSACTION_BRANCHESPARALLEL_BROADCAST_ENABLEDSTANDBY_PRESERVES_NAMES(3) Release 9.0.1ALWAYS_ANTI_JOINALWAYS_SEMI_JOINDB_BLOCK_LRU_LATCHESDB_BLOCK_MAX_DIRTY_TARGETDB_FILE_DIRECT_IO_COUNTGC_DEFER_TIMEGC_RELEASABLE_LOCKSGC_ROLLBACK_LOCKSJKSPARK@HANAFOS.COM 71
    • http://www.ggola.com 장 경 상HASH_MULTIBLOCK_IO_COUNTINSTANCE_NODESETJOB_QUEUE_INTERVALOPS_INTERCONNECTSOPTIMIZER_PERCENT_PARALLELSORT_MULTIBLOCK_READ_COUNTTEXT_ENABLE(4) Release 8.1ALLOW_PARTIAL_SN_RESULTSARCH_IO_SLAVESB_TREE_BITMAP_PLANSBACKUP_DISK_IO_SLAVESCACHE_SIZE_THRESHOLDCLEANUP_ROLLBACK_ENTRIESCLOSE_CACHED_OPEN_CURSORSCOMPATIBLE_NO_RECOVERYCOMPLEX_VIEW_MERGINGDB_BLOCK_CHECKPOINT_BATCHDB_BLOCK_LRU_EXTENDED_STATISTICSDB_BLOCK_LRU_STATISTICSDB_FILE_SIMULTANEOUS_WRITESDELAYED_LOGGING_BLOCK_CLEANOUTSDISCRETE_TRANSACTIONS_ENABLEDDISTRIBUTED_RECOVERY_CONNECTION_HOLD_TIMEFAST_FULL_SCAN_ENABLEDENT_DOMAIN_NAMEFREEZE_DB_FOR_FAST_INSTANCE_RECOVERYGC_LATCHESGC_LCK_PROCSJOB_QUEUE_KEEP_CONNECTIONSLARGE_POOL_MIN_ALLOCLGWR_IO_SLAVESLM_LOCKSJKSPARK@HANAFOS.COM 72
    • http://www.ggola.com 장 경 상LM_PROCSLM_RESSLOCK_SGA_AREASLOG_ARCHIVE_BUFFER_SIZELOG_ARCHIVE_BUFFERSLOG_BLOCK_CHECKSUMLOG_FILESLOG_SIMULTANEOUS_COPIESLOG_SMALL_ENTRY_MAX_SIZEMTS_RATE_LOG_SIZEMTS_RATE_SCALEOGMS_HOMEOPS_ADMIN_GROUPOPTIMIZER_SEARCH_LIMITPARALLEL_DEFAULT_MAX_INSTANCESPARALLEL_MIN_MESSAGE_POOLPARALLEL_SERVER_IDLE_TIMEPARALLEL_TRANSACTION_RESOURCE_TIMEOUTPUSH_JOIN_PREDICATEREDUCE_ALARMROW_CACHE_CURSORSSEQUENCE_CACHE_ENTRIESSEQUENCE_CACHE_HASH_BUCKETSSHARED_POOL_RESERVED_MIN_ALLOCSNAPSHOT_REFRESH_KEEP_CONNECTIONSSNAPSHOT_REFRESH_PROCESSESSORT_DIRECT_WRITESSORT_READ_FACSORT_SPACEMAP_SIZESORT_WRITE_BUFFER_SIZESORT_WRITE_BUFFERSSPIN_COUNTTEMPORARY_TABLE_LOCKSUSE_ISMJKSPARK@HANAFOS.COM 73
    • http://www.ggola.com 장 경 상JKSPARK@HANAFOS.COM 74