Oracle 19c 部署手册
(基于 CentOS 7.9 无图形化环境 – zip 包安装)
一、环境检查
1、系统版本及内核检查
查看系统版本:
cat /etc/redhat-release
检查内核版本:
uname -r
2、内存要求
Oracle 官方建议:
- 单实例最小安装内存 1G,推荐 2G
- 集群环境最小内存 8G
查看内存情况:
grep MemTotal /proc/meminfo
3、磁盘空间要求
根据不同产品版本要求:
- Oracle Grid Infrastructure:6.5G
- Enterprise Edition / Standard Edition:7.2G
检查磁盘使用情况:
df -h
二、安装前准备工作
2.1 安装扩展源与依赖包
安装 EPEL 扩展源:
yum install epel-release
检查系统依赖包 使用如下命令检查是否已安装以下依赖包(如未安装则会提示“not installed”):
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat unixODBC gcc-c++ kmod kmod-libs | grep "not installed"
安装缺失的依赖包:
yum install -y bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat unixODBC gcc-c++ kmod kmod-libs
2.2 创建用户和用户组
以 root 用户身份执行以下操作,创建 Oracle 所需的用户组和 oracle 用户:
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
2.3 创建必要目录
创建 Oracle 安装与库存目录,并设置相应权限:
mkdir -p /home/oracle19c/app/oracle
mkdir -p /home/oracle19c/oraInventory
chown -R oracle:oinstall /home/oracle19c/
mkdir -p /home/oracle19c/app/oracle/product/19.0.0/db_1
chown -R oracle:oinstall /home/oracle19c/app/oracle/product/
chmod -R 775 /home/oracle19c/app/oracle
2.4 关闭防火墙与 SELinux
关闭防火墙(如需开放指定端口则可灵活处理):
systemctl stop firewalld.service
systemctl disable firewalld.service
关闭 SELinux:
修改 /etc/selinux/config 文件,将 SELINUX 设置为 disabled,然后重启系统或执行相关命令使配置生效。
2.5 配置内核参数
编辑 /etc/sysctl.conf 文件,添加如下 Oracle 相关参数(具体数值可根据系统内存调整):
# Oracle 内核参数设置
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8589934591
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 = 1048586
使新配置生效:
sysctl -p
2.6 配置资源限制
编辑 /etc/security/limits.conf 文件,添加 Oracle 用户资源限制:
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 3145728
oracle hard memlock 3145728
同时,在 /etc/pam.d/login 文件中确保加入以下配置以使 PAM 限制生效:
session required /lib/security/pam_limits.so
session required pam_limits.so
2.7 配置 root 与 oracle 用户环境变量
配置 ORACLE 用户进程限制(在 /etc/profile 中添加):
# ORACLE 用户进程限制
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
然后执行:
source /etc/profile
配置 oracle 用户环境变量
切换到 oracle 用户后编辑其主目录下的 .bash_profile 文件,内容如下:
# Oracle 用户环境变量配置
export EDITOR=vi
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=orcl
export ORACLE_BASE=/home/oracle19c/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1
export INVENTORY_LOCATION=/home/oracle19c/oraInventory
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG="Simplified Chinese_China.UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:$PATH:$HOME/bin
umask 022
保存后执行:
source ~/.bash_profile
三、Oracle 19c 安装流程
3.1 下载并上传安装包
从 Oracle 官方网站下载:
Oracle Database 19c for Linux x86-64
下载文件名称通常为 LINUX.X64_193000_db_home.zip。
将下载的安装包上传至 $ORACLE_HOME 目录下,并修改包的所属用户和组:
chown -R oracle:oinstall LINUX.X64_193000_db_home.zip
3.2 解压安装包
切换至 oracle 用户,进入 $ORACLE_HOME 目录后解压安装包:
cd $ORACLE_HOME
unzip LINUX.X64_193000_db_home.zip
3.3 创建静默安装响应文件
1、为静默安装创建响应文件目录:
mkdir /home/oracle/rsp
2、编辑响应文件 /home/oracle/rsp/db_install.rsp,示例如下:
####################################################################
## Oracle 19c 静默安装响应文件示例
####################################################################
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle19c/oraInventory
ORACLE_HOME=/home/oracle19c/app/oracle/product/19.0.0/db_1
ORACLE_BASE=/home/oracle19c/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.rootconfig.executeRootScript=false
3.4 执行静默安装
切换至 oracle 用户,进入 $ORACLE_HOME 目录后执行安装命令:
./runInstaller -silent -force -noconfig -ignorePrereq -responseFile /home/oracle/rsp/db_install.rsp
安装完成后,根据提示需要使用 root 用户执行以下两个脚本:
su root
bash /home/oracle19c/oraInventory/orainstRoot.sh
bash /home/oracle19c/app/oracle/product/19.0.0/db_1/root.sh
四、配置监听与创建数据库
4.1 配置监听(NetCA)
1、创建监听响应文件:
以 oracle 用户编辑 /home/oracle/rsp/netca.rsp 文件,示例内容如下:
######################################################################
## Oracle Net 配置响应文件示例
######################################################################
[GENERAL]
RESPONSEFILE_VERSION="19.0"
CREATE_TYPE="CUSTOM"
# 日志文件路径可根据需要设置
# LOG_FILE="/home/oracle/cfgtoollogs/netca/netca.log"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE="typical"
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START="LISTENER"
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
2、配置监听: 切换至 oracle 用户后,使用以下命令静默配置监听:
netca -silent -responsefile /home/oracle/rsp/netca.rsp
3、检查监听状态:
lsnrctl status
4.2 创建数据库
1、创建数据库响应文件:
编辑 /home/oracle/rsp/dbca.rsp 文件,内容示例如下:
##############################################################################
## Oracle DBCA 静默创建数据库响应文件示例
##############################################################################
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=orcl
sid=orcl
databaseConfigType=SI
templateName=General_Purpose.dbc
createAsContainerDatabase=false
sysPassword=YourSysPassword
systemPassword=YourSystemPassword
datafileDestination=/home/oracle19c/app/oracle/oradata
storageType=FS
sampleSchema=TRUE
databaseType=OLTP
automaticMemoryManagement=FALSE
totalMemory=4096
characterSet=ZHS16GBK
2、静默创建数据库: 切换至 oracle 用户后执行:
dbca -silent -createDatabase -responseFile /home/oracle/rsp/dbca.rsp
五、Oracle 基本操作与管理
5.1 SQL*Plus 登录数据库
默认用户:sys、system、cotte
登录命令格式:
sqlplus username/password@SID [as sysdba]
注意:使用 sys 用户登录时须加 as sysdba。
5.2 查询数据库字符集
查询所有字符集信息:
SELECT * FROM nls_database_parameters;
查询字符集:
SELECT parameter, value FROM nls_database_parameters WHERE parameter LIKE '%CHARACTERSET';
5.3 修改字符集(实例已创建时)
1、使用
sys
用户登录:
sqlplus "/ as sysdba"
2、执行以下步骤:
shutdown immediate;
startup mount;
alter session set sql_trace=true;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
alter database open;
alter database character set INTERNAL_USE ZHS16GBK;
shutdown immediate;
startup;
5.4 表空间管理
创建表空间(初始大小 500M,自动扩展至最大 32G):
create tablespace tablespace_name
datafile '/home/oracle19c/app/oracle/oradata/SID_NAME/tablespace_name.dbf'
size 500M autoextend on maxsize unlimited;
扩展表空间(当空间不足时增加新的数据文件):
ALTER TABLESPACE tablespace_name
add datafile '/home/oracle19c/app/oracle/oradata/SID_NAME/tablespace_part.dbf'
size 500M autoextend on maxsize unlimited;
查看表空间信息:
SELECT tablespace_name,
file_name,
SUM(bytes)/1024/1024 AS total_space_mb,
SUM(bytes - blocks*8192)/1024/1024 AS used_space_mb,
SUM(blocks*8192)/1024/1024 AS free_space_mb,
maxbytes/1024/1024 AS max_size_mb
FROM dba_data_files
JOIN dba_tablespaces USING (tablespace_name)
GROUP BY tablespace_name, file_name, maxbytes;
5.5 用户管理
创建用户并指定默认表空间:
create user usr_name identified by "passwd"
default tablespace tablespace_name profile default account unlock;
授予用户权限(例如授予全部权限):
grant connect, resource, dba, exp_full_database, imp_full_database to usr_name;
grant unlimited tablespace to usr_name;
5.6 数据导入(使用 impdp 命令)
1、创建目录对象(使用导入数据所在目录)
create directory tmp_dir as 'your_dir_path';
2、授权目录访问权限给用户
grant read, write on directory tmp_dir to usr_name;
3、执行数据导入
impdp usr_name/password@SID DIRECTORY=tmp_dir DUMPFILE=your_dump_file.dmp LOGFILE=your_log_file.log
5.7 OEM 服务配置
设置 HTTP 和 HTTPS 端口:
exec DBMS_XDB_CONFIG.setHTTPPort(5500);
exec DBMS_XDB_CONFIG.setHTTPSPort(5502);
检查监听状态
(例如过滤端口 55):
lsnrctl status | grep 55
通过浏览器访问 OEM:
例如:https://<服务器IP>:5502/em
5.8 启动/关闭数据库与监听
数据库操作:
启动数据库:
startup;
正常关闭:
shutdown;
立即关闭:
shutdown immediate;
事务关闭:
shutdown transactional;
强制关闭:
shutdown abort;
监听操作:
启动监听:
lsnrctl start;
停止监听:
lsnrctl stop;
六、卸载 Oracle 数据库
6.1 安全关闭实例与监听
1、使用合适的方式关闭数据库实例:
shutdown immediate;
2、停止监听服务:
lsnrctl stop;
6.2 删除 Oracle 安装目录及库存目录
删除 Oracle 安装目录(ORACLE_BASE):
rm -rf /home/oracle19c/app/oracle/
删除库存目录(ORA_INVENTORY):
rm -rf /home/oracle19c/oraInventory
删除数据文件目录:
rm -rf /home/oracle19c/app/oracle/oradata/
6.3 删除 /usr/local/bin 下相关链接文件
以 root 用户执行:
rm -rf /usr/local/bin/coraenv
rm -rf /usr/local/bin/dbhome
rm -rf /usr/local/bin/oraenv
6.4 删除 /etc/oratab 文件
rm -rf /etc/oratab
6.5 删除 Oracle 用户及用户组
(注:如果计划重装可选择保留,否则建议删除)
userdel -r oracle
groupdel oinstall
以上即为 Oracle 19c 在 CentOS 7.9 无图形化环境下使用 zip 包安装的完整部署手册。整个过程从环境准备、依赖安装、用户和目录配置,到软件安装、监听配置、数据库创建及基本管理操作均作了详细说明,方便管理员按步骤操作和后续维护。