zoukankan      html  css  js  c++  java
  • 老谢oracle视频笔记_day02

    1:database
     a:physical structure
       1:controlfile控制文件
        select * from v$controlfile;
        11g 以三个11g二个互为镜像文件
        坏了数据库就打不开了..
         IO一个块 16k一个文件2MB不会太大?10MB
         数据库名
         数据文件位置
         很多的参数.....
       2:datafile 数据文件
         select file_name,file_id from dba_data_files;
         数据文件都是由8k块组成
         show parameter db_block_size;
         
    
    
    
       3:redo logfile
         select * from v$logfile;
         SELECT * from v$log;//当前日志状态
    
     b:logical  structure
       tablespace
    
    
      ---------------------------------
      v$controlfile 视图[动态内存]
      dba_data_files 视图[静态表]
    
    
      
    
    
    
    2:instance
    
      1:sga(system global area) 内存区域
        select * from v$sga_dynamic_components;
        select * from v$sga;
        select component from v$sga_dynamic_components;
        
        sga由如下6个部分组成
        1:data buffer cache 
          数据以8K为单位..-->读取到data buffer cache
          就是一块内存区..
        2:shared pool
          a:library cache    执行sql语句
            parse 解析[编译]-->cache
            select .. 有cache 不用再次解析
            如果足够大,保存很多cache
            如果sql重复使用机率很小没用..
          b:dictionary cache 系统表放在内容..[数据字典]
          旧版本可以设置,新版本不能动..
        3:large pool
          大块,大IO
        4:java pool
        5:streams pool
          数据同步
          1:shareplx
          2:glodengate
        6:log buffered
    
        通过视图查看log buffer
        show parameter log_buffer;
        show parameter share
        shared_pool_size   big integer 128M
        在旧系统中需要手工修改
        alter system set shared_pool_size=80m;
    
        select component,min_size from v$sga_dynamic_components;
     
        alter system set sga_target=0;//手工管理6区大小
        alter system set sga_target=300m;
    
    //-----------------------------------------
    2:background process
    select paddr,name from v$bgprocess;
    select paddr,name from v$bgprocess where paddr<>'00';
    DBWD[DB WRITER PROCESS 0] 数据库写进程
    
    修改
    表--读取-->data buffer->修改-->DBWD->表中
    DBWD 最多20个-->
    SQL> select paddr,name from v$bgprocess where name like '%DBW%';
    36 个进程
    如果地址00没有启动
    启动几个进程有参数限制
    
    show parameter db_writer_processes
    db_writer_processes                  integer     1
    这个参数是一个静态参数不能直接修改
    alter system set db_writer_processes=2;
    //------------------------------------
    LGWR  Redo etc..
    修改数据
    表-->读取-->data buffer-->修改-->LOG BUFFER[512byte]-->LGWR(优先)-->log file->data buffer-->dbwd-->表中
    
    //-----------------------------------
    SMON
    oracle 启动时SMON协调
    从日志文件读取没有写到数据文件中的数据
    
    //----------------------------
    PMON process clearnup
    清理杀死的进程所占资源...
    
    查看所有oracle的进程
     select addr,pname from v$process;
    //-----------------------------------------
    
    oracle 启动阶段
    shutdown
    nomount
    mount
    open
    
    查看实例状态
    select status from v$instance;
    open/用户可以连接使用
    shutdown immediate;
    
    注册表可以设置
    启动服务不启动实例
    ORA_TEST1_AUTOSTART=TRUE
    服务启动实例也启动...
    
    
    //-----------------------------------
    startup nomount;//
    oracle 读取文件spfile;
    show parameter spfile;
    spfileTEST1.ora
    
    spfile:server parameter file;
    spfileSID.ora 文件格式
    select status from v$instance;
    
    startup mount;//
    
    //----------------------------------------
    案例:删除spfile...inittest1.ora 文件
    SQL> startup nomount
    ORA-01078: failure in processing system parameters
    LRM-00109: could not open parameter file 'D:DEVORACLEPRODUCT11.2.0DBHOME_1DATABASEINITTEST1.ORA'
    
    oracle 中spfile和inittest1.ora 可以相互转换
    
    仃止实例才可以做这样的操作
    shutdown immediate
    
    
    //-----------------------------------
    
    
    create pfile from spfile;
    create spfile from pfile;
    
    spfiletest.ora oracle9.2开始使用(优先高)
    必须放在服务器上..
    
    二进制文件可以动态修改;;
    INITtest1.ORA 文本文件修改[客户端]
    需重启服务器
    
    启动服务器到mount状态
    使用控制文件
    alter database mount;
    show parameter control_files;
    查看一下状态
    select status from v$instance;
    
    alter database open;
    到这个状态才真正用到数据文件日志文件
    
    //----------------------------------
    示例删除控制文件
    
    0: shutdown immediate
    1:D:DEVORACLEDATATESTCONTROL01.CTL,
      D:DEVORACLEFLASH_RECOVERY_AREATESTCONTROL02.CTL
    2:startup mount
    显示乱码可以通过
    注册表解决
    NLS_LANG
    american_CHINA.ZHS16GBK
    
    
    系统出错需要找日志文件 文件最大2GB
    oraclediag
    dbms	est	est1alert_test1.log
    
    //----------------------------------------
    alter database close;
    没有session
    
    
    
    //----------------------------------------
    修改参数
    1:实例级别
      alter system(instnace)
    2:session级别
     alter session
    3:database 级别
    alter database
    
    
    instance database 关系
    1:startup  nomount 启动实例
    2:mount
    3:open     
    
    一个数据库至少需要一个实例
    多个实例为一个数据库服务
    [RAC real application cluster]
    多台oracle服务器  对应一台数据文件服务器
    
    
    select * from v$instnace;
    select * from v$database;
    select * from gv$instance;//rac
    
    
    
    show parameter shared;
    
    实例的参数可以查询
    select name,value,type from v$system_parameter;
    session级别的参数
    select name,value,issys_modifiable from v$parameter
    immediate 
    false  改完不能立即生效..
    
    实例级别
    alter system set shared_pool_size=100m;
    
    //---------------------------
    示例:修改静态属性
    
    alter system set processes=200; //静态参数不能直接修改
    alter system set processes=200 scope=spfile;//可以
    立即查看spfile文件
    
    show parameter process;//还是原来地的值
    shutdown immediate
    startup
    show parameter process;//还是原来地的值
    //-------------------------------------------
    alter system set shared_pool_size=100m;
    alter system set shared_pool_size=120m scope=memory//重启动失效...
    alter system set shared_pool_size=110m scope=both//spfile内存一块修改
    alter system set shared_pool_size=110m 不加scope默认both
    
    show parameter shared_pool_size; 112 //4MB颗粒
    
    
    //------------------------------------------
    示例
    修改session级别的变量
    show parameter nls_date_format
    alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';
    
    SQL> select sysdate from dual;
    
    SYSDATE
    -------------------
    2014/03/06 22:34:33
    
    
    
    //-------------------------------
    创建pfile文件
    
    1:create pfile='d:init20140306.ora' from spfile;
    2:shotdown immediate
    3:delete a controfile
    4:select * from v$controlfile
    5:修改参数
      startup nomount
    6:show parameter control_files;
    7:alter system set control_files='' scope=spfile;
    8:alter database mount
    9:alter database open
    10:show parameter control_files;
    
    
    
    //-------------------------------------------------------
    Logical  Structure
    
    tablespace
    segments
    extent
    blocks
    select * from dba_tablespaces;
    永久表空间
    undo表空间
    临时表空间
    select * from dba_data_files;
    select * from dba_temp_files;//临时表空间对应临时文件
    
    
    //-------------------------------
    创表空间
    
    
    create tablespace tom datafile 'D:DEVORACLEDATATEST	om01.DBF' size 5m;
    select * from dba_data_files;查看文件大小
    
    create table tt(id int)tablespace tom;
    
    
    //------------------------------
    表空间包含哪些对象
    select * from dba_segments where tablespace_name='TOM';
    
    metadata  元数据
    data      数据
    
    描述数据的数据..[元数据]
    id number(39)
    name varchar(20)  描述数据..
    
    insert into tt values(1,2);//数据..
    元数据永远放在system表空间中
    
    表的元数据信息
    select table_name,tablespace_name from dba_tables where table_name='T1';
    列的元数据认息
    select table_name,column_name,column_id from dba_tab_cols where table_name='T1';
    数据段
    select segment_name from dba_segments where segment_name='T1';
    数据段中有多少个区
    select * from dba_extents where segment_name='T1';
    oracle 有二个id一个指向元数据,一个指向数据
    select object_id,data_object_id,object_name from dba_objects where object_name='T1';
    
    
    多添加记录。。
    insert into t1 select object_id,object_id,object_name from dba_objects;
    
    查询数据字典14336块..
    SQL> select segment_name,blocks from dba_segments where segment_name ='T1';
    
    SEGMENT_NAME                                                                          BLOCKS
    --------------------------------------------------------------------------------- ----------
    T1                                                                                         8
    T1                                                                                     14336
    
    //------------------------------------
    修必表所在的表空间
    alter table t1 move tablespace jerry;
    
    //向jerry表空间添加表
    create table t2(id int)tablespace jerry;
    
    SQL> select segment_name,tablespace_name from dba_segments where tablespace_name='JERRY';
    
    SEGMENT_NAME                                                                      TABLESPACE_NAME
    --------------------------------------------------------------------------------- ---------------
    T1                                                                                JERRY
    T2                                                                                JERRY
    
    //----------------------------------------------------
    向表空间添加数据文件
    
    alter tablespace jerry add datafile 'D:DEVORACLEDATATESTJERRY02.DBF' size 50m;
    
    
    
    //-----------------------------------------------------
    数据文件不够用解决问题
    1:改变数据文件的大小
      select * from dba_data_files;
      alter database datafile 10 resize 20m;
      一个数据文件最大32g
    2:向表空间里添加文件
    alter tablespace jerry add datafile 'D:DEVORACLEDATATESTJERRY02.DBF' size 50m;
    3:让数据文件自动扩展
    alter database datafile 10 autoextend on ;//默认一次扩展1block
    alter database datafile 10 autoextend on next 1m;
    alter database datafile 10 autoextend on next 1m maxsize 200m;
    
    
    //-----------------------------------------------
    create tablespace tbs datafile 'D:DEVORACLEDATATEST	bs01.DBF' size 5m autoextend on next 1m maxsize unlimited autoallocate;
    //每一个数据段128k
    create tablespace tbs datafile 'D:DEVORACLEDATATEST	bs01.DBF' size 5m autoextend on next 1m maxsize unlimited uniform size 128k;
    
    
    
    
    
    
    
    
    
    
    
    
    3:session
  • 相关阅读:
    【缓慢的自学ing】 自己写一个《Minecraft》记录
    Unity随笔3:按钮的"导航"功能
    【随随随随笔】一些STL的糖
    【算法氵】筛法
    【纯感慨】好吃的蒟蒻
    【随随随随笔】OJ错题记录
    【纯感慨】最不擅长的就是配置软件
    【C++Primer笔记】顶层const、常量指针
    hdu 2475 动态树
    hdu 1281 棋盘游戏 网络流
  • 原文地址:https://www.cnblogs.com/kaka100/p/3587354.html
Copyright © 2011-2022 走看看