目录
- 在 CentOS 7.9上部署 Oracle 11.2.0.4.0 数据库
- 引言
- 安装常见问题
- vim粘贴问题
- 环境情况
- 环境信息
- 安装包下载
- 初始环境准备
- 关闭 SELinux
- 关闭 firewalld
- 安装前初始化工作
- 配置主机名
- 安装依赖
- 优化内核参数
- 限制 Oracle 用户的 Shell 权限
- 配置 PAM 模块
- 配置swap
- 创建用户组与用户,以及oracle所需目录
- 配置oracle用户环境变量
- 切换到 Oracle 用户
- 编辑 .bash_profile
- 解释各个环境变量
- 使配置生效
- 验证配置
- 配置安装目录以及解压安装包
- 切换到 Oracle 用户
- 解压 Oracle 安装包
- 移动解压后的文件
- 复制响应文件
- 修改安装配置项
- 修改db_install.rsp
- 修改dbca.rsp
- 开始安装
- 切换到 Oracle 用户
- 安装Oracle软件
- 执行扩展脚本
- 配置监听
- 切换到 Oracle 用户
- 配置 Oracle Listener
- 创建oracle实例以及创建新用户
- 切换到 Oracle 用户
- 创建实例
- 开机自启
- 其他
- 总结
在 CentOS 7.9上部署 Oracle 11.2.0.4.0 数据库
引言
Oracle 数据库作为一种高性能的关系型数据库管理系统,广泛应用于企业级应用中。尽管 Oracle 官方推荐使用其自家的 Linux 版本进行部署,但在 CentOS 上部署 Oracle 同样是一个常见的选择,尤其是在测试和开发环境中。
本文将带领大家一步步通过 CentOS 7 操作系统部署 Oracle 数据库的过程,从环境准备到数据库安装,确保在 CentOS 上成功运行 Oracle 数据库。我们将涵盖安装前的准备工作、必备依赖、配置优化以及常见的安装问题和解决方案。
安装常见问题
vim粘贴问题
关于 vim
编译粘贴带有 #
号的情况,可以描述为:在 vim
中进行编译或粘贴代码时,尤其是粘贴来自外部编辑器或文档的内容,如果内容前有 #
注释符号,可能会因为缩进或特殊字符导致格式错误。这时,可以使用 vim
的粘贴模式来避免这些问题。
具体操作步骤如下:
-
启用粘贴模式
在vim
中,使用以下命令启用粘贴模式::set paste
-
粘贴内容
粘贴操作时,vim
会忽略自动缩进和格式化,使得粘贴的内容按照原样保留,包括注释符号#
。 -
关闭粘贴模式
粘贴完成后,可以使用以下命令退出粘贴模式,恢复正常的格式化行为::set nopaste
通过上述方法,粘贴代码时带有 #
的注释符号不会被误处理,避免格式错误。
环境情况
环境信息
对于Oracle 11g,建议至少有4核的CPU和8GB的RAM作为最小配置
项目 | 详情 |
---|---|
操作系统 | CentOS Linux release 7.9.2009 (Core) |
CPU 核心数 | 8 核(逻辑核心) |
内存 | 16G |
Oracle版本 | 11.2.0.4.0 |
官方安装参考
安装包下载
百度网盘下载oracle软件包
下边这两个文件夹别下载错了
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
初始环境准备
在开始 Oracle 数据库的安装之前,我们需要对 CentOS 系统进行一些必要的配置。这些配置有助于确保安装过程顺利进行,并避免出现常见的安装问题。
关闭 SELinux
SELinux(Security-Enhanced Linux)是 Linux 系统的一种安全机制,但它可能会干扰 Oracle 安装过程。因此,我们需要在安装之前暂时关闭 SELinux。
执行以下命令查看 SELinux 状态:
sestatus
如果 SELinux 处于启用状态,使用以下命令关闭 SELinux:
setenforce 0
要永久禁用 SELinux,需要编辑 /etc/selinux/config
文件,将 SELINUX
设置为 disabled
:
vim /etc/selinux/config
修改:
SELINUX=disabled
保存并退出编辑器后,重启系统使配置生效:
reboot
关闭 firewalld
Oracle 数据库的安装和配置可能会受到防火墙的限制,因此需要关闭 CentOS 系统上的 firewalld 服务。
执行以下命令停止并禁用 firewalld:
systemctl stop firewalld
systemctl disable firewalld
检查 firewalld 状态,确保其已被禁用:
systemctl status firewalld
安装前初始化工作
配置主机名
使用 hostnamectl set-hostname db
来设置主机名为 db
,然后将主机名与 IP 地址映射到 /etc/hosts
文件中,以便本地解析:
hostnamectl set-hostname db
echo "10.255.101.216 db" >> /etc/hosts
- 注意:这里的 IP 地址
10.255.101.216
应替换为你实际的服务器 IP 地址。
安装依赖
首先检查是否已经安装了所需的依赖,使用命令:
rpm -q 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
这将检查系统中是否已安装所需的软件包。如果没有安装,使用以下命令来安装:
yum -y install net-tools lrzsz telnet wget unzip zip binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
注意事项:
- 安装
gcc
、glibc
等开发工具包和库对于数据库的安装和编译是必不可少的 unixODBC
和其相关开发包通常用于与数据库进行连接(例如,ODBC 驱动程序)
安装完再rpm检查,都有了
优化内核参数
在 Oracle 安装前,我们需要调整一些内核参数,确保系统性能能够满足 Oracle 数据库的需求。可以通过修改 /etc/sysctl.conf
文件来设置这些参数。
- 计算
shmall
和shmmax
的值
-
kernel.shmall
:表示系统共享内存总页数。计算方法是:shmall = total_memory / 4
,其中total_memory
是通过free -k
命令获取的系统总内存(单位:KB)。 -
kernel.shmmax
:表示共享内存段的最大值,计算方法是:shmmax = total_memory - 1
,其中total_memory
是通过free -b
获取的总内存(单位:字节)。
假设你运行 free -k
得到的输出为:
total used free shared buff/cache available
Mem: 16425172 123732 16164392 8784 137048 16059168
然后计算:
kernel.shmall = total / 4 = 16425172 / 4 = 4106293
假设你运行 free -b
得到的输出为:
total used free shared buff/cache available
Mem: 16819376128 125624320 16553308160 8994816 140443648 16445612032
然后计算:
kernel.shmmax = total - 1 = 16819376128 - 1 = 16819376127
备份配置文件,防止错误时恢复
cp -p /etc/sysctl.conf /etc/sysctl.conf_bak
编辑 /etc/sysctl.conf
文件,并加入以下配置:
# 最大异步I/O请求数
fs.aio-max-nr = 1048576
# 系统最大打开文件数
fs.file-max = 6815744
# 共享内存段的最大数量
kernel.shmall = 4106293
# 每个共享内存段的最大大小
kernel.shmmax = 16819376127
# 系统中共享内存段的最大数量
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
- 应用内核参数更改
修改完成后,保存并退出文件,然后执行以下命令使更改生效:
sysctl -p
这些优化的内核参数将帮助 Oracle 数据库在 CentOS 上运行时获得更好的性能,特别是对于大规模并发访问和共享内存的需求。
限制 Oracle 用户的 Shell 权限
为了确保 Oracle 数据库的稳定运行,我们需要设置一些资源限制,以限制 Oracle 用户的进程数、打开文件数和栈大小等。通过修改 /etc/security/limits.conf
文件,可以有效地控制 Oracle 用户的资源使用。
-
编辑
/etc/security/limits.conf
使用文本编辑器打开
/etc/security/limits.conf
文件:vim /etc/security/limits.conf
然后在文件的末尾添加以下配置:
# 限制 Oracle 用户的资源使用 oracle soft nproc 2047 # 限制 Oracle 用户的最大进程数(软限制) oracle hard nproc 16384 # 限制 Oracle 用户的最大进程数(硬限制) oracle soft nofile 4096 # 限制 Oracle 用户的最大打开文件数(软限制) oracle hard nofile 65536 # 限制 Oracle 用户的最大打开文件数(硬限制) oracle soft stack 10240 # 限制 Oracle 用户的栈大小(软限制)
-
说明
nproc
: 限制 Oracle 用户可以创建的最大进程数。软限制和硬限制分别为 2047 和 16384,软限制可以由用户自行调整,而硬限制则是最大值,不允许超过。
nofile
: 限制 Oracle 用户可以打开的最大文件数。软限制为 4096,硬限制为 65536。
stack
: 限制 Oracle 用户的栈大小。软限制为 10240(单位为 KB)。 -
应用更改
保存并退出文件后,重新登录系统使更改生效。Oracle 用户的资源限制将会按上述配置进行控制。
配置 PAM 模块
首先,备份原始的 login
配置文件:
cp -p /etc/pam.d/login /etc/pam.d/login-bak
然后,编辑 /etc/pam.d/login
文件,追加以下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
pam_limits.so
:该模块用于读取/etc/security/limits.conf
中的资源限制,并将其应用于用户会话。通过这条配置,确保 PAM 模块在每个会话中加载资源限制。
配置swap
oracle安装程序要求至少有 150 MB 的交换空间swap
-
创建交换文件:
fallocate -l 1G /swapfile
这将创建一个 1 GB 大小的交换文件。如果你需要更大的交换空间,可以根据需要调整文件大小。
-
设置交换文件格式:
mkswap /swapfile
这会将交换文件格式化为交换空间。
-
启用交换空间:
swapon /swapfile
这会立即启用交换空间。
-
使交换文件在重启后生效:
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
-
交换空间(Swap)相关信息:
cat /proc/meminfo | grep Swap
- SwapTotal:交换空间的总大小
- SwapFree:当前未使用的交换空间
- SwapCached:被缓存但未使用的交换空间
创建用户组与用户,以及oracle所需目录
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo oracle|passwd --stdin oracle
mkdir -p /data/app/oracle/app /data/app/oracle/etc
chown -R oracle:oinstall /data/app/oracle /data/bag
chmod -R 775 /data/app/oracle /data/bag
配置oracle用户环境变量
切换到 Oracle 用户
首先,确保以 oracle
用户身份登录。你可以使用 su
命令切换到 oracle
用户:
su - oracle
编辑 .bash_profile
然后,编辑 oracle
用户的 .bash_profile
文件,通常位于 ~/.bash_profile
,在文件末尾追加以下配置:
# oracle安装目录
export ORACLE_BASE=/data/app/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
# oracle实例SID名称
export ORACLE_SID=orcl
# 同SID
export ORACLE_TERM=orcl
# 设置Oracle的可执行文件路径
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
# 设置Oracle库文件路径
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
# 设置语言环境
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
# 同SID
export ORACLE_UNQNAME=orcl
# 追加 Oracle 可执行文件路径
export PATH=$ORACLE_HOME/bin:$PATH
export PATH
# 设置 SQLPATH
export SQLPATH=/data/app/oracle/labs
解释各个环境变量
ORACLE_BASE
:指定 Oracle 安装的基础目录路径。ORACLE_HOME
:指定 Oracle 数据库软件的安装路径。通常,它位于ORACLE_BASE
目录下的product
子目录中。ORACLE_SID
:设置 Oracle 实例的 SID(System Identifier),这对应于你的 Oracle 数据库实例。ORACLE_TERM
:设置 Oracle 使用的终端类型,一般与 SID 名称相同。PATH
:确保 Oracle 的二进制文件路径被加入到PATH
环境变量中,方便执行 Oracle 相关命令。LD_LIBRARY_PATH
:设置 Oracle 的库文件路径,确保 Oracle 能找到所需的共享库。LANG
和NLS_LANG
:指定语言和字符集设置。NLS_LANG=AMERICAN_AMERICA.AL32UTF8
用于指定数据库使用的语言环境和字符集(通常是 UTF-8)。ORACLE_UNQNAME
:同ORACLE_SID
,表示 Oracle 实例的唯一名称。SQLPATH
:指定 SQL 脚本的默认路径,方便执行 SQL 文件。
使配置生效
完成编辑后,保存并关闭文件。然后使用以下命令使修改生效:
source ~/.bash_profile
这会重新加载 .bash_profile
文件并使配置立即生效。
验证配置
你可以通过运行以下命令验证环境变量是否配置正确:
echo $ORACLE_BASE
echo $ORACLE_HOME
echo $ORACLE_SID
echo $PATH
这些命令应该会显示你刚刚设置的环境变量值。
配置安装目录以及解压安装包
切换到 Oracle 用户
确保以 oracle
用户身份登录。可以通过 su
命令切换到 oracle
用户:
su - oracle
解压 Oracle 安装包
假设你已经有了 Oracle 安装包文件,如 p13390677_112040_Linux-x86-64_1of7.zip
和 p13390677_112040_Linux-x86-64_2of7.zip
,并且这两个文件放在了同一个目录下/data/bag/
运行以下命令解压这些文件:
cd /data/bag/
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
解压后,你会得到一个 databases
目录,里面包含了 Oracle 安装所需的文件。
移动解压后的文件
将解压后的 database
目录移动到指定的路径 /data/app/oracle/app/
:
mv database /data/app/oracle/app/
复制响应文件
Oracle 安装过程中需要使用响应文件(response
文件)来配置安装选项。将响应文件从 cp /data/app/oracle/app/database/response/
复制到 Oracle 的配置目录 /data/app/oracle/etc/
:
cp /data/app/oracle/app/database/response/* /data/app/oracle/etc/
设置响应文件权限
chmod 700 /data/app/oracle/etc/*.rsp
具体来说:
-
db_install.rsp
:这个响应文件通常用于 Oracle 数据库安装过程中的自动配置。它包含了安装过程中的配置参数,如 Oracle 安装路径、数据库名称等 -
dbca.rsp
:这是 Oracle 数据库创建助手(DBCA)使用的响应文件,用于自动化创建数据库的过程。它指定了数据库配置,如字符集、数据库模板、监听器配置等 -
netca.rsp
:这是 Oracle 网络配置助手(NETCA)使用的响应文件,用于自动化配置 Oracle 网络设置,通常用于配置监听器、TNS 网络服务等
修改安装配置项
修改db_install.rsp
/data/app/oracle/etc
目录下
主要是修改这几个参数,也可以直接吧下边的复制进去
INVENTORY_LOCATION
、ORACLE_HOME
、ORACLE_BASE
grep -v "^#" db_install.rsp |grep -v "^$"
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=db
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/app/oracle/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/app/oracle/app/product/11.2.0
ORACLE_BASE=/data/app/oracle/app
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
修改dbca.rsp
/data/app/oracle/etc
目录下
grep -v "^#" dbca.rsp |grep -v "^$"
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "sysdba"
SYSTEMPASSWORD = "sysdba"
SYSMANPASSWORD = "sysdba"
DBSNMPPASSWORD = "sysdba"
CHARACTERSET = "ZHS16GBK"
TEMPLATENAME = "General_Purpose.dbc"
[createTemplateFromDB]
SOURCEDB = "myhost:1521:orcl"
SYSDBAUSERNAME = "system"
TEMPLATENAME = "My Copy TEMPLATE"
[createCloneTemplate]
SOURCEDB = "orcl"
TEMPLATENAME = "My Clone TEMPLATE"
[DELETEDATABASE]
SOURCEDB = "orcl"
[generateScripts]
TEMPLATENAME = "New Database"
GDBNAME = "orcl11.us.oracle.com"
[CONFIGUREDATABASE]
[ADDINSTANCE]
DB_UNIQUE_NAME = "orcl"
NODELIST=
SYSDBAUSERNAME = "sys"
[DELETEINSTANCE]
DB_UNIQUE_NAME = "orcl"
INSTANCENAME = "orcl"
SYSDBAUSERNAME = "sys"
开始安装
切换到 Oracle 用户
首先,确保以 oracle
用户身份登录。你可以使用 su
命令切换到 oracle
用户:
su - oracle
安装Oracle软件
cd /data/app/oracle/app/database
./runInstaller -silent -force -responseFile /data/app/oracle/etc/db_install.rsp -ignorePrereq
它不会直接回到命令行,需要按下回车
执行扩展脚本
回到 root用户
/data/app/oracle/app/oraInventory/orainstRoot.sh
/data/app/oracle/app/product/11.2.0/root.sh
配置监听
切换到 Oracle 用户
首先,确保以 oracle
用户身份登录。你可以使用 su
命令切换到 oracle
用户:
su - oracle
配置 Oracle Listener
在安装并配置 Oracle 数据库时,listener.ora
文件用于定义 Oracle Listener 的配置。Oracle Listener 是一个重要的组件,它允许客户端通过网络访问数据库实例。以下是如何配置和启动 Oracle Listener 的步骤:
- 配置
listener.ora
Oracle Listener 配置文件 listener.ora
通常位于 $ORACLE_HOME/network/admin
目录下。你可以编辑该文件来配置 Listener 的详细参数。
以下是一个配置示例,位于 /data/app/oracle/app/product/11.2.0/network/admin/samples/listener.ora
:
# listener.ora Network Configuration File: /data/app/oracle/app/product/11.2.0/network/admin/samples/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /data/app/oracle/app/product/11.2.0)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = $(/sbin/ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}'))(PORT = 1521))
)
ADR_BASE_LISTENER = /data/app/oracle
Listener 配置了:
SID_LIST_LISTENER
:定义了 Oracle 数据库实例的 SID(System Identifier)以及数据库名称orcl
。LISTENER
:定义了监听协议、主机地址和端口号。HOST
配置使用了动态命令来获取服务器的 IP 地址(非127.0.0.1
)。ADR_BASE_LISTENER
:配置了诊断日志的存储位置。
- 启动 Listener
配置完 listener.ora
后,可以使用 lsnrctl
命令来启动 Oracle Listener:
lsnrctl start
启动成功后,会显示如下信息:
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 25-FEB-2025 19:03:23
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Starting /data/app/oracle/app/product/11.2.0/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Log messages written to /data/app/oracle/app/diag/tnslsnr/db/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db)(PORT=1521)))
- 检查 Listener 状态
启动 Listener 后,可以使用以下命令检查其状态:
lsnrctl status
输出将类似于:
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 25-FEB-2025 19:03:23
Uptime 0 days 0 hr. 0 min. 12 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /data/app/oracle/app/diag/tnslsnr/db/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db)(PORT=1521)))
The listener supports no services
- Listening Endpoints Summary 显示了监听的地址和端口。
- The listener supports no services 表示当前 Listener 尚未注册任何数据库服务。这个问题可以通过配置数据库服务或启动数据库实例来解决。
创建oracle实例以及创建新用户
切换到 Oracle 用户
首先,确保以 oracle
用户身份登录。你可以使用 su
命令切换到 oracle
用户:
su - oracle
创建实例
cd /data/app/oracle/app/product/11.2.0/bin/
./dbca -silent -responseFile /data/app/oracle/etc/dbca.rsp
## 创建test用户
- 登录到 Oracle 数据库
首先,以 sysdba
身份登录到 Oracle 数据库:
sqlplus / as sysdba
- 创建新用户
使用以下 SQL 命令创建一个名为 test
的新用户,并为其设置密码 123456
:
create user test identified by 123456;
- 授予权限
接下来,授予新用户 test
以下权限:
connect
:允许用户连接到数据库resource
:允许用户创建和管理资源(如表、视图、存储过程等)dba
:授予数据库管理员权限,允许执行所有管理任务
授予权限的 SQL 命令如下:
grant connect, resource, dba to test;
- 撤销权限
如果以后需要撤销某些权限,可以使用 revoke
命令。例如,要撤销 test
用户的 connect
、resource
和 dba
权限,可以使用以下命令:
revoke connect, resource, dba from test;
- 退出 SQL*Plus
完成操作后,可以退出 SQL*Plus:
exit
开机自启
切换到root用户
/etc/oratab
修改文件将N改为Y
orcl:/data/app/oracle/app/product/11.2.0:Y
配置/etc/systemd/system/oracle.service
[Unit]
Description=Oracle Database 11g Startup/Shutdown Service
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment="ORACLE_HOME=/data/app/oracle/app/product/11.2.0"
ExecStart=/data/app/oracle/app/product/11.2.0/bin/dbstart $ORACLE_HOME >> 2>&1 &
ExecStop=/data/app/oracle/app/product/11.2.0/bin/dbshut $ORACLE_HOME 2>&1 &
[Install]
WantedBy=multi-user.target
systemctl start oracle
systemctl enable oracle
其他
在 Oracle 数据库中,常见的配置调整包括修改最大连接数、禁用回收站功能、关闭审计功能等。以下是如何执行这些操作的示例。
- 修改最大连接数
最大连接数决定了 Oracle 数据库可以同时处理的最大进程数。要修改此值,可以使用以下命令:
SQL> show parameter processes;
这将显示当前的 processes
参数。接下来,执行以下命令修改最大连接数(例如,将其设置为 2000):
SQL> alter system set processes=2000 scope = spfile;
scope = spfile
:表示更改将生效于数据库的初始化参数文件(spfile
),并将在下一次数据库重启时生效。
- 禁用回收站功能
Oracle 数据库的回收站功能类似于 Windows 操作系统中的回收站,它允许用户恢复删除的数据表。根据需求,你可以选择是否禁用回收站。要查看回收站的状态:
SQL> show parameter recyclebin;
要禁用回收站功能,可以执行以下命令:
SQL> alter system set recyclebin=off scope=spfile;
scope=spfile
:表示更改会在下一次数据库重启时生效。
. 关闭审计功能
审计功能用于记录用户对数据库的操作,以便后续审查。根据需求,你可以选择关闭审计功能。首先,查看当前的审计设置:
SQL> show parameter audit;
然后,执行以下命令关闭审计功能:
SQL> alter system set audit_trail=NONE scope=spfile;
audit_trail=NONE
:表示禁用审计功能。
- 查看内存参数设置
要查看 Oracle 数据库的内存参数设置,可以使用以下命令:
-
查看 SGA(系统全局区)参数:
SQL> show parameter sga;
-
查看 PGA(程序全局区)参数:
SQL> show parameter pga;
-
查看所有内存相关参数:
SQL> show parameter memory;
这些命令可以帮助你查看数据库的内存分配情况,方便进行性能调优。
总结
Oracle 数据库的部署过程涉及多方面的配置和调优。合理的安装、配置和优化能够确保数据库高效、稳定地运行。通过本博文中的步骤,你可以从安装 Oracle 数据库到配置数据库实例、管理用户权限、优化系统设置,最终实现一个可靠、高效的数据库系统。
部署 Oracle 数据库是一个需要细致操作和持续监控的过程,尤其在生产环境中。通过本篇博文的学习,希望能帮助你更好地理解并掌握 Oracle 数据库部署的各项技术,提升系统的稳定性、性能与安全性。