proxmox monitori
This commit is contained in:
401
oracle/oracle-xe-lxc-install-guide.md
Normal file
401
oracle/oracle-xe-lxc-install-guide.md
Normal file
@@ -0,0 +1,401 @@
|
||||
# Ghid Instalare Oracle XE 21 în LXC pe Proxmox
|
||||
|
||||
## Rezumat Opțiuni
|
||||
|
||||
Din cercetare rezultă că **nu există template-uri LXC cu Oracle XE pre-instalat**. Cele mai viabile opțiuni sunt:
|
||||
|
||||
1. **Docker-in-LXC** (Recomandat) - Cea mai simplă și automatizată
|
||||
2. **Instalare manuală în Oracle Linux LXC** - Mai directă dar complexă
|
||||
3. **Script-uri de automatizare** - Soluții comunitate
|
||||
|
||||
## Opțiunea 1: Docker-in-LXC (RECOMANDAT) ✅
|
||||
|
||||
### Avantaje
|
||||
- Folosește imaginea oficială Oracle cu automatizare completă
|
||||
- Configurare minimă manuală
|
||||
- Suport oficial Oracle pentru containerizare
|
||||
- Ușor de actualizat și întreținut
|
||||
|
||||
### Dezavantaje
|
||||
- Overhead suplimentar Docker
|
||||
- Container în container (LXC → Docker)
|
||||
|
||||
### Pași de Instalare
|
||||
|
||||
#### 1. Creare Container LXC Privilegiat
|
||||
|
||||
SSH pe Proxmox:
|
||||
```bash
|
||||
ssh root@10.0.20.201
|
||||
|
||||
# Download template Ubuntu 22.04 dacă nu există
|
||||
pveam update
|
||||
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.gz
|
||||
|
||||
# Creare container privilegiat
|
||||
pct create 300 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.gz \
|
||||
--hostname oracle-xe \
|
||||
--cores 2 \
|
||||
--memory 4096 \
|
||||
--swap 2048 \
|
||||
--rootfs local-zfs:20 \
|
||||
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
|
||||
--unprivileged 0 \
|
||||
--features nesting=1,keyctl=1 \
|
||||
--ostype ubuntu
|
||||
```
|
||||
|
||||
#### 2. Configurare Container pentru Docker
|
||||
|
||||
```bash
|
||||
# Start container
|
||||
pct start 300
|
||||
|
||||
# Intrare în container
|
||||
pct enter 300
|
||||
|
||||
# Update sistem
|
||||
apt update && apt upgrade -y
|
||||
|
||||
# Instalare Docker
|
||||
apt install -y ca-certificates curl gnupg lsb-release
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
apt update
|
||||
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
||||
|
||||
# Verificare Docker
|
||||
docker --version
|
||||
systemctl enable docker
|
||||
systemctl start docker
|
||||
```
|
||||
|
||||
#### 3. Deploy Oracle XE 21 cu Docker
|
||||
|
||||
```bash
|
||||
# Crearea directoarelor pentru persistență
|
||||
mkdir -p /opt/oracle/oradata
|
||||
mkdir -p /opt/oracle/scripts/setup
|
||||
mkdir -p /opt/oracle/scripts/startup
|
||||
|
||||
# Pull imagine oficială Oracle XE
|
||||
docker pull container-registry.oracle.com/database/express:21.3.0-xe
|
||||
|
||||
# Rulare container Oracle XE
|
||||
docker run -d \
|
||||
--name oracle-xe \
|
||||
-p 1521:1521 \
|
||||
-p 5500:5500 \
|
||||
-e ORACLE_PWD=OraclePass123 \
|
||||
-e ORACLE_CHARACTERSET=AL32UTF8 \
|
||||
-v /opt/oracle/oradata:/opt/oracle/oradata \
|
||||
-v /opt/oracle/scripts/setup:/opt/oracle/scripts/setup \
|
||||
-v /opt/oracle/scripts/startup:/opt/oracle/scripts/startup \
|
||||
container-registry.oracle.com/database/express:21.3.0-xe
|
||||
|
||||
# Verificare status
|
||||
docker ps
|
||||
docker logs -f oracle-xe
|
||||
|
||||
# Așteptare până DB este ready (durează ~5-10 minute prima dată)
|
||||
# Căutați în logs: "DATABASE IS READY TO USE!"
|
||||
```
|
||||
|
||||
#### 4. Configurare Acces și Testare
|
||||
|
||||
```bash
|
||||
# Obținere IP container LXC
|
||||
ip addr show eth0
|
||||
|
||||
# Test conexiune din container
|
||||
docker exec -it oracle-xe sqlplus sys/OraclePass123@localhost:1521/XE as sysdba
|
||||
|
||||
# În SQL*Plus
|
||||
SQL> SELECT banner FROM v$version;
|
||||
SQL> exit
|
||||
|
||||
# Creare user pentru aplicații
|
||||
docker exec -it oracle-xe sqlplus sys/OraclePass123@localhost:1521/XE as sysdba <<EOF
|
||||
CREATE USER appuser IDENTIFIED BY AppPass123;
|
||||
GRANT CONNECT, RESOURCE TO appuser;
|
||||
GRANT CREATE SESSION TO appuser;
|
||||
GRANT UNLIMITED TABLESPACE TO appuser;
|
||||
exit;
|
||||
EOF
|
||||
|
||||
# Auto-start la boot
|
||||
docker update --restart=unless-stopped oracle-xe
|
||||
```
|
||||
|
||||
#### 5. Acces din Exterior
|
||||
|
||||
Din WSL sau alt sistem:
|
||||
```bash
|
||||
# Conexiune SQL*Plus
|
||||
sqlplus appuser/AppPass123@10.0.20.XXX:1521/XE
|
||||
|
||||
# Conexiune cu tool-uri GUI
|
||||
# JDBC URL: jdbc:oracle:thin:@10.0.20.XXX:1521:XE
|
||||
# Enterprise Manager: http://10.0.20.XXX:5500/em
|
||||
```
|
||||
|
||||
## Opțiunea 2: Instalare Manuală în Oracle Linux LXC
|
||||
|
||||
### Pași de Instalare
|
||||
|
||||
#### 1. Download și Creare Template Oracle Linux
|
||||
|
||||
```bash
|
||||
# Pe Proxmox
|
||||
cd /var/lib/vz/template/cache/
|
||||
|
||||
# Download Oracle Linux 8 rootfs
|
||||
wget https://images.linuxcontainers.org/images/oraclelinux/8/amd64/default/20240101_00:00/rootfs.tar.xz -O oraclelinux-8_amd64.tar.xz
|
||||
|
||||
# Creare container
|
||||
pct create 301 local:vztmpl/oraclelinux-8_amd64.tar.xz \
|
||||
--hostname oracle-xe-native \
|
||||
--cores 2 \
|
||||
--memory 4096 \
|
||||
--swap 2048 \
|
||||
--rootfs local-zfs:20 \
|
||||
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
|
||||
--unprivileged 0 \
|
||||
--features nesting=1
|
||||
```
|
||||
|
||||
#### 2. Pregătire Sistem pentru Oracle XE
|
||||
|
||||
```bash
|
||||
pct start 301
|
||||
pct enter 301
|
||||
|
||||
# Configurare hostname și hosts
|
||||
echo "oracle-xe-native" > /etc/hostname
|
||||
echo "127.0.0.1 oracle-xe-native" >> /etc/hosts
|
||||
|
||||
# Disable IPv6 (Oracle XE compatibility)
|
||||
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
|
||||
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
|
||||
sysctl -p
|
||||
|
||||
# Install pachete necesare
|
||||
yum install -y oracle-database-preinstall-21c
|
||||
yum install -y wget unzip
|
||||
|
||||
# Configurare kernel parameters pentru Oracle
|
||||
cat >> /etc/sysctl.conf <<EOF
|
||||
fs.aio-max-nr = 1048576
|
||||
fs.file-max = 6815744
|
||||
kernel.shmall = 2097152
|
||||
kernel.shmmax = 4294967295
|
||||
kernel.shmmni = 4096
|
||||
kernel.sem = 250 32000 100 128
|
||||
net.ipv4.ip_local_port_range = 9000 65500
|
||||
net.core.rmem_default = 262144
|
||||
net.core.rmem_max = 4194304
|
||||
net.core.wmem_default = 262144
|
||||
net.core.wmem_max = 1048576
|
||||
EOF
|
||||
sysctl -p
|
||||
```
|
||||
|
||||
#### 3. Download și Instalare Oracle XE 21c
|
||||
|
||||
```bash
|
||||
# Download Oracle XE (necesită cont Oracle)
|
||||
# Manual: Download de pe https://www.oracle.com/database/technologies/xe-downloads.html
|
||||
# Transfer fișierul oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm în container
|
||||
|
||||
# Sau folosește wget cu link direct (dacă ai)
|
||||
cd /tmp
|
||||
# wget [ORACLE_XE_DOWNLOAD_LINK]
|
||||
|
||||
# Instalare RPM
|
||||
yum localinstall -y oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
|
||||
|
||||
# Configurare automată
|
||||
/etc/init.d/oracle-xe-21c configure <<EOF
|
||||
OraclePass123
|
||||
OraclePass123
|
||||
EOF
|
||||
|
||||
# Set environment
|
||||
echo 'export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE' >> /etc/profile
|
||||
echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> /etc/profile
|
||||
echo 'export ORACLE_SID=XE' >> /etc/profile
|
||||
source /etc/profile
|
||||
|
||||
# Enable auto-start
|
||||
systemctl enable oracle-xe-21c
|
||||
systemctl start oracle-xe-21c
|
||||
```
|
||||
|
||||
## Opțiunea 3: Script-uri de Automatizare
|
||||
|
||||
### Folosire Repository-uri GitHub
|
||||
|
||||
```bash
|
||||
# Exemplu cu gvenzl/oci-oracle-xe
|
||||
git clone https://github.com/gvenzl/oci-oracle-xe
|
||||
cd oci-oracle-xe
|
||||
|
||||
# Build container image
|
||||
./buildContainerImage.sh -v 21.3.0 -x
|
||||
|
||||
# Sau folosire directă cu Docker
|
||||
docker run -d \
|
||||
-p 1521:1521 \
|
||||
-e ORACLE_PASSWORD=OraclePass123 \
|
||||
gvenzl/oracle-xe:21-slim
|
||||
```
|
||||
|
||||
## Cerințe Hardware și Configurare
|
||||
|
||||
### Resurse Minime Container
|
||||
- **CPU:** 2 cores
|
||||
- **RAM:** 4GB (minim 2GB)
|
||||
- **Disk:** 20GB (9GB minim pentru Oracle)
|
||||
- **Swap:** 2GB
|
||||
|
||||
### Porturi Necesare
|
||||
- **1521:** Oracle Listener
|
||||
- **5500:** Enterprise Manager Express
|
||||
- **8080:** APEX (opțional)
|
||||
|
||||
### Configurări LXC Specifice
|
||||
```bash
|
||||
# În /etc/pve/lxc/[CTID].conf pe Proxmox
|
||||
lxc.apparmor.profile: unconfined
|
||||
lxc.cgroup2.devices.allow: a
|
||||
lxc.cap.drop:
|
||||
lxc.mount.auto: proc:rw sys:rw
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Probleme Comune
|
||||
|
||||
#### 1. Insufficient Memory
|
||||
```bash
|
||||
# Verificare memorie
|
||||
free -h
|
||||
# Ajustare din Proxmox
|
||||
pct set [CTID] --memory 6144
|
||||
```
|
||||
|
||||
#### 2. Docker în LXC nu pornește
|
||||
```bash
|
||||
# Verificare privilegii container
|
||||
# Container trebuie să fie privilegiat (unprivileged=0)
|
||||
# Features: nesting=1, keyctl=1
|
||||
```
|
||||
|
||||
#### 3. Oracle XE nu pornește
|
||||
```bash
|
||||
# Check logs
|
||||
docker logs oracle-xe
|
||||
# Sau pentru instalare nativă
|
||||
tail -f /opt/oracle/diag/rdbms/xe/XE/trace/alert_XE.log
|
||||
```
|
||||
|
||||
#### 4. Conexiune refuzată
|
||||
```bash
|
||||
# Verificare listener
|
||||
docker exec oracle-xe lsnrctl status
|
||||
# Verificare firewall
|
||||
iptables -L
|
||||
```
|
||||
|
||||
## Script Complet Automatizare Docker-in-LXC
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# oracle-xe-lxc-deploy.sh
|
||||
|
||||
CTID=300
|
||||
HOSTNAME="oracle-xe"
|
||||
MEMORY=4096
|
||||
DISK=20
|
||||
ORACLE_PWD="OraclePass123"
|
||||
|
||||
echo "Creating Oracle XE LXC Container..."
|
||||
|
||||
# Create container
|
||||
pct create $CTID local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.gz \
|
||||
--hostname $HOSTNAME \
|
||||
--cores 2 \
|
||||
--memory $MEMORY \
|
||||
--swap 2048 \
|
||||
--rootfs local-zfs:$DISK \
|
||||
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
|
||||
--unprivileged 0 \
|
||||
--features nesting=1,keyctl=1 \
|
||||
--ostype ubuntu
|
||||
|
||||
# Start and configure
|
||||
pct start $CTID
|
||||
sleep 5
|
||||
|
||||
# Install Docker and Oracle XE
|
||||
pct exec $CTID -- bash -c "
|
||||
apt update && apt upgrade -y
|
||||
apt install -y ca-certificates curl gnupg lsb-release
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
echo 'deb [arch=\$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable' | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
apt update
|
||||
apt install -y docker-ce docker-ce-cli containerd.io
|
||||
systemctl enable docker
|
||||
systemctl start docker
|
||||
mkdir -p /opt/oracle/oradata
|
||||
docker run -d \
|
||||
--name oracle-xe \
|
||||
-p 1521:1521 \
|
||||
-p 5500:5500 \
|
||||
-e ORACLE_PWD=$ORACLE_PWD \
|
||||
-e ORACLE_CHARACTERSET=AL32UTF8 \
|
||||
-v /opt/oracle/oradata:/opt/oracle/oradata \
|
||||
--restart unless-stopped \
|
||||
container-registry.oracle.com/database/express:21.3.0-xe
|
||||
"
|
||||
|
||||
echo "Oracle XE deployment initiated. Check logs with:"
|
||||
echo "pct exec $CTID -- docker logs -f oracle-xe"
|
||||
echo "Database will be ready in ~5-10 minutes"
|
||||
```
|
||||
|
||||
## Conexiune și Utilizare
|
||||
|
||||
### String-uri de Conexiune
|
||||
```
|
||||
# SQL*Plus
|
||||
sqlplus sys/OraclePass123@localhost:1521/XE as sysdba
|
||||
|
||||
# JDBC
|
||||
jdbc:oracle:thin:@10.0.20.XXX:1521:XE
|
||||
|
||||
# TNS
|
||||
XE =
|
||||
(DESCRIPTION =
|
||||
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.20.XXX)(PORT = 1521))
|
||||
(CONNECT_DATA =
|
||||
(SERVER = DEDICATED)
|
||||
(SERVICE_NAME = XE)
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
### Tool-uri Recomandate
|
||||
- **SQL Developer** - Oracle oficial
|
||||
- **DBeaver** - Universal database tool
|
||||
- **Enterprise Manager Express** - http://10.0.20.XXX:5500/em
|
||||
|
||||
## Note Finale
|
||||
|
||||
1. **Varianta Docker-in-LXC este cea mai simplă** și recomandată pentru majoritatea cazurilor
|
||||
2. **Backup-uri regulate** folosind Proxmox vzdump
|
||||
3. **Monitorizare resurse** - Oracle XE poate consuma multă memorie
|
||||
4. **Licențiere** - Oracle XE este gratuită dar cu limitări (12GB data, 2GB RAM, 2 CPU threads)
|
||||
5. **Securitate** - Schimbați parolele default, configurați firewall
|
||||
Reference in New Issue
Block a user