zoukankan      html  css  js  c++  java
  • oracle基础~表空间 内存机制 控制文件 参数文件

    零 常用命令
       1 创建表空间
          create tablespace paul datafile '/ora10/product/oradata/ora10/paul01.dbf' size 20m;
       2 删除表空间一切
          DROP TABLESPACE FESCO ‘表空间名’ CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
    一 扩充表空间
       1 手工改变已存在数据文件的大小
         ALTER TABLESPACE app_data ADD DATAFILE 'D:ORACLEPRODUCT10.2.0ORADATAEDWTESTAPP03.DBF' SIZE 20480M
      2 增加数据文件,设置自动扩展
        ALTER TABLESPACE SYSTEM ADD DATAFILE 'C:APPORACLEORADATADFYYCDBDATAFILEO2_MF_SYSTEM_CWMNZ9XV_.DBF' maxsize 7167M autoextend on ;
        autoextend on 代表自动扩容 maxsize为扩容的最大值
        问题 一般是否需要限制最大大小
    二 临时表空间 临时表空间temp会在重启后才释放
    三 表空间使用率监控
      1 针对临时表空间+undo表空间都是可以重复利用,所以监控把这两个空间去掉,因为有可能经常报警
         重启方式能释放掉临时表空间的占用空间
      2 针对其他表空间的处理方式就是按照扩充表空间的方式
      3 具体的sql语句
    select a.tablespace_name, total, free, total-free as used, substr(free/total * 100, 1, 5) as "FREE%", substr((total - free)/total * 100, 1, 5) as "USED%" from 
    (select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a, 
    (select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
    where a.tablespace_name = b.tablespace_name
    order by a.tablespace_name;
    三  补充-用户和 表 表空间关系
       1 单个表 只能属于一个用户 一个表空间
       2 创建用户需要指定表空间 用来存放表,有个默认的表空间为 user表
       3 一个表空间可以包含多个用户,但是一个用户只能属于唯一的表空间
    三 补充
       system  sysaux表空间满了一般都是什么原因造成的
       检查不属于sys sytem的数据段
       select * from dba_segments where tablespace_name='system' and owner in ('sys','system')
       select bytes/1024/1204,segment_name,segment_type,owner from dba_segments where blespace_name='system' order by bytes/1024/1204 desc  排序
       segment_type ( cluster,table)
       查看到owner用户
       迁移表空间
    四 oracle内存结构
       1 sga:系统全局区,用来存放操作的数据,库缓存,数据字典等控制信息的内存区域,
                  成员构成: java pool,large pool,share pool, redolog buffer cache,data buffer cacche
                 share pool 共享池是oracle缓冲程序数据的地方,执行过的每一条sql语句在共享池中都存有解析后的内容,共享池中存储这些语句的地方称为高速缓冲(library cache),oracle在每次运行时都时先去高速缓冲中找,而不是再解析一遍
                 参数变量:   
                 sga_max_size:控制实例运行时sga最大能使用的内存空间
                核心调节
                db_cache_size:data buffer cache
                 shared_pool_size:shared pool
          2  pga:进程全局区,服务进程专用的内存区域,大多数内容非共享 每个进程都有自己的PGA区
      排序,hash –join,bitmap
       3  uga:用来保存用户的会话信息(如打开的游标,执行语句的私有变量),如果使用专用服务器,则uga在pga中分配,使用共享服务器,则uga在sga中分配。
      4 参数
          pga_aggregate_target,可以自动对PGA进行调整(9)
          sga_target: 大于0 自动分配 =0 手动分配 真针对SGA的自动管理(10)
          memory_target:用于自动内存管理,,针对的是所有内存 设置memory_target参数后,实际上Oracle会自动设置并调整一下两个参数来分配SGA和PGA的内存 只设置这个就行 (11)
          1 分配公示
            sga_target = memory_target*60%
            pga_aggregate_target = memory_target*40%
         2 MEMORY_MAX_TARGET:这个参数定义了MEMORY_TARGET最大可以达到而不用重启实例的值,如果没有设置MEMORY_MAX_TARGET值,默认等于MEMORY_TARGET的值。
    五 控制文件
    1 不可以手工修改,是二进制文件
    2 在打开和关闭数据库时都要访问该文件
    3 一份控制文件只能连接一个DB
    4 相关的参数 control_files show parameter control
    5 多重路径的备份
    6 存储
    1 数据库名和创建日期
    2 数据库中所有日志文件和数据文件 文件名和相关路径 表空间
    3 恢复数据库时所需要的同步信息
    7 日常操作
    1 增加控制文件镜像:
    0 数据库关闭
    1 cp c.clt b.ctl 复制两份镜像
    2 数据库启动为nomount状态
    3 alter system set control_files='dir/a.ctl','dir/b.ctl','dir/c.ctl' scope=spfile
    4 数据库重新启动
    总结 控制文件相当于控制中心 非常重要,完全记录了整个数据库结构变更记录
    七 参数文件
    1 特点
    静态初始化文件pfile 9i之前
    动态初始化文件 spfile spfilesidname.ora 不可编辑 init<sidname>.ora 可编辑
    2 概述
    1 是一个不用重启就能改变内容的二进制文件
    2 通过命令alter system进行修改参数
    3 能指定是临时生效还是永久生效变量值
    4 修改的值能被删除掉,并重置成安装时的默认值
    3 创建
    create spfile from pfile
    目录ORACLE_HOME/dbs
    二进制转文本:create pfile from spfile; 生成init<sidname>.ora 用来修改 可以启动
    文本转二进制:create spfile from pfile; 生成 spfilesidname.ora
    scope=spfile/both 重启或者全局都生效
    4 启动寻找顺序
    spfile<sidname>.ora(二进制) -> spfile.ora(二进制)->init<sidname>.ora(可编辑)
    推荐用spfile启动


  • 相关阅读:
    js 类型转换学习
    Prototypes in Javascript 收集.__proto__
    不想说作用域scope,因为是scopeTree,
    在家学习 利器 记录每日点滴
    图片切换特效的分析和学习
    js 无缝滚动效果学习
    MySQL 在高并发下的 订单撮合 系统使用 共享锁 与 排他锁 保证数据一致性
    (二)区块链的共识算法:PoS 及其 例子 代码 实现
    以太坊: ETH 发送交易 sendRawTransaction 方法数据的签名 和 验证过程
    Golang 的 协程调度机制 与 GOMAXPROCS 性能调优
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/14473468.html
Copyright © 2011-2022 走看看