====Oracle====
This is a demo install of Oracle Database Server 21c, 23c and 23ai on Oracle Linux.
===Environment===
VirtualBox or any other virtual machine manager.
===Operating system===
Use Oracle Linux 8.10 for Oracle Database 21c or 23c and Oracle Linux 9.4 for Oracle Database 23ai.
[[https://yum.oracle.com/oracle-linux-isos.html|Oracle Linux ISO Downloads]]
==Oracle Linux 8.10==
[[https://yum.oracle.com/ISOS/OracleLinux/OL8/u10/x86_64/OracleLinux-R8-U10-x86_64-dvd.iso|OracleLinux-R8-U10-x86_64-dvd.iso]]
==Oracle Linux 9.4==
[[https://yum.oracle.com/ISOS/OracleLinux/OL9/u4/x86_64/OracleLinux-R9-U4-x86_64-dvd.iso|OracleLinux-R9-U4-x86_64-dvd.iso]]
===Install===
==Virtualbox==
2 CPU, 2GB RAM, 40GB HDD FIXED SIZE, 64MB VMSVGA
Take note of MAC address and configure DHCP server with a fixed address.
Install Oracle Linux 8.X
During install do not use scaled mode because it can cause problems with the GUI. CTRL+C will exit scaled mode if enabled (CTRL+ALT will return you to the desktop).
Setup as follows:
* Select language: English (United Kingdom)
* Time & Date: Etc -> Coordinated Universal Time
* Software Selection: Server -> Headless management, system tools
* Installation Destination: X, automatic partitioning
* Network and Host: ON -> hostname.kewl.org
* Root Password
Begin installation... Reboot System
==KVM==
__virt-install__
--location OracleLinux-R8-U9-x86_64-dvd.iso,kernel=isolinux/vmlinuz,initrd=isolinux/initrd.img
===Login===
$ ssh root@hostname.kewl.org
===Update===
$ yum update
Y
$ reboot
===Firewall===
Disable the firewall since a network connection to the database is required.
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
===Virtualbox Additions===
Virtualbox needs the VBox Linux Additions so we can mount a share on the VM. This is
to access downloaded files on the host machine with a shared folder.
==Install kernel and tools==
$ yum install kernel-uek kernel-uek-devel make perl
Y
$ reboot
==Install module==
$ uname -a
Linux hostname.kewl.org 5.4.17-2136.307.3.1.el8uek.x86_64 #2 SMP Mon May 9 17:29:47 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
$ mount /dev/sr0 /mnt
$ /mnt/VBoxLinuxAdditions.run
===Oracle DB Server 21c===
[[https://oracle-base.com/articles/21c/oracle-db-21c-installation-on-oracle-linux-8|Install guide]]
The install guide is mostly for the ZIP version but we shall install the RPM for OL8.
==Preinstall==
The O/S needs to be setup for Oracle, a preinstall RPM does this automatically for us.
[[https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm|Preinstall RPM]]
$ yum install ./oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm
Y
$ reboot
==Install==
Now we can install the Database Server and afterward configure it with the example database.
[[https://www.oracle.com/database/technologies/oracle21c-linux-downloads.html|Install RPM]]
$ yum install ./oracle-database-ee-21c-1.0-1.ol8.x86_64.rpm
Y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: oracle-database-ee-21c-1.0-1.x86_64 1/1
Installing : oracle-database-ee-21c-1.0-1.x86_64 1/1
Running scriptlet: oracle-database-ee-21c-1.0-1.x86_64 1/1
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure a sample Oracle Database you can execute the following service configuration script as root: /etc/init.d/oracledb_ORCLCDB-21c configure
Verifying : oracle-database-ee-21c-1.0-1.x86_64 1/1
Installed:
oracle-database-ee-21c-1.0-1.x86_64
Complete!
===Oracle DB Server 23c===
[[https://oracle-base.com/articles/23c/oracle-db-23c-free-rpm-installation-on-oracle-linux-8|Install guide]]
dnf install -y oraclelinux-developer-release-el8
dnf install -y oracle-database-preinstall-23c
$ wget "https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23c-1.0-1.el8.x86_64.rpm"
$ dnf -y localinstall ./oracle-database-free-23c-1.0-1.el8.x86_64.rpm
Last metadata expiration check: 0:18:03 ago on Thu 01 Feb 2024 21:48:54 UTC.
Dependencies resolved.
===============================================================================================================
Package Architecture Version Repository Size
===============================================================================================================
Installing:
oracle-database-free-23c x86_64 1.0-1 @commandline 1.6 G
Transaction Summary
===============================================================================================================
Install 1 Package
Total size: 1.6 G
Installed size: 4.0 G
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: oracle-database-free-23c-1.0-1.x86_64 1/1
Installing : oracle-database-free-23c-1.0-1.x86_64 1/1
Running scriptlet: oracle-database-free-23c-1.0-1.x86_64 1/1
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database Free, optionally modify the parameters in '/etc/sysconfig/oracle-free-23c.conf' and then run '/etc/init.d/oracle-free-23c configure' as root.
Verifying : oracle-database-free-23c-1.0-1.x86_64 1/1
Installed:
oracle-database-free-23c-1.0-1.x86_64
Complete!
===Oracle DB Server 23ai===
[[https://docs.oracle.com/en/database/oracle/oracle-database/23/xeinl/installing-oracle-database-free.html#GUID-46EA860A-AAC4-453F-8EEE-42CC55A4FAD5|Install guide]]
dnf -y install oracle-database-preinstall-23ai
==Download and install==
[[https://www.oracle.com/database/free/get-started/|Download links]]
yum install wget
wget https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23ai-1.0-1.el8.x86_64.rpm
dnf -y install oracle-database-free*
===Oracle DB Demo Database===
Setup the example database if required for evaluation.
The example can be deleted later if not needed.
==21c==
$ /etc/init.d/oracledb_ORCLCDB-21c configure
Configuring Oracle Database ORCLCDB.
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/ORCLCDB.
Database Information:
Global Database Name:ORCLCDB
System Identifier(SID):ORCLCDB
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.
Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.
==23c==
# /etc/init.d/oracle-free-23c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
[root@vm3 ~]# /etc/init.d/oracle-free-23c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database FREE.
[WARNING] [DBT-11205] Specified shared pool size does not meet the recommended minimum size requirement. This might cause database creation to fail.
ACTION: Specify at least (529 MB) for shared pool size.
Enter SYS user password:
*******
Enter SYSTEM user password:
********
Enter PDBADMIN User Password:
********
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
33% complete
36% complete
39% complete
43% complete
Completing Database Creation
47% complete
49% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/FREE.
Database Information:
Global Database Name:FREE
System Identifier(SID):FREE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log" for further details.
Connect to Oracle Database using one of the connect strings:
Pluggable database: vm3.kewl.org/FREEPDB1
Multitenant container database: vm3.kewl.org
==23ai==
/etc/init.d/oracle-free-23ai configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database FREE.
Enter SYS user password:
*******
Enter SYSTEM user password:
******
Enter PDBADMIN User Password:
******
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
33% complete
36% complete
39% complete
43% complete
Completing Database Creation
47% complete
49% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/FREE.
Database Information:
Global Database Name:FREE
System Identifier(SID):FREE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log" for further details.
Connect to Oracle Database using one of the connect strings:
Pluggable database: vm3.kewl.org/FREEPDB1
Multitenant container database: vm3.kewl.org
__Listener__
Edit the .ora files in the following directory and change the hostname to 0.0.0.0
cd /opt/oracle/product/23ai/dbhomeFree/network/admin
===Oracle DB Systemd===
==23c==
__Stop__
/etc/init.d/oracle-free-23c stop
__Start__
systemctl daemon-reload
systemctl enable oracle-free-23c
systemctl start oracle-free-23c
__Status__
/etc/init.d/oracle-free-23c status
==23ai==
__Stop__
/etc/init.d/oracle-free-23ai stop
__Start__
systemctl daemon-reload
systemctl enable oracle-free-23ai
systemctl start oracle-free-23ai
__Status__
/etc/init.d/oracle-free-23ai status
===Oracle DB Client===
==Profile==
Create bash profile for oracle user in /home/oracle
Ownership is oracle:oinstall
__21c__
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_HOSTNAME=hostname.kewl.org
export ORACLE_BASE=/opt/oracle
export ORA_INVENTORY=$ORACLE_BASE/oraInventory
export DATA_DIR=$ORACLE_BASE/oradata
export ORACLE_HOME=$ORACLE_BASE/product/21c/dbhome_1
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export ORACLE_SID=ORCLCDB
export ORACLE_UNQNAME=ORCLCDB
export PDB_NAME=ORCLPDB1
export DISPLAY=excellent:0.0
__23c__
For 23c the only valid SID for the free edition is FREE.
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_HOSTNAME=vm3.kewl.org
export ORACLE_BASE=/opt/oracle
export ORA_INVENTORY=$ORACLE_BASE/oraInventory
export DATA_DIR=$ORACLE_BASE/oradata
export ORACLE_HOME=$ORACLE_BASE/product/23c/dbhomeFree
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export ORACLE_SID=FREE
export ORACLE_UNQNAME=FREE
export PDB_NAME=FREEPDB1
export DISPLAY=excellent:0.0
__23ai__
For 23ai the only valid SID for the free edition is FREE.
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_HOSTNAME=vm3.kewl.org
export ORACLE_BASE=/opt/oracle
export ORA_INVENTORY=$ORACLE_BASE/oraInventory
export DATA_DIR=$ORACLE_BASE/oradata
export ORACLE_HOME=$ORACLE_BASE/product/23ai/dbhomeFree
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export ORACLE_SID=FREE
export ORACLE_UNQNAME=FREE
export PDB_NAME=FREEPDB1
export DISPLAY=excellent:0.0
==Password==
Set oracle user password and logout.
$ passwd oracle
$ exit
==Login==
$ ssh oracle@hostname.kewl.org
==Connect==
Connect to database using password `oracle'
__21c__
$ sqlplus sys as sysdba
SQL*Plus: Release 21.0.0.0.0 - Production on Sat May 14 03:33:26 2022
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL>
__23ai__
$ sqlplus sys as sysdba
SQL*Plus: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on Sat Oct 12 12:47:02 2024
Version 23.5.0.24.07
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.5.0.24.07
SQL>
===Oracle DB Setup (optional) ====
==23c or 23ai==
First remove the database example using script or dbca tool (if installed).
__Login as root__
__23c__
/etc/init.d/oracle-free-23c delete
__23ai__
/etc/init.d/oracle-free-23ai delete
__Login as oracle__
With dbca create a database named FREE.
In this example a database with 16 PDBs with the PREFIX DB is created
using the "Advanced configuration".
__23c__
{{:tools:oracle_pdbs.jpg?300}}
{{:tools:oracle_create.jpg?300}}
{{:tools:oracle_done.jpg?300}}
__23ai__
Additional configuration
{{:tools:ora_listener.jpg?300}}
{{:tools:ora_password.jpg?300}}
===Oracle DB Archive log ===
To enable backups with RMAN turn on archivelog mode.
==Enable==
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1603679416 bytes
Fixed Size 5313720 bytes
Variable Size 973078528 bytes
Database Buffers 620756992 bytes
Redo Buffers 4530176 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
==Status==
SQL> select name,log_mode from v$database;
NAME LOG_MODE
--------- ------------
FREE ARCHIVELOG
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/oracle/product/23c/dbhomeFree/dbs/arch
Oldest online log sequence 69
Next log sequence to archive 68
Current log sequence 67
==List==
RMAN> list archivelog all;
list archivelog all;
List of Archived Log Copies for database with db_unique_name FREE
=====================================================================
Key Thrd Seq S Low Time
------- ---- ------- - ---------
1 1 61 A 23-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_61_1160003622.dbf
2 1 62 A 23-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_62_1160003622.dbf
3 1 63 A 23-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_63_1160003622.dbf
4 1 64 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_64_1160003622.dbf
5 1 65 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_65_1160003622.dbf
6 1 66 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_66_1160003622.dbf
7 1 67 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_67_1160003622.dbf
8 1 68 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_68_1160003622.dbf
RMAN>
==Disable==
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1603679416 bytes
Fixed Size 5313720 bytes
Variable Size 973078528 bytes
Database Buffers 620756992 bytes
Redo Buffers 4530176 bytes
Database mounted.
SQL> alter database noarchivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /opt/oracle/product/23c/dbhomeFree/dbs/arch
Oldest online log sequence 69
Current log sequence 68
==Delete==
RMAN> delete archivelog all;
delete archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=50 device type=DISK
List of Archived Log Copies for database with db_unique_name FREE
=====================================================================
Key Thrd Seq S Low Time
------- ---- ------- - ---------
1 1 61 A 23-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_61_1160003622.dbf
2 1 62 A 23-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_62_1160003622.dbf
3 1 63 A 23-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_63_1160003622.dbf
4 1 64 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_64_1160003622.dbf
5 1 65 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_65_1160003622.dbf
6 1 66 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_66_1160003622.dbf
7 1 67 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_67_1160003622.dbf
8 1 68 A 25-FEB-24
Name: /opt/oracle/product/23c/dbhomeFree/dbs/arch1_68_1160003622.dbf
Do you really want to delete the above objects (enter YES or NO)? yes
deleted archived log
archived log file name=/opt/oracle/product/23c/dbhomeFree/dbs/arch1_61_1160003622.dbf RECID=1 STAMP=1161701923
deleted archived log
archived log file name=/opt/oracle/product/23c/dbhomeFree/dbs/arch1_62_1160003622.dbf RECID=2 STAMP=1161727348
deleted archived log
archived log file name=/opt/oracle/product/23c/dbhomeFree/dbs/arch1_63_1160003622.dbf RECID=3 STAMP=1161841884
deleted archived log
archived log file name=/opt/oracle/product/23c/dbhomeFree/dbs/arch1_64_1160003622.dbf RECID=4 STAMP=1161846158
deleted archived log
archived log file name=/opt/oracle/product/23c/dbhomeFree/dbs/arch1_65_1160003622.dbf RECID=5 STAMP=1161871223
deleted archived log
archived log file name=/opt/oracle/product/23c/dbhomeFree/dbs/arch1_66_1160003622.dbf RECID=6 STAMP=1161885796
deleted archived log
archived log file name=/opt/oracle/product/23c/dbhomeFree/dbs/arch1_67_1160003622.dbf RECID=7 STAMP=1161900306
deleted archived log
archived log file name=/opt/oracle/product/23c/dbhomeFree/dbs/arch1_68_1160003622.dbf RECID=8 STAMP=1161929059
Deleted 8 objects
RMAN>
===Oracle PDB===
==Access==
Access a specific PDB
$ sqlplus sys as sysdba
SQL*Plus: Release 23.0.0.0.0 - Production on Fri Feb 9 15:53:18 2024
Version 23.3.0.23.09
Copyright (c) 1982, 2023, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.3.0.23.09
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> ALTER SESSION SET CONTAINER = FREEPDB1;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
FREEPDB1
==Autostart==
Change state of PDB to OPEN and keep that state on restart.
SQL> alter pluggable database FREEPDB1 open;
Pluggable database altered.
SQL> alter pluggable database FREEPDB1 save state;
Pluggable database altered.
SQL>
==Tablespace==
Create a tablespace inside the PDB
SQL> create tablespace data datafile '/opt/oracle/oradata/FREE/FREEPDB1/data.dbf' size 10M autoextend on next 10M;
Tablespace created.
==User==
Create a user which can connect to the server and operate on the PDB tablespace.
NB Enter lines one a time, do not paste as one block.
ALTER SESSION SET CONTAINER = FREEPDB1;
CREATE USER dbuser IDENTIFIED BY dbpasswd CONTAINER=CURRENT;
GRANT CREATE SESSION TO dbuser CONTAINER=CURRENT;
GRANT CREATE TABLE TO dbuser CONTAINER=CURRENT;
GRANT CREATE TYPE TO dbuser CONTAINER=CURRENT;
GRANT CREATE PROCEDURE TO dbuser CONTAINER=CURRENT;
ALTER USER dbuser QUOTA UNLIMITED ON USERS CONTAINER=CURRENT;
==Drop==
Drop a PDB if not required and reclaim disk space.
SQL> DROP PLUGGABLE DATABASE DB16 INCLUDING DATAFILES;
Pluggable database dropped.
===Miscellaneous===
==Path==
Not specifying a file path will create a tablespace file and archive logs in this directory for 23c.
/opt/oracle/product/23c/dbhomeFree/dbs
==Tablespace==
__Drop__
To remove a tablespace file various options are required when dropping it.
drop tablespace TABLE_SPACE INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
===PHP===
==PHP8.X and tools==
apt install build-essential php php-cli php-pear php-dev libaio1
==OCI8==
==Fetch==
cd /opt
wget "https://download.oracle.com/otn_software/linux/instantclient/2113000/instantclient-basic-linux.x64-21.13.0.0.0dbru.zip"
wget "https://download.oracle.com/otn_software/linux/instantclient/2113000/instantclient-sdk-linux.x64-21.13.0.0.0dbru.zip"
==Unzip==
unzip instantclient-basic-linux.x64-21.13.0.0.0dbru.zip
unzip instantclient-sdk-linux.x64-21.13.0.0.0dbru.zip
==Build==
For path enter "instantclient,/opt/instantclient_21_13"
pecl install oci8
...
You should add "extension=oci8.so" to php.ini
==Config==
Add extension=oci8.so to "/etc/php/8.2/cli/php.ini" and "/etc/php/8.2/apache2/php.ini"
Add instant client to library path
echo "/opt/instantclient_21_13" >> /etc/ld.so.conf
ldconfig
==TEST==
#! /usr/bin/php -q
===Uninstall===
==23c==
dnf -y remove oracle-database-preinstall-23c
dnf -y remove oraclelinux-developer-release-el8
dnf -y remove oracle-database-free-23c.x86_64
===Resources===
[[https://docs.oracle.com/en/database/oracle/oracle-database/23/xeinl/starting-and-stopping-oracle-database.html|Starting Oracle 23c]]
[[https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html|Oracle Instant Client]]
[[https://www.php.net/manual/en/oci8.installation.php|PHP OCI8 Installation Guide]]
[[https://www.php.net/manual/en/ref.oci8.php|PHP OCI8 Reference Guide]]
[[https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpcc/c-c-programmers-guide.pdf|C Programmers Guide]]
[[https://docs.oracle.com/en/database/oracle/oracle-database/18/lnoci/oci-demo-programs.html|C Demo Code overview]]
[[https://github.com/oleksiivorobiov/oracle_oci_examples/|Demo Code including C]]
[[https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html|Instant client for Linux]]
[[https://www.oracle.com/database/technologies/instant-client/precompiler-downloads.html|Pro C pre-compiler]]