생계/Oracle2021. 9. 20. 17:47

 

1. 파라미터 파일이란 : 

   shutdown 상태에서 no mount 가 되면 SGA 등이 포함된 instance 를 메모리에 올리게 되는데 이때

 파라미터 파일을 참고해서 instance 를 올린다. 

 오라클 서버 프로세스가 사용할 인스턴스를 어떤 스펙으로 올려라 같은 레시피 같은 것.

 

2. 어떤것을 규정하는가 

- 인스턴스에 대한 내용(SGA, PGA, 버퍼캐쉬)

- 컨트롤 파일의 위치

- 기타 성능 및 버그 관련 work around

 

3. 최적화 

파라미터는 사이트마다 최적이 다르다. 

- 최적을 알고 싶다면 oracle acs 파라미터 진단 서비스  => 유료 

- 널리 쓰이는 공통적인 것은 적용

- 좋은 기능이지만 리스크가 있을만한것은 놔두고  

- 그때그때 필요한것을 추가 

- 버그 문제는 히든파라미터를 써가며 work around

- 현실 : 오라클 버전 업, 패치 적용이후 파라미터들을 최신, 최적화하여 관리해야 하지만, 한번 설정한 파라미터는 시간이 갈수록 side effect 에 대해서 책임지기 싫어서 놔둠.

- 결론 : 한방에 최적을 알고 싶지만 경험을 통해 넣고 빼고 해야함 

 

반응형

'생계 > Oracle' 카테고리의 다른 글

DBMS_XMLGEN.GETXMLTYPE 테이블정의서  (0) 2021.10.23
오라클 서버 기동 단계  (0) 2021.10.09
sybase datetime view convert  (0) 2021.09.18
oracle 19c 설치 virtual box 오라클리눅스  (0) 2021.09.15
SQL LOADER 사용법 정리  (0) 2021.09.07
Posted by 돌고래트레이너
생계/Oracle2021. 9. 18. 14:47

사이베이스 datetime -> 오라클로 이관 하기
날짜 타입의 경우 형식이 달라 바로 이관이 되지 않는다.
sql loader 로 들어갈수 있게 형식을 맞추고 집어넣어야 한다.


1. sybase 에서 view 만들기

-- 오라클 date 타입 으로 변경 

create view aaa
as
select aa, bb,
convert(varchar, datetime_column, 112) || str_replace( convert(varchar, datetime_column, 8),':',null) dt
from souce_tab
go
=> yyyymmddhh24miss 형식으로 datetime 을 바꿔준다.

-- 오라클 timestamp 타입(milsec 까지) 으로 변경 

convert(varchar, datetime_column, 112) || str_replace( convert(varchar, datetime_column, 20),':',null) dt

=> yyyymmddhh24missff 형식으로 datetime 을 바꿔준다.



2. bcp out 으로 덤프 내리기

bcp owner..table_name out ./dat/TAB_NM.dat -c -t'|~#' -r'!@\r\n' -U계정 -P비번
-t : field terminator => '|' 한글자는 데이터에 포함될 가능성이 있고, '||' 두글자는 널 컬럼이 많을 경우 제대로 인식 못할 가능성. 안전하게 특수문자 2,3 개
-r : row terminator => 필드 하나의 값에 여러줄 데이터가 있을 경우 loader 가 row 를 잘 인식못한다.
'특수문자 + 개행' 조합 으로 한줄의 끝을 정하자.

SELECT 'BCP '||OWNER||'..'||TABLE_NAME||' OUT ./dat/'||table_name||'.dat -c -t'||''''||'|~#'||''''||' -r'||''''||'!@\r\n'||''''||' -Uxx -Pp'
FROM DBA_TABLES
WHERE OWNER='XXX'
ORDER BY TABLE_NAME
;

3. control 파일 만들기
이관 대상 테이블이 여러개일 경우, 한방 쿼리로 ctl 파일을 만들자.

========= mk_ctl.sql ===========
SET PAGESIZE 0
SET ECHO OFF
SET VERIFY OFF
SET FEEDBACK OFF

spool ./ctl/&&..ctl

SELECT 'LOAD DATA'||CHAR(10)
||'INFILE '||''''||'./dat/'||t.table_name||'.dat'||''''||' "str '||''''||'!@\r\n'||''''||'"'||CHR(10)
||'TRUNCATE '||CHR(10)
||'INTO TABLE '||OWNER||'.'||TABLE_NAME||CHR(10)
||'FIELDS TERMINATED BY '||''''||','||''''||CHR(10)
||'TRAILING NULLCOLS'||CHR(10)
||'('
FROM DBA_TABLES T
WHERE T.OWNER='AA'
AND T.TABLE_NAME LIKE '&&1'
UNION ALL
SELECT DECODE(COLUMN_ID,1,'',',')||COLUMN_NAME||
DECODE(DATA_TYPE,'VARCHAR2',' CHAR('||DATA_LENGTH||')',
'CHAR',' CHAR('||DATA_LENGTH||')',
'CLOB',' CHAR('||DATA_LENGTH||')',
'DATE',' DATE '||''''||'YYYYMMDDHH24MISS'||''''
)
FROM (
SELECT T.OWNER, T.TABLE_NAME, C.COLUMN_NAME, C.DATA_TYPE,
C.DATA_LENGTH, C.COLUMN_ID
FROM DBA_TABLES T, DBA_TAB_COLS C
WHERE T.OWNER='AA'
AND T.TABLE_NAME = C.TABLE_NAME
AND T.TABLE_NAME LIKE '&&1'
ORDER BY COLUMN_ID
)
UNION ALL
SELECT ')' FROM DUAL
;

spool off
exit;

** data_type = timestamp(6) => .ctl  timestamp missff

입력값 (테이블 이름) 을 받고 ctl 파일 만들기
========= mk_ctl.sh ===========

sqlplus -s lee/pwd @mk_ctl $1

========= run_mkctl.sh ===========

./mk_ctl.sh TAB_NM
./mk_ctl.sh TAB_NM

4. sql loader 실행
loader 스크립트 만들기
sqlldr userid=xxx/aaa control='./ctl/aaa.ctl' log='./log/aaa.log' bad='./bad/aaa.bad'

select 'sqlldr ....'
from dba_tables t
where t.owner='XXX'
order by table_name

반응형
Posted by 돌고래트레이너
생계/Oracle2021. 9. 15. 22:34

 oracle linux 에 oracle 19c 를 설치 해보자.

가상화머신은 oracle virtual box 를 사용하였다.  

아래 글에서 가상화머신을 다운 받을수 있다. 

 

https://riorio.tistory.com/403

 

가상머신 virtualbox mysql 설치 - 1. os 우분투 설치

가상머신에 mysql 을 설치해보자.. 예전에는 가상화머신을 vmware 를 많이 썼는데 유료로 바뀌기도 하고 크랙을 찾기도 쉽지않다. 반면 오라클 virtual box 는 언제 바뀔지 모르겠지만 아직까지는 무료

riorio.tistory.com


1. sw 다운로드

 - oracle linux

https://yum.oracle.com/oracle-linux-isos.html

위의 링크에서 full 로 다운을 받자.  

- oracle 19.3 

지금 21까지 나와있는데 19c 를 많이 사용하고 있으니 19c 를 다운받자. 

https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html


2. virtual box 리눅스 설치 

virtual box 실행 -> 머신 -> 새로만들기 

 

 메모리는 최소 1G 를 잡아줘야 에러없이 DB 설치를 무난하게 할수 있다. 

 


 

3. 오라클 설치 준비

yum -y install oracle-database-preinstall-19c


# vi /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500


# vi /etc/security/limits.d/oracle-database-preinstall-19c.conf
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728


- 유저 및 그룹 수정

 # usermod -g dba -G dba oracle 

- selinux permissive 설정

# vi /etc/selinux/config
SELINUX=permissive


- 방화벽 해제
 
# systemctl stop firewalld
# systemctl disable firewalld
 

- 설치 경로 생성
 
mkdir -p /app/oracle/product/19.0.0/db_1/
mkdir -p /app/oradata
chown -R oracle:oinstall /app 
chmod -R 775 /app

## -p 옵션은 없는 경로를 만들어가면서 생성한다.  


- 서버에 Oracle Database 설치 미디어 업로드 후 권한 부여

 
# chown oracle:oinstall LINUX.X64_193000_db_home.zip
# ls -al /app/oracle/product/19.0.0/db_1/


- 오라클 계정 접속 후 .bash_profile 에 아래 내용 추가
  
# su - oracle
$ vi .bash_profile

---------------- .bash_profile -------------------------
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

export TMP=/tmp
export TMPDIR=$TMP

export LANG=C
export LC_ALL=C
export CV_ASSUME_DISTID=RHEL7.6

export ORACLE_HOSTNAME=oel.ora19
export ORACLE_UNQNAME=ora19
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1
export ORA_INVENTORY=/oraInventory
export ORACLE_SID=ora19
export DATA_DIR=/app/oradata
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


---------------- .bash_profile -------------------------

4. 오라클 설치 

runInstaller 실행 

DB 생성중에 실패했다면 나중에 디비만 다시 생성하자

=> dbca 

반응형

'생계 > Oracle' 카테고리의 다른 글

오라클 초기화 파라미터 파일  (0) 2021.09.20
sybase datetime view convert  (0) 2021.09.18
SQL LOADER 사용법 정리  (0) 2021.09.07
오라클 라이선스 lifetime support  (0) 2021.08.26
create view , any view 권한  (0) 2020.06.16
Posted by 돌고래트레이너