【问题标题】:Oracle DB : What is difference between spfile and init.ora file?Oracle DB:spfile 和 init.ora 文件有什么区别?
【发布时间】:2015-06-13 04:43:57
【问题描述】:

我试图通过oracle docs 理解但无法正确理解任何人请解释一下。 spfile和init.ora文件有什么区别?

谢谢。

【问题讨论】:

    标签: database oracle oracle11g


    【解决方案1】:

    init.ora

    • init.ora 或 pfile(参数文件)是一个简单的文本文件,可以通过 vi 等标准编辑器进行更新 其中包含启动数据库实例时使用的各种初始化参数。 这是一个示例 init.ora 文件:

    db_cache_size = 176000M

    db_2k_cache_size = 2048M

    db_16k_cache_size = 99000M

    db_keep_cache_size = 600000M

    db_recycle_cache_size = 64000M

    shared_pool_size = 14000M

    • 我们需要在使用文本编辑器编辑 init.ora 后重新启动数据库,以便更改生效。
    • 如果我们想启动一个远程数据库,我们需要一个本地 pfile。
    • 帮助数据备份恢复过程的RMAN(Recovery manager)不保留pfile或init.ora文件的备份。

    sp文件

    • Oracle spfile 是基于文本的 init.ora 文件或 pfile(参数文件)的二进制表示,其中包含各种初始化 启动数据库实例时使用的参数。在 Oracle 9i 及之后出现。

    • 我们不使用编辑器编辑此文件,因为它是二进制文件,可能会损坏,这可能会导致您的数据库实例无法启动 它通过使用alter system 查询进行更改。 编辑 spfile 的示例:
      ALTER SYSTEM SET open_cursors=300 SCOPE=SPFILE;

    • 运行Alter system query后更改生效,我们不需要重新启动数据库。

    • 如果我们需要启动远程数据库,我们不需要本地副本以防 spfile。

    • 由于此文件由服务器维护,因此在接受参数之前会对其进行验证。
    • RMAN 保留 spfile 的备份。
    • 默认情况下,我们的数据库使用 pfile 启动,我们可以更改它并使用以下查询从 pfile 或 init.ora 文件创建一个 spfile,我们甚至不需要重新启动数据库。

      sqlplus / as sydba; CREATE SPFILE FROM PFILE='/u01/oracle/dbs/init.ora;

    【讨论】:

    • 感谢您的解释。很有用
    【解决方案2】:

    init.ora和spfile的区别

    • init.ora 和 spfile 都包含数据库参数信息。和 spfile 您可以使用 ALTER SYSTEM 设置 Oracle 数据库设置 sqlplus 中用于添加/修改/删除设置的命令。 但是对于 init.ora,您将其编辑为文本文件,因为 init.ora 以 ASCII 格式保存。
    • init.ora 信息在数据库时被 oracle 引擎读取 实例 。在 spfile 中修改无需重启即可适用 oracle 数据库。
    • Oracle 数据库启动时,进程将始终使用 spfile.ora,如果存在。如果未找到 spfile.ora,则 init.ora 将在启动时使用。

    【讨论】:

      猜你喜欢
      • 2014-10-20
      • 2014-01-23
      • 2012-09-21
      • 1970-01-01
      • 2017-09-24
      • 2020-08-19
      • 2011-05-22
      • 2010-10-26
      • 2011-01-26
      相关资源
      最近更新 更多