适用场景:快速部署、无需手动配置环境,适合测试或开发环境。
步骤详解:
安装Docker
更新软件包索引并安装Docker引擎:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker # 启动Docker服务
sudo systemctl enable docker # 设置开机自启
下载Oracle数据库镜像
从Docker Hub拉取官方或第三方维护的Oracle镜像(以Oracle 11g为例):
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g # 国内镜像加速
# 或使用官方镜像(如Oracle 19C):
# docker pull container-registry.oracle.com/database/express:latest
创建并启动Oracle容器
运行容器并映射端口(1521为Oracle监听端口,5500为企业管理器端口):
docker run -d --name oracle_db -p 1521:1521 -p 5500:5500 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
注:
--name
指定容器名称,-p
映射宿主机端口到容器端口。
进入容器配置Oracle
进入容器终端,加载环境变量并设置SQL*Plus软链接:
docker exec -it oracle_db bash
source /home/oracle/.bash_profile # 加载Oracle环境变量
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin/sqlplus # 创建全局可用的sqlplus命令
修改默认密码并登录
使用sysdba权限修改sys用户密码(默认密码通常为helowin
或镜像说明中的密码):
sqlplus /nolog
conn / as sysdba;
alter user sys identified by YourNewPassword; # 替换为新密码
exit;
使用新密码登录验证:
sqlplus sys/YourNewPassword@helowin as sysdba # helowin为默认SID
完成基础配置
可选:创建表空间、用户或导入数据(根据业务需求操作)。
适用场景:需要完全控制安装过程、生产环境或定制化配置。
步骤详解:
系统要求检查
安装依赖包
更新软件源并安装Oracle所需的依赖库:
sudo apt update
sudo apt install alien libaio1 unixodbc build-essential # alien用于转换RPM包(可选)
创建Oracle用户和组
创建系统用户组(oinstall
为安装组,dba
为数据库管理员组)及oracle用户:
sudo groupadd -g 503 dba
sudo groupadd -g 504 oper
sudo useradd -u 501 -g oinstall -G dba,oper -s /bin/bash -m oracle # -m创建家目录
sudo passwd oracle # 设置oracle用户密码
创建安装目录并设置权限
创建Oracle基目录(ORACLE_BASE
)和产品目录(ORACLE_HOME
),并赋予权限:
sudo mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 # 安装目录
sudo mkdir -p /u01/app/oracle/oradata # 数据文件目录
sudo chown -R oracle:oinstall /u01 # 递归修改所有权
sudo chmod -R 775 /u01/app/oracle # 设置目录权限
配置Oracle环境变量
编辑oracle用户的.bashrc
文件,添加环境变量:
echo 'export ORACLE_BASE=/u01/app/oracle' >> /home/oracle/.bashrc
echo 'export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1' >> /home/oracle/.bashrc
echo 'export ORACLE_SID=orcl' >> /home/oracle/.bashrc # 实例名
echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> /home/oracle/.bashrc
echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH' >> /home/oracle/.bashrc
source /home/oracle/.bashrc # 使配置立即生效
下载并解压Oracle安装包
从Oracle官方网站下载Linux版本的安装包(如linuxx64_19c_database.zip
),解压到安装目录:
cd /path/to/downloaded_files
unzip linuxx64_19c_database.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
运行Oracle安装程序
切换至oracle用户,执行安装脚本:
su - oracle
cd /u01/app/oracle/product/19.0.0/dbhome_1
./runInstaller
按照图形界面提示操作:
ORACLE_HOME
);配置系统内核参数
编辑/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
设置Oracle用户资源限制
编辑/etc/security/limits.conf
文件,添加以下限制:
oracle soft nproc 2047 # 用户进程软限制
oracle hard nproc 16384 # 用户进程硬限制
oracle soft nofile 1024 # 用户文件描述符软限制
oracle hard nofile 65536 # 用户文件描述符硬限制
创建数据库实例(可选)
若安装时未创建数据库,可使用dbca
(数据库配置助手)创建:
dbca # 图形化工具,按提示操作
或使用命令行创建:
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName orcl -sid orcl -responseFile NO_VALUE -characterSet AL32UTF8 -memoryPercentage 40 -emConfiguration DBEXPRESS
设置开机自启
创建systemd服务文件/etc/systemd/system/oracle.service
,内容如下:
[Unit]
Description=Oracle Database Service
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
ExecStart=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/u01/app/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
sudo systemctl enable oracle
sudo systemctl start oracle
验证安装
使用sqlplus登录数据库,检查实例状态:
sqlplus / as sysdba
SQL> SELECT status FROM v$instance;
若返回OPEN
,则表示数据库启动成功。
注意事项: