카테고리 없음

오라클 사전 설치 작업 중 램 크기 확인, 사용자 및 그룹 생성, 필수 디렉토리 생성

Dong538 2021. 11. 10. 14:22

물리 램 크기 확인, 스왑 공간 확인하는 명령이다. 스왑 공간 사이즈 16GB 이내일 때 램과 동일 크기만큼이어야 하고, 그 이상일 땐 16GB이면 된다. 

[root@enp0s3 ~]# free
              total        used        free      shared  buff/cache   available
Mem:        2914260      602512     1815152        8356      496596     2254292
Swap:       3145724        6920     3138804

아래의 /dev/mapper/ol-root   46G  6.7G   40G  15% / 는 /tmp 디렉토리 공간에 해당한다. 최소 1GB 요구된다. 또한, /dev/shm 마운트 영역이 tmpfs 유형인지 확인한다. 

[root@enp0s3 ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             1.4G     0  1.4G   0% /dev
tmpfs                1.4G     0  1.4G   0% /dev/shm
tmpfs                1.4G  9.5M  1.4G   1% /run
tmpfs                1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/mapper/ol-root   46G  6.7G   40G  15% /
/dev/sda1           1014M  347M  668M  35% /boot
tmpfs                285M   28K  285M   1% /run/user/1000
tmpfs                285M     0  285M   0% /run/user/0

시스템 아키텍처가 소프트웨어를 실행하는 것이 가능한지 여부 확인한다:

[root@enp0s3 sjh]# uname -m
x86_64

설치된 Linux의 배포 및 버전을 확인한다:

[root@enp0s3 sjh]# cat /etc/oracle-release
Oracle Linux Server release 7.9

필요한 커널 에라타가 설치되었는지 확인한다:

[root@enp0s3 sjh]# uname -r
3.10.0-1160.42.2.el7.x86_64

필수 패키지가 설치되어있는지 rpm -q 옵션 명령으로 확인하고 필요 시 설치한다. 

 

필요한 그룹이 존재하는지 확인하고, 그룹을 추가한다: grep이나 tail, vim 등으로 /etc/group 파일 확인해서 알 수 있다.

[root@enp0s3 ~]# tail /etc/group
avahi:x:70:
postdrop:x:90:
postfix:x:89:
ntp:x:38:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
sjh:x:1000:
vboxsf:x:982:sjh

groupadd, useradd 명령의 절대 경로는 /usr/sbin/groupadd, /usr/sbin/useradd이다. 그래서 사용자, 그룹 생성시 # /usr/sbin/groupadd -g 54325 dgdba 처럼 입력해도 아래와 동일한 결과를 얻는다. 

[root@enp0s3 ~]# groupadd -g 54321 oinstall

[root@enp0s3 ~]# groupadd -g 54322 dba
[root@enp0s3 ~]# groupadd -g 54323 oper
[root@enp0s3 ~]# groupadd -g 54324 backupdba
[root@enp0s3 ~]# groupadd -g 54325 dgdba
[root@enp0s3 ~]# groupadd -g 54326 kmdba
[root@enp0s3 ~]# groupadd -g 54327 asmdba

[root@enp0s3 ~]# groupadd -g 54328 asmoper
[root@enp0s3 ~]# groupadd -g 54329 asmadmin
[root@enp0s3 ~]# groupadd -g 54330 racdba

[root@enp0s3 ~]# grep oinstall /etc/group    # 일반적으로는 one by one 으로 작업 전/후 확인하는 것이 좋다
oinstall:x:54321:

[root@enp0s3 ~]# tail /etc/group                # 또는 tail 이나 vim으로 한번에 작업 후 확인 
oinstall:x:54321:
dba:x:54322:
oper:x:54323:
backupdba:x:54324:
dgdba:x:54325:
kmdba:x:54326:
asmdba:x:54327:
asmoper:x:54328:
asmadmin:x:54329:
racdba:x:54330:

설치 소유자 사용자 (예: oracle) 을 생성한다. 이름은 관습적으로 소문자 oracle을 사용하고, uid는 그룹명 oinstall의 gid와 동일한 ID값으로 설정한다. 

[root@enp0s3 ~]# useradd -u 54321 -g oinstall -G dba, oper, backupdba, dgdba, kmdba, asmdba, asmoper, asmadmin, racdba oracle

[root@enp0s3 ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba)

생성한 오너 사용자에 대한 비밀번호를 설정한다. 그 계정으로 들어가서 passwd 입력해도 되지만, 짧거나 쉬운 비밀번호는 생성/변경이 불가능해서 root로 그 계정에 설정해주는 것이 좋다 (경고는 뜨지만 업데이트 가능).  

[root@enp0s3 ~]# passwd oracle
oracle 사용자의 비밀 번호 변경 중
새  암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.

오라클이 설치될 디렉토리이자 ORACLE_HOME 환경 변수 디렉토리를 생성하고 소유자와 파일 시스템 접근 권한을 변경한다:

[root@enp0s3 ~]# mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
[root@enp0s3 ~]# mkdir -p /u01/app/oraInventory

[root@enp0s3 ~]# chown -R oracle:oinstall /u01/app/oracle

[root@enp0s3 ~]# chown -R oracle:oinstall /u01/app/oraInventory

[root@enp0s3 ~]# chmod -R 775 /u01/app                        # 기존 755 에서 775로 권한 변경

[root@enp0s3 ~]# ls -la /u01/app/oracle
합계 0
drwxrwxr-x. 3 oracle oinstall 21 11월  8 17:02 .
drwxrwxr-x. 4 root   root     40 11월  8 17:09 ..
drwxrwxr-x. 3 oracle oinstall 20 11월  8 17:02 product
[root@enp0s3 ~]# ls -la /u01/app/oraInventory
합계 0
drwxr-xr-x. 2 oracle oinstall  6 11월  8 17:09 .
drwxrwxr-x. 4 root   root     40 11월  8 17:09 ..

 

업데이트: 755로 진행하자

 

 

/etc/selinux/config 파일에서 다음 부분을 수정한다:

SELINUX=permissive

 

수정 후 서버 재시작하거나 # setenforce Permissive 명령을 실행한다. 

 

적절한 곳에 스크립트 파일을 생성하거나, 바로 ~<사용자명>/ 디렉토리에 .bash_profile 파일에 다음 내용을 추가한다. 

방법 1: 아래 내용을 /home/<사용자명>/.bash_profile 파일에 추가/수정한다.

# Oracle Settings

export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:/usr/local/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_KOREA.AL32UTF8

추가 후 source 명령이나 .(마침표) 명령으로 수정 반영한다. 

 

방법2: 커맨드 라인에 다음 내용을 입력한다. 다음처럼 cat 명령으로 파일 생성 시, 내용 중의 $(달러) 기호는 \(백슬래시) 특수문자로 이스케이프한다. 

[oracle@enp0s3 ~]$ mkdir ~oracle/scripts
[oracle@enp0s3 ~]$ cat > /home/oracle/scripts/setEnv.sh << EOF
> # Oracle Settings
> export TMP=/tmp
> export TMPDIR=\$TMP
>
> export ORACLE_BASE=/u01/app/oracle
> export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1
> export ORACLE_SID=orcl
> export PATH=\$ORACLE_HOME/bin:/usr/sbin:/usr/local/bin:usr/bin
> export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
> export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
> export NLS_LANG=AMERICAN_KOREA.AL32UTF8
> EOF

.bash_profile 파일 끝에 setEnv.sh 파일에 대한 참조를 추가한다. 

[oracle@enp0s3 ~]$ echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile

startup/shutdown 서비스에서 호출할 수 있는 스크립트를 만든다. 소유권과 접근 권한도 확인한다. 

[oracle@enp0s3 dbhome_1]$ cat > /home/oracle/scripts/start_all.sh << EOF
> #!/bin/bash
> . /home/oracle/scripts/setEnv.sh
>
> export ORAENV_ASK=NO
> . oraenv
> export ORAENV_ASK=YES
>
> dbstart \$ORACLE_HOME
> EOF

[oracle@enp0s3 dbhome_1]$ cat > /home/oracle/scripts/stop_all.sh << EOF
> #!/bin/bash
> . /home/oracle/scripts/setEnv.sh
>
> export ORAENV_ASK=NO
> . oraenv
> export ORAENV_ASK=YES
>
> dbshut \$ORACLE_HOME
> EOF

[oracle@enp0s3 dbhome_1]$ ls -la ~oracle/scripts/
합계 16
drwxr-xr-x. 2 oracle oinstall   62 11월  9 10:11 .
drwx------. 6 oracle oinstall 4096 11월  9 10:06 ..
-rw-r--r--. 1 oracle oinstall  384 11월  9 10:05 setEnv.sh
-rw-r--r--. 1 oracle oinstall  120 11월  9 10:08 start_all.sh
-rw-r--r--. 1 oracle oinstall  119 11월  9 10:11 stop_all.sh
[oracle@enp0s3 dbhome_1]$ chmod u+x ~oracle/scripts/*.sh
[oracle@enp0s3 dbhome_1]$ ls -la ~oracle/scripts/
합계 16
drwxr-xr-x. 2 oracle oinstall   62 11월  9 10:11 .
drwx------. 6 oracle oinstall 4096 11월  9 10:06 ..
-rwxr--r--. 1 oracle oinstall  384 11월  9 10:05 setEnv.sh
-rwxr--r--. 1 oracle oinstall  120 11월  9 10:08 start_all.sh
-rwxr--r--. 1 oracle oinstall  119 11월  9 10:11 stop_all.sh