ORACLE
HOME > DB > ORACLE
2018.12.07 / 17:46

[OracleDB] DB 접속 후 DBMS_WORKLOAD_REPOSITORY 로 AWR Report 조회

hanulbit
추천 수 35
IT-Tech/Database2016.08.29 15:43

  OS 의 Oracle Account 를 획득한 경우, sqlplus 로 접속해서 ?/rdbms/admin/awrrpt.sql 을 수행하면 되겠지만, OS 계정을 사용할 수 없는 경우에도, DB User 를 사용할 수 있고, 필요한 권한이 있다면 AWR Report 를 뽑아볼 수 있다.



1. DBMS_WORKLOAD_REPOSITORY 일반


  - Oracle 에서 AWR Snapshot 관리 편의를 위해 제공하는 Package  

  - 주로 사용되는 Snapshot 관리 방법

 항목

명령어 

 AWR Snapshot

 설정 변경


 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS

 ( [RETENTION => retention_time], [INTERVAL => interval_time], [TOPNSQL => topn_sql_number] ) ;


 AWR Snapshot 

 삭제


 DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHO_RANGE

 ( LOW_SNAP_ID => snap_id, HIGH_SNAP_ID => snapid [DBID => dbid] ) ;


Baseline 

생성


 PROCEDURE create_baseline(start_snap_id  IN NUMBER,
                                      end_snap_id    IN NUMBER,

                                      baseline_name  IN VARCHAR2,

                                      dbid           IN NUMBER DEFAULT NULL,

                                      expiration     IN NUMBER DEFAULT NULL ) ;


Baseline 
이름변경


 PROCEDURE rename_baseline(old_baseline_name IN VARCHAR2,
                                        new_baseline_name IN VARCHAR2,
                                        dbid              IN NUMBER DEFAULT NULL ) ;

  - DBMS_WORKLOAD_REPOSITORY 에 대해서는 Manual 에 자세히 기술됨



2. DBMS_WORKLOAD_REPOSITORY 로 AWR Report 조회


  A. 필요한 권한 및 명령어


  - 필요권한 : DBMS_WORKLOAD_REPOSITORY 실행, select any dictionary 등 (Privilege 부족 시 ORA-06550 등 발생)     

  - DBID 등은 dba_hist_snapshot 에서 조회

 SQL> select * from dba_hist_snapshot order by begin_interval_time desc ;


  - 주로 사용되는 AWR Report 조회 방법

 항목

명령어 

 AWR Report 

 Text Format


 DBMS_WORKLOAD_REPOSITOR.AWR_REPORT_TEXT

 ( :DBID, :INST_ID, :BEGIN_SNAP, :END_SNAP ) ;


  -- 이하 참조

  FUNCTION awr_report_text(l_dbid     IN NUMBER,

                                      l_inst_num IN NUMBER,

                                      l_bid      IN NUMBER,

                                      l_eid      IN NUMBER,

                                      l_options  IN NUMBER DEFAULT 0)

  RETURN awrrpt_text_type_table PIPELINED;


 AWR Report 

 html Format


 DBMS_WORKLOAD_REPOSITOR.AWR_REPORT_HTML

 ( :DBID, :INST_ID, :BEGIN_SNAP, :END_SNAP ) ;


  -- 이하 참조


  FUNCTION awr_report_html(l_dbid     IN NUMBER,

                                      l_inst_num IN NUMBER,

                                      l_bid      IN NUMBER,

                                      l_eid      IN NUMBER,

                                      l_options  IN NUMBER DEFAULT 0)

  RETURN awrrpt_html_type_table PIPELINED;



  B. AWR Report 조회 셈풀


    B-1. html format 


  -- 실행 셈풀 : 조회



  -- 실행 셈풀 : 결과값



  --  실행 셈풀 : AWR Report <- Copy & Past 로 새로운 html 화일을 생성



    B-2. text format 


  -- 실행 셈풀 : 조회



  -- 실행 셈풀 : 결과값




Posted by 포동푸우
IT-Tech/Database2016.08.22 09:50

//-- 이 내용은 Eegloos 의 블루오션 [BLUE OCEAN] 에서 "장땡" 님 글을 그대로 가져 왔습니다.

//-- 블루오션 원문 링크는 http://repository.egloos.com/5790800 입니다.

//-- 아래 "recover database until cancel ; " 를 수행하기 위해서는 Archive Log Mode 이여야 합니다.  

1. 현상


$ lsnrctl start
$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on Tue Feb 18 10:24:27 2014

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> startup
ORACLE instance started.

Total System Global Area 2.6991E+10 bytes
Fixed Size                  2213976 bytes
Variable Size            1.9059E+10 bytes
Database Buffers         7784628224 bytes
Redo Buffers              145174528 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 25292
Session ID: 177 Serial number: 3


2. 확인 및 조치사항


# startup단계를 하나하나 실행하여 어디가 문제인지 확인한다.
SQL> startup nomount;
SQL> alter database mount;
SQL> alter database open; ==> 여기서 에러가 발생했다.
alter database open
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 24832
Session ID: 177 Serial number: 1

# aleter databse mount이후에 아래 명령어를 실행한다.
SQL> recover database until cancel ;
Media recovery complete.
SQL> alter database open resetlogs ;
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 2.6991E+10 bytes
Fixed Size                  2213976 bytes
Variable Size            1.9059E+10 bytes
Database Buffers         7784628224 bytes
Redo Buffers              145174528 bytes
Database mounted.
Database opened.
SQL>

* database open실 발생하는 원인은 다음과 같은데
  위 사항은 1)번 사항이다.
 1) DATA파일이 깨졌을 때
 2) SN번호 불일치 시 -> "SCN 번호 불일치" 의 오타로 보임
 3) DB의 컨트롤 파일문제 시
 4) 설정파일 오류

3. 추가사항

DB에 문제가 생겨서 강제로 kill로 죽였을 때 
$ sqlplus "/as sysdba"로 접속하여
$ startup하면 ORA-01012: not logged on 에러가 발생한다.
그때는 SQL> startup force로 실행한다.




Posted by 포동푸우
IT-Tech/Database2016.08.16 15:20

1. DB Instance 의 Archive Log Mode 초기구성 결과 on 11gR2 


  -- 현재 설정 내용

 

 SQL> connect /as sysdba

 Connected.

 SQL> archive log list 

 Database log mode              No Archive Mode

 Automatic archival             Disabled

 Archive destination            USE_DB_RECOVERY_FILE_DEST

 Oldest online log sequence     36

 Current log sequence           38

 SQL>  



2. Archive Destination 을 LOG_ARCHIVE_DEST_1 로 변경 


  -- fast_recovery_area 에 Archive Log 를 떨어 뜨리지 않기 위해서 등등....


 SQL> alter system set LOG_ARCHIVE_START = TRUE scope=spfile ;      

 SQL> alter system set LOG_ARCHIVE_FORMAT = 'DAPPE02_%r_%T_%S.arc' scope=spfile ; 

 SQL> alter system set LOG_ARCHIVE_DEST = '' scope = spfile ; 

 SQL> alter system set LOG_ARCHIVE_DEST_1 = 'location=/u02/arch/DAPPE02' scope = spfile ; 


 -- DB Instance 재가동이 필요

 SQL> shutdown immediate ; 

 SQL> startup mount ; 

 SQL> alter database archivelog ; 

 SQL> alter database open ;



3. 재가동 후 변경 내용 확인


  -- 항상, 확인은 필요하다.


 SQL> archive log list ;

 Database log mode              Archive Mode

 Automatic archival             Enabled

 Archive destination            /u02/arch/DAPPE02

 Oldest online log sequence     36

 Next log sequence to archive   38

 Current log sequence           38

 SQL> 


  -- 아래의 File name 처럼 생성된다. : 포맷은 위에서 'DAPPE02_%r_%T_%S.arc' 설정 했음 => 지금 보니, 굳이 자리수를 맞출 필요 없이 %T 은 %t 로 했었어도 좋았을 것을...


 oraapp112@mwapp:/u02/arch/DAPPE02] ls -al 

 drwxr-xr-x 2 oraapp121 dba     4096 Aug 10 13:33 .

 drwxrwxr-x 4 oraapp112 dba     4096 Aug 10 13:28 ..

 -rw-r----- 1 oraapp121 dba 15956480 Aug 10 13:33 DAPPE02_919102183_0001_0000000038.arc

 -rw-r----- 1 oraapp121 dba     1024 Aug 10 13:33 DAPPE02_919102183_0001_0000000039.arc

 oraapp112@mwapp:/u02/arch/DAPPE02] 






Posted by 포동푸우
IT-Tech/Database2016.08.16 14:58

//-- DB 11gR2 Silent Install Script : Short Guide


1. DB 엔진설치 


  -- 설치파일 준비


 oraapp112@mwapp:/home/oraapp112/media] unzip p13390677_112040_Linux-x86-64_1of7.zip

 oraapp112@mwapp:/home/oraapp112/media] unzip p13390677_112040_Linux-x86-64_2of7.zip 


  -- response 파일 수정


 oraapp112@mwapp:/home/oraapp112/media/database/response] cp -p db_install.rsp db_install.rsp.orig

 oraapp112@mwapp:/home/oraapp112/media/database/response] vi db_install.rsp 

    >> 수정 사항 참조 : 일부 Default Value 도 표기

 oracle.install.option=INSTALL_DB_SWONLY

 ORACLE_HOSTNAME=mwapp

 INVENTORY_LOCATION=/u02/oracle/oraInventory_112

 SELECTED_LANGUAGES=en,ko

 ORACLE_HOME=/u02/oracle/product/11.2.0/db

 ORACLE_BASE=/u02/oracle

 oracle.install.db.InstallEdition=EE

 oracle.install.db.EEOptionsSelection=true

 oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0

 oracle.install.db.DBA_GROUP=dba

 oracle.install.db.OPER_GROUP=dba

 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

 DECLINE_SECURITY_UPDATES=true


  -- Silent 로 DB엔진 설치


oraapp112@mwapp:/home/oraapp112/media/database] ./runInstaller -silent -responseFile /home/oraapp112/media/database/response/db_install.rsp 


 As a root user, execute the following script(s):

        1. /u02/oracle/product/11.2.0/db/root.sh


 Successfully Setup Software.    ==> 이렇게 나오면, 엔진이 정상설치 된 것 

    


2. 적절한 PUS 적용


  -- OPatch Update : 생략, 다시 확인 6880880

  -- 적절한 PSU Apply : 생략, 2016년도 어느 때부터 날자로 출시.



3. Listener 구성


  -- response 파일 수정


 oraapp112@mwapp:/home/oraapp112/media/database/response] cp -p netca.rsp netca.rsp.orig

 oraapp112@mwapp:/home/oraapp112/media/database/response] vi netca.rsp 

    >> 수정 사항 참조 : 일부 Default Value 도 표기

 RESPONSEFILE_VERSION="11.2"

 CREATE_TYPE="CUSTOM"

 LOG_FILE=""/home/oraapp112/media/database/response/netca_inst.log""

 LISTENER_NAMES={"LISTENER_DAPPE01"}

 LISTENER_PROTOCOLS={"TCP;1621"}

 LISTENER_START=""LISTENER_DAPPE01""

 NSN_PROTOCOLS={"TCP;HOSTNAME;1621"} 


  -- Silent 로 DB Listener 구성


 oraapp112@mwapp:/home/oraapp112/media/database/response] cd $ORACLE_HOME/bin 

 oraapp112@mwapp:/u02/oracle/product/11.2.0/db/bin] ./netca -silent -responseFile /home/oraapp112/media/database/response/netca.rsp 



4. DB Instance 생성


  -- response 파일 수정


 oraapp112@mwapp:/home/oraapp112/media/database/response] cp -p dbca.rsp dbca.rsp.orig

 oraapp112@mwapp:/home/oraapp112/media/database/response] vi dbca.rsp 

    >> 수정 사항 참조 : 일부 Default Value 도 표기

RESPONSEFILE_VERSION = "11.2.0"

 OPERATION_TYPE = "createDatabase"

 GDBNAME = "DAPPE01"

 SID = "DAPPE01"

 SYSPASSWORD = "Customized_Password"

 SYSTEMPASSWORD = "Customized_Password"

 SYSMANPASSWORD = "Customized_Password"

 DATAFILEDESTINATION = "/u02/data01/oradata"

 STORAGETYPE=FS

 CHARACTERSET = "KO16MSWIN949"

 NATIONALCHARACTERSET= "AL16UTF16"

 SAMPLESCHEMA=TRUE

 AUTOMATICMEMORYMANAGEMENT = "TRUE"

 TOTALMEMORY = "2048"

    # 일단은, AMM 을 활성화 하고, 최소 메모리로 DB Instance 를 생성, DB SID 와 CHARACTERSET 에 주의


  -- Silent 로 Instance 생성


 oraapp112@mwapp:/home/oraapp112/media/database/response] cd $ORACLE_HOME/bin

 oraapp112@mwapp:/u02/oracle/product/11.2.0/db/bin] ./dbca -silent -responseFile /home/oraapp112/media/database/response/dbca.rsp



5. 추가사항


  -- root.sh 수행 잊지 말기 : 엔진 설치 후, DB Instance 구성 후

  -- 여러가지 구성을 대비?해서, oraInventory 와 diag 를 unique 하게 생성~ 나중에 file name 이 unique 해서 폴더 병합이 번거로워짐..  




Posted by 포동푸우
IT-Tech/Database2016.08.16 13:25

1. 현상


  - DB12c 이상에서, 특정 Column 에 대한 rename column 혹은 drop column 시, ORA-54032 와 함께 변경이 안됨


SQL> alter table OWNER.AG_NB_RD_SBAS_DD_SUM rename column MRD_STAT_CD to REP_POL_STAT_CD ; 

수행 시,, 아래 Message 를 출력 

"ORA-54032: column to be renamed is used in a virtual column expression"

"ORA-54033: column to be modified is used in a virtual column expression"



2. 원인


  - 해당 컬럼이 virtual column 에 포함되어 있어서 변경이 안됨

  - DB12c 이상 에서는, extended statistics 기능을 위해, 사용자가 생성하지 않은 컬럼도 DB 엔진이 virtual column 으로 지정해 별도 생성, 관리

  - extended statistics 에 대해서 기술된 내용 : This feature enables to Oracle calculate statistics on a group of columns. It uses this information to improve row estimates. This is useful when there's a correlation between the values of two (or more) columns in a table.

  - SYS_OP_COMBINED_HASH 은 an undocumented feature 라고 합니다. The name implies Oracle is merging the arguments together to form a hash 라고 기술되어 있습니다.

  

  - 확인 방법

SQL> select OWNER, table_name, column_name, data_type, hidden_column, data_default

        from dba_tab_cols

        where table_name ='해당_TABLE_NAME' and virtual_column = 'YES' ; 

  # data_default 에 해당 column 이 포함되어 있다면, ORA-54032, ORA-54033 와 함께 변경이 안됨


  - 확인 결과 (셈풀)

COLUMN_NAME                  DATA_DEFAULT         HIDDEN_COLUMN

------------------------------                  --------------------------------------   ---------------------

SYS_STUYPW88OE302TFVBNC6$MMQXE SYS_OP_COMBINED_HASH("X","Y") YES

Z                                                                                         NO

Y                                         NO

X                                         NO 

  # 위와 같이 조회 되는 경우, X 와 Y 의 2개 Column 은 SYS_OP_COMBINED_HASH 에 속한 virtual column 이 됩니다.



3. 조치방법


  3-A. 해당 extended statistics 컬러을 삭제


  - 아래 Package 를 통해 삭제 가능


SQL> exec dbms_stats.drop_extended_stats( ownname => 'OWNER', tabname => '해당_TABLE_NAME', extension => '("BASE_YM","MRD_STAT_CD","MRD_PROD_CD")' ) ;

  혹은

SQL> exec dbms_stats.drop_extended_stats(OWNER, '해당_TABLE_NAME', '(BASE_YM, MRD_STAT_CD, MRD_PROD_CD)');


  - 아래 Package 를 통해 생성 가능 (필요하다고 판단할 경우, DB 가 다시 생성)


SQL> exec dbms_stats.create_extended_stats( ownname => 'OWNER', tabname => '해당_TABLE_NAME', extension => '("BASE_YM","MRD_STAT_CD","MRD_PROD_CD")' ) ;


  3-B. 해당 Table 을 재생성 : 재생성 데 따른 제약은 없습니다. 


SQL> alter table OWNER.AG_NB_RD_SBAS_DD_SUM drop primary key cascade ;  

SQL> drop table OWNER.AG_NB_RD_SBAS_DD_SUM cascade constraints ;

 

SQL> create table OWNER.AG_NB_RD_SBAS_DD_SUM ( ------  생략  ) ;



ps. 이 내용은 다음 URL을 참조하였습니다 : https://blogs.oracle.com/sql/entry/ora_54033_and_the_hidden 

Posted by 포동푸우
IT-Tech/Database2016.08.09 13:17

1. Oracle DB 에 접속이 되었다가, 연결이 종료되는 경우


  A. 특정 사용자 Profile 에 설정된 limit 때문에 연결이 종료 되는 경우 일수도 있음


    -- 확인


      > Profile 을 사용하려면, resource_limit 이 true 로 설정되어 있어야 함 -- 11gR2 Default 는 false


        SQL> select name, value from v$parameter where name like '%resource%' ;

        SQL> alter system set resource_limit = true scope=spfile ; -- 설정방법


      > 생성되어 있는, Profile 들을 확인 : PROFILE 명이 Dafault 인 것이 기본설정 Profile 입니다.


        SQL> select profile, resource_name, limit from dba_profiles where profile = '%NEW';

   

    -- 조치방법


      > 해당 Limit 을 제거한 Profile 을 생성하여, 해당 User 에 부여 (아래는 Sample)

      > 특정하지 않은 limit 은 Default profile 을 따름

 

        SQL> ALTER PROFILE Profile_NEW limit 

              PASSWORD_GRACE_TIME UNLIMITED 

              FAILED_LOGIN_ATTEMPTS UNLIMITED

              PASSWORD_LIFE_TIME UNLIMITED

              PASSWORD_LOCK_TIME UNLIMITED 

              idle_time UNLIMITED  ; 


        SQL> alter user user_new profile Profile_new  ; 


    -- 참조값

      

      > sessions_per_user 2 => 유저당 2개의 세션을 허용

      > idle_time 1 => 접속후 1분 동안 아무런 작업이 일어나지 않는다면 자동으로 Session을 종료

      > connect_time 480 => Open 된 세션을 8분(480초) 동안만 사용 허락,  분단위의 연결시간 제한

      > LOGICAL_READS_PER_SESSION 1028 => SESSION이 열려있는 동안 disk나 memory에서 읽을 수 있는 data block 수가 1024 Block



  B. DB Instance Lelvel 로 설정된 limit 때문에 연결이 종료 되는 경우일 수도 있음


    -- 확인


 SQL> select * from v$resource_limit ; 


RESOURCE_NAME

 CURRENT UTILIZATION

 MAX UTILIZATION

 INITIAL ALLOCATION

 LIMIT VALUE

 processes

 31

 1800

 2000

 2000

 sessions

 39

 3024

 3024

 3024

 enqueue_locks

 25

 61

 34780

 34780

 enqueue_resources

 22

 59

 13524

 UNLIMITED

 ges_procs

 0

 0

 0

 0

 ges_ress

 0

 0

 0

 UNLIMITED


      위의 셈풀 결과에서 processes 가 프로세스 갯수(백그라운드+Dedicate Process), 그리고 session 이 동시접속 세션 수 입니다.

      current_utilization 이 현재 접속 카운트이고... (1명 접속할 때 마다 1씩 증가)

      max_utilization  이 오라클을 시작한 이래로 최대로 접속했을 때 피크 수치입니다


    -- 조치 


      session (동시접속 세션 수) 가 3024 로 설정되어 있는데 ( Defailt 값도 3024 , 현 설정값도 3024 임), 

      현재는 session (동시접속 세션 수) 가 39 입니다만, DB 구동 후 동시접속 세션 수가 3024 에 도달할 적이 있으므로, 

      이 때, 더 이상의 session 들이 DB 에 연결되지 못하는 상황이엇을 것입니다. ==> 따라서 session 을 5000 개 정도로 늘릴 필요가 있습니다.


      sessions 과 processes 는 함꼐 증가 되어야 하며, sessions 은 processes * 1.1 + 5개 이상이 되어야 합니다. (DB 버전에 따라 상이)


 SQL> alter system set sessions = 5550 scope = spfile ; 

 SQL> alter system set processes = 5000 scope = spfile ; 


 SQL> shutdown immediate ; 

 SQL> startup ; 



      

  





Posted by 포동푸우
IT-Tech/Database2016.07.20 15:02

//-- Oracle DB 의 Datapump 를 이용한 DB 간 Data 이관 

//-- Draft 버전 



1. 개요 


  -- 필요한경우 

    > Oracle DB 간의 Data Migration

    > 사례1) 개발DB에 있는 특정한 Schema의 모든 Object들을 운영DB로 모두 옮기는 경우 등 

  -- 제약사항

    > Oracle DB 10.2.0.X 이상 (11.1.0.X 이상 권고) => 해당 버전 이상에서 제공하는 datapump 를 사용


  

2. 전체적인 가이드


  A. Datapump 를 떨어뜨릴 Directory를 소스/타켓 양쪽에 생성

  B. Datapump 명령어로, 해당 Data 를 OS File 형태로 추출

  C. FTP 로 타켓서버로 전송

  D. Datapump 명령어로, 해당 OS File 을 DB에 적재 



3. 세부방법


  A. (소스/타켓 양쪽 DB에) Directory 설정 


  -- 기존 Directory 중 적당한 것을 사용해도 되고, 새로 만들어 사용해도 됨

  -- DB 관리user 인 system 을 사용하는 것이 무난함 => 그렇지 않은 경우, 일반 User 에 필요한 권한을 설정 필요

  

  -- 기존 Directory 조회

  -- 아래의 경우, DATA_PUMP_DIR 가 사용하기에 무난

  

SQL> set linesize 350

SQL> set pagesize 100

SQL> col owner format a15

SQL> col directory_path format a80  

SQL> select * from dba_directories ; 


OWNER        DIRECTORY_NAME                 DIRECTORY_PATH

----------   ------------------------------ ----------------------------------------------------------------------------

SYS          SUBDIR                            /app/oracle/product/11.2.0/db/demo/schema/order_entry/2002/Sep

SYS          SS_OE_XMLDIR                   /app/oracle/product/11.2.0/db/demo/schema/order_entry/

SYS          JOOYH_DIR                        /home/oracle/data_pump

SYS          LOG_FILE_DIR                     /app/oracle/product/11.2.0/db/demo/schema/log/

SYS          MEDIA_DIR                        /app/oracle/product/11.2.0/db/demo/schema/product_media/

SYS          XMLDIR                             /app/oracle/product/11.2.0/db/rdbms/xml

SYS          DATA_FILE_DIR                    /app/oracle/product/11.2.0/db/demo/schema/sales_history/

SYS          DATA_PUMP_DIR                 /app/oracle/admin/ogg25/dpdump/

SYS          ORACLE_OCM_CONFIG_DIR    /app/oracle/product/11.2.0/db/ccr/state

9 rows selected.

SQL> 


  -- 새로운 Directory 생성 (tran_pump 로 생성) 및 필요권한 부여

  -- system 에는 이미 권한이 있으나, 셈풀Query를 수행

  

[/home/oracle]$ id

 uid=401(oracle) gid=512(dba) groups=512(dba)

 [/home/oracle]$ cd /app/oracle/admin/ogg25/

 [/app/oracle/admin/ogg25/]$ mkdir tran_pump         --  dpdir 정도의 이름으로 만들어진 것을 사용하면 됨


-- 일반 User로 Directory 생성시 필요 (system 은 기 보유) 

SQL> GRANT CREATE ANY DIRECTORY TO SYSTEM ;   

-- 원하는 Directory 생성

SQL> CREATE DIRECTORY tran_pump AS '/app/oracle/admin/ogg25/tran_pump' ; 

-- DIRECTORY 에 개별권한 부여

SQL> GRANT READ, WRITE ON DIRECTORY tran_pump TO SYSTEM ;  

-- 일반 User로 추출/적재 시 필요 (system 은 이미 권한이 있음}

SQL> grant EXP_FULL_DATABASE, IMP_FULL_DATABASE to SYSTEM ;  


  B. Datadump 명령어로, 해당 Data 를 OS File 형태로 추출

  

  -- 추출대상 Object 확인 : 하단 참조

  

  -- 새로 생성한 tran_pump 에 Data 를 추출/적재

  -- tran_pump 이름의 directory 에 dumpfile 이 생성됨

  

[/home/oracle]$ expdp system/oracle directory=tran_pump schemas=BIGDATA01 job_name=bigdata01_expdp dumpfile=src_schema_bigdata01.dmp logfile=src_schema_bigdata01.expdp.log


[/app/oracle/admin/ogg25/tran_pump]$ du -hs *

5.1G    src_schema_bigdata01.dmp      -> 14:13:13 소요됨, tran_pump 란 directory 에 생성됨

12K     src_schema_bigdata01.expdp.log

[/app/oracle/admin/ogg25/tran_pump]$ 

  C. FTP 로 타켓서버로 전송 : 생략

  

  D. Datadump 명령어로, 해당 OS File 을 DB에 적재 

  

** 주의사항

     -- 사전에 적재 될 Schema 는 이미 만들어 두어야 함

     -- 이미 생성하지 않으면, 적재 시 생성하나 (동일 DB서버에 복구 하는 경우가 아니라면) 이미 생성해 두어야 함

     -- 적재된 Tablespace 에도 충분한 공간이 확보되어 있어야 함


SQL> drop user bigdata02 cascade ;          -- 해당 Schema 가 이미 있는 경우, 삭제하고 재생성 필요

SQL> create user bigdata02 identified by bigdata02

        default tablespace tmp_data

        temporary tablespace temp ; 

SQL> grant resource, connect to bigdata02 ; 

SQL> grant dba, sysdba to tranm ;          -- TRANManager DB User 에는  dba, sysdba 권한도 추가로 부여 


 ** 만약 impdp 가 퍼미션 문제로 실행되지 않는다면 SYSDBA 로 로그인한 후, 아래 Query 를 실행한 후 재시도.

SQL> execute dbms_metadata_util.load_stylesheets ;

-- 아래 명령어로 적재

-- 추출하는 Schema 와 적재되는 Schema 가 다른 경우 REMAP_SCHEMA 사용해야 함

-- 소스DB 의 Tablespace 명이 타켓DB에서 달라지는 경우, REMAP_TABLESPACE 를 사용해야 함


[/home/oracle]$ impdp system/oracle directory=tran_pump job_name=bigdata01_impdp dumpfile=src_schema_bigdata01.dmp logfile=src_schema_bigdata01.impdp.log REMAP_SCHEMA=bigdata01:bigdata02

    

 


8. 관련 Query 


  A. 추출 대상 Schema 의 Object 정보 사전 확인


SQL> set linesize 350  

SELECT DB.NAME DBNAME

, USERNAME

        , NVL(ROUND(SUM(CASE WHEN SEGMENT_TYPE LIKE 'INDEX%' THEN NULL ELSE BYTES END)/1024/1024/1024,1),-1) TABLE_SIZE

, NVL(ROUND(SUM(CASE WHEN SEGMENT_TYPE LIKE 'INDEX%' THEN BYTES ELSE NULL END)/1024/1024/1024,1),-1) INDEX_SIZE

, COUNT(B.SEGMENT_NAME) SEGMENT_COUNT

, MAX(C.OBJ_CNT) OBJECT_COUNT

FROM DBA_USERS A

INNER JOIN

(SELECT NAME FROM V$DATABASE) DB

ON 1=1

LEFT OUTER JOIN DBA_SEGMENTS B

ON A.USERNAME=B.OWNER

AND SEGMENT_NAME NOT LIKE 'BIN%'

LEFT OUTER JOIN (SELECT OWNER OWNER2,COUNT(*) OBJ_CNT FROM DBA_OBJECTS GROUP BY OWNER) C

ON A.USERNAME = C.OWNER2

WHERE A.USERNAME IN ('BIGDATA01')

GROUP BY DB.NAME,USERNAME

ORDER BY USERNAME  


SQL> /


DBNAME    USERNAME                       TABLE_SIZE INDEX_SIZE SEGMENT_COUNT OBJECT_COUNT

--------- ------------------------------ ---------- ---------- ------------- ------------

OGG25     BIGDATA01                             4.7        1.4           126          134


SQL> 


select owner, object_type, count(1)

  from dba_objects 

 where owner in ('BIGDATA01') 

 group by owner, object_type

 order by owner, object_type


OWNER           OBJECT_TYPE           COUNT(1)

--------------- ------------------- ----------

BIGDATA01       INDEX                       42

BIGDATA01       PACKAGE                      1

BIGDATA01       PACKAGE BODY                 1

BIGDATA01       PROCEDURE                    3

BIGDATA01       SEQUENCE                     1

BIGDATA01       TABLE                       84

BIGDATA01       VIEW                         2


7 rows selected.

SQL> 



9. 참조 사례/셈풀


  A. 추출 하지 않고, 생성될 dump file 의 Size 만 계산 : estimate_only 사용 

  

    -- 다음 옵션으로 expdp에 사용되는 공간을 추정할 수 있다.

$ expdp dpumpuser/dpumpuser full=y estimate_only=Y

  


  B. 추출/적재 시 병렬처리 하는 경우 : %U 를 사용


    -- parallel 파라메터는 몇 개의 스레드로 병렬 처리 할 것 인지 지정한다.

# expdp hr/hr tables=paratest directory=data_pump_test dumpfile=paratest%U.dmp parallel=4 job_name=parr_test;


    -- paratest01.dmp, paratest02.dmp, paratest03.dmp paratest04.dmp => 4 개의 파일이 생성된다.

# impdp hr/hr directory=data_pump_test dumpfile=paratest%U.dmp job_name=parr_test;


  C. 추출 시, 특정 Schema 데에터만 추출


    -- 특정 스키마의 구조와 데이터 추출 : schema 를 사용

$expdp dpumpuser/dpumpuser schema=PORTAL directory=data_pump dumpfile=portal_schema_20081031.dmp


  D. 추출 대상 정하기 - Metadata 만을 추출하거나, Table 의 Data 만 추출하는 경우 : content 를 사용

  

    -- content를 사용해 특정 스키마의 데이터만 추출 (all 전체 | metadata_only 껍데기만 | data_only table의Data만 ) 

$expdp dpumpuser/dpumpuser schemas=PORTAL content=data_only directory=data_pump dumpfile=portal_schema_data_20081031.dmp

  E. 적재 시, Schema 및 Tablespace 가 변경되는 경우 : REMAP_XXXXX 사용

    -- 데이터 파일, 테이블 스페이스, 유저는 각각 다음의 옵션으로 변경할 수 있다.

REMAP_DATAFILE='C:\user01.dbf':'/usr/data/user01.dbf'

REMAP_TABLESPACE='users':'user'

REMAP_SCHEMA=scott:stralth

    -- TABLESPACE 변경이 여러개인 경우, "," 를 구분자로 필요한 만큼 기술 가능

    --  ex) impdp system/oracle directory=datapump dumpfile=scott.dmp remap_tablespace =users1_data:users2_data, users1_index:users2_index schemas=scott;

  

  F. 적재 시 이미 Table 이 존재하는 경우 선택 가능 : table_exists 사용


$ impdp dpumpuser/dpumpuser table_exists_action=truncate directory=data_pump dumpfile=portal_schema_data_20081031.dmp  

    -- table_exists_action 옵션 사용, 기존의 데이터를 truncate 하도록 (skip | append | truncate | replace)

skip      : 존재하는 오브젝트에 대해 임포트 스킵

append : 기존 오브젝트에서 업는 행만을 임포트

truncate : 기존 테이블 truncate

replace : drop & recreate 



Posted by 포동푸우
IT-Tech/Database2012.05.03 14:05

1. Oracle DB 에서 제공하는 변환형 함수(Conversion function)

 

주로 아래 3가지 변환함수가 많이 사용됩니다.

Parameter

Explanation

to_char

숫자나 날짜를 문자열로 변환

to_date

문자를 날짜로 변환

to_number

문자를 숫자로 변환

기타 참조할 만한 Conversion function 으로는

-       Bin_To_Num / NumToDSInterval / NumToYMInterval  

-       To_Single_Byte / To_Multi_Byte / To_Clob / To_NClob / To_Lob

-       From_Tz / To_Timestamp / To_Timestamp_Tz / To_YMInterval / To_DSInterval

-       HexToRaw / CharToRowid / RawToHex

등이 있으나, 이번에는 언급하지 않겠습니다.

 

가능한 DB 버전 : Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g

-       아마 곧 GA release 될 Oracle 12c 에서도 지원되겠지요?

 

2. to_char function

 

Syntax : TO_CHAR(문자값,‘형식’) / to_char( value, [format_mask], [nls_language])

-       value can either be a number or date that will be converted to a string.

-       format_mask is optional. This is the format that will be used to convert value to a string.

-       nls_language is optional. This is the nls language used to convert value to a string.

 

Example : 숫자를 문자열로 변환

SQL> select TO_CHAR(350000,'$999,999') from dual ;

 

TO_CHAR(3

---------

 $350,000

 

SQL>

 

Example : 날짜를 문자열로 변환

SQL> select to_char(sysdate, 'yyyy/mm/dd HH24:MI:SS') from dual ;

 

TO_CHAR(SYSDATE,'YY

-------------------

2012/05/03 13:24:25

 

SQL> select to_char(sysdate - 31, 'yyyymmdd') from dual ;

 

TO_CHAR(

--------

20120402

 

SQL> select to_char(sysdate, 'yyyy/mm/dd') from dual ;

 

TO_CHAR(SY

----------

2012/05/03

 

SQL> select to_char(sysdate, 'Month DD, YYYY') from dual ;

 

TO_CHAR(SYSDATE,'MONTHDD,YYYY')

---------------------------------------------

May       03, 2012

 

SQL> select to_char(sysdate, 'FMMonth DD, YYYY') from dual ;

 

TO_CHAR(SYSDATE,'FMMONTHDD,YYYY')

---------------------------------------------

May 3, 2012

 

SQL> select to_char(sysdate, 'MON DDth, YYYY') from dual ;

 

TO_CHAR(SYSDATE,'MONDDT

-----------------------

MAY 03RD, 2012

 

SQL> select to_char(sysdate, 'FMMON DDth, YYYY') from dual ;

 

TO_CHAR(SYSDATE,'FMMOND

-----------------------

MAY 3RD, 2012

 

SQL> select to_char(sysdate, 'FMMon ddth, YYYY') from dual ;

 

TO_CHAR(SYSDATE,'FMMOND

-----------------------

May 3rd, 2012

 

SQL>

 

Frequently Asked Questions

Question:

Why doesn't this sort the days of the week in order?

 

    select ename, hiredate, to_char((hiredate),'fmDay') "Day"

    from emp

    order by "Day";

 

Answer:

In the above SQL, the fmDay format mask used in the to_char function will return the name of the Day and not the numeric value of the day.

To sort the days of the week in order, you need to return the numeric value of the day by using the fmD format mask as follows:

 

    select ename, hiredate, to_char((hiredate),'fmD') "Day"

    from emp

    order by "Day";

 

3. to_date function

 

Syntax : TO_DATE(문자값, ‘형식’) / to_date(string1, [format_mask], [nls_language])

-       string1 is the string that will be converted to a date.

-       format_mask is optional. This is the format that will be used to convert string1 to a date.

-       nls_language is optional. This is the nls language used to convert string1 to a date.

 

Example : 문자를 날짜로 변환

SQL> select TO_DATE('May 3 2012','MONTH DD YYYY') from dual ;

 

TO_DATE('

---------

03-MAY-12

 

SQL> select sysdate - to_date('20120101', 'yyyymmdd') from dual ;

 

SYSDATE-TO_DATE('20120101','YYYYMMDD')

--------------------------------------

                            123.577465

 

SQL> select to_date('2012/05/03', 'yyyy/mm/dd') from dual ;

 

TO_DATE('

---------

03-MAY-12

 

SQL> select to_date('050312', 'MMDDYY') from dual ;

 

TO_DATE('

---------

03-MAY-12

 

SQL> select to_date('20120503', 'yyyymmdd') from dual ;

 

TO_DATE('

---------

03-MAY-12

 

SQL>

 

4. to_number function

 

Syntax : TO_NUMBER(문자값) / to_number( string1, [format_mask], [nls_language] )

-       string1 is the string that will be converted to a number.

-       format_mask is optional. This is the format that will be used to convert string1 to a number.

-       nls_language is optional. This is the nls language used to convert string1 to a number.

 

Example : 문자를 숫자로 변환

SQL> select TO_NUMBER('1234567') from dual ;

 

TO_NUMBER('1234567')

--------------------

             1234567

 

SQL> select to_number('1210.73', '9999.99') from dual ; 

 

TO_NUMBER('1210.73','9999.99')

------------------------------

                       1210.73

 

SQL> select to_number('546', '999') from dual ; 

 

TO_NUMBER('546','999')

----------------------

                   546

 

SQL> select to_number('23', '99') from dual ; 

 

TO_NUMBER('23','99')

--------------------

                  23

 

SQL>

 

5. Syntax 의 형식에 대해서

 

형식 : 숫자를 문자로 변환시에 형식에 사용되는 요소

Parameter

Explanation

9

일반적인 숫자를 나타냄

0

앞의 빈자리를 0으로 채움

$

dollar를 표시함

L

지역 통화 단위

.

소숫점을 표시함

,

천단위를 표시함

 

  형식 : 날짜를 문자로 변환시에 형식에 사용되는 요소

Parameter

Explanation

SCC

세기를 표시 S는 기원전(BC)

YEAR

연도를 알파벳으로 spelling

YYYY

4자리 연도로 표시

YYY / YY / Y

끝의 3 / 2 / 1 자리 연도로 표시

Q

Quarter(분기) of year (1, 2, 3, 4; JAN-MAR = 1).

MONTH

월을 알파벳으로 spelling

MON

월의 알파벳 약어

MM

월을 2자리 숫자로 표시

RM

Roman numeral month (I-XII; JAN = I).

WW

Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.

W

Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh.

DAY

일에 해당하는 요일, Name of day.

DY

일에 해당하는 요일의 약어

DDD

연도,월,일 중의 날짜를 숫자로 표시, Day of year (1-366).

DD

Day of month (1-31).

D

Day of week (1-7).

HH

시간을 표시, Hour of day (1-12).

HH12

시간을 표시, Hour of day (1-12).

HH24

시간을 표시, Hour of day (0-23).

MI

분을 표시, Minute (0-59).

SS

초를 표시, Second (0-59).

SSSSS

Seconds past midnight (0-86399).

FF

Fractional seconds. Use a value from 1 to 9 after FF to indicate the number of digits in the fractional seconds. For example, 'FF4'.

AM(A.M.),PM(P.M.)

오전인지 오후인지를 표시

AD or A.D

AD indicator

BC or B.C.

BC indicator

TZD

Daylight savings information. For example, 'PST'

TZH

Time zone hour.

TZM

Time zone minute.

TZR

Time zone region.

 

Reference : http://www.techonthenet.com/oracle/functions/index.php

End of dicument.

Posted by 포동푸우
IT-Tech/Database2012.05.02 10:53

// Subject : [OracleDB] 공통 Invalid Object Compile 방법

// Tag : Oracle DB Invalid Object Compile Manually Recompile script

 

1. Oracle DB 에서 왜 주기적인 Invalid Object ReCompile 이 필요한가 ?

 

아래의 여러 가지 사유들로, Object 들이 Invalid 상태로 빠지게 됩니다.

-       Oracle DB 에 대한 Major, Minor Upgrade 수행 후

-       Function 이 사용하는 Table 의 Column 추가/삭제/변경이 발생되는 경우

 

보통은 Object 들을 CALL/USE 하게 되면다시 Valid 상태로 자동 Compile 이 되나,

때로는 아래의 문제들을 발생시키기도 합니다. DB 장애의 원인이 되기도 합니다.

-       ORA-4020 : Deadlock 이 감지된 상태에서의 library object 에 대한 lock을 획득 실패, <Note:130409.1> 참조

-       ORA-00911 : User miss 로 (Descriptive Flexfield 등을 신규생성/수정 시, Segment name 의 첫 CHARACTER 로 숫자나 알파벳 혹은 한글이 아닌 특수문자(ex> "[]")를 사용) Object 가 Compile 불가 상태로 변경된 경우

 

따라서, DBA 들은주기적으로 Invalid Object 들을 조사해서사전에 Recompile 을 통해관련 Object 들의 문제를 조치하고예기치 못한 Issue 발생에 대비하고 있습니다.

 

2. Invalid Object  Re compile 하는 방법

 

기본적으로 Oracle DB 에는 Invalid Object 들을 Compile 하는 5가지 방법이 존재합니다.

- DBMS_DDL

- DBMS_UTILITY

- UTL_RECOMP

- UTLRP.SQL

- Manually Recompile

 

 저는 간단한 Script 를 이용해서, Manual recompile 하기를 좋아 하는데, text mode 의 telnet 창에 접속하여, 다수의 서버들에서 logging 하면서 동시 작업하기가 편하기 때문입니다. 각각의 방법들은 장단점들이 있지만, 여기서는 언급하지 않고, 수행 방법들만 기술하도록 하겠습니다.

 

2-A. DBMS_DDL.ALTER_COMPILE

 

    Definition : ALTER PROCEDUREFUNCTIONPACKAGE [.] COMPILE [BODY]

    Syntax : Exec dbms_ddl.alter_compile ( type , schema, name);

-       Type : Must be either PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY or TRIGGER.

 

    Example

SQL> exec dbms_ddl.alter_compile ('PROCEDURE','SCOTT','TEST');

PL/SQL procedure successfully completed.

SQL>

 

2-B. DBMS_UTILITY.COMPILE_SCHEMA

 

    Definition : This procedure compiles all procedures, functions, packages, and triggers in the specified schema.

    Syntax : Exec dbms_utility.compile_schema ( schema,compile all)

-       Compile All : Object type ( procedure, function, packages,trigger)

 

    Example

SQL> exec dbms_utility.compile_schema('SCOTT');

PL/SQL procedure successfully completed.

SQL>

 

2-C. UTL_RECOMP

 

    Definition : This script is particularly useful after a major-version upgrade that typically invalidates all PL/SQL and Java objects.

    Syntax : Exec UTL_RECOMP.RECOMP_SERIAL ();

-       Note: Required SYS user to run this package.

 

    Example

SQL> Exec UTL_RECOMP.RECOMP_SERIAL ();

PL/SQL procedure successfully completed.

SQL>

 

2-D. UTLRP.SQL scripts

 

    Definition : Recompiles all existing PL/SQL modules that were previously in an INVALID state, such as packages, procedures, and types.

    Syntax : Located: $ORACLE_HOME/rdbms/admin

-       Note: Required SYS user to run this script.

-       Recommended: After upgrade or migrate database.

 

    Example

SQL> @ c:\oracle\product\10.2.0\db_1\rdbms\admin\UTLRP.SQL

    TIMESTAMP

    -----------------------------------------------------------------------

    COMP_TIMESTAMP UTLRP_BGN 2012-02-03 10:40:22

    PL/SQL procedure successfully completed.

    COMP_TIMESTAMP UTLRP_END 2012-02-03 10:40:29

    PL/SQL procedure successfully completed.

SQL>

 

2-E. Manually recompiling : Best Approach to Recompile all Invalid Objects

 

    Syntax : ALTER OBJECT_TYPE.OBJECT_NAME COMPILE ;

-       Note: VIEW, SYNONYM, PUBLIC SYNONYM, PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY, TRIGGER, UNDEFINED (MATERIALIZED VIEW), JAVA CLASS, TYPE, TYPE BODY

 

    Example : Object Type 에 따라몇 개의 Script 로 나눌 수 있습니다.

 

SQL> Spool recompile.sql

SQL> Select ‘alter ‘object_type’ ’object_name’ compile ; ’ From user_objects where status <> ‘VALID’ and object_type IN (‘VIEW’, ’SYNONYM’, ‘PROCEDURE’, ’FUNCTION’,     ‘PACKAGE’, ’TRIGGER’) ;

SQL> spool off

SQL> @ recompile.sql

-       Note : VIEW, SYNONYM, PROCEDURE, PACKAGE, FUNCTION, TRIGGER

 

SQL> Spool pkg_body.sql

SQL> Select ‘alter package ’object_name’ compile body ; ’ from user_objects where status <> ‘VALID’ and object_type = ‘PACKAGE BODY’ ;

SQL> spool off

SQL> @ pkg_body.sql

-       Note : PACKAGE BODY

 

SQL> Spool undefined.sql

SQL> select ‘alter materizlized view ’object_name’ compile ; ’ from user_objects where status <> ‘VALID’ and object_type =‘UNDEFINED’ ;

SQL> spool off

SQL> @ undefined.sql

-       Note : UNDEFINED

 

SQL> Spool javaclass.sql

SQL> Select ‘alter java class ’object_name’ resolve ; ’ from user_objects where status <> ‘VALID’ and object_type =‘JAVA CLASS’ ;

SQL> spool off

SQL> @ javaclass.sql

-       Note : JAVA CLASS’

 

SQL> Spool typebody.sql

SQL> Select ‘alter type ‘object_name’ compile body ; ’ from user_objects where status <> ‘VALID’ and object_type =‘TYPE BODY’ ;

SQL> spool off

SQL> @ typebody.sql

-       Note : TYPE BODY

 

SQL> Spool public_synonym.sql

SQL> Select ‘alter public synonym ‘object_name’ compile ; ’ from user_objects where status <> ‘VALID’ and owner = ‘PUBLIC’ and object_type = ‘SYNONYM’ ;

SQL> spool off

SQL> @ public_synonym.sql

-       Note : PUBLIC SYNONYM

 

End of document.

Posted by 포동푸우
IT-Tech/Database2012.04.30 17:24

1.1.1  Windows 7 에서 Oracle 10g 설치시 Error 발생

 

A.    개요

 

Oracle Database 12c(Cloud version)이 곧 GA release를 앞두고 있으나, 아직도 많은 고객들이 Oracle 8.0.x, 8i, 9i, 10g, 11g를 사용하고 있고, 이를 최신 Windows 인 7 (혹은 Vista)에 설치하는 경우가 있다. 설치할 DB의 version 은 정책적 결정 사항이다.

현재 가장 많이 사용되고 있는 Oracle DB 10g 버전을 Windows 7 환경에서 설치하기 위해 Tip이 필요한 이유는, 10g 출시 때에는 windows 7 등이 아직 출시되지 않았기 때문이다. 이미 많은 사례들을 통해, Support 가 확인되었으므로, 아래의 Tip을 통해설치가 가능하다

아래의 Tip 은 10g DBMS 혹은 Client 설치 모두에 적용 가능합니다. 


B.    Windows 7/Vista/2008R2 에서, Oracle 10g DBMS/Client 설치 시, Error 발생

 

발생 Error Message 생략

특정한 화일을 찾을 수 없다거나, 현제 버전을 지원할 수 없다는 메세지가 출력된다.

 

1.1.2  W/A(Support List 추가) 조치 후 Install 가능

 

A.    설치 Binary 선택

 

Windows 7 64 bit 인 경우 10204_vista_w2k8_x64_production_db.zip 을 사용

 

B.    설치 Binary 수정

설치 환경화일 중에, 아래 3개 file 에 Windows 7 에 해당하는 Code 6.1 을 넣은 후, 고급설치를 선택해 설치를 진행하면 됩니다. OS, DB 세부 version 에 따라 유사 이름의 다른 폴더에 화일이 존재하거나, 동일 폴더에 유사한 이름의 화일이 존재하기도 합니다.  

위치 : \10204_vista_w2k8_x64_production_db\database\install\oraparam.ini

수정사항 : Windows 7 을 의미하는 6.1을 추가

[Certified Versions]

#You can customise error message shown for failure, provide value for CERTIFIED_VERSION_FAILURE_MESSAGE

Windows=5.0,5.1,5.2,6.0,6.1

 

위치 : \10204_vista_w2k8_x64_production_db\database\stage\prereq\db\refhost.xml

수정사항 : Windows 7 을 의미하는 6.1라인들을 추가

<CERTIFIED_SYSTEMS>

    <OPERATING_SYSTEM>

      <VERSION VALUE="5.0"/>

      <SERVICE_PACK VALUE="1"/>

    </OPERATING_SYSTEM>

    <OPERATING_SYSTEM>

      <VERSION VALUE="5.1"/>

      <SERVICE_PACK VALUE="1"/>

    </OPERATING_SYSTEM>

    <OPERATING_SYSTEM>

      <VERSION VALUE="5.2"/>

    </OPERATING_SYSTEM>

    <!--Microsoft Windows Vista-->

    <OPERATING_SYSTEM>

      <VERSION VALUE="6.0"/>

    </OPERATING_SYSTEM>

    <!--Microsoft Windows 7-->

    <OPERATING_SYSTEM>

       <VERSION VALUE="6.1"/>

    </OPERATING_SYSTEM>

  </CERTIFIED_SYSTEMS>

 

위치 :  \10204_vista_w2k8_x64_production_db\database\stage\prereq\db_prereqs\db\refhost.xml

수정사항 : Windows 7 을 의미하는 6.1라인들을 추가

<CERTIFIED_SYSTEMS>

    <OPERATING_SYSTEM>

      <VERSION VALUE="5.0"/>

      <SERVICE_PACK VALUE="1"/>

    </OPERATING_SYSTEM>

    <OPERATING_SYSTEM>

      <VERSION VALUE="5.1"/>

      <SERVICE_PACK VALUE="1"/>

    </OPERATING_SYSTEM>

    <OPERATING_SYSTEM>

      <VERSION VALUE="5.2"/>

    </OPERATING_SYSTEM>

    <!--Microsoft Windows Vista-->

    <OPERATING_SYSTEM>

      <VERSION VALUE="6.0"/>

    </OPERATING_SYSTEM>

    <!--Microsoft Windows 7-->

    <OPERATING_SYSTEM>

      <VERSION VALUE="6.1"/>

    </OPERATING_SYSTEM>

  </CERTIFIED_SYSTEMS>

 

C.    Installer 에서 고급설치를 선택


기본 설치로 진행 할 경우 오류가 발생합니다. “고급 설치”로 진행합니다.

 

End of Documents.



출처: http://datacloud.tistory.com/category/IT-Tech/Database [DataCloud]