Posts GCP에 오라클 19c 설치하기
Post
Cancel

GCP에 오라클 19c 설치하기

1. GCP 용도

  • Informatica 제품 테스트를 위한 DB 설치 추후 PostgreSQL 설치 예정.
  • 웹개발 프로젝트를 위한 Mriadb 설치 예정.

2. VM Spec

  • asia지역은 현재 N1 시리즈만 가능.
  • OS : CentOS 7
  • DiskSize : 100G
  • vCPU : 2 core
  • Memory : 7.5G

Alt text

3. OS 설정 및 oracle 계정 생성

  • 커널 파라미터 설정.
커널 파라미터 정리
kernalParametercomment
fs.aio-max-nr허가된 최대 동시 요청 수
fs.file-maxOS에서 동시에 오픈할 수 있는 파일의 수를 제어
kernel.shmall공유 메모리 최대 페이지수
kernel.shmmax공유 세그먼트 최대 사이즈 (바이트 수)
kernel.shmmni공유 세그먼트 최대 수
kernel.sem아래 네 개의 값을 차례로 설정한다.
-semmsl : 세마포어 세트당 최대 세마포어 수
- semmns : 시스템에 할당할 수 있는 최대 세마포어 개수
- semopm : 시스템 호출당 수행할 수 있는 최대 세마포어 수
- semmni : 세마포어 세트의 최대 수
net.ipv4.ip_local_port_range신규 접속시에 허용할 수 있는 포트의 사용 범위
net.core.rmem_default소켓이 사용하는 수신 버퍼(Window Size)의 기본값
net.core.rmem_max소켓이 사용하는 수신 버퍼(Window Size)의 최대값
net.core.wmem_default소켓이 사용하는 송신 버퍼(Window Size)의 기본값
net.core.wmem_max소켓이 사용하는 수신 버퍼(Window Size)의 최대값


  • sysctl -p 명령어로 파라미터 반영.

Alt text

  • 그룹 oinstall,dba 생성 후 oracle 계정 생성.

Alt text

  • ulimit 설정 변경 (ulimit -a 설정 확인)

    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack 10240
    

Alt text

  • yum update 및 아래의 명령어로 기본 패키지 설치
    
      yum install -y binutils compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh compat-libstdc++-33 libaio libaio-devel libgcc libstdc++ libstdc++-devel  libXi libXtst make sysstat zip unzip net-tools smartmontools
    

4. puttygen을 사용하여 ssh key 생성

  • root로 접속을 하기위해 sudo passwd 로 root 비밀번호 설정 후 /etc/ssh/sshd_config 에서 PermitRootLogin, PasswordAuthentication 설정을 Yes로 변경.
  • Generate 버튼 클릭 후 로딩바에 마우스 좌우로 이동하면 키생성.

    Alt text

  • Key comment에 root 또는 생성한 아이디를 입력 후 Generate 버튼 클릭.

    Alt text

  • Key comment에 아이디 입력후 public Key와 private Key 저장.

  • GCP 콘솔 -> Compute Engine -> 메타데이터 -> ssh 키에 puttygen으로 만든 키 등록.

5. 폴더 생성 및 소유자 변경

  • mkdir -p /opt/oracle/product/19.3/dbhome_1
  • chown -R oracle:oinstall /opt/oracle
  • mkdir -p /opt/oraInventory
  • chown oracle:oinstall /opt/oracle
  • mv LINUX.X64_193000_db_home.zip /opt/oracle/product/19.3/dbhome_1
  • unzip LINUX.X64_193000_db_home.zip

6. 환경 변수 설정 및 적용


    export ORACLE_BASE=/opt/oracle
    export ORACLE_HOME=/opt/oracle/product/19.3/dbhome_1
    export ORACLE_SID=orcl
    export PATH=$ORACLE_HOME/bin:$PATH
    -----------------------------------------------------
    source ~/.bash_profile
  

7. 소프트웨어 설치

  • db_install.rsp 수정

    커널 파라미터 정리
    
        oracle.install.option=INSTALL_DB_SWONLY     => 다음 중 하나 선택 가능  INSTALL_DB_SWONLY, INSTALL_DB_AND_CONFIG
        UNIX_GROUP_NAME=oinstall                     => 인벤토리 디렉토리의 UNIX 그룹 선택
        INVENTORY_LOCATION=/opt/oraInventory      => 인벤토리 디렉토리 위치 선택
        ORACLE_HOME=/opt/oracle/product/19.3/dbhome_1  => ORACLE_HOME 위치
        ORACLE_BASE=/opt/oracle                        => ORACLE_BASE 위치
        oracle.install.db.InstallEdition=EE                 => 데이타베이스 설치 버전 선택, EE Enterprise Edition, SE2  Standard Edition 2
        oracle.install.db.OSDBA_GROUP=dba           => 데이타베이스 관리자 그룹
        oracle.install.db.OSOPER_GROUP=                => 선택사항, 데이터베이스 운영자(OSOPER) 그룹
        oracle.install.db.OSBACKUPDBA_GROUP=dba      => 데이터베이스 백업 및 복구(OSBACKUPDBA) 그룹
        oracle.install.db.OSDGDBA_GROUP=dba        => Dtata Guard관리(OSDGDBA) 그룹
        oracle.install.db.OSKMDBA_GROUP=dba        => 암호화키 관리(OSKMDBA)
        oracle.install.db.OSRACDBA_GROUP=dba       => Real Application Cluster 관리(OSRACDBA) 그룹
        oracle.install.db.rootconfig.executeRootScript=true    => true,false 선택,  false일 경우 Manually 하게 ROOT SCRIPT 실행
        oracle.install.db.rootconfig.configMethod=ROOT        => ROOT, SUDO 중 선택, executeRootScript 설정값이 true 일 경우 선택
    
  • 설치 명령어 실행

    
    $ORACLE_HOME/runInstaller -executePrereqs -responseFile $ORACLE_HOME/install/response/db_install.rsp
    

    Alt text

8. 리스너 구성.


  netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp
  

Alt text

9. 데이터베이스 구성.


  vi $ORACLE_HOME/assistants/dbca/dbca.rsp
  dbca -silent -createDatabase -responsefile $ORACLE_HOME/assistants/dbca/dbca.rsp
  
dbca.rsp 설정

    $  responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
    gdbName=orcl
    #sid=orcl
    #databaseConfigType=SI
    createAsContainerDatabase=TRUE
    numberOfPDBs=1
    pdbName=orapdb
    #useLocalUndoForPDBs=TRUE
    pdbAdminPassword=oracle_4U
    templateName=General_Purpose.dbc
    sysPassword=oracle_4U
    systemPassword=oracle_4U
    #datafileDestination=$ORACLE_BASE/oradata
    #recoveryAreaDestination=$ORACLE_BASE/flash_recovery_area
    #storageType=FS
    characterSet=AL32UTF8
    nationalCharacterSet=AL16UTF16
    listeners=LISTENER
    memoryPercentage=40
    #databaseType=MULTIPURPOSE
    automaticMemoryManagement=FALSE
    #totalMemory=1024
  

Alt text

10. infa 유저 생성

  • 12c 부터는 ALTER SESSION SET “_ORACLE_SCRIPT” = TRUE; 실행 후 유저 생성해야 11g 처럼 유저 생성 가능.

11. 오라클 포트 열기.

Alt text

  • 연결 성공 Alt text

12. 오라클 서비스 등록하기.

  • /etc/oratab 파일에서 orcl:/opt/oracle/product/19.3/dbhome_1:Y 변경

  • 리스너 등록


 vi /usr/lib/systemd/system/oracle_listener.service
 
리스너 등록 스크립트
1
2
3
4
5
6
7
8
9
10
11
12
13
	          [Unit]
      		Description=oracle listener
	          After=network.target
	          [Service]
	          Type=forking
	          Environment=ORACLE_BASE=/opt/oracle
	          Environment=ORACLE_HOME=/opt/oracle/product/19.3
	          Environment=ORACLE_SID=orcl
	          ExecStart=/opt/oracle/product/19.3/dbhome_1/bin/lsnrctl start
	          ExecStop=/opt/oracle/product/19.3/dbhome_1/bin/lsnrctl stop
	          User=oracle
	          [Install]
	          WantedBy=multi-user.target
  • 인스턴스 등록

  vi /usr/lib/systemd/system/oracle_instance.service
 
인스턴스 등록 스크립트
1
2
3
4
5
6
7
8
9
10
11
12
13
14
	[Unit]
	Description=oracle instance
	After=network.target syslog.target
	[Service]
	Type=forking
	User=oracle
	Group=database
	Environment=ORACLE_BASE=/opt/oracle
	Environment=ORACLE_HOME=/opt/oracle/product/19.3
	Environment=ORACLE_SID=orcl
	ExecStart=/opt/oracle/product/19.3/dbhome_1/bin/dbstart
	ExecStop=/opt/oracle/product/19.3/dbhome_1/bin/dbshut
	[Install]
	WantedBy=multi-user.target

13. Systemd에 등록


 systemctl daemon-reload
 systemctl start oracle_listener.service
 systemctl enable oracle_listener.service
 systemctl start oracle_instance.service
 systemctl enable oracle_instance.service
 
This post is licensed under CC BY 4.0 by the author.

Contents

Docker 기본

Scala 프로젝트 Gradle로 빌드하기

Comments powered by Disqus.