初始化参数文件
    启动实例时会读取初始化参数文件。参数文件有两种类型。
    • 服务器参数文件(SPFILE):这是首选的初始化参数文件类型。这是一个由数据库服
    务器写入或读取的二进制文件,不得手动进行编辑。此文件驻留在执行Oracle 实例的
    服务器上,而且永远存在,不受数据库关闭和启动的影响。文件默认名为
    spfile.ora,启动时会自动搜索此文件。
    • 文本初始化参数文件:这类初始化参数文件可由数据库服务器读取,但不能由其写入。
    必须使用文本编辑器手动设置和更改初始化参数设置,这些设置是永久的,不受数据
    库关闭或启动的影响。此文件的默认名称为init.ora,如果启动时未找到
    SPFILE,则自动搜索此文件。
    建议创建SPFILE,从而以动态方式维护初始化参数。通过使用SPFILE,可以在服务器端
    的磁盘文件中永久存储和管理初始化参数。

    初始化参数的类型
    Oracle DB 服务器有下列类型的初始化参数:
    派生参数
    一些初始化参数是派生的,也就是说它们的值是通过计算其它参数的值得来的。通常,您
    不应变更派生参数的值。
    但如果进行了变更,则您指定的值将覆盖计算得出的值。
    例如,SESSIONS 参数的默认值派生于PROCESSES 参数的值。如果PROCESSES 的值发
    生更改,则SESSIONS 的默认值也会发生更改,除非您使用指定的值覆盖它。
    与操作系统相关的参数
    一些初始化参数的有效值或值范围与主机操作系统相关。例如,
    DB_FILE_MULTIBLOCK_READ_COUNT 参数指定在一次顺序扫描期间在一个I/O 操作中
    读取的最大块数;此参数与平台相关。这些块的大小(由DB_BLOCK_SIZE 设置)的默
    认值与操作系统相关。
    设置参数值
    初始化参数最有可能改进系统性能。一些参数设置容量限制,但不影响性能。例如,当
    OPEN_CURSORS 的值为10 时,尝试打开第11 个游标的用户进程将收到错误消息。有些
    参数会影响性能,但不施加绝对限制。例如,减小OPEN_CURSORS 的值可能会降低性能,
    但不会阻止工作。
    增大参数值也许可以改善系统性能,但增大大多数参数也会增加系统全局区(SGA) 大小。
    较大的SGA 可以将数据库性能提升至某个点。在虚拟内存操作系统中,如果SGA 是交换
    进/出内存的,则太大的SGA 会降低性能。设置控制虚拟内存工作区域的操作系统参数时,
    应考虑SGA 大小。操作系统配置也会限制SGA 的最大大小。

    简化初始化参数
    初始化参数有两种类型:基本初始化参数和高级初始化参数。
    大多数情况下,只需设置和优化30 个基本参数便可获得合理的数据库性能。极少数情况
    下,需要修改高级参数才能获得优化的性能。
    基本参数指的是为了让数据库以良好性能运行而设置的参数。其它所有参数都被认为是高
    级参数。
    基本参数示例:
    • 确定全局数据库名称:DB_NAME 和DB_DOMAIN
    • 指定快速恢复区:DB_RECOVERY_FILE_DEST 和
    DB_RECOVERY_FILE_DEST_SIZE
    • 指定DDL 锁定超时:DDL_LOCK_TIMEOUT
    • 指定还原空间管理的方法:UNDO_MANAGEMENT
    • COMPATIBLE 初始化参数和不可逆兼容性

    初始化参数:示例

    参数 指定
    CONTROL_FILES 一个或多个控制文件名
    DB_FILES 最大数据库文件数
    PROCESSES 可以同时连接的最大操作系统用户进程数
    DB_BLOCK_SIZE 所有表空间使用的标准数据库块大小
    DB_CACHE_SIZE 标准块缓冲区高速缓存大小

    包含参数相关信息的其它视图
    • V$SPPARAMETER:显示有关服务器参数文件内容的信息。如果未使用服务器参数文
    件来启动实例,则该视图每一行的ISSPECIFIED 列中的值为FALSE。
    • V$PARAMETER2:显示当前对会话有效的初始化参数的相关信息,每个参数值显示
    为视图中的一行。新会话将从V$SYSTEM_PARAMETER2 视图中显示的实例范围内的
    值中继承参数值。
    • V$SYSTEM_PARAMETER:显示当前对实例有效的初始化参数的相关信息。

    更改初始化参数值
    • 静态参数:
    – 只能在参数文件中更改
    – 必须重新启动实例才能生效
    • 动态参数:
    – 可以在数据库联机时更改
    – 可以在以下级别更改:
    — 会话级别
    — 系统级别
    – 在会话持续期间内有效,或有效性取决于SCOPE 设置
    – 通过使用ALTER SESSION 和ALTER SYSTEM 命令进行
    更改

    oracle 初始化参数文件共有2个路径

    1. /opt/oracle/admin/ORCLCDB/pfile/init.ora.519201904357
    2. /opt/oracle/product/18c/dbhome_1/dbs/init.ora

    spfile,pfile 在$ORACLE_HOME/dbs/目录下

    1. [root@instance-ej1hspdt ~]# cd $ORACLE_HOME/dbs
    2. [root@instance-ej1hspdt dbs]# ls
    3. c-2782375137-20190717-01 init.ora lkORCLCDB snapcf_ORCLCDB.f
    4. hc_ORCLCDB.dat initORCLCDB.ora orapwORCLCDB spfileORCLCDB.ora

    在spfile.ora或者pfile文件丢失的情况下,数据库不能正常启动,使用init.ora文件启动数据库,从内存中恢复spfile,
    pfile,或者pfile,spfile相互转换。

    1. SQL> startup pfile=/opt/oracle/admin/ORCLCDB/pfile/init.ora.519201904357
    2. ORACLE instance started.
    3. Total System Global Area 838857584 bytes
    4. Fixed Size 8901488 bytes
    5. Variable Size 641728512 bytes
    6. Database Buffers 180355072 bytes
    7. Redo Buffers 7872512 bytes
    8. SQL> create spfile from memory;
    9. File created.
    10. SQL> create pfile from memory;
    11. File created.
    12. SQL> create spfile from pfile;
    13. File created.
    14. SQL> create pfile from spfile;
    15. File created.