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
  • 相关阅读:
    88. Merge Sorted Array
    87. Scramble String
    86. Partition List
    85. Maximal Rectangle
    84. Largest Rectangle in Histogram
    83. Remove Duplicates from Sorted List
    82. Remove Duplicates from Sorted List II
    81. Search in Rotated Sorted Array II
    80. Remove Duplicates from Sorted Array II
    计算几何——点线关系(叉积)poj2318
  • 原文地址:https://www.cnblogs.com/kaka100/p/3587354.html
Copyright © 2011-2022 走看看