sudo apt update && sudo apt upgrade确保系统为最新状态。sudo apt install alien libaio1 unixodbc build-essential,安装Oracle所需的依赖库(如libaio1用于异步I/O支持,unixodbc用于数据库连接)。sudo groupadd oinstall(所有者组)、sudo groupadd dba(数据库管理员组)。sudo useradd -g oinstall -G dba -d /home/oracle -s /bin/bash oracle(指定主组oinstall、附加组dba,家目录为/home/oracle,默认shell为bash)。sudo passwd oracle(为oracle用户创建密码)。sudo mkdir -p /opt/oracle(Oracle安装根目录),并设置权限:sudo chown -R oracle:oinstall /opt/oracle(所有权归oracle:oinstall)。/etc/sysctl.conf,添加以下内容优化系统性能:kernel.shmmax = 3147483648 # 最大共享内存段大小(建议为物理内存的80%)
kernel.shmmni = 4096 # 共享内存段最大数量
kernel.shmall = 2097152 # 共享内存总页数
fs.file-max = 65536 # 系统最大文件描述符数
net.ipv4.ip_local_port_range = 1024 65000 # 本地端口范围
执行sudo sysctl -p使配置生效。/etc/security/limits.conf,添加以下内容限制oracle用户的资源使用:oracle soft nofile 65536 # 最大打开文件数(软限制)
oracle hard nofile 65536 # 最大打开文件数(硬限制)
oracle soft nproc 16384 # 最大进程数(软限制)
oracle hard nproc 16384 # 最大进程数(硬限制)
/home/oracle/.bashrc,添加以下内容:export ORACLE_BASE=/opt/oracle # Oracle基目录
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 # Oracle主目录(需与实际路径一致)
export ORACLE_SID=orcl # 数据库实例名(默认SID)
export PATH=$ORACLE_HOME/bin:$PATH # 将Oracle命令加入PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH # 库文件路径
执行source /home/oracle/.bashrc使环境变量生效。linuxx64_19c_database.zip),保存至/opt/oracle目录。cd /opt/oracle,执行unzip linuxx64_19c_database.zip,将安装文件解压至当前目录。oracle用户(su - oracle),执行./runInstaller启动图形化安装向导。
$ORACLE_HOME,即/opt/oracle/product/19.0.0/dbhome_1)。Oracle123,需包含大小写字母、数字和特殊字符)。dbca启动图形化配置工具。
orcl)和SID(与ORACLE_SID一致)。AL32UTF8,支持多语言)。$ORACLE_BASE/oradata)。sudo nano /etc/systemd/system/oracle.service,添加以下内容:[Unit]
Description=Oracle Database Service
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
ExecStart=/opt/oracle/product/19.0.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/opt/oracle/product/19.0.0/dbhome_1/bin/dbshut $ORACLE_HOME
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload(重新加载systemd配置),sudo systemctl enable oracle(设置开机自启),sudo systemctl start oracle(立即启动服务)。sudo systemctl status oracle,若显示“active (running)”则表示服务已启动。oracle用户,执行sqlplus / as sysdba以sysdba身份登录。SELECT status FROM v$instance;,若返回“OPEN”则表示数据库已正常运行。CREATE TABLE test (id NUMBER, name VARCHAR2(20));
INSERT INTO test VALUES (1, 'Oracle Test');
COMMIT;
SELECT * FROM test;
若能查询到插入的数据,则说明安装成功。store/oracle/database-enterprise:19.3.0.0镜像),步骤包括安装Docker、拉取镜像、运行容器(docker run -d --name oracle-db -p 1521:1521 -p 5500:5500 store/oracle/database-enterprise:19.3.0.0),但需注意容器内数据持久化问题。sudo ufw allow 1521/tcp。