当前位置: 首页 > news >正文

Oracle 19C静默安装实战:CentOS 7环境部署与自动化运维指南

1. 项目缘起:为什么选择静默安装Oracle 19C?

如果你也像我一样,曾经在凌晨三点,对着一个需要图形化界面的Oracle数据库安装程序,在只有命令行终端的生产服务器上抓耳挠腮,那你一定能理解我写下这篇长文的初衷。在Linux服务器,尤其是像CentOS 7这样的经典企业级发行版上部署Oracle数据库,图形化安装(GUI)往往是个奢侈且不切实际的选择。服务器通常没有图形界面,通过远程桌面又慢又不稳定,而静默安装(Silent Installation)才是运维和DBA的“标准答案”。

Oracle 19C,作为长期支持版本,集成了多租户、自动索引等众多企业级特性,是当前新建系统的热门选择。而CentOS 7,以其稳定性和广泛的社区支持,依然是许多企业基础设施的基石。将这两者结合,通过静默方式完成部署,意味着你可以通过一个脚本、一套响应文件,实现从零到数据库就绪的全自动化过程。这对于批量部署、持续集成/持续部署(CI/CD)流水线、以及追求环境一致性的DevOps实践来说,是至关重要的技能。

网上教程不少,但要么步骤缺失,要么对原理一笔带过,遇到报错时让人无从下手。我结合多次在真实生产环境和测试环境中的实战经验,将整个静默安装过程拆解成一步步可操作、可调试的细节。我们不仅要“跑通”,更要理解每一个参数的意义、每一个目录的作用、以及每一个可能出错的环节。这不仅仅是一个安装指南,更是一次对Oracle在Linux上部署逻辑的深度梳理。

2. 战前准备:构建坚如磐石的部署基础

静默安装的成功,90%取决于准备工作是否充分。这里没有图形界面的“下一步”给你反悔,所有配置都必须预先精准设定。

2.1 系统环境检查与最低要求确认

首先,我们需要一台干净的CentOS 7服务器。建议最小化安装(Minimal Install),减少不必要的软件包冲突。通过SSH连接后,第一件事是确认系统版本和内核。

cat /etc/redhat-release uname -r

对于Oracle 19C,Oracle官方有明确的系统要求。虽然有些要求对于静默安装可以“协商”,但核心的硬件和内核参数必须满足。

  1. 内存与交换空间:这是最容易出问题的地方。官方建议至少4GB物理内存。交换空间(Swap)的配置规则需要牢记:

    • 物理内存 1GB 到 2GB 之间:Swap 为物理内存的 1.5 倍。
    • 物理内存 2GB 到 16GB 之间:Swap 等于物理内存大小。
    • 物理内存超过 16GB:Swap 至少 16GB。 你可以使用free -hswapon -s来检查。如果交换空间不足,可以通过dd命令和mkswapswapon来创建和启用新的交换文件,但这属于系统管理范畴,操作前务必评估磁盘空间和性能影响。
  2. 磁盘空间/tmp目录至少需要1GB空间。Oracle软件安装目录(通常为/u01/app/oracle)建议预留至少20GB。数据库文件存储目录(如/u02/oradata)根据数据量预估,这里我们至少预留10GB。使用df -h命令查看。

  3. 依赖包:这是CentOS 7上安装Oracle的老大难问题。Oracle安装程序依赖于一系列特定的系统库,缺少任何一个都可能导致安装失败。我们需要安装以下包组和独立包:

# 先配置好yum源,例如使用阿里云或本地镜像源 yum install -y oracle-database-preinstall-19c

注意oracle-database-preinstall-19c这个包是Oracle官方为RHEL/CentOS 7提供的,它会自动创建oracle用户和组、设置内核参数、安装大部分依赖包。这是最推荐的方式,能避免大量手动配置的麻烦。如果因为网络原因无法安装此包,则需要手动安装一长串的依赖,包括但不限于binutils,compat-libcap1,gcc,ksh,libaio,libXrender等等,过程极其繁琐且易错。

2.2 创建规范化的目录结构与用户组

清晰的目录结构是良好运维习惯的开始。我们不建议使用默认的/home/oracle来存放软件和数据库文件。

  1. 创建文件系统挂载点(可选但推荐):如果条件允许,为Oracle软件和数据分别挂载独立的磁盘或分区到/u01/u02。这有利于性能管理和备份。

    mkdir -p /u01 /u02 # 假设 /dev/sdb1 挂载到 /u01, /dev/sdc1 挂载到 /u02 # 编辑 /etc/fstab 实现开机自动挂载
  2. 创建目录并授权

    mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 mkdir -p /u02/oradata mkdir -p /u01/app/oracle/oraInventory mkdir -p /u01/app/oracle/fast_recovery_area chown -R oracle:oinstall /u01 /u02 chmod -R 775 /u01 /u02
  3. 用户与组:如果使用了oracle-database-preinstall-19c包,用户oracle和主要组oinstall、附加组dba已经创建好。如果没有,需要手动创建:

    groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper useradd -u 54321 -g oinstall -G dba,oper oracle echo “oracle” | passwd --stdin oracle # 设置密码,生产环境请用更强密码

2.3 内核参数与资源限制调优

Oracle数据库对操作系统资源(如信号量、共享内存、进程数、文件句柄)有较高要求。oracle-database-preinstall-19c包已经帮我们修改了/etc/sysctl.conf/etc/security/limits.conf。但我们仍需理解这些参数,以便在特殊情况下进行调整。

检查/etc/sysctl.conf,关键参数应类似如下:

fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 1073741824 # 共享内存总页数,基于物理内存计算 kernel.shmmax = 4398046511104 # 最大共享内存段大小,建议大于物理内存 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使配置生效。

检查/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 hard stack 32768

这些限制是针对oracle用户的会话生效,需要重新登录才能应用。

2.4 获取安装介质与响应文件模板

这是静默安装的核心“原料”。你需要从Oracle官网下载Oracle 19C的Linux x86-64安装包,通常是一个名为LINUX.X64_193000_db_home.zip的压缩文件。请确保你拥有合法的许可证。

静默安装依赖一个“响应文件”(Response File),它就是一个包含了图形安装界面中所有选项的配置文件。幸运的是,Oracle安装介质里自带模板。

  1. 将安装包上传到服务器,例如/tmp目录。
  2. oracle用户身份,解压到目标家目录:
    su - oracle cd /u01/app/oracle/product/19.3.0/dbhome_1 unzip /tmp/LINUX.X64_193000_db_home.zip
  3. 在解压后的目录中,可以找到响应文件模板:
    find . -name “*.rsp”
    通常我们关注两个:db_install.rsp(仅安装软件)和dbca.rsp(创建数据库)。我们分两步走,先安装软件,再创建数据库,这样更清晰,也便于排错。

3. 第一步攻坚:静默安装数据库软件

安装软件是创建数据库的基础。这一步我们使用db_install.rsp文件。

3.1 解密与定制响应文件db_install.rsp

首先,复制模板并开始编辑:

cp /u01/app/oracle/product/19.3.0/dbhome_1/install/response/db_install.rsp /u01/app/oracle/ cd /u01/app/oracle vi db_install.rsp

这个文件里有几十个参数,但我们需要关注的只有十几个。以下是最关键的配置项及其含义:

# 基本配置 oracle.install.option=INSTALL_DB_SWONLY # 只安装软件,不建库 UNIX_GROUP_NAME=oinstall # 安装所属组 INVENTORY_LOCATION=/u01/app/oracle/oraInventory # 产品清单目录 ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 # 软件安装目录 ORACLE_BASE=/u01/app/oracle # Oracle基目录 oracle.install.db.InstallEdition=EE # 安装版本:企业版。SE2为标准版。 # 权限组 oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper 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 # 先不执行root脚本,我们手动来 oracle.install.db.rootconfig.configMethod=ROOT # 稍后使用root权限执行脚本 DECLINE_SECURITY_UPDATES=true # 非常重要!设为true,否则安装会中断等待输入邮箱

关键细节解析

  • oracle.install.option=INSTALL_DB_SWONLY:这是我们选择分步操作的核心。先装软件,再用DBCA静默建库,可控性更强。
  • DECLINE_SECURITY_UPDATES=true:这是静默安装的“生死线”。如果设为false或不设置,安装进程会停在那里等待你输入邮箱地址来接收安全更新,导致静默安装失败。务必设为true
  • rootconfig.executeRootScript=false:我强烈建议先设为false。让安装程序生成root脚本(orainstRoot.shroot.sh),然后我们自己仔细检查后再执行。自动执行有时会因环境问题卡住。

3.2 执行安装命令与实时监控

配置好响应文件后,就可以开始安装了。切换到oracle用户,进入安装程序所在目录执行:

cd /u01/app/oracle/product/19.3.0/dbhome_1 ./runInstaller -silent -responseFile /u01/app/oracle/db_install.rsp -ignorePrereqFailure

参数解释

  • -silent:指定静默模式。
  • -responseFile:指定响应文件路径。
  • -ignorePrereqFailure这是一个重要的经验参数。有时预检查(Prerequisite Check)会因为一些非致命性警告(例如,某些精确版本号的包没找到,但有更高版本)而失败。加上这个参数可以让安装程序继续。当然,前提是你确认那些失败的检查项不影响大局(比如只是建议性检查)。

安装过程会持续10到30分钟,取决于服务器性能。你会在终端看到百分比进度和日志文件路径。千万不要关闭终端!最重要的监控方式是跟踪日志:

tail -500f /u01/app/oracle/oraInventory/logs/installActions*.log

这个日志文件记录了安装的所有细节,是排错的唯一依据。如果安装失败,99%的答案都在这个日志里。成功的标志是看到类似以下的输出:

... 100% 完成。 [INFO] [INS-13022] Oracle Home 已成功设置。 [INFO] [INS-13014] 请执行以下脚本: 1. /u01/app/oracle/oraInventory/orainstRoot.sh 2. /u01/app/oracle/product/19.3.0/dbhome_1/root.sh

3.3 执行Root脚本与验证安装

看到上面的提示后,安装程序主体就完成了。但还需要用root权限执行两个脚本来完成一些系统级的配置。

  1. 打开一个新的终端,用root用户登录,执行第一个脚本:

    /u01/app/oracle/oraInventory/orainstRoot.sh

    这个脚本通常只是更改oraInventory目录的权限,执行很快。

  2. 执行第二个,也是更重要的脚本:

    /u01/app/oracle/product/19.3.0/dbhome_1/root.sh

    这个脚本会执行一系列操作,比如:

    • 将Oracle可执行文件路径添加到root用户的默认路径。
    • 创建/etc/oratab文件(数据库实例注册表)。
    • 检查并配置udev设备规则(如果使用ASM)。
    • 提示你配置ORACLE_UNQNAME环境变量(可以回车跳过)。务必仔细阅读root.sh脚本的输出,确认没有ERROR字样。有时它会警告/usr/local/bin目录不存在,这是正常的,它会自动创建。
  3. 验证软件安装:切换回oracle用户,检查Oracle环境是否正常。

    su - oracle export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH export ORACLE_SID=orcl # 临时设置一个SID sqlplus / as sysdba

    如果成功进入SQL*Plus,显示Connected to an idle instance.,说明数据库软件安装成功,但还没有创建任何数据库实例。输入exit退出。

4. 第二步攻坚:静默创建数据库实例

软件就绪后,我们使用Database Configuration Assistant (DBCA) 的静默模式来创建数据库。

4.1 配置数据库创建响应文件dbca.rsp

同样,先找到并复制模板:

cp /u01/app/oracle/product/19.3.0/dbhome_1/assistants/dbca/dbca.rsp /u01/app/oracle/ cd /u01/app/oracle vi dbca.rsp

这个文件参数更多,我们聚焦于创建一个通用的、可用的数据库。以下是一个功能完整的配置示例:

# 数据库标识与类型 responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 gdbName=orcl.example.com # 全局数据库名,格式建议:SID.域名 sid=orcl # 数据库系统标识符,至关重要 databaseConfigType=SI # 单实例数据库。RAC为多实例。 templateName=General_Purpose.dbc # 使用通用模板 # 文件存储位置 sysPassword=YourSysPassword123 # SYS用户密码,生产环境务必复杂! systemPassword=YourSystemPassword123 # SYSTEM用户密码 datafileDestination=/u02/oradata # 数据文件存放目录 recoveryAreaDestination=/u01/app/oracle/fast_recovery_area # 快速恢复区 storageType=FS # 文件系统存储。如果是ASM,则设为ASM。 characterSet=AL32UTF8 # 字符集,推荐UTF8 nationalCharacterSet=AL16UTF16 # 国家字符集 # 内存与特性配置 memoryPercentage=40 # 自动内存管理,占用物理内存的40% enableArchive=true # 开启归档模式,对于生产环境备份至关重要 archiveLogFormat=%t_%s_%r.dbf # 归档日志文件名格式 initParams=undo_tablespace=UNDOTBS1,control_files=("/u02/oradata/orcl/control01.ctl", “/u01/app/oracle/fast_recovery_area/orcl/control02.ctl”) # 初始化参数,这里指定了undo表空间和控制文件多路复用 # 监听与EM createListener=listener # 创建一个名为listener的监听器 listenerPort=1521 # 监听端口 listener.oraDirectory=/u01/app/oracle/product/19.3.0/dbhome_1/network/admin skipEMConfiguration=true # 跳过Enterprise Manager配置,简化安装

避坑指南:密码与目录权限

  • 密码:响应文件中的密码是明文。这是一个安全风险。在生产环境中,更好的做法是:1) 在响应文件中不填密码,使用dbca -silent时通过-sysPassword-systemPassword等命令行参数传入(但可能仍在进程列表中被看到);2) 安装后立即修改密码;3) 使用Oracle密钥库(Oracle Wallet)等更安全的方式。对于实验环境,明文可以接受,但必须复杂,避免使用oraclemanager这类简单密码,否则DBCA可能会报密码复杂度错误。
  • 目录权限:确保oracle用户对/u02/oradata/u01/app/oracle/fast_recovery_area有写权限。DBCA会在这些目录下创建以sid命名的子目录(如/u02/oradata/orcl)。

4.2 执行DBCA静默建库与过程解读

配置完成后,使用以下命令创建数据库:

cd /u01/app/oracle/product/19.3.0/dbhome_1/bin ./dbca -silent -createDatabase -responseFile /u01/app/oracle/dbca.rsp

这个过程比安装软件更长,可能会持续20分钟到1小时以上,因为它要创建数据文件、系统表空间、用户表空间,并运行一系列建库后的脚本。同样,需要监控日志:

tail -f /u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log # 或者更通用的跟踪方式 tail -f /u01/app/oracle/cfgtoollogs/dbca/orcl/*.log

在日志中,你会看到它经历的几个关键阶段:

  1. 复制数据库文件:从模板文件(.dbc)中解压出初始的数据文件和控制文件。
  2. 创建并启动实例:根据参数文件(spfile)在内存中构建实例结构。
  3. 运行SQL脚本:这是最耗时的部分,包括创建数据字典、安装Oracle组件(如JVM、XML DB等)、编译PL/SQL包。
  4. 配置监听器:创建listener.ora文件并启动监听进程。
  5. 数据库创建完成:输出数据库信息,包括企业管理器(如果启用)的URL。

常见问题与处理

  • 进度卡在某个百分比:不要立即中断。去查看具体的日志文件(如orcl.log),看最后在执行哪个SQL脚本。有时编译无效对象会比较慢。
  • ORA-错误:最常见的错误可能与空间不足、权限不足、参数设置冲突有关。根据日志中的错误代码和消息去搜索解决。例如,ORA-01078: failure in processing system parameters很可能是因为initParams中指定的undo_tablespace不存在,而模板中默认是UNDOTBS1,需要保持一致。
  • 监听器配置失败:如果提示监听相关错误,可以等数据库创建完成后,手动用netca(网络配置助手)静默模式或直接编辑listener.oratnsnames.ora文件来解决。

4.3 建库后关键检查与基础配置

当看到Database creation complete.Database information:等输出时,恭喜你,数据库实例已经创建成功。但工作还没完,需要进行几项关键检查。

  1. 检查数据库状态与连通性

    su - oracle export ORACLE_SID=orcl sqlplus / as sysdba SQL> SELECT name, open_mode, database_role FROM v$database; SQL> SELECT * FROM v$version WHERE rownum =1; SQL> exit

    应该能看到数据库名为ORCL,处于READ WRITE模式。

  2. 检查监听状态

    lsnrctl status

    确认监听器LISTENER正在运行,并且服务orcl的状态为READYBLOCKED

  3. 配置环境变量(持久化):为了方便,将Oracle环境变量添加到oracle用户的~/.bash_profile中。

    vi ~/.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=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 设置客户端字符集 # 使配置生效 source ~/.bash_profile
  4. 测试远程连接:从同一网络的另一台机器,使用sqlplus system/YourSystemPassword123@//<服务器IP>:1521/orcl进行连接测试,确保网络和监听配置正确。

5. 实战排错:那些年我踩过的坑与解决方案

静默安装看似顺利,实则暗礁遍布。下面分享几个我亲身经历的高频问题及其排查思路。

5.1 依赖包缺失导致的安装中断

即使使用了oracle-database-preinstall-19c,有时仍会缺少某些图形库(如libXrender,libXtst),因为最小化安装的CentOS 7可能没有X11相关的库。错误信息通常在安装日志的预检查部分。

排查与解决

  1. 查看安装日志/u01/app/oracle/oraInventory/logs/installActions*.log,搜索PRVF-Checking for关键字,找到具体缺失的包。
  2. 使用yum provides */libXrender.so.1来查找提供该库的包名。
  3. 安装缺失的包:yum install -y libXrender libXtst ...。如果依赖包版本冲突,可以尝试用-ignorePrereqFailure参数强制继续,但需评估风险。

5.2 交换空间(Swap)不足引发的性能怪象

这不是一个会直接报错退出的问题,但会导致安装或建库过程极其缓慢,甚至内存溢出(OOM)被系统杀死。症状:服务器卡顿,top命令显示swpd使用量很高,si/so(Swap In/Out)值持续不为0。

排查与解决

  1. 监控:在安装过程中,另开一个终端,使用free -hvmstat 2监控内存和交换分区使用情况。
  2. 计算:根据之前提到的规则,确认交换分区是否足够。例如,8GB内存的机器,Swap至少应为8GB。
  3. 扩容:如果不足,最干净的方法是增加一个Swap分区。如果磁盘空间紧张,可以创建Swap文件:
    # 作为root操作 dd if=/dev/zero of=/swapfile bs=1M count=8192 # 创建8GB文件 chmod 600 /swapfile mkswap /swapfile swapon /swapfile # 为了永久生效,将 `/swapfile swap swap defaults 0 0` 添加到 /etc/fstab

5.3 DBCA静默建库中的“幽灵”错误

有时DBCA会失败,但日志信息模糊,只显示一个百分比和“操作失败”。这时需要深入挖掘更详细的日志。

深度排查流程

  1. 定位核心日志:DBCA的日志不止一个。主日志是orcl.log,但每个子步骤都有独立日志。去/u01/app/oracle/cfgtoollogs/dbca/orcl/目录下,按时间排序,查看最新的.log.xml文件。
  2. 搜索错误关键字:在日志文件中搜索ERROR,ORA-,FAILED,Exception
  3. 常见错误场景
    • ORA-12547: TNS:lost contact:这通常意味着数据库实例进程异常终止。检查$ORACLE_HOME/dbs目录下的alert_orcl.log文件(警报日志),这是实例运行的“黑匣子”,里面会有进程终止的根本原因,比如内存参数设置不当、内核参数shmmax太小等。
    • ORA-01092: ORACLE instance terminated. Disconnection forced:同样是实例崩溃,查警报日志。
    • INS-20802: Oracle Net Configuration Assistant failed:监听配置问题。可以尝试手动运行netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp来配置监听,或者直接手动编辑$ORACLE_HOME/network/admin/listener.ora文件。
  4. 重置与重试:如果问题难以定位,可以清理环境后重试。清理步骤包括:删除数据库文件(/u02/oradata/orcl)、删除快速恢复区文件、使用DBCA静默删除数据库(dbca -silent -deleteDatabase -sourceDB orcl),以及清理/etc/oratab和Oracle清单中的记录。这是一个“核选项”,但有时比盲目调试更高效。

5.4 环境变量配置不当导致的“命令未找到”

安装完成后,sqlpluslsnrctl等命令无法识别,提示command not found

原因与解决:这是因为$ORACLE_HOME/bin没有加入到oracle用户的PATH环境变量中。

  1. 临时解决:直接使用绝对路径,如/u01/app/oracle/product/19.3.0/dbhome_1/bin/sqlplus
  2. 永久解决:如前所述,将环境变量配置写入~/.bash_profilesource关键点:确保没有其他脚本(如~/.bashrc)覆盖了这些变量。另外,如果通过su - oracle切换用户,-(横杠)代表登录shell,会读取 profile 文件;如果只用su oracle,则不会,容易导致环境变量不生效。

6. 从安装到运维:必要的后续优化步骤

数据库创建成功并连通,只是万里长征第一步。对于一个准备投入使用的系统,尤其是生产环境,以下几项优化至关重要。

6.1 关键参数调整与性能基线设置

DBCA创建的数据库参数偏保守。我们需要根据服务器硬件调整一些关键参数。修改前务必备份参数文件!

-- 以sysdba连接 sqlplus / as sysdba -- 1. 调整进程和会话数(默认值可能偏小) ALTER SYSTEM SET processes=500 SCOPE=spfile; ALTER SYSTEM SET sessions=555 SCOPE=spfile; -- 2. 调整PGA和SGA(如果使用自动内存管理AMM,以下参数会自动管理,但可以设置总内存上限) -- 先查看当前内存设置 SHOW PARAMETER memory_target; SHOW PARAMETER memory_max_target; -- 如果服务器内存充足,可以适当调大,例如设置为8G ALTER SYSTEM SET memory_target=8G SCOPE=spfile; ALTER SYSTEM SET memory_max_target=8G SCOPE=spfile; -- 3. 调整游标相关参数,避免“ORA-01000: maximum open cursors exceeded” ALTER SYSTEM SET open_cursors=300 SCOPE=spfile; -- 4. 优化重做日志(Redo Log) -- 查看当前日志组和大小 SELECT group#, bytes/1024/1024 as size_mb, status FROM v$log; -- 重做日志大小建议在几百MB到1GB之间,太小会导致频繁的日志切换和检查点,影响性能。 -- 修改需要删除旧组、添加新组,操作较为复杂,建议在业务低峰期进行。 -- 使所有spfile修改生效,需要重启数据库 SHUTDOWN IMMEDIATE; STARTUP;

6.2 自动化脚本与监控入门

手动操作易出错,将常用操作脚本化是专业DBA的习惯。

  1. 启动/关闭脚本:创建一个简单的脚本~/scripts/start_orcl.shstop_orcl.sh

    # start_orcl.sh #!/bin/bash export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH export ORACLE_SID=orcl sqlplus / as sysdba << EOF startup; exit; EOF lsnrctl start
    # stop_orcl.sh #!/bin/bash export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH export ORACLE_SID=orcl sqlplus / as sysdba << EOF shutdown immediate; exit; EOF lsnrctl stop

    记得给脚本加执行权限:chmod +x ~/scripts/*.sh

  2. 基础监控查询:保存一些常用的SQL到文件,如检查表空间使用率、会话数、等待事件等。

    -- tablespace_usage.sql SELECT a.tablespace_name, total / 1024 / 1024 as Total_MB, free / 1024 / 1024 as Free_MB, (total - free) / 1024 / 1024 as Used_MB, ROUND((total - free) / total * 100, 2) as “Used_%” FROM (SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) free FROM dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name(+) ORDER BY “Used_%” DESC;

6.3 备份策略的基石:归档日志与RMAN初配

对于生产数据库,开启归档模式是实施任何有效备份策略(如RMAN)的前提。我们在DBCA响应文件中已经设置了enableArchive=true。现在来验证和进行初步配置。

  1. 验证归档模式与状态

    ARCHIVE LOG LIST; -- 应该显示“Database log mode: Archive Mode”和“Automatic archival: Enabled”。 SELECT name, log_mode FROM v$database;
  2. 配置RMAN默认设置:RMAN(Recovery Manager)是Oracle官方的备份恢复工具。先进行一些基本配置。

    rman target /
    -- 显示当前配置 SHOW ALL; -- 配置备份保留策略(例如,保留最近7天的备份) CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; -- 配置控制文件自动备份(强烈建议开启) CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/u01/app/oracle/fast_recovery_area/%F’; -- 配置默认备份设备为磁盘,并指定备份集格式 CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘/u01/app/oracle/backup/%U’; -- 退出 EXIT;
  3. 执行一次全量备份测试

    rman target / BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

    这条命令会备份整个数据库以及所有归档日志,备份完成后删除已备份的归档日志。首次备份会花费较长时间,请确保备份目录有足够空间。

静默安装Oracle 19C就像组装一台精密的钟表,前期准备(零件检查)占用了大部分时间,真正的拧螺丝(执行安装命令)过程反而相对快速。这套流程经过多次实战检验,能覆盖绝大多数标准场景。然而,每个生产环境都有其独特性,可能会遇到文中未提及的古怪问题。这时,请牢记你的三大法宝:官方文档安装日志installActions*.log,dbca.log,alert_<sid>.log)和Google/MyOracle Support。耐心阅读日志中的每一行错误信息,精准地搜索,你总能找到解决问题的线索。最后,在任何一个关键步骤(如修改参数文件、删除数据库文件)之前,养成备份的好习惯,这将让你在探索的道路上走得更稳、更远。

http://www.jsqmd.com/news/1336990/

相关文章:

  • 基于大模型的Idea提炼智能体:架构设计与工程实践
  • 微信消息防撤回技术全解析:从原理到安卓/iOS/电脑端实现方案
  • 2026年8月福建省移动1000M宽带套餐避坑全攻略 - 找卡家园
  • 2026年8月福建省龙岩市移动宽带避坑攻略 - 找卡家园
  • STM32智能风扇物联网毕业设计:硬件到云端的全流程实战指南
  • DeepSeek V4 Flash量化模型本地部署:从GGUF到Llama.cpp实战指南
  • Illustrator脚本开发实战:自动角线生成与印刷流程优化
  • 一个模型通吃所有任务?揭秘通用架构的野心与代价
  • 昆泰芯 KTH5642|2.8~6V/-40~125℃双档灵敏度线性霍尔 SOT23/TO92 电机电流角度检测方案
  • Agent基座换代:国产三派5场景实测
  • 智能体应用架构解耦实战:从平台依赖到独立服务的迁移指南
  • 2026年8月福建省福州市移动宽带申请避坑实录 - 找卡家园
  • 2026年8月福建省移动1000M宽带申请避坑与实测攻略 - 找卡家园
  • Unity LayerMask深度解析:从位运算原理到实战优化技巧
  • SpringBoot与Vue构建的智能港口物流管理系统实践
  • Windows平台MySQL 5.7手动安装与配置全攻略
  • GitHub中文界面插件:让全球最大代码平台说中文
  • 基于分层控制、几何控制和带有外部扳手干扰的无源控制和 APF 算法对空气动力效应的无人机四旋翼飞行器进行建模和控制附Matlab代码
  • 中企业网站建设怎么做好?中小企业网站建设实用指南与避坑手册
  • 网络性能优化:ECN机制原理、配置与实战排查指南
  • 技术视角拆解手作发圈盲盒:从情感产品化到标准化SOP的微创业实战
  • 郑州空气能服务商推荐:【芬尼】服务周全 - 17328623207
  • OneDrive双向实时同步:多设备文件管理核心方案与实战部署
  • 2026年8月福建省移动1000M宽带办理申请全攻略与真实避坑经验 - 找卡家园
  • 商用中央空调免费热水配套系统推荐哪家:【芬尼】余热利用 - 17328623207
  • WorkBody:微信公众号自动化发布工具部署与实战指南
  • 深度解析:如何建设营销型网站从底层逻辑到实战落地的全方位指南
  • SkiaSharp在WinForm中实现GPU加速绘图与交互式动画
  • SK海力士与闪迪联合推动HBF标准:下一代高性能闪存接口技术解析
  • Python如何通过URL链接判断文件类型