在CentOS上启动Oracle数据库是一个多步骤的过程,需要配置环境、安装必要的软件包以及执行一系列命令,以下是详细的步骤和相关信息:
一、准备工作
1. 更新系统

确保你的CentOS系统是最新的,打开终端并运行以下命令:
sudo yum update y
2. 安装必备软件包
Oracle数据库需要一些基本的软件包,可以通过以下命令进行安装:
sudo yum install y binutils gcc gccc++ make
二、下载并解压Oracle安装包
1. 下载Oracle安装包
你需要从Oracle官方网站下载适用于Linux的安装包,假设你已经下载到了/home/oracle目录下。
2. 创建Oracle用户和组

为了安全起见,建议为Oracle数据库创建一个专用的用户和组:
sudo groupadd oinstall sudo useradd m g oinstall oracle sudo passwd oracle
3. 切换到oracle用户
su oracle
4. 解压Oracle安装包
假设下载的文件名为linuxamd64_12201_database_xe_see_preinstall_guide.zip,你可以使用以下命令来解压它:
unzip linuxamd64_12201_database_xe_see_preinstall_guide.zip d /home/oracle/oraclebase
三、设置环境变量
编辑~/.bash_profile文件,添加Oracle的环境变量:
export ORACLE_BASE=/home/oracle/oraclebase export ORACLE_HOME=$ORACLE_BASE/app/oracle/product/12.2.0/xe export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin
然后使更改生效:

source ~/.bash_profile
四、创建目录结构
在Oracle用户下创建所需的目录结构:
mkdir p $ORACLE_BASE/oradata chown R oracle:oinstall $ORACLE_BASE chmod R 775 $ORACLE_BASE
五、配置内核参数
编辑/etc/sysctl.conf文件,添加以下内容以优化Oracle的性能:
fs.filemax = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 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
然后应用更改:
sudo sysctl p
六、启动Oracle数据库
1. 初始化数据库
运行以下命令来初始化数据库:
$ORACLE_HOME/bin/sqlplus / as sysdba SQL>*Plus: Release 12.2.0.1.0 Production on ... Connected to an idle instance. SQL>*Plus>* ... Disconnected from Oracle Database 12c Express Edition Release 12.2.0.1.0 Production Version 12.2.0.1.0.0
2. 启动监听器和实例
首先启动监听器:
$ORACLE_HOME/bin/lsnrctl start
然后启动实例:
sqlplus / as sysdba SQL>*Plus: Release 12.2.0.1.0 Production on ... Connected to an idle instance. SQL>*Plus>* ... Disconnected from Oracle Database 12c Express Edition Release 12.2.0.1.0 Production Version 12.2.0.1.0.0
在SQL*Plus中输入以下命令:
STARTUP
如果一切顺利,你应该会看到类似以下的输出:
ORACLE instance started. Total System Global Area ... bytes Fixed Size = ... bytes Variable Size = ... bytes Database Buffers = ... bytes Redo Buffers = ... bytes Database mounted. Database opened.
七、验证数据库是否启动成功
你可以通过以下命令检查数据库的状态:
ps ef | grep pmon
你应该能看到一个类似于以下的进程列表:
oracle 1728 1 0 10:03 ? 00:00:00 ora_pmon_orcl oracle 1729 1 0 10:03 ? 00:00:00 ora_smon_orcl ...
你还可以使用SQL*Plus登录数据库并检查其状态:
sqlplus / as sysdba SQL>*Plus: Release 12.2.0.1.0 Production on ... Connected to an idle instance. SQL>*Plus>* ... SQL>*Plus>
输入以下命令查看数据库状态:
SELECT status FROM v$instance;
你应该会看到类似以下的输出:
STATUS OPEN
常见问题及解答(FAQs)
Q1: 如何更改Oracle数据库的端口号?
A1: 你可以通过修改listener.ora文件来更改Oracle数据库的端口号,该文件通常位于$ORACLE_HOME/network/admin目录下,找到如下行并修改端口号:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0/xe)
(SID_NAME = orcl)
)
(LISTENER =
(LISTENER_NAME = listerner)
(LISTENER_VERSION = ADAPTER)
(INSTANCE_CONNECT_TIMEOUT_SECS = 60)
(PROTOCOL_STACK = (TCP))
(LADDR = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521)) # 修改这里的端口号即可
)
)保存文件后,重新启动监听器:
$ORACLE_HOME/bin/lsnrctl stop $ORACLE_HOME/bin/lsnrctl start
Q2: 如果Oracle数据库无法启动,该如何排查问题?
A2: 如果Oracle数据库无法启动,可以按照以下步骤进行排查:
1、检查监听器状态:确认监听器是否已经启动,使用以下命令查看监听器状态:
$ORACLE_HOME/bin/lsnrctl status
2、检查实例状态:确认实例是否已经启动,使用以下命令查看实例状态:
ps ef | grep pmon_<your_sid> | grep v grep
3、查看日志文件:检查Oracle日志文件以获取更多错误信息,这些日志文件通常位于$ORACLE_BASE/diag/rdbms/<your_sid>/alert_<your_sid>.log目录下。
