Home  >  Article  >  Database  >  Oracle存储结构之参数文件

Oracle存储结构之参数文件

WBOY
WBOYOriginal
2016-06-07 17:15:52892browse

Oracle的参数文件非常之多,但最重要的当属数据库参数文件。而数据库参数文件有pfile和spfile两类。pfile需手动修改,是文本文件

Oracle的参数文件非常之多,但最重要的当属数据库参数文件。而数据库参数文件有pfile和spfile两类。pfile需手动修改,是文本文件;spfile是二进制文件,可动态更改。

之所以会有spfile,原因有:

1)可以杜绝参数文件的繁殖。我们知道,在客户端若要启动数据库,则需要pfile。spfile总是存在于数据库的服务端主机本身,不能置于客户端,从而保证了信息的一致性;

2)spfile可以用alter system命令修改到spfile里面,不需要手动更改。

通常,为了保证简单性,oracle建议,把spfile默认存储。

没有参数文件,就无法启动一个oracle数据库。可见,数据库参数文件还是蛮重要的。我们可以用v$parameter视图来查询参数值,或者show parameter也行哈。个人感觉show parameter比较好用,,因为它可以通配,默认%参数值%;而v$parameter的优点,则可以查出多个字段,比较准确定位我们要的信息。

oracle在nomount阶段的任务就是读取参数文件,在$ORACLE_HOME/dbs下查找,寻找的顺序是spfile.ora, spfile.ora , init.ora

接下来我们来谈谈spfile和pfile的几个常见操作。

  关于几个spfile的操作如下:
  1)转换为spfile:(在nomount状态下操作)
  show parameter spfile; --查看是否使用了spfile
  create spfile from pfile; --注意使用默认位置存储
  startup force; --重新启动
  show parameter spfile;

  2)设置spfile中的值
  alter system set parameter=value
      
      
  comment:注释。在v$parameter里面的update_comment字段可查。
  deferred:为新建立的会话生效
  scope:作用域。

  3)取消spfile的设置
  alter system reset parameter sid=
  这里的sid是必选的。单实例可用默认值sid=‘*’

  4)从spfile创建pfile
  create pfile=filename from spfile;

  5)修正被破坏的spfile
  借助告警日志的内容创建pfile,再用create spfile转换一个spfile

  我们对于pfile的使用大概有两种:
  1)用pfile来启动数据库
  startup pfile=‘filename’;
  2)用pfile来创建spfile
  create spfile from pfile=‘filename’;

 

下面我们贴一个spfile的全部内容,并大概看一下里面的东西。

  以下是spfile的内容,我们大致来看看:
  [oracle@localhost dbs]$ strings spfileorcl.ora
orcl.__db_cache_size=176160768
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=54525952
orcl.__streams_pool_size=0
/*********************我是分割线***********/
以上这段是对SGA的分配
/*********************我是分割线***********/
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'  /*告警日志的位置*/
*.compatible='10.2.0.1.0'  /*版本*/
*.control_files='/u01/app/oracle/oradata/ORCL/controlfile/o1_mf_7xzsjpnk_.ctl','/u01/app/oracle/flash_recovery_area/ORCL/controlfile/o1_mf_7xzsjq6j_.ctl'  /*控制文件的位置*/
*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'
*.db_block_size=8192         /*数据库默认数据块的大小*/
*.db_create_file_dest='/u01/app/oracle/oradata'
*.db_domain='oracle.com'
*.db_file_multiblock_read_count=16
*.db_name='orcl'              /* 数据库名称,数据库启动的最小参数*/
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=81788928
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'   /*口令文件的可选参数*/
.sga_target=243269632
*.undo_management='AUTO'   /*undo表空间的管理方式*/
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/orcl/udump'  /*跟踪文件的存放位置,比如你设置了alter system set SQL_TRACE=true,那么它的内容的会保存在这里*/

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn