• 1-架构


    1、探求Oracle架构

    使用Sql*plus,用sys用户登录

    [oracle@rhlinux5 ~]$ sqlplus / as sysdba


    观察Oracle实例的后台进程和服务器进程:

    SQL> select program from v$process;


    查看控制文件文件分布:

    SQL> select name from v$controlfile;

    NAME
    --------------------------------------------------------------------------------
    +DATA/mydb/controlfile/current.261.766011275
    +DATA/mydb/controlfile/current.260.766011275

    查看数据文件分布:

    SQL> col name format a50
    SQL> select file#,name from v$datafile;

         FILE# NAME
    ---------- --------------------------------------------------
             1 +DATA/mydb/datafile/system.256.766011189
             2 +DATA/mydb/datafile/sysaux.257.766011189
             3 +DATA/mydb/datafile/undotbs1.258.766011189
             4 +DATA/mydb/datafile/users.259.766011189
             5 +DATA/mydb/datafile/example.269.766011309
             6 +DATA/mydb/datafile/test.271.766051993
             7 +DATA/mydb/datafile/tbs1.272.768757719
             8 +DATA/mydb/datafile/tbs2.dbf

    查看表空间及对应的数据库文件

    SQL>col tablespace_name format a30
    SQl>col file_name format a50
    SQL> set line 300
    SQL> select tablespace_name,file_name from dba_data_files;

    TABLESPACE_NAME                FILE_NAME
    ------------------------------ --------------------------------------------------
    USERS                          +DATA/mydb/datafile/users.259.766011189
    UNDOTBS1                       +DATA/mydb/datafile/undotbs1.258.766011189
    SYSAUX                         +DATA/mydb/datafile/sysaux.257.766011189
    SYSTEM                         +DATA/mydb/datafile/system.256.766011189
    EXAMPLE                        +DATA/mydb/datafile/example.269.766011309
    TEST                           +DATA/mydb/datafile/test.271.766051993
    TBS1                           +DATA/mydb/datafile/tbs1.272.768757719
    TBS2                           +DATA/mydb/datafile/tbs2.dbf

    查看日志组信息:

    SQL> select group#,members,bytes/1024/1024,status from v$log;

        GROUP#    MEMBERS BYTES/1024/1024 STATUS
    ---------- ---------- --------------- ----------------
             1          2              50 INACTIVE
             2          2              50 CURRENT
             3          2              50 INACTIVE

    查看日志成员分布:

    SQL>col member format a50;
    SQL> select group#,member from v$logfile order by group#;

        GROUP# MEMBER
    ---------- --------------------------------------------------
             1 +DATA/mydb/onlinelog/group_1.262.766011279
             1 +DATA/mydb/onlinelog/group_1.263.766011281
             2 +DATA/mydb/onlinelog/group_2.264.766011283
             2 +DATA/mydb/onlinelog/group_2.265.766011283
             3 +DATA/mydb/onlinelog/group_3.266.766011285
             3 +DATA/mydb/onlinelog/group_3.267.766011287

    查看SGA信息

    SQL> select * from v$sgainfo;

    NAME                                                    BYTES RES
    -------------------------------------------------- ---------- ---
    Fixed SGA Size                                        1339824 No
    Redo Buffers                                          5132288 No
    Buffer Cache Size                                   285212672 Yes
    Shared Pool Size                                    318767104 Yes
    Large Pool Size                                       4194304 Yes
    Java Pool Size                                        4194304 Yes
    Streams Pool Size                                     8388608 Yes
    Shared IO Pool Size                                         0 Yes
    Granule Size                                          4194304 No
    Maximum SGA Size                                    849530880 No
    Startup overhead in Shared Pool                      62914560 No

    NAME                                                    BYTES RES
    -------------------------------------------------- ---------- ---
    Free SGA Memory Available                           222298112

    查看动态内存分配信息

    SQL>col component format a30
    SQL> select component,current_size,min_size,max_size from v$memory_dynamic_components;

    COMPONENT                      CURRENT_SIZE   MIN_SIZE   MAX_SIZE
    ------------------------------ ------------ ---------- ----------
    shared pool                       318767104  318767104  318767104
    large pool                          4194304    4194304    4194304
    java pool                           4194304    4194304    4194304
    streams pool                        8388608    8388608    8388608
    SGA Target                        629145600  629145600  629145600
    DEFAULT buffer cache              285212672  285212672  285212672
    KEEP buffer cache                         0          0          0
    RECYCLE buffer cache                      0          0          0
    DEFAULT 2K buffer cache                   0          0          0
    DEFAULT 4K buffer cache                   0          0          0
    DEFAULT 8K buffer cache                   0          0          0

    COMPONENT                      CURRENT_SIZE   MIN_SIZE   MAX_SIZE
    ------------------------------ ------------ ---------- ----------
    DEFAULT 16K buffer cache                  0          0          0
    DEFAULT 32K buffer cache                  0          0          0
    Shared IO Pool                            0          0          0
    PGA Target                        222298112  222298112  222298112
    ASM Buffer Cache                          0          0          0

    2、创建一个表段,然后计算它的物理位置,理解段、区、块的概念

    1、以SYSTEM 用户登录数据库

    sqlplus system/password

    2、创建表

    SQL>create table test1 (id number);

    3、确定所在的表空间,区间大小,区间所在文件号,以及作为区间开始位置的文件块

    SQL>select tablespace_name, extent_id,bytes,file_id,block_id
    from dba_extents where owner='SYSTEM' and segment_name='TEST1';

    TABLESPACE_NAME                 EXTENT_ID      BYTES    FILE_ID   BLOCK_ID
    ------------------------------ ---------- ---------- ---------- ----------
    SYSTEM                                                              0      65536          1      111985

    4、根据文件ID确定文件名称,看到提示,用前面查询的file_id替换

    SQL> select file_name from dba_data_files where file_id=&file_id;
    输入 file_id 的值:  1
    原值    1: select file_name from dba_data_files where file_id=&file_id
    新值    1: select file_name from dba_data_files where file_id=1

    FILE_NAME
    --------------------------------------------------------------------------------
    E:APPADMINISTRATORORADATATESTSYSTEM01.DBF

    表段存在一个64k的区间中

    5、计算区间在文件中的位置

    SQL>select block_size*&block_id/1024/1024 from dba_tablespaces
    where tablespace_name='&tablespace';

    替换上面查询的block_id和tablespace_name
    主要tablespace_name 要大写。

    输入 block_id 的值:  111985
    原值    1: select block_size*&block_id/1024/1024 from dba_tablespaces
    新值    1: select block_size*111985/1024/1024 from dba_tablespaces
    输入 tablespace 的值:  SYSTEM
    原值    2: where tablespace_name='&tablespace'
    新值    2: where tablespace_name='SYSTEM'

    BLOCK_SIZE*111985/1024/1024
    ---------------------------
                     874.882813

    这个区间开始于文件874M的位置。

    通过这个练习理解表空间,数据文件,段、区间、数据块的概念

  • 相关阅读:
    Entity Framework 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭 异常处理
    MD5加密
    让AutoMapper在你的项目里飞一会儿
    C# SFTP上传与下载
    读取、修改配置文件节点
    C#对数据库的操作(增删改查)
    实现Icommand接口
    wpf创建用户控件(计时器控件)
    用lpeg解析文本语法
    一种简单的客户端更新方案
  • 原文地址:https://www.cnblogs.com/oldcat/p/3140288.html
Copyright © 2020-2023  润新知