# 1 этап - подготовка к установке CarabiDB (OracleDB 12c) на CentOS 7

# Подготовка Centos 7

Выполнять из под root

## sysctl
```
cat << EOT >> /etc/sysctl.d/90-oracle.conf
fs.file-max = 6815744 
kernel.sem = 250 32000 100 128 
kernel.shmmni = 4096 
kernel.shmall = 1073741824 
kernel.shmmax = 4398046511104 
net.core.rmem_default = 262144 
net.core.rmem_max = 4194304 
net.core.wmem_default = 262144 
net.core.wmem_max = 1048576 
fs.aio-max-nr = 1048576 
net.ipv4.ip_local_port_range = 9000 65500 
EOT
```
Применить настройки: ```sysctl --system```

Проверить, применены ли настройки: ```sysctl  -a | grep file-max```

## security
```
cat >> /etc/security/limits.d/90-oracle.conf << EOT
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock unlimited
oracle hard memlock unlimited
EOT
```
security Будет применено для всех новых сессий

## актульные адреса к репозиторию
Centos 7 has reached EOL (End of Life) today, 1 July 2024, thus mirrorlist.centos.org is no longer required. In order to install packages, you have to adjust repositories from "mirrorlist" to "baseurl". For most cases vault.centos.org will work well.
```
sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's|^#\?baseurl=http://mirror\.centos\.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's|^#\?baseurl=http:|baseurl=https:|g' /etc/yum.repos.d/CentOS-*.repo
```
Если SSH сервер не доступен, то можно скачать  комманды выше, через curl:
```
curl https://dl.carabisol.ru/centos7-fix.sh > /root/centos7-fix.sh
bash /root/centos7-fix.sh
sudo yum makecache
```

## зависимые пакеты
```
yum install mc unzip binutils smartmontools sysstat -y
yum install make compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 compat-libcap1 -y
yum install libaio libaio.i686 libaio-devel libaio-devel.i686 libXext libXext.i686 libXtst libXtst.i686 libX11 libX11.i686 libXau libXau.i686 libxcb libxcb.i686 libXi libXi.i686 xorg-x11-utils xauth net-tools xdpyinfo -y
yum install unixODBC unixODBC-devel zlib-devel zlib-devel.i686 -y
```
## создание пользователя и групп
```
groupadd -g 1101 oinstall
groupadd -g 1102 dba
groupadd -g 1103 oper
groupadd -g 1104 backupdba
groupadd -g 1105 dgdba
groupadd -g 1106 kmdba
groupadd -g 1107 asmdba
groupadd -g 1108 asmoper
groupadd -g 1109 asmadmin
useradd -u 1101 -g oinstall -G dba,oper oracle
```
***!!!*** ***Заменить MYPASS*** на свой пароль для пользователя oracle:

```echo "MYPASS" | passwd oracle --stdin```

## отключение SELinux
```
sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/sysconfig/selinux
setenforce permissive
cat /etc/sysconfig/selinux
```

## настройка firewalld
```
firewall-cmd --permanent --add-port=1521/tcp
firewall-cmd --reload
```

## проверка X11Forwarding в SSH
```mcedit /etc/ssh/sshd_config```

Убедится, что есть строчка ```X11Forwarding yes```

## прописать в hosts
```
echo "127.0.0.1 CarabiDB CarabiDB.loc" >> /etc/hosts
```

## прописать переменные окужения
```
cat << EOT >> /home/oracle/.profile
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=CarabiDB
export ORACLE_UNQNAME=CarabiDB
export ORACLE_BASE=/home/oracle/oracle
export ORACLE_HOME=\$ORACLE_BASE/12c
export ORACLE_HOME_LISTNER=\$ORACLE_HOME
export ORACLE_SID=CarabiDB
export NLS_LANG=AMERICAN_AMERICA.UTF8
export PATH=/usr/sbin:\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOT
```

```
cat << EOT >> /home/oracle/.bashrc
if [ -f /home/oracle/.profile ]; then
        . /home/oracle/.profile
fi
EOT
```

## подготовить установщик
Создать директории:
```
mkdir /home/oracle/orainstall
mkdir /home/oracle/oracle
chown -R oracle /home
```
Скопировать установщик (linuxx64_12201_database.zip) в /home/oracle/orainstall (например, с помощью winscp)

Распаковать и выставить права:
```
unzip /home/oracle/orainstall/linuxx64_12201_database.zip -d /home/oracle/orainstall
chown -R oracle /home/oracle
```

## установка OracleDB
Выполнить действия по автоматической или графической установки из разделов ниже

Рекомендуется автоматическая установка