在Linux操作系统上创建Oracle实例是一个涉及环境准备、软件安装、实例配置等多步骤的过程,需要严格遵循Oracle官方文档和最佳实践,以下以CentOS 7系统为例,详细说明从环境准备到实例创建的完整流程。
环境准备
在安装Oracle数据库软件前,需确保操作系统满足硬件和软件要求,并进行必要的系统配置。
硬件要求
Oracle数据库对系统资源有明确要求,建议配置如下:
- CPU:至少2核(推荐4核及以上)
- 内存:至少4GB(推荐8GB及以上,需预留1GB给操作系统)
- 磁盘空间:至少20GB(建议使用独立磁盘挂载,如/oradata用于数据文件,/u01用于软件安装)
系统依赖安装
Oracle数据库运行需要一系列系统依赖包,通过yum命令安装:
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
内核参数调整
编辑/etc/sysctl.conf
文件,添加以下参数以优化系统性能:
fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmax = 4398046511104 kernel.shmall = 4194304 kernel.panic_on_oops = 1 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
执行sysctl -p
使参数生效。
用户和组创建
创建oinstall(安装组)和dba(管理组)用户,并设置oracle用户:
groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle # 设置密码
目录规划与权限设置
创建Oracle软件安装目录和数据文件目录,并设置权限:
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 mkdir -p /oradata chown -R oracle:oinstall /u01 /oradata chmod -R 775 /u01 /oradata
环境变量配置
以oracle用户登录,编辑.bash_profile
文件,添加以下环境变量:
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1 export ORACLE_SID=orcl # 实例名,可自定义 export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib
执行source .bash_profile
使配置生效。
Oracle数据库软件安装
下载Oracle Database安装文件(如linuxx64_19c_database.zip),并解压到/tmp
目录,以oracle用户执行安装。
图形界面安装(推荐)
cd /tmp/database ./runInstaller
安装过程中,按向导操作:
- 选择“创建和配置数据库”→“高级安装”
- 选择“企业版”语言选择“简体中文”
- 指定安装目录(ORACLE_HOME已配置环境变量)
- 创建数据库前,选择“仅安装数据库软件”
- 完成安装后,以root用户执行
$ORACLE_HOME/root.sh
脚本。
静默安装(可选)
若需无界面安装,创建响应文件db_install.rsp
(参考Oracle官方模板),执行:
./runInstaller -silent -responseFile /tmp/db_install.rsp -ignorePrereq
创建数据库实例
使用DBCA(Database Configuration Assistant)工具创建实例,支持图形和静默方式。
图形界面创建
dbca
按向导操作:
- 选择“创建数据库”→“高级配置”
- 设置数据库标识:全局数据库名(如orcl.example.com)、SID(与ORACLE_SID一致)
- 选择“事务处理”模板
- 配置内存:建议分配总内存的40%-60%(如8GB内存分配4GB SGA)
- 配置存储:数据文件路径设为
/oradata/orcl/
,选择“文件系统存储” - 设置初始化参数:字符集选择“AL32UTF8”,开启“归档模式”(可选)
- 创建管理账户:设置SYS、SYSTEM等用户密码
- 完成创建,DBCA将自动启动数据库实例。
静默创建(可选)
创建响应文件dbca.rsp
,关键参数如下:
GDBNAME = "orcl.example.com" SID = "orcl" SYSPASSWORD = "YourPassword" SYSTEMPASSWORD = "YourPassword" SYSMANPASSWORD = "YourPassword" DBSNMPPASSWORD = "YourPassword" CHARACTERSET = "AL32UTF8" TOTALMEMORY = "4096" # 单位MB DATAFILEDEST = "/oradata" RECOVERYAREADEST = "/oradata"
执行静默创建命令:
dbca -silent -responseFile /tmp/dbca.rsp
初始化参数配置示例
参数名 | 推荐值 | 说明 |
---|---|---|
SGA_TARGET | 4096M | 系统全局区域大小 |
PGA_AGGREGATE_TARGET | 1024M | 程序全局区域大小 |
DB_BLOCK_SIZE | 8192 | 数据块大小(根据数据类型调整) |
PROCESSES | 300 | 最大进程数 |
OPEN_CURSORS | 1000 | 最大打开游标数 |
监听器配置与验证
监听器配置
Oracle安装后会默认创建监听器(默认端口1521),使用NETCA检查配置:
netca
选择“配置、添加、监听器”,按向导完成配置,启动监听器:
lsnrctl start
实例验证
使用sqlplus连接数据库,验证实例状态:
sqlplus / as sysdba SELECT status FROM v$instance; -- 应返回"OPEN" SELECT name FROM v$database; -- 应返回数据库名
常见问题处理
若启动实例时报错“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”,需检查:
- 监听器状态:
lsnrctl status
,确认服务是否注册(应显示”ORCL = (DESCRIPTION = …)”) - tnsnames.ora配置:确认客户端连接的SERVICE_NAME与数据库名一致。
相关问答FAQs
Q1:创建Oracle实例时报错“ORA-01565: error in identifying file ‘/oradata/orcl/system01.dbf’”,如何解决?
A:该错误通常因数据文件路径不存在或权限不足导致,检查/oradata/orcl/
目录是否存在,以及oracle用户是否有读写权限:chown -R oracle:oinstall /oradata
;若目录不存在,需手动创建并赋权。
Q2:如何修改Oracle实例的内存参数(如SGA_TARGET)?
A:动态修改(无需重启):
ALTER SYSTEM SET SGA_TARGET=6144M SCOPE=MEMORY; -- 临时生效,重启后失效 ALTER SYSTEM SET SGA_TARGET=6144M SCOPE=SPFILE; -- 持久化,需重启数据库生效
若需永久生效,需修改SPFILE(服务器参数文件),重启数据库后新参数才会应用。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/23788.html