[ASM disk 추가 방법]
0. ASM disk 조회 및 rebalance 모니터링
- disk 모니터링
SQL> select * from v$asm_operation;
SQL> select est_work from v$asm_estimate;
- 적용 확인
SQL>select group_number, name, allocation_unit_size alloc_unit_size, state, type, total_mb,usable_file_mb
from v$asm_diskgroup;
1. raw device
-- ASM disk 추가
$ export ORACLE_SID=+ASM1
$ export ORACLE_HOME=$GRID_HOME
$ sqlplus / as sysasm
SQL> alter diskgroup OCR add disk '/dev/raw/raw15','/dev/raw/raw14','/dev/raw/raw13' rebalance power 1024;
SQL> alter diskgroup DATA add disk '/dev/raw/raw4','/dev/raw/raw3' rebalance power 1024;
SQL> alter diskgroup MGMT add disk '/dev/raw/raw1','/dev/raw/raw2' rebalance power 1024;
-- ASM disk 삭제
$ export ORACLE_SID=+ASM1
$ export ORACLE_HOME=$GRID_HOME
$ sqlplus / as sysasm
## 삭제시 경로 명이 아닌 name 으로 진행해야 한다. ( v$asm_disk -> name 컬럼 조회)
SQL> alter diskgroup OCR drop disk 'OCR_0001','OCR_0000','OCR_0002' rebalance power 1024;
SQL> alter diskgroup DATA drop disk 'DATA_0001','DATA_0000' rebalance power 1024;
SQL> alter diskgroup MGMT drop disk 'MGMT_0000','MGMT_0001' rebalance power 1024;
2. ASM device (oracleasm)
-- ASM disk 추가
$ export ORACLE_SID=+ASM1
$ export ORACLE_HOME=$GRID_HOME
$ sqlplus / as sysasm
alter diskgroup OCR add disk 'OCR_0001','OCR_0000','OCR_0002' rebalance power 1024;
alter diskgroup DATA add disk 'DATA_0001','DATA_0000' rebalance power 1024;
alter diskgroup MGMT add disk 'MGMT_0000','MGMT_0001' rebalance power 1024;
-- ASM disk 삭제
$ export ORACLE_SID=+ASM1
$ export ORACLE_HOME=$GRID_HOME
$ sqlplus / as sysasm
alter diskgroup DATA drop disk 'ORCL:DATA101','ORCL:DATA102','ORCL:DATA103' rebalance power 1024;
alter diskgroup RECO drop disk 'ORCL:RECO201','ORCL:RECO202','ORCL:RECO203' rebalance power 1024;
alter diskgroup CRS drop disk 'ORCL:CRS301','ORCL:CRS302','ORCL:CRS303' rebalance power 1024;
alter diskgroup MGMT drop disk 'ORCL:GIMR401','ORCL:GIMR402','ORCL:GIMR403' rebalance power 1024;
목차
- 1 오라클 수동설치
- 1.1 OS 환경변수 설정
- 1.2 DB nomount 실행
- 1.3 DB 생성
- 1.4 DB Open 확인
- 1.5 오라클 설치 후 후속작업
- 1.6 멀티 SID 사용 확인
1 오라클 수동설치
attach_file
- 테스트 완료 버전 (11g,12c,..)
- CREATE DATABASE 명령어를 사용해서 DB 생성(dbca 사용하지 않고)
- 신규 SID 생성 하여 개별 업무 관리
1.1 OS 환경변수 설정
- ORACLE_SID, ORACLE_HOME 환경변수 설정(Oracle Instance를 기동시 연결할 데이터베이스 정보)
- oraenv를 사용하여 다중 DB 접속 환경변수 변경작업
- 오라클 설치 위치 : /u01/app (사용자별로 다름)
1. oratab 파일 수정 oraenv를 사용해서 환경변수 변경작업이 가능하지만, ORACLE_HOME 경로같은 경우는 오타 문제 때문에 /etc/oratab 파일을 열어 변수를 정의하듯 미리 변경할 정보를 저장해두면 더 간편하게 환경변수 수정 가능.
$ 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>: # # 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. # # orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N- orcl는 기존 생성한 SID
- ORACLE_SID=prod (추가 생성할 데이터베이스)
oratab 파일 수정 후 oraenv 명령으로 prod로 변경.
$ . oraenv ORACLE_SID = [prod] ? prod The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle ORACLE_SID 값만 입력하면 ORACLE_HOME에 대한 정보를 자동 인식하여 변경 완료. === 오라클 PFILE/SPFILE 생성 === 1. pfile 생성 * 파라미터 파일에 DB명,컨트롤파일,SGA_TARGET,... 추가 <source lang=shell> $ cd $ORACLE_HOME/dbs [oracle@host dbs]$ ls hc_DBUA0.dat hc_orcl.dat init.ora initorcl.ora lkORCL orapworcl spfileorcl.ora[oracle@host dbs]$ vi initprod.ora db_name=prod control_files='/u01/app/oracle/oradata/prod/control01.ctl' sga_target=400M remote_login_passwordfile='EXCLUSIVE'- Database Create는 nomount 상태에서 가능.
- 파라미터 파일을 읽을 수 있는 상태까지 Database를 올리는 작업이 필요하여 pfile을 직접 생성하여 최소로 필요한 내용 작성.
- pfile은 $ORACLE_HOME/dbs 경로에 init<ORACLE_SID>.ora 형태로 파일이 존재해야함.
- 기본적으로 Parameter file을 열기 위해서는 db_name, control_files, shared_pool_size 그리고 db_cache_size 이 4개지 파라미터가 정의되어 있어야함. (하지만 sga_target 파라미터를 정의한다면 sga 메모리를 자동으로 할당하기 때문에 shared_pool_size와 db_cache_size의 정보를 제외.
- remote_login_passwordfile은 Password fie이 하나의 데이터베이스에서 사용할 수 있도록 설정.(필수요소는 아님)
2. spfile 생성
pfile을 사용해서 실행할 수 있지만, 편의상 작성한 pfile로 spfile을 생성하고 Database를 실행.
spfile 생성 작업은 DB가 내려가있는 상태에서 만들 수 있고 생성 이후 spfile<ORACLE_SID>.ora 형태의 파일이 생성된것 확인 필요.
1.2 DB nomount 실행
SQL> startup nomount ORACLE instance started. Total System Global Area 417546240 bytes Fixed Size 2213936 bytes Variable Size 134219728 bytes Database Buffers 272629760 bytes Redo Buffers 8482816 bytes- Database 생성을 위해 nomount 상태로 DB 실행.
1.3 DB 생성
1. 오라클 데이터 저장 경로 생성 (T/S,REDO로그,등.. )
DB 생성하면서 만들어질 datafile, redologfile들의 경로 생성
$ sqlplus / as sysdba CREATE DATABASE prod USER SYS IDENTIFIED BY oracle USER SYSTEM IDENTIFIED BY oracle CONTROLFILE REUSE LOGFILE GROUP 1 ( '/u01/app/oracle/oradata/prod/redo01a.log' , '/u01/app/oracle/oradata/prod/redo01b.log' ) SIZE 100M REUSE, GROUP 2 ( '/u01/app/oracle/oradata/prod/redo02a.log' , '/u01/app/oracle/oradata/prod/redo02b.log' ) SIZE 100M REUSE DATAFILE '/u01/app/oracle/oradata/prod/system01.dbf' SIZE 400M REUSE AUTOEXTEND EXTENT MANAGEMENT LOCAL ON SYSAUX DATAFILE '/u01/app/oracle/oradata/prod/sysaux01.dbf' SIZE 200M REUSE AUTOEXTEND ON DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u01/app/oracle/oradata/prod/temp01.dbf' SIZE 100M REUSE AUTOEXTEND ON UNDO TABLESPACE UNDOTBS1 DATAFILE '/u01/app/oracle/oradata/prod/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND \ ON CHARACTER SET KO16MSWIN949; -- CHARACTER SET AL32UTF8 -- NATIONAL CHARACTER SET AL16UTF16; Database created.- USER SYS IDENTIFIED ... : SYS 유저 비밀번호 지정
- USER SYSTEM IDENTIFIED ... : SYSTEM 유저 비밀번호 지정
- CONTROLFILE :REUSE 명령을 사용하기 위해 명시. LOGFILE GROUP 이나 DATAFILE들에서도 REUSE(파일이 이미 존재한다면 해당 파일 이름 그대로 사용하여 덮어써서 DB를 생성) 옵션
- LOGFILE GROUP : 로그 파일은 최소 2개의 그룹으로 지정 해야함 .
- EXTENET MANAGEMENT LOCAL : LOCAL 방식은 Tablespace에 대한 free space 공간을 datafile 자체에서 bitmap을 이용해서 관리하는 방법.
- 다른방법으로 Tablespace의 free space 공간에 대한 정보를 data dictionary에서 관리하는 DICTIONARY 방식이 있지만
- data dictionary에 대한 경합이 발생하고 성능저하의 원인으로 Oracle 8i부터 LOCAL 방식이 처음 소개되면서 이 방식으로 관리하도록 권장.
리두로그 3개 그룹으로 추가 예)
1.4 DB Open 확인
1. DB 오픈 상태 확인
SQL> select instance_name, status from v$instance; INSTANCE_NAME STATUS ---------------- ------------ prod OPENInstance가 Open 상태인지 확인
1.5 오라클 설치 후 후속작업
- 하지만 수동 생성했을 때 Data Dictionary 조회작업이나, Oracle에서 제공하는 패키지들이 실행되지 않음.
- 이런 문제들을 해결하기 위해 몇 가지 후속작업 진행 해야함.
1. 딕셔너리,패키지(catalog.sql, catproc.sql) 실행
2. invalid 상태인 오브젝트가 있는지 확인
3. password 파일 생성
cd $ORACLE_HOME/dbs orapwd file=orapwnewdb password=oracle4. tnsnames.ora, listener.ora 파일 수정
cd $ORACLE_HOME/network/admin vi tnsnames.ora vi listener.ora
※ PUPBLD.SQL
유저 생성후 로그인 할때 아래 메세지 발생시.
PRODUCT_USER_PROFILE를 액세스하는데 오류입니다 경고: 사용자 프로파일 정보가 적재되지 않았습니다. SYSTEM으로 PUPBLD.SQL 실행이 필요합니다
cd $ORACLE_HOME/sqlplus/admin sqlplus system/****** SQL> @pupbld- pupbld.sql 스크립트는 Product User Profile 테이블 및 관련 프로시져를 생성.
1.6 멀티 SID 사용 확인
1.환경변수 변경
$ . oraenv ORACLE_SID = [prod] ? orcl The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle$ sqlplus / as sysdba2.prod에 붙어서 작업하다가 orcl로 변경해서 작업하기 위해서 oraenv로 환경변수의 정보 변경 후 로그인.
1) orcl instance startup
SQL> startup2) orcl instance 기동
SQL> select instance_name, status from v$instance;orcl에서도 마찬가지로 instance의 open 상태를 확인.
$ ps -ef | grep smon- 주요 프로세스중 하나인 smon의 프로세스가 기동중인지 확인.
- prod와 orcl모두 올라와 있다면 각각 데이터베이스에 연결된 인스턴스 확인.