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
。