oracle 控制文件在哪里设置_Oracle数据库中的控制文件管理以及常用参数设置

这篇文章主要介绍了Oracle数据库中的控制文件管理以及常用参数设置方法,包括控制文件不一致问题的解决方法以及隐藏参数等技巧,需要的朋友可以参考下

一、控制文件

作用:

二进制文件

记录了数据库当前实例的结构和行为,数据文件日志文件的信息,维护数据库一致性

参数文件中定义了控制文件的位置和大小

很小的二进制文件,一般不超过100m

mount阶段open以后,一直在用

一套控制文件只能连接一个database

分散放置,至少一份,至多八份

相关视图:

v$controlfile ---- 列出实例的所有控制文件的名字和状态

v$parameter ---- 列出所有参数的位置和状态(where name='control_files')

v$controlfile_recode_section ---- 提供控制文件的记录部分的信息

show parameter control_files ---- 列出控制文件的名字、状态和位置

查看控制文件内容:

strings $ORACLE_BASE/oradata/$ORACLE_SID/control01.ctl

alter database backup controlfile to trace as ''

转储控制文件:

alter system set events 'immediate trace name controlf level 10'

level 1   块头

level 2   文件内容

level 3   1+2

level 10  全部

管理控制文件:

spfile  修改spfile参数control_files(alter……)

一致性关闭数据库

增加或减少控制文件

启动数据库使用spfile

验证结果

pfile        一致性关闭数据库

修改pfile参数

增加或减少控制文件

启动数据库使用spfile

验证结果

状态查询:参数和具体文件是否对应、磁盘空间剩余、控制文件<100M

热备控制文件:

数据库归档模式下,

alter database backup controlfile to ''

其他模式下:

alter database backup controlfile to trace as ''

得到建立控制文件脚本

数据库归档模式下rman备份:

rman target /

>backup current controlfile; or

>backup database include current controlfile;

rman自动备份控制文件:

>show all中的configure controlfile autobackup设置为on

>configure controlfile autobackup on

问题解决:

控制文件不一致:

(1). 拷贝新版本的控制文件到旧版本文件

2. 修改参数文件,只使用新版本的文件(alter system set……),重启

控制文件丢失:

【mount阶段,使用archive log list可以查看数据库是否在归档模式下】

1. 控制文件无备份

a.数据库非归档,数据文件联机日志文件存在 --- 重建控制文件

>create controlfile reuse database noarchivelog noresetlogs datafile logfile

2. 控制文件有备份

a.数据库归档,数据文件联机和归档日志文件存在 --- 还原控制文件

先全备,再将控制文件拷贝到参数指定的路径,然后

>alter database recover database using backup controlfile until change;

二、参数设置

>show parameter

查询参数

作用: 记录了数据库的配置。内存分配、进程数、会话数等

分类:pfile类型  ---文本文件

$ORACLE_HOME/dbs/init$ORACLE_SID.ora(9i,10g默认不使用)

$ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora.xxxx(10g初始化时使用一次)

spfile类型 ---  二进制文件

$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora,服务器端(9i开始使用)

能够被rman备份(rman只能备份二进制文件)

oracle启动时,查找顺序为spfile.ora-----spfile.ora-----init.ora

转化:create pfile[='fpath'] from spfile; 默认在$ORACLE_HOME/dbs/init$ORACLE_SID.ora

create spfile[='fpath'] from pfile; 默认在$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora

create spfile[='fpath'] from memory; 从内存中重建spfile

10g指定用pfile启动:

>startup pfile='$ORACLE_HOME/dbs/init$ORACLE_SID.ora';

>create spfile from pfile;

这样可以将刚修改的pfile生效

查看当前使用的参数文件:

>show parameter spfile;

如果value值为空,说明是使用pfile,否则使用的是value显示的spfile

>select distinct ISSPECIFIED from v$spparameter;

值为true是spfile,false是pfile

spfile文件的修改:

alter system|session set parameter_name=values scope=memory|spfile|both sid=''|'*';

system  ---- v$parameter中列isses_modifiable为非flase的项可以被alter session修改

session ---- v$parameter中列issys_modifiable为非flase的项可以被alter system修改

【select name,isses_modifiable,issys_modifiable from v$parameter;】

查询出来的状态包括三种:

immdiate----动态参数,system直接修改到内存和参数文件,立即生效

false----静态参数,不能直接改,system加scope=spfile修改到参数文件

deferred----会话参数,可以使用session修改,只对当前实例有效

memory ---- 只对当前启动的实例有效,下次启动无效

spfile ---- 只对spfile修改,不影响当前实例,下次启动生效

both   ---- 内存和spfile都修改,默认值

  ---- 当前实例

*      ---- 所有实例,用于集群环境有多个实例

10g中常见参数:

orcl.__db_cache_size=889192448

orcl.__java_pool_size=16777216

orcl.__large_pool_size=16777216

orcl.__shared_pool_size=285212672

orcl.__streams_pool_size=0

*.audit_file_dest='/u01/oracle/admin/orcl/adump' ---> 警告日志

*.background_dump_dest='/u01/oracle/admin/orcl/bdump' ---> 后台进程日志

*.compatible='10.2.0.1.0' ---> 版本向后兼容号

*.control_files='/u01/oracle/oradata/orcl/control01.ctl','/u01/oracle/oradata/orcl/control02.ctl','/u01/oracle/oradata/orcl/control03.ctl' --->控制文件

*.core_dump_dest='/u01/oracle/admin/orcl/cdump' ---> 服务器进程日志

*.db_block_size=8192 --->oracle内存块大小

*.db_domain='' --->域名

*.db_file_multiblock_read_count=16 --->单词IO可以读取多少块

*.db_name='orcl' --->和db_domain构成globename

*.db_recovery_file_dest='/u01/oracle/flash_recovery_area' --->备份日志,OMF的管理文件存放路径

*.db_recovery_file_dest_size=2147483648 --->flash_recovery_area目录大小

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' --->共享服务器的参数

*.job_queue_processes=10 --->当前作业进程数

*.local_listener='LISTENER_ORCL' --->本地监听服务

*.open_cursors=300 --->打开游标个数

*.pga_aggregate_target=407896064 --->pga大小

*.processes=150 --->当前可以运行多少进程

*.remote_login_passwordfile='EXCLUSIVE' --->远程登录是否需要密码文件,none|shared|exclusive

*.sga_target=1223688192 --->sga大小(10g)

*.undo_management='AUTO' --->undo表空间的管理方式

*.undo_tablespace='UNDOTBS1' --->ndo表空间

*.user_dump_dest='/u01/oracle/admin/orcl/udump' --->用户进程日志

隐藏参数:

select ksppinm,ksppstvl from x$ksppi a,x$ksppcv b where a.indx=b.indx

显示系统中的隐藏参数

spfile重置参数默认值:

alter system reset 参数 scope=spfile sid=''|'*';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值