侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Oracle数据库中的控制文件管理以及常用参数设置

数据库  /  管理员 发布于 6年前   156

一、控制文件
作用:

  •         二进制文件
  •         记录了数据库当前实例的结构和行为,数据文件日志文件的信息,维护数据库一致性
  •         参数文件中定义了控制文件的位置和大小
  •         很小的二进制文件,一般不超过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 '<filepath&name>'

       
转储控制文件:

    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 '<fpath&name>'

        其他模式下:

alter database backup controlfile to trace as '<fpath&name>'

得到建立控制文件脚本
       
        数据库归档模式下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 <sid> noarchivelog noresetlogs datafile <'datafiles'> logfile <group X 'logfiles' size Y>

                2. 控制文件有备份
                        a.数据库归档,数据文件联机和归档日志文件存在 --- 还原控制文件
                        先全备,再将控制文件拷贝到参数指定的路径,然后

>alter database recover database using backup controlfile until change;


二、参数设置

>show parameter <keyword>

 查询参数

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

分类:
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<sid>.ora-----spfile.ora-----init<sid>.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='<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都修改,默认值

<sid>  ---- 当前实例
*      ---- 所有实例,用于集群环境有多个实例

10g中常见参数:

orcl.__db_cache_size=889192448  orcl.__java_pool_size=16777216orcl.__large_pool_size=16777216orcl.__shared_pool_size=285212672orcl.__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='<sid>'|'*';


  • 上一条:
    Oracle数据库中表空间的基本管理操作小结
    下一条:
    Oracle数据库中的基本建库操作详解
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 分库分表的目的、优缺点及具体实现方式介绍(0个评论)
    • DevDB - 在 VS 代码中直接访问数据库(0个评论)
    • 在ubuntu系统中实现mysql数据存储目录迁移流程步骤(0个评论)
    • 在mysql中使用存储过程批量新增测试数据流程步骤(0个评论)
    • php+mysql数据库批量根据条件快速更新、连表更新sql实现(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-06
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-05
    • 2018-10
    • 2018-11
    • 2020-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2021-02
    • 2021-04
    • 2021-07
    • 2021-08
    • 2021-11
    • 2021-12
    • 2022-02
    • 2022-03
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-07
    • 2023-08
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客