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

Oracle 19c数据库从零安装到基础运维:Linux环境实战指南

1. 项目概述:为什么选择Oracle,以及安装前的关键考量

如果你正在为一个关键业务系统选型数据库,或者准备踏入企业级应用开发领域,那么Oracle数据库几乎是一个绕不开的名字。它不仅仅是“一个数据库”,更是企业级数据管理、高并发在线事务处理(OLTP)和复杂数据分析的基石。我接触Oracle超过十年,从早期的10g到现在的19c、21c,亲眼见证了它在金融、电信、制造业等核心场景中扮演的“定海神针”角色。很多人对Oracle望而却步,觉得它庞大、复杂、昂贵,安装过程更是“劝退”第一步。但我想说,只要理清思路,避开那些官方文档不会明说的“坑”,从零搭建一个可用的Oracle环境,并没有想象中那么困难。

这篇内容,就是为你准备的。无论你是刚入行的DBA、需要本地搭建测试环境的开发者,还是对数据库技术感兴趣的学习者,我都会以一个过来人的身份,带你走一遍完整的Oracle 19c数据库在Linux环境下的安装、配置及基础使用流程。我不会只给你冷冰冰的命令行,而是会解释每一个步骤背后的“为什么”,分享那些只有踩过坑才知道的细节调整。我们的目标很明确:在你自己的机器上,成功运行起一个稳定、可用的Oracle数据库实例,并掌握与之交互的基本方法。记住,安装只是开始,理解其架构和配置逻辑,才能让你在后续的使用和问题排查中游刃有余。

2. 环境准备与安装包获取:奠定稳固的基石

安装Oracle,七分在准备,三分在执行。仓促开始往往意味着中途各种报错和推倒重来。这一部分,我们详细拆解安装前的所有准备工作。

2.1 操作系统与硬件资源规划

Oracle对运行环境有明确要求。对于学习、测试或中小型应用,我们通常选择Linux发行版,如CentOS 7/8、Red Hat Enterprise Linux (RHEL) 7/8或Oracle Linux。这里以CentOS 7.x为例,因为它广泛使用且文档丰富。

硬件要求是硬门槛:

  • 内存:官方最低要求1GB,但这仅够安装程序勉强运行。为了获得可接受的性能,物理内存至少需要4GB,建议8GB或以上。交换空间(Swap)的大小也有讲究,通常建议是物理内存的1到2倍,但不超过16GB。例如,你有8GB内存,可以设置Swap为8GB到16GB。
  • 磁盘空间:这是最容易出问题的地方。你需要为Oracle软件本身、数据库文件、快速恢复区等预留空间。一个基础的安装,至少需要15GB的空闲磁盘空间。我强烈建议预留50GB以上,为数据增长和归档日志留足余地。文件系统推荐使用XFS或EXT4。
  • CPU:至少需要2个核心。现代服务器CPU通常不是瓶颈,但对于虚拟机环境,务必为虚拟机分配足够的CPU资源。

注意:如果你在虚拟机上操作,请确保虚拟化设置中已开启虚拟化引擎支持(如Intel VT-x/AMD-V),这对Oracle的运行效率至关重要。

2.2 安装包下载与版本选择

Oracle软件需要从官方网站下载。这里会遇到第一个“拦路虎”:Oracle官网的下载需要注册账号并接受许可协议。搜索“Oracle Database 19c Downloads”即可找到入口。19c是当前最新的长期支持版本,兼具稳定性和新特性,是学习和生产环境的优选。

你会看到多个安装包,对于Linux x86-64系统,通常选择:

  • LINUX.X64_193000_db_home.zip:这是最常用的数据库软件安装包。
  • 有时你也会看到类似p35940989_190000_Linux-x86-64.zip这样的补丁包编号,但初次安装,我们只需要基础安装包。

下载过程可能会遇到“正在进行安全验证”或“本网站使用安全服务防护恶意自动程序”的页面,这是Oracle的云防护(Cloudflare或类似服务),按照提示完成人机验证(如点击复选框)即可正常下载。请务必从官方渠道下载,确保软件包的完整性。

2.3 操作系统环境预配置

这是安装成功的关键,也是最繁琐的一步。我们需要手动创建一个专门的用户和用户组,并配置一系列内核参数、资源限制和目录权限。Oracle提供了一个自动检查配置的脚本,但理解每一项的意义更有助于排查问题。

第一步:创建Oracle用户和组我们通常创建两个主要组:oinstall(软件安装组)和dba(数据库管理组)。

groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle # 为oracle用户设置一个强密码

第二步:配置内核参数编辑/etc/sysctl.conf文件,添加或修改以下参数。这些参数调整了系统的共享内存、信号量、网络等资源限制,以满足Oracle的高性能需求。

fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 # 共享内存总页数 kernel.shmmax = 4294967296 # 单个共享内存段最大字节数,建议为物理内存一半以上 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用户添加:

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用户有足够的进程数、文件打开数和栈空间来运行数据库。

第四步:创建安装目录并授权Oracle软件通常安装在/u01/app目录下,这是一种约定俗成的规范。

mkdir -p /u01/app/oracle mkdir -p /u01/app/oraInventory chown -R oracle:oinstall /u01/app chmod -R 775 /u01/app

第五步:配置Oracle用户环境变量切换到oracle用户:su - oracle编辑其家目录下的.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:/lib:/usr/lib export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 设置字符集,避免乱码

执行source .bash_profile使环境变量生效。

做完以上所有步骤,你的操作系统环境才算为安装Oracle做好了准备。可以运行Oracle提供的runcluvfy.sh脚本进行预检查,但手动配置的过程能让你更深刻地理解依赖关系。

3. 图形化安装与静默安装详解

Oracle数据库安装主要有两种方式:图形化安装和静默安装。图形化安装直观,适合初学者;静默安装通过响应文件自动化,适合批量部署和运维。

3.1 图形化安装(GUI)逐步指南

假设你已经将下载的LINUX.X64_193000_db_home.zip上传到服务器的/u01/app/oracle目录下。

  1. 解压安装包:

    cd /u01/app/oracle unzip LINUX.X64_193000_db_home.zip -d db_home

    解压后会生成一个db_home目录,这就是你的ORACLE_HOME

  2. 启动安装程序:确保你当前是oracle用户,并且X11转发已配置好(如果你在远程连接)。在终端中执行:

    cd /u01/app/oracle/db_home ./runInstaller

    如果一切正常,Oracle Universal Installer (OUI) 的图形界面将会启动。

  3. 安装向导关键步骤:

    • 第一步:配置安全更新。可以取消勾选“我希望通过My Oracle Support接收安全更新”,跳过电子邮件和CSI(Customer Support Identifier)填写。
    • 第二步:安装选项。选择“创建和配置数据库”,这是我们最常用的“一站式”安装。
    • 第三步:系统类。选择“服务器类”,功能更完整。
    • 第四步:安装类型。选择“单实例数据库安装”。
    • 第五步:安装类型(高级)。选择“典型安装”。这里需要重点配置:
      • Oracle基目录:会自动读取ORACLE_BASE环境变量(/u01/app/oracle)。
      • 软件位置:会自动读取ORACLE_HOME环境变量(/u01/app/oracle/product/19.3.0/dbhome_1)。注意:如果这里显示的不是你解压的db_home路径,请手动更正。一个常见的“坑”是环境变量没生效,导致OUI指向了错误路径。
      • 数据库文件位置:使用默认的$ORACLE_BASE/oradata即可。
      • 数据库标识符:全局数据库名和SID,我们填写orcl
      • 管理口令:为重要的系统用户(如SYS, SYSTEM)设置口令。务必使用强密码并牢记!可以勾选“对所有账户使用相同的口令”简化管理。
      • 创建为容器数据库:19c默认创建为容器数据库(CDB),里面包含一个可插拔数据库(PDB)。这是Oracle 12c后的新架构,建议保持勾选,PDB名可以设为orclpdb
    • 后续步骤:按照向导进行先决条件检查、摘要确认,最后点击“安装”。
  4. 执行根脚本:安装过程中,在最后阶段,安装程序会弹出提示框,要求你以root身份执行两个脚本:/u01/app/oraInventory/orainstRoot.sh$ORACLE_HOME/root.sh这是必须完成的步骤,否则数据库无法正常启动。打开另一个终端,切换到root用户,依次执行这两个脚本。执行root.sh时,可能会询问本地bin目录路径,直接按回车使用默认值即可。

  5. 安装完成:脚本执行成功后,回到图形界面点击“确定”,安装程序会继续完成配置,并最终显示数据库创建完成的信息,其中会包含数据库的控制台(Enterprise Manager Database Express)访问地址,通常是https://<主机名>:5500/em

实操心得:图形化安装时,最大的问题往往是X11转发。如果使用PuTTY等工具远程连接,务必在连接设置中启用“X11 forwarding”(并安装本地的X Server软件如Xming)。如果无法启动图形界面,静默安装是更可靠的选择。

3.2 静默安装与响应文件制作

对于生产环境或需要自动化部署的场景,静默安装是标准做法。它依赖于一个“响应文件”(response file),这个文件记录了安装过程中所有需要选择的选项。

  1. 获取模板响应文件:在安装包解压后的db_home/response目录下,Oracle提供了多个响应文件模板。我们复制db_install.rsp并进行修改。

    cd /u01/app/oracle/db_home/response cp db_install.rsp my_db_install.rsp
  2. 编辑响应文件:使用vi或nano编辑my_db_install.rsp。以下是一些关键参数的示例:

    oracle.install.option=INSTALL_DB_SWONLY # 或INSTALL_DB_AND_CONFIG 用于一并创建数据库 UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 ORACLE_BASE=/u01/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=true # 允许执行根脚本 oracle.install.db.rootconfig.configMethod=ROOT # 让安装程序提示你执行 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE # 通用目的数据库 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=2048 # SGA+PGA大小(MB) oracle.install.db.config.starterdb.password.ALL=YourStrongPassword123 # 为所有账户设置统一密码 oracle.install.db.config.starterdb.installExampleSchemas=false # 是否安装示例schema oracle.install.db.config.starterdb.enableRecovery=true oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata

    务必根据你的实际环境修改路径、密码和参数。

  3. 执行静默安装:切换到oracle用户,执行以下命令开始安装:

    cd /u01/app/oracle/db_home ./runInstaller -silent -responseFile /u01/app/oracle/db_home/response/my_db_install.rsp -ignorePrereqFailure

    -silent表示静默模式,-ignorePrereqFailure用于忽略一些非致命的先决条件检查警告。

  4. 执行根脚本:安装输出日志中会明确提示需要以root身份执行的脚本路径(即orainstRoot.shroot.sh)。和图形化安装一样,必须执行它们。

静默安装的输出会写入日志文件,通常位于$ORACLE_BASE/oraInventory/logs目录下。安装过程中务必通过tail -f命令监控日志,以便及时发现错误。

4. 安装后配置与数据库基础操作

安装完成并执行根脚本后,数据库实例通常已经启动。但为了后续稳定使用,我们还需要进行一些基础配置和验证。

4.1 验证数据库状态与监听器

  1. 检查数据库实例状态:切换到oracle用户,使用sqlplus工具连接到数据库。

    su - oracle sqlplus / as sysdba

    这条命令使用了操作系统认证,以最高权限的SYSDBA身份登录。登录后,执行:

    SQL> SELECT instance_name, status, database_status FROM v$instance; SQL> SELECT name, open_mode FROM v$database;

    你应该能看到实例名为orcl,状态为OPEN,数据库处于读写模式。

  2. 检查监听器状态:监听器(Listener)是客户端连接数据库的“门户”。检查其状态:

    lsnrctl status

    如果监听器没有启动,使用lsnrctl start启动它。输出中应该能看到LISTENER正在监听某个端口(默认1521),并且服务orclorclpdb已注册。

4.2 配置环境与基础连接

为了让其他用户或远程客户端能够方便地连接,我们需要配置网络服务名。

  1. 配置TNSNAMES.ORA(本地连接):编辑$ORACLE_HOME/network/admin/tnsnames.ora文件(如果不存在则创建):

    ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) # 如果是CDB,连接根容器用这个 ) ) ORCLPDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orclpdb) # 连接可插拔数据库用这个 ) )

    配置后,就可以使用sqlplus username/password@orcl@orclpdb的方式连接了。

  2. 创建普通用户与授权:永远不要在日常工作中使用SYS或SYSTEM用户。我们创建一个新用户:

    -- 首先切换到可插拔数据库(如果安装的是CDB) SQL> ALTER SESSION SET CONTAINER=orclpdb; -- 创建用户 SQL> CREATE USER myuser IDENTIFIED BY MyPass123; -- 授予基本权限 SQL> GRANT CONNECT, RESOURCE TO myuser; SQL> GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO myuser; -- 授予表空间配额(允许用户创建对象) SQL> ALTER USER myuser QUOTA UNLIMITED ON USERS;

    现在,你就可以用myuser/MyPass123@orclpdb连接到你的PDB并进行操作了。

4.3 数据库的启动与关闭

掌握数据库的启动和关闭是DBA的基本功。有几种不同的模式。

  1. 启动数据库:

    sqlplus / as sysdba SQL> STARTUP;

    这是最常用的命令,它会按顺序:启动实例(NOMOUNT)-> 加载控制文件(MOUNT)-> 打开数据库(OPEN)。

    • STARTUP NOMOUNT;:仅启动实例,用于数据库创建或控制文件恢复。
    • STARTUP MOUNT;:启动实例并加载控制文件,用于数据文件恢复或重命名等操作。
    • STARTUP OPEN;:等同于STARTUP;
  2. 关闭数据库:

    SQL> SHUTDOWN IMMEDIATE;

    这是最常用的安全关闭方式。它会阻止新连接,中断当前所有会话(回滚未提交事务),然后关闭数据库。

    • SHUTDOWN NORMAL;:等待所有用户主动断开连接,可能永远等下去。
    • SHUTDOWN TRANSACTIONAL;:等待活动事务结束。
    • SHUTDOWN ABORT;:相当于“拔电源”,强制关闭,下次启动需要实例恢复。仅在紧急情况下使用。

5. 核心工具使用与日常管理入门

安装好数据库后,我们需要一些工具来管理和操作它。除了命令行工具sqlplus,还有一些图形化工具和实用命令。

5.1 SQL*Plus:命令行利器

sqlplus是Oracle最经典、最强大的命令行工具,几乎所有管理任务都能用它完成。

  • 基本连接:

    sqlplus myuser/MyPass123@orclpdb sqlplus sys/YourSysPassword@orcl as sysdba # SYSDBA权限连接
  • 常用命令:

    -- 查看当前用户 SHOW USER; -- 执行SQL脚本 @/path/to/your_script.sql -- 设置输出格式(避免折行) SET LINESIZE 200 SET PAGESIZE 1000 -- 查看错误详情(当过程或函数编译出错时) SHOW ERRORS; -- 编辑上一条SQL语句 EDIT
  • 执行计划查看:这是SQL优化的基础。

    EXPLAIN PLAN FOR SELECT * FROM your_table WHERE your_column = 'value'; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

5.2 SQL Developer:免费的图形化客户端

Oracle SQL Developer是官方提供的免费图形化工具,比命令行更友好,适合数据查询、对象管理和简单开发。

  1. 下载与安装:从Oracle官网下载对应你操作系统的版本(如Windows的.exe或Linux的.zip)。解压即可运行,需要Java环境。
  2. 创建连接:
    • 启动SQL Developer,点击“新建连接”。
    • 输入连接名(如“MyOracleDB”)。
    • 用户名/密码:填写你创建的myuser和密码。
    • 主机名:数据库服务器的IP地址或主机名。
    • 端口:1521。
    • 服务名:对于PDB,填写orclpdb;对于非CDB或连接CDB根,填写orcl
    • 角色:默认(Normal)。
  3. 基本使用:连接成功后,你可以在左侧导航树中浏览表、视图、过程等对象,在右侧工作表(Worksheet)中编写和执行SQL、PL/SQL。

5.3 基础日常管理命令

作为初学者,掌握以下几个命令可以应对大部分日常情况:

  • 查看表空间使用情况:表空间是存储数据的逻辑容器。

    SELECT tablespace_name, ROUND(SUM(bytes) / 1024 / 1024, 2) AS total_mb, ROUND(SUM(bytes - NVL(free_bytes, 0)) / 1024 / 1024, 2) AS used_mb, ROUND((SUM(bytes - NVL(free_bytes, 0)) / SUM(bytes)) * 100, 2) AS pct_used FROM (SELECT tablespace_name, file_id, SUM(bytes) AS bytes FROM dba_data_files GROUP BY tablespace_name, file_id) df LEFT JOIN (SELECT file_id, SUM(bytes) AS free_bytes FROM dba_free_space GROUP BY file_id) fs ON df.file_id = fs.file_id GROUP BY tablespace_name;
  • 查看当前会话和锁:

    -- 查看当前活动会话 SELECT sid, serial#, username, program, status FROM v$session WHERE username IS NOT NULL; -- 查看锁信息 SELECT s.username, l.sid, l.type, l.id1, l.id2, l.lmode, l.request FROM v$lock l, v$session s WHERE l.sid = s.sid AND s.username IS NOT NULL;
  • 导入导出数据(数据泵):Oracle推荐使用数据泵(Data Pump)工具expdpimpdp,它比古老的exp/imp更强大高效。

    # 导出(在操作系统命令行执行) expdp myuser/MyPass123@orclpdb DIRECTORY=DATA_PUMP_DIR DUMPFILE=myexport.dmp SCHEMAS=myuser # 导入 impdp myuser/MyPass123@orclpdb DIRECTORY=DATA_PUMP_DIR DUMPFILE=myexport.dmp REMAP_SCHEMA=myuser:newuser

    注意:DATA_PUMP_DIR是一个Oracle目录对象,需要提前由DBA创建或使用默认的。你可以通过SELECT * FROM dba_directories;查看。

6. 常见安装与使用问题排查实录

即使按照步骤操作,也难免会遇到问题。这里记录了几个我遇到的高频问题及其解决方法。

6.1 安装阶段问题

问题1:执行runInstaller无反应或报错“无法打开显示”。

  • 原因:X11转发未正确配置或DISPLAY环境变量未设置。
  • 排查:
    1. 检查远程工具是否启用X11转发。
    2. 在服务器上执行echo $DISPLAY,通常应为localhost:10.0或类似格式。如果为空,手动设置:export DISPLAY=your_client_ip:0.0(需在客户端允许X11连接)。
    3. 如果图形界面实在无法解决,果断改用静默安装

问题2:先决条件检查失败,如“内核参数semmni不满足”。

  • 原因:系统内核参数或资源限制未按前述步骤正确配置。
  • 排查:
    1. 仔细核对/etc/sysctl.conf/etc/security/limits.conf中的每一个参数,确保无误。
    2. 执行sysctl -p和重新登录oracle用户(或重启服务器)使配置生效。
    3. 安装时可以选择“忽略所有”,但生产环境强烈建议解决所有警告。

问题3:执行root.sh脚本时卡住或报错。

  • 原因:常见于环境变量冲突、权限问题或特定操作系统版本兼容性。
  • 排查:
    1. 检查/etc/oratab文件权限,确保root可写。
    2. 查看脚本输出的具体错误信息,通常会在终端显示或写入/u01/app/oraInventory/logs下的日志。
    3. 一个经典错误是关于/usr/bin/awk的,可能需要创建软链接:ln -s /bin/awk /usr/bin/awk

6.2 连接与运行阶段问题

问题1:sqlplus可以本地连接,但远程客户端(如SQL Developer)无法连接。

  • 原因:监听器未启动、未正确注册服务、防火墙阻止或TNS配置错误。
  • 排查步骤:
    1. 服务器端检查监听器:lsnrctl status,确认监听器在运行,并且服务orcl/orclpdb的状态是“READY”或“BLOCKED”。
    2. 检查监听器配置:查看$ORACLE_HOME/network/admin/listener.ora,确认监听地址和端口(默认1521)正确。
    3. 检查防火墙:在服务器上临时关闭防火墙测试(systemctl stop firewalld),或永久开放1521端口(firewall-cmd --permanent --add-port=1521/tcp && firewall-cmd --reload)。
    4. 检查客户端配置:确保客户端的tnsnames.ora文件中的HOST指向正确的服务器IP,且网络可达(可用telnet <server_ip> 1521测试端口)。

问题2:登录时报错“ORA-01017: invalid username/password; logon denied”。

  • 原因:密码错误、用户被锁定或密码文件问题。
  • 排查:
    1. 确认密码大小写(Oracle密码默认区分大小写)。
    2. 用SYSDBA登录检查用户状态:SELECT username, account_status FROM dba_users WHERE username = 'MYUSER';。如果状态是LOCKED,解锁:ALTER USER myuser ACCOUNT UNLOCK;
    3. 如果是SYS用户登录失败,检查密码文件:orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=<new_password> force=y重建。

问题3:数据库启动时报错“ORA-01102: cannot mount database in EXCLUSIVE mode”。

  • 原因:通常意味着数据库实例已经被启动,或者锁文件(如lk<ORACLE_SID>)未正常清除。
  • 排查:
    1. 首先确认是否已有实例在运行:ps -ef | grep pmon,查看是否有ora_pmon_orcl这样的进程。
    2. 如果有,先用SHUTDOWN IMMEDIATE关闭它。
    3. 如果无进程但报错,可能是共享内存段或信号量未释放。找到并清理:
      ipcs -m | grep oracle # 查看共享内存段 ipcrm -m <shmid> # 删除对应的共享内存ID ipcs -s | grep oracle # 查看信号量 ipcrm -s <semid> # 删除对应的信号量ID
    4. 删除锁文件:rm -f $ORACLE_HOME/dbs/lkORCL(文件名根据SID变化)。

6.3 性能与配置问题

问题:数据库运行一段时间后变慢。

  • 初步排查:
    1. 检查等待事件:SELECT event, COUNT(*) FROM v$session_wait WHERE wait_class <> 'Idle' GROUP BY event ORDER BY 2 DESC;查看系统在等待什么。
    2. 检查TOP SQL:SELECT sql_id, executions, elapsed_time/1000000 ela_sec, sql_text FROM v$sqlstats ORDER BY elapsed_time DESC WHERE ROWNUM <= 10;找出最耗时的SQL。
    3. 检查表空间是否已满:使用前面提到的表空间查询语句。
  • 常见优化方向:
    • SQL优化:对TOP SQL进行执行计划分析,建立合适的索引。
    • 内存调整:检查SGA(系统全局区)和PGA(程序全局区)大小是否合理。可通过ALTER SYSTEM SET sga_target=... scope=spfile;ALTER SYSTEM SET pga_aggregate_target=... scope=spfile;调整(需重启)。
    • I/O瓶颈:检查磁盘性能,将数据文件、重做日志文件放在不同的物理磁盘上。

安装和初步使用Oracle数据库是一个系统工程,涉及操作系统、网络、存储和数据库本身的多方面知识。这篇内容从规划到安装,从配置到基础运维,为你搭建了一个完整的入门框架。真正的精通来自于持续的实践、踩坑和解决问题。建议你在自己的实验环境中多操作几遍,尝试创建不同的表空间、用户,进行数据的导入导出,模拟故障场景并恢复。当你能够从容地处理上述大部分问题时,你就已经跨过了Oracle入门最艰难的一道坎。记住,官方文档(Oracle Database Documentation)永远是你最好的朋友,遇到任何深入的问题,去MOS(My Oracle Support)或官方文档中寻找答案,是职业DBA的必备素养。

http://www.cnnetsun.cn/news/4019496.html

相关文章:

  • 揭秘holehe的核心依赖:httpx与BeautifulSoup如何打造强大的邮箱检测工具
  • holehe配置迁移工具:从旧版到新版的设置自动转换
  • 揭秘金融行业网站建设背后的信任构建与安全防线
  • 天津滨海新区网站建设多少钱,专业公司如何帮中小企业打造高转化官网
  • 淘宝优惠券网站建设:从0到1打造高转化返利平台的实战指南与深度思考
  • 陕西省城乡建设厅网站:指尖上的便民神器,带你一键解锁陕西城乡发展新脉络
  • 建设一个网站需要哪些方面的开支:给准备建站老板们的真心话,别再被坑了
  • 网站建设合同 费用明细深度解析:如何避免隐形收费陷阱并签订一份负责任的建站协议
  • 深度解析黑龙江省建设银行网站如何助力百姓财富增值与金融服务升级
  • 网站建设需要编程吗小白建站到底要不要写代码
  • 揭秘上海市建设工程交易管理中心网站:从新手小白到资深操盘手的进阶指南与深度解析
  • 深圳优秀网站建设定制:从设计到开发全流程深度解析
  • 标题:海口网站建设q.479185700惠 深度解析企业数字化转型与品牌在线化生存策略
  • 鸣潮自动化助手ok-ww实操手册:免费自动战斗与日常刷取,从安装到进阶一步步讲透
  • 如何快速上手openpilot:把300+车型的辅助驾驶升级到L2的开源完整指南
  • 深度解析沈阳网站建设工作室如何助力企业数字化转型升级实现流量增长
  • QAT量化配置等效构建实战:从Base选择到精度-速度平衡
  • 电子商务网站建设合同范本:甲方乙方避坑指南与关键条款深度解析
  • 潍坊网站建设wfxtseo:中小企业主必看的互联网转型避坑指南与实战心得
  • 3步上手Office自定义UI编辑器:亲手给Word和Excel加一个专属功能区
  • 当流量红利褪去:深度复盘网站建设公司落寞背后的时代必然与个体困境
  • 德钦网站建设:为迪庆高原打造专业且富有温度的数字名片全指南
  • 揭秘:百度网站建设多少钱?新手避坑指南与真实费用解析
  • 洛雪音乐音源使用教程:从0到1搞定导入、选型与排障的完整笔记
  • 河南网站建设yipinpai企业如何低成本打造高转化官网全攻略及常见避坑指南
  • 手机号查QQ号三步搞定?phone2qq开源工具上手教程,找回账号只要几秒钟
  • 万网 网站建设合同避坑指南与专业签约全流程解析,确保您的网站项目万无一失
  • 深度解析中国建设银行网上银行官方网站的功能优势与安全保障
  • 兰州网站建设推荐q479185700上快:为何众多企业老板都在寻找靠谱的建站伙伴
  • 全面解析2024年专业网站建设商城价格:避坑指南与成本透明化深度剖析