Oracle DB:spfile和init.ora文件有什么区别?

时间:2015-06-13 04:43:58

标签: database oracle oracle11g

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

感谢。

2 个答案:

答案 0 :(得分:7)

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(恢复管理器)不保留pfile或init.ora文件的备份。

SPFILE

  • 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;

答案 1 :(得分: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将在启动时使用。