在Linux系统上安装Oracle数据库是一个复杂的过程,涉及多个步骤和配置。以下是一个详细的安装步骤解析:
sudo yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
sudo passwd oracle
编辑 /etc/sysctl.conf
文件,添加以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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
编辑 /etc/security/limits.conf
文件,添加以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
从Oracle官方网站下载适用于Linux的Oracle安装文件,并解压到指定目录。
wget [Oracle安装文件链接] -P /tmp
unzip /tmp/[Oracle安装文件名].zip -d /tmp/
以Oracle用户身份运行安装程序:
su - oracle
cd /tmp/[Oracle安装文件名]/database
./runInstaller
安装完成后,使用SQL*Plus创建数据库:
sqlplus / as sysdba
CREATE DATABASE your_database_name
USER sys IDENTIFIED BY password
USER system IDENTIFIED BY password
CONTROLFILE REUSE
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/orcl/redo01.log') SIZE 50M,
GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log') SIZE 50M,
GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log') SIZE 50M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oracle/oradata/orcl/system01.ctl' SIZE 700M
SYSAUX DATAFILE '/u01/app/oracle/oradata/orcl/sysaux01.ctl' SIZE 500M
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/orcl/users01.ctl'
SIZE 500M REUSE
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.ctl'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/app/oracle/oradata/orcl/undotbs01.ctl'
SIZE 200M REUSE;
使用 netca
和 dbca
工具配置监听器和数据库实例。
$ORACLE_HOME/bin/netca
$ORACLE_HOME/bin/dbca
sqlplus username/password@your_database_name
SELECT * FROM v$version;
[1,4,5,6,7,8,9,10,11,12]