SlideShare une entreprise Scribd logo
1  sur  84
ALTIBASE 管理培
      训 管理篇
CONTENTS
 1.   Altibase Architecture
 2.   事务管理
 3.   Altibase Utilities
 4.   数据字典
 5.   对象及权限管理
 6.   监控
ALTIBASE Architecture
1.   ALTIBASE 特点
2.   ALTIBASE 运行
3.   ALTIBASE 结构
4.   表空间
5.   日志系统
6.   目录结构
ALTIBASE 特点
 关系型数据模型
     数据的物理独立性和逻辑独立性
     数据读取的方便性和多样性
     数据库设计的柔韧性
     消除冗余数据,消除数据间的不一致性
 多线程结构
 多版本并发控制 (MVCC)
 接口
     支持 SQL 92 标准 , ODBC, JDBC, C/C++ Precompiler
 事务管理
 Logging
 Buffer Pool
ALTIBASE 特点

   双写缓冲
   模糊乒乓检查点
   存储过程
   死锁检测
   表压缩
   数据库复制
   客户端 / 服务器架构
ALTIBASE 运行
启动时数据库就常驻于内存中并且在内存中对数据库进行操作的数据库管理系统


       Main Memory
             Database         Memory
                             TableSpace        Buffer
                                 Altibase

       Checkpointing             Startup                Logging

       DBS                                  LOGS
                                                        Logfile n
         Memory            Disk               Logfile 1
        Backup Files    Tables Space
                                                Log anchor

   磁盘 접근 없이 内存 에 직접 접근하여 데이터 읽기 연산 수행
    执行读数据操作时,直接访问内存,不访问磁盘
   데이터 갱신은 内存 에서 직접하고 갱신 내용을 Disk 의 Logfile 에 수록
    执行更新数据操作时,直接在内存中进行,将数据更新写入磁盘日志
   때때로 변경된 内存 내의 데이터페이지를 Disk 의 Datafile 에 반영
    在特定时间(检查点)将发生改变的数据页写入磁盘数据文件
ALTIBASE 结构 – 线程结
构
 ALTIBASE 4 Server Thread Structure

                                 ......




      ......
ALTIBASE 结构 – 逻辑结
构
 ALTIBASE 4 逻辑结构
                                                           G ra p h
                                                          Ma na ger          P redica te

                                   Query Processor        P l anTree         Ma na ger
                                                          Ma na ger
                                    Query Optimizer

                                                         P l anN od e
                                     Query Executor                              Ma th.

                                                         Record &            Ma na ger
Hybrid MM DBMS    ALTIBASE 4                             T em pTa bl e


        buffer
         버퍼      Query Processor
 内存
메모리
         磁盘
        디스크                                                    Interface La yer
 数据
데이터              Storage Manager
         数据
        데이터                                                   App l icatio n La yer

                                   Storage Manager            Tra nsa ctio n Lay er

                                                                 Index La yer
                                   Concurrency Control
                                                                R eco rd La yer
                                    Recovery Manager             P a ge La yer

                                                               Recovery Lay er

                                                               R esource La yer
ALTIBASE 结构 – 物理结
构
 ALTIBASE 4 物理结构



     Physical Memory

                   Memory Tables Space              Buffer




                       Memory Data           Disk Tables Space
                        Backup File          (data, temp, undo)



             Log Anchor                  LogFiles
ALTIBASE 结构 – 数据文件结
构
 ALTIBASE 4 数据文件 Structure


                        DATABASE File System



         TABLESPACE A        TABLESPACE B      TABLESPACE C


          DATAFILE 1          DATAFILE 4       DATAFILE 7

         1                   4                 7
          DATAFILE 2          DATAFILE 5       DATAFILE 8

         2                   5                 8
          DATAFILE 3          DATAFILE 6       DATAFILE 9
表空间

 表空间结构

   Tablespace

                          Free Page



                          Used Page




                          Extent


          Table   Index




                               Segment
表空间

 表空间分类
  内存表空间 (SYS_TBS_MEMORY)
    - 数据字典 , 内存表
  数据表空间
    - 系统表空间 (SYS_TBS_DATA)
    - 用户表空间
  Undo 表空间 (SYS_TBS_UNDO)
    - 为了多版本并发控制,存储变更前的映像
  临时表空间
    - 系统临时表空间 (SYS_TBS_TEMP)
    - 用户临时表空间
  扩展名 .dbf
表空间

段 (Segment)
  分配表或索引的单位
  逻辑上,一个表或索引是一个段
段的种类
  Table Segment
     一个表的所有数据属于一个 table segment
  Index Segment
     一个索引的所有数据属于一个 index segment
  Undo Segment
     属于一个 undo tablespace
  TSS Segment
     用于内部 TSS(Transction Status Slot) 管理,
     属于 undo tablespace
表空间

 Extent
   存储数据对象所需的资源,分配页的单位
   1 个 extent 由 8 个 page 组成( 256KB )

 Page
   存储表和索引的最小单位( 32KB )
   I/O 的最小单位

                       Physical header
      (type, extent RID, page ID, free size, free offset)
                  Logical header(free slot list)

         record           record
表空间

    保证数据库的连续性

 日志文件 (logfile)
     为了处理事务异常,记录 system recovery 用 log record
     文件名 : logfile** (** 为 logfile 的序列号 )

 日志控制文件 (loganchor)
     存储服务器运营所需的数据
       表空间信息 , 文件位置 , Checkpoint 关联信息
     为了正常启库,文件内容必须有效
     loganchor 文件共有 3 个
目录结构
 ALTIBASE 4 Directory Structure

      $ALTIBASE_HOME

            admin          促出监控存储过程文件
            arch_logs      存储归档日志文件
            audit          存储核对数据库不一致信息的工具和相关例子
            bin           存储 ALTIBASE 执行文件
            conf          存储 ALTIBASE 参数以及 license
            dbs           存储 ALTIBASE 数据文件 ( 默认值 )
            include        存储应用程序所需的头文件
            install      存储 makefile 所需的 macro 参数文件
            lib           存储应用程序所需的库文件
            logs          存储 logfile 和 loganchor
            msg           存储包括报错文件等信息
            sample         存储应用程序 sample
            trc           存储 ALTIBASE 运行状态日志
事务管理
1.   事务的概念
2.   事务持久性
3.   事务持久性的管理政策
4.   锁管理
5.   多版本并发控制
事务的概念

 事务的定义
   事务 (Transaction) 是作为单个逻辑工作单元执行的一系列
    SQL 操作

 事务的特点
     原子性 (Atomicity)
     一致性 (Consistency)
     隔离性 (Isolation)
     持久性 (Durability)

 命令语 (Statement)
   事务中执行的各个 SQL 语句
事务的概念

 提交
  事务的提交 (Commit) 为把事务内执行的所有 SQL 的结果永久
   反映到数据库中并结束事务的演算

 回滚
  事务执行过程中发生异常无法往下进行时回滚目前为止执行的所有
   SQL ,即回到事务执行前的数据库状态

 保存点
  一个长时间事务分几段管理时,可以在开始部分明示保存点
   (Savepoint).
事务的持久性

 事务的持续性
  数据库中一旦提交 (commit) 成功,不管数据库的变更内容是否已
   经完全反映 (flush) 到磁盘上相应的数据文件,系统故障后都能保
   证已经提交的内容。
  数据库管理系统通过日志 (log) 管理事务的持久性。
  日志的记录发生磁盘 I/O ,并其磁盘 I/O 瓶颈影响事务的处理
   性能。
  事务的持久性和事务的处理性能之间是安全性和性能互相冲突的关
   系。
事务的持久性管理政策

 Durability Level
    Altibase 事务的 durability level 分为 0~5 , Altibase 版
     本 4 支持 2-5 level 。

 Durability Level 设置
    altibase.properties 文件中的 [TRANSACTION_DURABILITY_
     LEVEL] 参数设置 durability level 。
    数据库启动时通过此参数设定的值来设置持久性,而且数据库运
     行中不能改变。
多版本控制 (MVCC)
 MVCC
   ALTIBASE 使用多版本并发控制方法 (MVCC, Multi-Version
    Concurrency Control)
   MVCC 意味着当一条 DML 对一条记录执行操作的时候,在保留原
    来记录的同时,要提供另一个副本用于执行 DML 操作。这项技术
    保证了在有一个事务不会因为另一个更新事务的操作而访问到不一
    致的资料,提供了对于数据库的事务隔离性的保障。
多版本控制 (MVCC)
 SVCC(Single Version Concurrency Control)
   变更操作时,需获得行级锁,所以读 / 写操作之间发生冲突,导致复杂事务环境下的性能下降。

                                                                     Exclusive Mode
                                       GAMESTAR        34

        TX1                       Read
                                                                 Modify
                                                                          Transaction X
              TX2
                      TX3        TX4                  TX
                                           TX5
                                                       6
 MVCC(Multi Version Concurrency Control)
   变更操作时,生成新版本记录再获得所,所以读 / 写操作之间不发生冲突,并保证复杂事务环境下的高性能。


                                                                          Exclusive Mode
          GAMESTAR          34                   FOREVER        34


          Read                                              Modify

              Transaction                         Transaction
                   1                                   2
多版本控制 (MVCC)
 内存表 : Out-place , 磁盘表 : In-place
  - 内存表:新的记录 (version) 以新的 RID 存储的 Out-place 结构
      保证高性能,但数据页的实际利用率可能下降,而且特定记录的 versioning 大于设定的参数值,
       就会自动转换为 In-place Update
  - 磁盘表:变更的字段在 Undo 表空间中以 Undo log 记录,并且新的记录直接覆盖原记录的
   In-place 结构

 Garbage Collection
   对于同一个记录产生的多个版本,事务一旦被提交,则只留下最新的有效版本,其他的版本被垃圾回收线程
   删除,并这些无效版本所占的内存空间被释放而且可再利用。


  Old     GAMESTAR          New       FOREVER            GAMESTAR

  New     FOREVER                                  Old




         Data Page                   Data Page          Undo Area
  Out-place (RID 变化 )                    In-Place(RID 不变 )
ALTIBASE Utilities
1.   ISQL
2.   ILOADER
3.   AEXPORT
4.   SHMUTIL
ISQL
 通过 iSQL 工具连接 ALTIBASE 数据库并执行 SQL 和
  其他命令语获取或修改数据库相关信息。
     开始 / 结束数据库
     连接 / 断开数据库
     查询数据库对象信息
     使用 SQL 管理数据库
     为用户提供便利
ISQL
 iSQL 环境变量
     ISQL_CONNECTION
       TCP/IP
       UNIX DOMAIN
       IPC
     ISQL_BUFFER_SIZE
         建议与 CM_BUF_SIZE 一样
     ALTIBASE_DATE_FORMAT
     ISQL_EDIT

 iSQL 的构成
     glogin.sql
        是一个全局脚本,影响 iSQL 连接属性。
        生成于 $ALTIBASE_HOME/conf
ISQL
 使用方法
     isql [-S server_name] [-U user_id] [-P password]
      [-PORT port_no] [-NLS nls_use]
      [-F infile_name] [-O outfile_name]
      [-H] [-V] [-SILENT][-SYSDBA]

 命令选项中缺省 -S, -U, -P ,则打印相关提示信息。 .

 使用 sysdba 选项连接数据库时,根据数据库的
  property 设置的 port 连接,所以 – sysdba 和– s,
  -port 不能同时使用。
ISQL – 命令语

     分 类                    种 类                       命 令 语

                   开始             $ isql [option]

 iSQL 开始 / 结束      prompt         iSQL>
                                  EXIT;
                   结束
                                  QUIT;
                                  STARTUP
                   ALTIBASE 开始
ALTIBASE 开始 / 结束                  (pre-process, process, control, meta, service)
                   ALTIBASE 结束    SHUTDOWN(normal, immedate, abort)

                   连接其他用户         CONNECT user1/pass1 [AS sysdba];
 数据库连接 / 断开
                   断开连接           DISCONNECT;
                   查看性能试图         SELECT * FROM V$TAB;
                   查看表目录          SELECT * FROM TAB;
查询数据库对象信息
                   查看表结构          DESC samp;
                   查看 sequence    SELECT * FROM V$SEQ;
ISQL – 命令语


   分 类             种 类                       命 令 语
                             SPOOL filename;
          形成文件
                             SPOOL OFF;
                             START file_name;
          sql script 的执行     @ file_name;
                             @@ file_name;( 脚本中)
   文件管理   把 iSQL buffer 中的
                             SAVE abc.sql;
          SQL 以文件存储
          SQL 的 load         LOAD abc.sql;
                             ED
          编辑 SQL             ED filename[.sql]
                             2ED /2 ED
ISQL – 命令语


   分 类           种 类                   命 令 语
         显示 select 结果的
                          SET LINESIZE 100;
         行大小

         select 结果的
                          SET PAGESIZE 10;
         Row 模式

         是否有 select       SET HEADING ON;
         结果 header        SET HEADING OFF;
  结果显示   select 结果的字段大小   SET COLSIZE N;;
                          SET TIMING ON;
         SQL 执行时间
                          SET TIMING OFF;
                          SET FOREIGNKEYS ON;
         foreign key 信息
                          SET FOREIGNKEYS OFF;
                          SET TERM ON;
         脚本文件执行结果与否
                          SET TERM OFF;
ISQL – 命令语


   分 类             种 类                   命 令 语
                         HISTORY;
         history
                         H;
                         /
         反复执行
                         2/

   方便性   Shell  命令执行     !
                         /* comment */
         注释
                         -- comment
                         HELP;
         帮助              HELP INDEX;
                         HELP EXIT;
ILOADER – 介绍
 iLoader 是一个用于数据的上传和下载的 Altibase 辅
  助软件。

 数据以表为单位下载到文件,每个表需要相应的表格格式
  文件 (FORM FILE) 。

 iLoader 主要用于数据库的迁移以及以表为单位的备份,
  不存储数据库的对象信息,所以备份时注意这点。

 iLoader 包含于产品包,其执行文件在
  $ALTIBASE_HOME/bin 下。
ILOADER – 功能
 表格格式文件
 表格格式文件是一种规定怎样上传 / 下载表和列的说明书,
  不包括表的约束条件。可以加 where 条件指定上传部分
  行和列。

 数据导出
   数据由表导出到文件

 数据导入
   数据从文件传送入表
ILOADER – 使用方法
 iloader { in | out | formout | structout | help }
   [-T table_name]        [-d datafile]
   [-f formatfile]       [-F firstrow]
   [-L lastrow]       [-t field_term]
   [-r row_term]      [-U|-u login_id]
   [-P|-p password]      [-S|-s servername]
   [-mode mode_type] [-commit commit_unit]
   [-bad badfile]     [-log logfile]
   [-e enclosing]     [-array count]
   [-replication true/false] [-noexp]
ILOADER – 执行例子

 表格格式文件的生成
 iLoader> formout -T employee -f employee.fmt
 iLoader> exit
 shell> ls
 employee.fmt


 数据下载
 iLoader> out -f employee.fmt -d employee.dat
 DATE FORMAT : YYYY/MM/DD HH:MI:SS
     ..
    Total 20 record download
    DOWNLOAD: 56936
 iLoader> exit
 shell> ls
 employee.dat employee.fmt


 数据上传
 iLoader> in -f employee.fmt -d employee.dat -mode replace
 DATE FORMAT : YYYY/MM/DD HH:MI:SS
     UPLOAD: 13880
     Load Count : 20
ILOADER – 连接远程数据库
 iloader [-H] [-S server_name] [-U user_id]
     [-P password][-PORT port_no] [-SILENT] [-NST]

   -H         帮助 .
   -S server_name    server_name 或 IP 地址
   -U user_id        数据库用户名
   -P password       密码
   -PORT port_no     远程数据库端口号
   -SILENT           silent 模式,是否显示 Copyright 等信息
   -NST              nst 模式,是否现实 elapsed time 等
ILOADER – 应用
 SEQUENCE
     用户可通过修改表格格式文件来将序列应用在表 / 列上,从而保障序列号的唯一性。
     为了修改表格格式文件,需将下列语句加在表格文件头 。
     SEQUENCE sequence_name column_name [ NEXTVAL | CURRVAL ]
     Nextval 是虚列的缺省值,纵列数最大为 8 。

 例子
     - 创建表和序列
       iSQL> CREATE TABLE seqTable( num INTEGER, name VARCHAR(30));
       iSQL> CREATE SEQUENCE seq1 START WITH 30 INCREMENT BY 2 MINVALUE 0
      NOMAXVALUE;
       表格格式文件生成以及追加序列
       iLoader> formout -T seqTable –f seqTable.fmt
       shell> vi seqTable.fmt
       SEQUENCE seq1 NUM              <- 修改部分
       table seqTable{
       NUM integer;
       NAME varchar (30);}
       数据上传
       iLoader> in -f seqTable.fmt -d seqTable.dat -mode replace
ILOADER – 应用
 DATE FORMAT
     数据类型为日期类型时,用户可将 DATEFORM 语句加在 FORM 文件结
      尾, 以特定格式上传或下载。
     默认值为 DATEFORM YYYY/MM/DD HH:MI:SS
     用户可以采用引号(‘和’)来自定义新的日期格式, 不分大小写 。
     可以通过设定参数 ILO_DATEFORM 来设定 DATEFORM ,
       如 Born, Korn, 或 Bash Shell 的情况
      export ILO_DATEFORM='YYYY-MM-DD‘
     可以指定每个字段的日期类型,如:
      table t1
      {
      I1 integer;
      I2 date “YYYY-MM-DD”;     <- 修改部分
      I3 date;
      I4 date “YYYY/MM/DD HH:MI:SS SSSSSS”; <- 修改部分
      }
      DATEFORM YYYY/MM/DD HH:MI:SS
ILOADER – 应用
 条件
     在表格格式文件最后加上 where 条件,指定上传部分数据。
     为了高性能,可加上 HINT 。
     DOWNLOAD CONDITION 之后,“ ”里添加条件。
     DOWNLOAD CONDITION " ……… “
    为了确认是否正常运行,执行时可加上 ‘ -displayquery’
 语句
    DOWNLOAD CONDITION "Where_conditions_clause "
    [HINT "hint_string"]
    Where_conditions_clause : SELECT 的 WHERE 条件语法相同。
    hint_string : SELECT 的 HINT 语法相同。
 例子
 shell> vi table1.fmt
 table table1{
 T1 integer;
 T2 date;}
 DATEFORMYYYY/MM/DD HH:MI:SS
 DOWNLOAD CONDITION “where t1 > 2” <- 修改部分
AEXPORT
 ALTIBASE 数据库之间同步 (migration) 的工具。

 把数据库的逻辑结构以 SQL 脚本存储,并把所有的数据以文件形式
  下载到磁盘,用于 ALTIBASE 之间的数据同步,也用于离线备份。

 从数据库取出数据库用户,用户权限,表空间,表,约束条件,索引,
  视图,存储过程,复制对象。

 不同 ALTIBASE 版本,不同操作系统之间同步数据时,可有效使用
  。
AEXPORT – 功能
 AEXPORT 执行后,自动生成以下脚本。
 SQL 脚本文件:
      SYS_CRT_USER.sql : 生成用户
      SYS_PRIV_USER.sql : 用户权限
      SYS_CRT_TBS.sql : 生成表空间
      SYS_CRT_REP.sql : 复制对象
      ALL_CRT_VIEW.sql : 生成视图
      ALL_CRT_PROC.sql : 生成存储过程
      { 用户名 }_CRT_TBL.sql : 生成表
      { 用户名 }_CRT_INDEX.sql : 生成索引,包括主键
      { 用户名 }_CRT_FK.sql : 生成外键 (Foreign Key)
 执行脚本文件:
      run_il_in.sh : 数据上传脚本
      run_il_out.sh : 数据下载脚本
      run_is.sh : 数据库对象生成执行脚本
      run_is_fk.sh : 生成外键执行脚本
      run_is_index.sh : 生成索引执行脚本
 AEXPORT 生成的文件都是文本文件,用户可根据需要修改,提供方便性。
AEXPORT – 使用方法

   语句
     aexport   { -h | [ -S | -U | -P | -port ] }

   参数
     -h : 帮助
     -S : server_name 或 IP 地址
     -U : 数据库用户名
     -P : 密码
     -port : 数据库端口号
AEXPORT – 执行步骤
   数据同步步骤

       从源数据库取出数据库逻辑结构
        # aexport –s 127.0.0.1 –u sys –p manager
       从源数据库取出数据
        # sh run_il_out.sh
       目标数据库上创建数据逻辑结构
        # sh run_is.sh
       数据导入到目标数据库
        # sh run_il_in.sh
       目标数据库上生成索引和外键
        # sh run_is_index.sh
        # sh run_is_fk.sh
AEXPORT – 参数
   AEXPORT 根据以下文件设定执行参数
       $ALTIBASE_HOME/conf/aexport.properties

   参数
       OPERATION = OUT
       EXECUTE = OFF
       INDEX = ON
       USER_PASSWORD = altibase
       DROP = ON
       ILOADER_OUT = run_il_out.sh
       ILOADER_IN = run_il_in.sh
       ISQL = run_is.sh
       ISQL_INDEX = run_is_index.sh
       ILOADER_FIELD_TERM = ^
       ILOADER_ROW_TERM = %n
AEXPORT – 注意事项
   不是 SYS 用户,而是以一般用户 AEXPORT 时, 只生成此用户的数据库结构
    。
   不是 SYS 用户,而是以一般用户 AEXPORT 时,不生成 Replication 对象。
   执行 ‘ run_is.sh’ 时,删除所有用户以及对象,所以谨慎使用
   生成存储过程时,如果没有提前生成需要参照的存储过程则会失败。 AEXPORT
    无法访问存储过程之间的逻辑关系,所以无法保证存储过程生成顺序。所以需要手
    动生成失败的存储过程
   AEXPORT 只能限制性地访问 sequence 的 meta 信息,
      所以当在一般用户下创建 sequence 的时候,只能创建‘ increment by’ 定
    义的属性,其他属性就是默认值。
SHMUTIL
   查询,备份,删除 ALTIBASE 使用的共享内存的工具。

   ALTIBASE 在内存中分配数据领域时,使用 Process Heap 领域或共享内
    存领域。使用共享内存领域时, 即使关闭数据库数据依然存在于共享内存领
    域。
      所以为了查询和管理此领域提供 SHMUTIL 工具。

   SHMUTIL 功能如下:
       查询共享内存信息
       存储共享内存
       删除共享内存
SHMUTIL
   shmutil [OPTIONS -pwe] [-d HOME_DIR] [-f PROPERTY_FILE]

       -p :   打印共享内存 DB 信息
       -w:    共享内存 DB 写入硬盘
       -e :   删除共享内存 DB
       -d :   指定 ALTIBASE 目录
       -f :   指定参数文件
数据字典
1. 系统表
2. 系统视图
系统表
  系统表
    系统表是记录所有数据库对象的相关信息的系统定义表。
    目录输出语句
     iSQL> select * from tab;
  基本系统表
             表名                      说明
  SYS_COLUMNS_              表的列信息
  SYS_CONSTRAINTS_          表的约束条件信息
  SYS_CONSTRAINT_COLUMNS_   作为约束条件的列信息
  SYS_DATABASE_             数据库信息
  SYS_GRANT_OBJECT_         对象权限信息
  SYS_GRANT_SYSTEM_         系统权限信息
  SYS_INDEX_COLUMNS_        索引信息
系统表
  基本系统表
           表名                   说明
 SYS_DIRECTORIES_     存储过程中控制文件的目录信息
 SYS_INDEX_COLUMNS_   索引的所有字段信息
 SYS_INDICES_         表的索引信息
 SYS_PRIVILEGES_      数据库权限信息
 SYS_TABLES_          表信息
 SYS_TBS_USERS_       表空间用户信息
 SYS_USERS_           用户信息


 复制相关系统表
           表名                   说明
 SYS_REPLICATIONS_    复制信息
 SYS_REPL_HOSTS_      远程服务器信息
 SYS_REPL_ITEMS_      复制表的信息
系统表

  存储过程相关系统表
          表名                    说明
 SYS_PROCEDURES_     存储过程和存储函数信息
 SYS_PROC_PARAS_     存储过程和存储函数的变量信息
 SYS_PROC_PARSE_     存储过程和存储函数的分析信息
 SYS_PROC_RELATED_   存储过程和存储函数访问的表信息

  视图相关系统表
          表名                    说明
 SYS_VIEWS_          视图对象信息
 SYS_VIEW_PARSE_     视图对象分析信息
 SYS_VIEW_RELATED_   视图访问的对象信息
系统表

  触发器相关系统表
             表名                      说明
 SYS_TRIGGERS_                 触发器系统信息
 SYS_TRIGGER_DML_TABLES_       触发器访问的表信息
 SYS_TRIGGER_STRINGS_          触发器语句信息
 SYS_TRIGGER_UPDATE_COLUMNS_   触发器更新的字段信息

  别名相关系统表
            表名                      说明
 SYS_SYNONYMS_             对象别名信息
系统视图
 动态性能视图
  记录当前系统的信息,包括内存使用信息,进程、会话、缓冲信息等,用
   于监控数据库状态。

     用户可以通过 SQL 查询动态系统试图,取得数据库运行时的状态信息
     (如会话信息、日志信息),使得数据库维护更方便。

  以视图的方式提供 ALTIBASE 数据库内部的内存结构,可实时获得数据
   库运行时的状态信息。

  列出所有可用的动态性能视图
   iSQL> select * from v$tab;
系统视图
动态性能视图
           表名                           说明
 V$ALLCOLUMN          动态系统试图的字段信息
 V$ARCHIVE            归档相关信息和备份信息
 V$BUFFPAGEINFO       数据库缓冲的页信息
 V$BUFFPOOL_STAT      数据库缓冲 hit ratio 以及相关统计信息
 V$DATABASE           内存数据库空间的内部信息
 V$DATAFILES          表空间使用的数据文件信息
 V$DB_FREEPAGELISTS   数据库可使用的页信息
 V$DISKGC             磁盘空间回收 (disk garbage collection) 信息
 V$DISKTBL_INFO       磁盘表信息
 V$FLUSHINFO          刷新缓冲信息
 V$INDEX              数据库索引信息
 V$INSTANCE           ALTIBASE 多阶段启动信息
系统视图

动态性能视图
          表名                        说明
V$LATCH            缓冲池的缓冲控制块 (BCB) latch 统计信息
V$LFG              日志集合有关统计信息
V$LOCK             数据库所有表的锁信息
V$LOCK_WAIT        事务之间等待的信息
V$LOG              日志控制信息
V$LOCK_STATEMENT   Lock 和 statement 信息
V$MEMGC            内存垃圾回收 (memory garbage collect) 信息
V$MEMTBL_INFO      内存表状态信息
V$MEMSTAT          ALTIBASE 进程使用的内存统计信息
V$MUTEX            并发控制有关的 mutex 统计信息
系统视图
动态性能视图
            表名                          说明
V$PLANTEXT               SQL 执行计划内容信息
V$PROCTEXT               存储过程内容信息
V$PROPERTY               ALTIBASE 内部参数信息
V$REPEXEC                复制管理信息
                         事务当前日志文件和传送到复制目标数据库的日志文
V$REPGAP
                         件的差距信息
V$REPSYNC                SYNC 中的表信息
V$REPRECEIVER            复制的接收数据库信息
V$REPRECEIVER_TRANSTBL   复制的接收数据库的事务表信息
V$REPSENDER              复制的传送数据库信息
V$REPSENDER_TRANSTBL     复制的传送数据库的事务表信息
V$SEGMENT                断状态、类型、分配的范围个数
V$SEQ                    序列相关信息
系统视图

动态性能视图
          表名                        说明
V$SERVICE_THREAD    服务线程信息
V$SESSION           ALTIBASE 内部生成的对应客户端的会话信息
V$SESSIONMGR        会话统计信息
V$STATEMENT         会话的所有表达式信息
V$SQLTEXT           系统上执行的 SQL 内容信息
V$TABLE             所有性能视图的行和列信息
V$TABLESPACES       表空间信息
V$TRACELOG          内部模块跟踪日志信息
V$TRANSACTION       事务信息
V$TRANSACTION_MGR   事务管理信息
V$UNDO_BUFF_STAT    Undo table space 的缓冲池统计信息
对象及权限管理
1. 数据库对象
2. 表 / 约束条件
3. 索引 / 视图 / 序列 / 别名 / 存储过程 /
   函数
4. 触发器 / 用户 / 表空间
5. 权限
数据库对象

 数据库对象
  Schema object : 与数据库数据直接联系的逻辑结构
     表
     约束条件
     索引
     视图
     序列
     别名
     过程,函数
     触发器
  Non-Schema object : 不属于特定 schema ,而属于整个数据库
     目录
     复制
     表空间
     用户
表
 存储空间的不同
     内存表
     磁盘表
 管理主体的不同
     系统表 (meta table , process table)
     一般用户表
 使用大容量内存表时的注意事项
     执行 DDL 时,建议使用 iLoader 导出并再导入
     对于大表进行 DML 操作时
        因为表锁,可能不能访问该表
        Altibase 内存使用量积蓄增加
        存储 Logfile 的目录空间不够
 对于复制的表不能进行 DDL
约束条件

 约束条件
  系统用一定的机制来检查数据库中的数据是否满足规定的条件,这
   种条件称为约束条件。
 种类
    NOT NULL / NULL
    唯一标识 (unique key)
    主键 (primary key)
    外键 (foreign key)
    TIMESTAMP

 字段约束条件和表约束条件
  NULL/NOT NULL 和 TIMESTAMP 只能作为字段约束条件
索引

 索引
  为了加快访问记录的速度而设置的。

 类型
  B-tree 索引
  R-tree 索引

 索引的特点
  唯一索引 : unique, non-unique, primary key
  复合索引 : Non-composite Index, Composite Index
  索引的存储 : 永久存储索引 (Persistent Index), 非永久索引
   (Non-persistent Index)
视图

 视图 (View)
   不保存实际的数据,保存的是实在表经查询后的结果,是逻辑表
    (logical table) 。

 基本表
   是数据库中实在的表,是视图的来源和基础,一个视图可以包含一
    个或多个基本表。

 ALTIBASE 的视图
   ALTIBASE  支持只读试图,不支持可更新的视图 (updatable
    view) 和实物化视图 (materialized view) 。
序列

 序列
  是一个等差数列,任何时候数据库系统都可以根据当前记录数大小加上
   步长来获取到下一条记录,因为缓冲使用,保持一定的性能。

 序列的用途
  序列自动生成唯一值,可赋值给 DML 语句的任何字段

 使用方法
  sequence name.nextval
  sequence name.currval
  序列生成以后不能直接使用 sequence_name.currval ,而是首先使
   用 sequence_name.currval ,再使用 sequence_name.nextval
   才能获得序列号。
别名

 别名
  Altibase 提供对于表、序列、视图、存储过程、存储函数的
     别名 (alias) 。

 优点
  可隐藏生成特定对象的用户和特定对象
  SQL 语句简单化
  最小化用户名变更引起的代码变更
存储过程和存储函数

 存储过程
  是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。
   用户通过指定存储过程的名字并给出参数来执行它。

 区别
  存储过程与存储函数区别在于是否有返回值

 类型
  存储过程
  存储函数
  Type set
触发器

 触发器
  一种特殊类型的存储过程,它在插入,删除或修改特定表中的数据
   时触发执行。

 组成要素
  Trigger event : 触发事件的 SQL 语句
  Trigger condition : 触发事件并执行触发器的条件
  Trigger action : 触发条件为真时,执行的存储过程内容 (body)
用户


 数据库用户
  SYSTEM_ 和 SYS 用户
     创建数据库时默认生成的用户
     SYSTEM_ : 系统表的所有者
     SYS : DBA, 拥有数据库的所有权限
     不能随意变更或删除
表空间

 表空间
  表空间作为数据库逻辑结构的最大单位,数据库由多个表空间组成
  一个表空间由多个数据文件组成
  一个数据文件只属于一个表空间

 类型
  存储空间的不同
     内存表空间 (SYS_TBS_MEMORY)
     磁盘表空间
  生成阶段的不同
     SYSTM 表空间
     USER 表空间
权限
 权限管理
  系统权限 (System Privilege)
     DBA 管理系统权限,对数据库进行特定操作并管理所有对象

  系统权限类型
     DATABASE
     INDEXES
     PROCEDURES
     SEQUENCES
     SESSIONS
     TABLES
     TABLESPACES
     USERS
     VIEWS
     MISCELLANEOUS
     TRIGGER
权限

用户对象权限 (Object Privilege)
      由对象的创建用户管理,并赋予和回收其他用户对该对象的权限

用户对象权限类型
        ALTER
        DELETE
        EXECUTE
        INDEX
        INSERT
        REFERENCES
        SELECT
        UPDATE
赋予权限 : GRANT
回收权限 : REVOKE
数据库监控
 • altiProfile
 • Admin Center
altiProfile

 altiProfile 概念
   可以实时获得数据库的信息
   记录所有 DML 的 Query 信息
 altiProfile 设定
   iSQL 上设定 altiProfile 执行属性
       ALTER SYSTEM SET QUERY_PROF_FLAG = [0~1023]
   设定属性时,生成以下文件
       $ALTIBASE_HOME/TRC/alti-TIMEMICROSEC.prof.
 分析
   altiProfile [ profile_name ]
Admin Center

       Admin Center
        Altibase GUI 监控工具

       安装方法
          首先下栽 Admin Center package
          拷贝 JDBC Driver
              把 $ALTIBASE_HOME/lib/Altibase.jar 拷贝到 Admin
           Center 安装的目录
          http://java.com/ 上下载 JRE 1.4.x 并安装
Admin Center
 初始画面
    左边窗口罗列登记的数据库名称,详细信息在右边窗口显示




         Object
         Tree


                       罗 列各 Object 的 详细 信
                       息


                  执 行 结 果窗口
Admin Center

 连接 / 变更 / 结束
     左边的 Object tree 上显示登记的服务器名, 点击右件选择连 / 变
      更 / 结束或点击相关按钮。
     连接后就能看到数据库上的所有的对象。
Admin Center

       数据库管理
       CheckPoint, Online Backup, Trc-Log Level 变更 , 数据库对象相
        关脚本生成目录
Admin Center

       表空间管理
       Object tree 窗口上点击 Tablespaces ,就显示所有的表空间。
       点击每个 Tablespaces ,就显示其 FileName, Size 信息。
Admin Center

       用户管理
       Object tree 窗口上点击 Users ,就显示数据库的所有用户
       可以生成 / 变更 / 删除用户,并赋予权限。
Admin Center

 监控
    Server Monitor & Admin 栏上点击 Performance View 。
Admin Center

 数据库结束通知
    通知数据库结束 ( 包括非正常结束 ) 的功能,以 10 秒为单位检查数
     据库的状态。
谢谢
       Contact Point
天津南大通用数据技术有限公司
天津总部  :天津华苑产业园区海泰发展六道 6 号
邮    编: 300384
电    话: 022-58815881
传    真: 022-58815882
北京业务中心:北京海淀区金源时代商务中心 2 号楼 A 座 17D
邮    编: 100089
电    话: 010-88866866
传    真: 010-88864556
Web   : http://www.generaldata.com.cn

Contenu connexe

Tendances

MySQL查询优化浅析
MySQL查询优化浅析MySQL查询优化浅析
MySQL查询优化浅析frogd
 
Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹Chien Chung Shen
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇小新 制造
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recoveryted-xu
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器Leyi (Kamus) Zhang
 
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rmanted-xu
 
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11gOracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11gChien Chung Shen
 
TSM6培训教程
TSM6培训教程TSM6培训教程
TSM6培训教程acqua young
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析frogd
 
第4章 数据库管理
第4章 数据库管理第4章 数据库管理
第4章 数据库管理zhang shuren
 
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)frogd
 
排队论及其应用浅析
排队论及其应用浅析排队论及其应用浅析
排队论及其应用浅析frogd
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统reinhardx
 
3, OCP - instance management
3, OCP - instance management3, OCP - instance management
3, OCP - instance managementted-xu
 
How to Build Cloud Storage Service Systems
How to Build Cloud Storage Service SystemsHow to Build Cloud Storage Service Systems
How to Build Cloud Storage Service SystemsHanborq Inc.
 
网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维guiyingshenxia
 

Tendances (20)

MySQL查询优化浅析
MySQL查询优化浅析MySQL查询优化浅析
MySQL查询优化浅析
 
Baidu Cloud Foundry
Baidu Cloud FoundryBaidu Cloud Foundry
Baidu Cloud Foundry
 
Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
 
Oracle 索引介紹
Oracle 索引介紹Oracle 索引介紹
Oracle 索引介紹
 
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
 
Linuxcommand
LinuxcommandLinuxcommand
Linuxcommand
 
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11gOracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
 
TSM6培训教程
TSM6培训教程TSM6培训教程
TSM6培训教程
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析
 
第4章 数据库管理
第4章 数据库管理第4章 数据库管理
第4章 数据库管理
 
Oracle Instance 介紹
Oracle Instance 介紹Oracle Instance 介紹
Oracle Instance 介紹
 
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
 
排队论及其应用浅析
排队论及其应用浅析排队论及其应用浅析
排队论及其应用浅析
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
3, OCP - instance management
3, OCP - instance management3, OCP - instance management
3, OCP - instance management
 
How to Build Cloud Storage Service Systems
How to Build Cloud Storage Service SystemsHow to Build Cloud Storage Service Systems
How to Build Cloud Storage Service Systems
 
网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维
 

En vedette

Assignment1
Assignment1Assignment1
Assignment1CKZaugg
 
Ibm solid db overview v6.3 20090320
Ibm solid db overview v6.3 20090320Ibm solid db overview v6.3 20090320
Ibm solid db overview v6.3 20090320小新 制造
 
Paris Assembly open textbooks 4 Africa
Paris Assembly open textbooks 4 Africa Paris Assembly open textbooks 4 Africa
Paris Assembly open textbooks 4 Africa Kelsey Wiens
 
Ceiling soccer
Ceiling soccerCeiling soccer
Ceiling soccerCKZaugg
 
Assignment2
Assignment2Assignment2
Assignment2CKZaugg
 
Veritas and Epic (JHFM version)
Veritas and Epic (JHFM version)Veritas and Epic (JHFM version)
Veritas and Epic (JHFM version)worldmission
 
Assignment3 final
Assignment3 finalAssignment3 final
Assignment3 finalCKZaugg
 

En vedette (9)

Uct presentation
Uct presentationUct presentation
Uct presentation
 
Assignment1
Assignment1Assignment1
Assignment1
 
Ibm solid db overview v6.3 20090320
Ibm solid db overview v6.3 20090320Ibm solid db overview v6.3 20090320
Ibm solid db overview v6.3 20090320
 
Paris Assembly open textbooks 4 Africa
Paris Assembly open textbooks 4 Africa Paris Assembly open textbooks 4 Africa
Paris Assembly open textbooks 4 Africa
 
Ibm solid db_基础
Ibm solid db_基础Ibm solid db_基础
Ibm solid db_基础
 
Ceiling soccer
Ceiling soccerCeiling soccer
Ceiling soccer
 
Assignment2
Assignment2Assignment2
Assignment2
 
Veritas and Epic (JHFM version)
Veritas and Epic (JHFM version)Veritas and Epic (JHFM version)
Veritas and Epic (JHFM version)
 
Assignment3 final
Assignment3 finalAssignment3 final
Assignment3 final
 

Similaire à Altibase管理培训 管理篇

mysql总结
mysql总结mysql总结
mysql总结haiwang
 
Elastic Stack 最新动态
Elastic Stack 最新动态Elastic Stack 最新动态
Elastic Stack 最新动态Elasticsearch
 
百度分布式数据库平台
百度分布式数据库平台百度分布式数据库平台
百度分布式数据库平台Wyatt Fang
 
Redis分享
Redis分享Redis分享
Redis分享yiihsia
 
Delta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
Delta Lake Architecture: Delta Lake + Apache Spark Structured StreamingDelta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
Delta Lake Architecture: Delta Lake + Apache Spark Structured StreamingXiao Li
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统klandor
 
Sql优化
Sql优化Sql优化
Sql优化dcshi
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on HadoopSchubert Zhang
 
百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010Chuanying Du
 
Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版longxibendi
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展Sky Jian
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践mysqlops
 
Itpub电子杂志(第五期)
Itpub电子杂志(第五期)Itpub电子杂志(第五期)
Itpub电子杂志(第五期)yiditushe
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
 
第8章 运行时的存储管理
第8章 运行时的存储管理第8章 运行时的存储管理
第8章 运行时的存储管理tjpucompiler
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结Lixun Peng
 

Similaire à Altibase管理培训 管理篇 (20)

mysql总结
mysql总结mysql总结
mysql总结
 
Elastic Stack 最新动态
Elastic Stack 最新动态Elastic Stack 最新动态
Elastic Stack 最新动态
 
百度分布式数据库平台
百度分布式数据库平台百度分布式数据库平台
百度分布式数据库平台
 
Redis分享
Redis分享Redis分享
Redis分享
 
Delta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
Delta Lake Architecture: Delta Lake + Apache Spark Structured StreamingDelta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
Delta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
Sql优化
Sql优化Sql优化
Sql优化
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on Hadoop
 
百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010
 
Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版Mysql体系结构及原理(innodb)公开版
Mysql体系结构及原理(innodb)公开版
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
 
MogileFS
MogileFSMogileFS
MogileFS
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
 
Cdc@ganji.com
Cdc@ganji.comCdc@ganji.com
Cdc@ganji.com
 
Dfs ning
Dfs ningDfs ning
Dfs ning
 
Itpub电子杂志(第五期)
Itpub电子杂志(第五期)Itpub电子杂志(第五期)
Itpub电子杂志(第五期)
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
 
第8章 运行时的存储管理
第8章 运行时的存储管理第8章 运行时的存储管理
第8章 运行时的存储管理
 
Hbase
HbaseHbase
Hbase
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结
 

Plus de 小新 制造

Memory-Based Cloud Architectures
Memory-Based Cloud ArchitecturesMemory-Based Cloud Architectures
Memory-Based Cloud Architectures小新 制造
 
Storage: Alternate Futures
Storage: Alternate FuturesStorage: Alternate Futures
Storage: Alternate Futures小新 制造
 
架构大数据 挑战、现状与展望
架构大数据 挑战、现状与展望架构大数据 挑战、现状与展望
架构大数据 挑战、现状与展望小新 制造
 
Oracle clusterware overview_11g_en
Oracle clusterware overview_11g_enOracle clusterware overview_11g_en
Oracle clusterware overview_11g_en小新 制造
 

Plus de 小新 制造 (6)

Memory-Based Cloud Architectures
Memory-Based Cloud ArchitecturesMemory-Based Cloud Architectures
Memory-Based Cloud Architectures
 
Storage: Alternate Futures
Storage: Alternate FuturesStorage: Alternate Futures
Storage: Alternate Futures
 
内存数据库[1]
内存数据库[1]内存数据库[1]
内存数据库[1]
 
架构大数据 挑战、现状与展望
架构大数据 挑战、现状与展望架构大数据 挑战、现状与展望
架构大数据 挑战、现状与展望
 
Altibase介绍
Altibase介绍Altibase介绍
Altibase介绍
 
Oracle clusterware overview_11g_en
Oracle clusterware overview_11g_enOracle clusterware overview_11g_en
Oracle clusterware overview_11g_en
 

Altibase管理培训 管理篇

  • 1. ALTIBASE 管理培 训 管理篇
  • 2. CONTENTS 1. Altibase Architecture 2. 事务管理 3. Altibase Utilities 4. 数据字典 5. 对象及权限管理 6. 监控
  • 3. ALTIBASE Architecture 1. ALTIBASE 特点 2. ALTIBASE 运行 3. ALTIBASE 结构 4. 表空间 5. 日志系统 6. 目录结构
  • 4. ALTIBASE 特点  关系型数据模型  数据的物理独立性和逻辑独立性  数据读取的方便性和多样性  数据库设计的柔韧性  消除冗余数据,消除数据间的不一致性  多线程结构  多版本并发控制 (MVCC)  接口  支持 SQL 92 标准 , ODBC, JDBC, C/C++ Precompiler  事务管理  Logging  Buffer Pool
  • 5.
  • 6. ALTIBASE 特点  双写缓冲  模糊乒乓检查点  存储过程  死锁检测  表压缩  数据库复制  客户端 / 服务器架构
  • 7. ALTIBASE 运行 启动时数据库就常驻于内存中并且在内存中对数据库进行操作的数据库管理系统 Main Memory Database Memory TableSpace Buffer Altibase Checkpointing Startup Logging DBS LOGS Logfile n Memory Disk Logfile 1 Backup Files Tables Space Log anchor  磁盘 접근 없이 内存 에 직접 접근하여 데이터 읽기 연산 수행 执行读数据操作时,直接访问内存,不访问磁盘  데이터 갱신은 内存 에서 직접하고 갱신 내용을 Disk 의 Logfile 에 수록 执行更新数据操作时,直接在内存中进行,将数据更新写入磁盘日志  때때로 변경된 内存 내의 데이터페이지를 Disk 의 Datafile 에 반영 在特定时间(检查点)将发生改变的数据页写入磁盘数据文件
  • 8. ALTIBASE 结构 – 线程结 构  ALTIBASE 4 Server Thread Structure ...... ......
  • 9. ALTIBASE 结构 – 逻辑结 构  ALTIBASE 4 逻辑结构 G ra p h Ma na ger P redica te Query Processor P l anTree Ma na ger Ma na ger Query Optimizer P l anN od e Query Executor Ma th. Record & Ma na ger Hybrid MM DBMS ALTIBASE 4 T em pTa bl e buffer 버퍼 Query Processor 内存 메모리 磁盘 디스크 Interface La yer 数据 데이터 Storage Manager 数据 데이터 App l icatio n La yer Storage Manager Tra nsa ctio n Lay er Index La yer Concurrency Control R eco rd La yer Recovery Manager P a ge La yer Recovery Lay er R esource La yer
  • 10. ALTIBASE 结构 – 物理结 构  ALTIBASE 4 物理结构 Physical Memory Memory Tables Space Buffer Memory Data Disk Tables Space Backup File (data, temp, undo) Log Anchor LogFiles
  • 11. ALTIBASE 结构 – 数据文件结 构  ALTIBASE 4 数据文件 Structure DATABASE File System TABLESPACE A TABLESPACE B TABLESPACE C DATAFILE 1 DATAFILE 4 DATAFILE 7 1 4 7 DATAFILE 2 DATAFILE 5 DATAFILE 8 2 5 8 DATAFILE 3 DATAFILE 6 DATAFILE 9
  • 12. 表空间  表空间结构 Tablespace Free Page Used Page Extent Table Index Segment
  • 13. 表空间  表空间分类  内存表空间 (SYS_TBS_MEMORY) - 数据字典 , 内存表  数据表空间 - 系统表空间 (SYS_TBS_DATA) - 用户表空间  Undo 表空间 (SYS_TBS_UNDO) - 为了多版本并发控制,存储变更前的映像  临时表空间 - 系统临时表空间 (SYS_TBS_TEMP) - 用户临时表空间  扩展名 .dbf
  • 14. 表空间 段 (Segment) 分配表或索引的单位 逻辑上,一个表或索引是一个段 段的种类 Table Segment 一个表的所有数据属于一个 table segment Index Segment 一个索引的所有数据属于一个 index segment Undo Segment 属于一个 undo tablespace TSS Segment 用于内部 TSS(Transction Status Slot) 管理, 属于 undo tablespace
  • 15. 表空间  Extent  存储数据对象所需的资源,分配页的单位  1 个 extent 由 8 个 page 组成( 256KB )  Page  存储表和索引的最小单位( 32KB )  I/O 的最小单位 Physical header (type, extent RID, page ID, free size, free offset) Logical header(free slot list) record record
  • 16. 表空间  保证数据库的连续性  日志文件 (logfile)  为了处理事务异常,记录 system recovery 用 log record  文件名 : logfile** (** 为 logfile 的序列号 )  日志控制文件 (loganchor)  存储服务器运营所需的数据 表空间信息 , 文件位置 , Checkpoint 关联信息  为了正常启库,文件内容必须有效  loganchor 文件共有 3 个
  • 17. 目录结构  ALTIBASE 4 Directory Structure $ALTIBASE_HOME admin 促出监控存储过程文件 arch_logs 存储归档日志文件 audit 存储核对数据库不一致信息的工具和相关例子 bin 存储 ALTIBASE 执行文件 conf 存储 ALTIBASE 参数以及 license dbs 存储 ALTIBASE 数据文件 ( 默认值 ) include 存储应用程序所需的头文件 install 存储 makefile 所需的 macro 参数文件 lib 存储应用程序所需的库文件 logs 存储 logfile 和 loganchor msg 存储包括报错文件等信息 sample 存储应用程序 sample trc 存储 ALTIBASE 运行状态日志
  • 18. 事务管理 1. 事务的概念 2. 事务持久性 3. 事务持久性的管理政策 4. 锁管理 5. 多版本并发控制
  • 19. 事务的概念  事务的定义  事务 (Transaction) 是作为单个逻辑工作单元执行的一系列 SQL 操作  事务的特点  原子性 (Atomicity)  一致性 (Consistency)  隔离性 (Isolation)  持久性 (Durability)  命令语 (Statement)  事务中执行的各个 SQL 语句
  • 20. 事务的概念  提交  事务的提交 (Commit) 为把事务内执行的所有 SQL 的结果永久 反映到数据库中并结束事务的演算  回滚  事务执行过程中发生异常无法往下进行时回滚目前为止执行的所有 SQL ,即回到事务执行前的数据库状态  保存点  一个长时间事务分几段管理时,可以在开始部分明示保存点 (Savepoint).
  • 21. 事务的持久性  事务的持续性  数据库中一旦提交 (commit) 成功,不管数据库的变更内容是否已 经完全反映 (flush) 到磁盘上相应的数据文件,系统故障后都能保 证已经提交的内容。  数据库管理系统通过日志 (log) 管理事务的持久性。  日志的记录发生磁盘 I/O ,并其磁盘 I/O 瓶颈影响事务的处理 性能。  事务的持久性和事务的处理性能之间是安全性和性能互相冲突的关 系。
  • 22. 事务的持久性管理政策  Durability Level  Altibase 事务的 durability level 分为 0~5 , Altibase 版 本 4 支持 2-5 level 。  Durability Level 设置  altibase.properties 文件中的 [TRANSACTION_DURABILITY_ LEVEL] 参数设置 durability level 。  数据库启动时通过此参数设定的值来设置持久性,而且数据库运 行中不能改变。
  • 23. 多版本控制 (MVCC)  MVCC  ALTIBASE 使用多版本并发控制方法 (MVCC, Multi-Version Concurrency Control)  MVCC 意味着当一条 DML 对一条记录执行操作的时候,在保留原 来记录的同时,要提供另一个副本用于执行 DML 操作。这项技术 保证了在有一个事务不会因为另一个更新事务的操作而访问到不一 致的资料,提供了对于数据库的事务隔离性的保障。
  • 24. 多版本控制 (MVCC)  SVCC(Single Version Concurrency Control) 变更操作时,需获得行级锁,所以读 / 写操作之间发生冲突,导致复杂事务环境下的性能下降。 Exclusive Mode GAMESTAR 34 TX1 Read Modify Transaction X TX2 TX3 TX4 TX TX5 6  MVCC(Multi Version Concurrency Control) 变更操作时,生成新版本记录再获得所,所以读 / 写操作之间不发生冲突,并保证复杂事务环境下的高性能。 Exclusive Mode GAMESTAR 34 FOREVER 34 Read Modify Transaction Transaction 1 2
  • 25. 多版本控制 (MVCC)  内存表 : Out-place , 磁盘表 : In-place - 内存表:新的记录 (version) 以新的 RID 存储的 Out-place 结构 保证高性能,但数据页的实际利用率可能下降,而且特定记录的 versioning 大于设定的参数值, 就会自动转换为 In-place Update - 磁盘表:变更的字段在 Undo 表空间中以 Undo log 记录,并且新的记录直接覆盖原记录的 In-place 结构  Garbage Collection 对于同一个记录产生的多个版本,事务一旦被提交,则只留下最新的有效版本,其他的版本被垃圾回收线程 删除,并这些无效版本所占的内存空间被释放而且可再利用。 Old GAMESTAR New FOREVER GAMESTAR New FOREVER Old Data Page Data Page Undo Area Out-place (RID 变化 ) In-Place(RID 不变 )
  • 26. ALTIBASE Utilities 1. ISQL 2. ILOADER 3. AEXPORT 4. SHMUTIL
  • 27. ISQL  通过 iSQL 工具连接 ALTIBASE 数据库并执行 SQL 和 其他命令语获取或修改数据库相关信息。  开始 / 结束数据库  连接 / 断开数据库  查询数据库对象信息  使用 SQL 管理数据库  为用户提供便利
  • 28. ISQL  iSQL 环境变量  ISQL_CONNECTION TCP/IP UNIX DOMAIN IPC  ISQL_BUFFER_SIZE 建议与 CM_BUF_SIZE 一样  ALTIBASE_DATE_FORMAT  ISQL_EDIT  iSQL 的构成  glogin.sql  是一个全局脚本,影响 iSQL 连接属性。  生成于 $ALTIBASE_HOME/conf
  • 29. ISQL  使用方法  isql [-S server_name] [-U user_id] [-P password] [-PORT port_no] [-NLS nls_use] [-F infile_name] [-O outfile_name] [-H] [-V] [-SILENT][-SYSDBA]  命令选项中缺省 -S, -U, -P ,则打印相关提示信息。 .  使用 sysdba 选项连接数据库时,根据数据库的 property 设置的 port 连接,所以 – sysdba 和– s, -port 不能同时使用。
  • 30. ISQL – 命令语 分 类 种 类 命 令 语 开始 $ isql [option] iSQL 开始 / 结束 prompt iSQL> EXIT; 结束 QUIT; STARTUP ALTIBASE 开始 ALTIBASE 开始 / 结束 (pre-process, process, control, meta, service) ALTIBASE 结束 SHUTDOWN(normal, immedate, abort) 连接其他用户 CONNECT user1/pass1 [AS sysdba]; 数据库连接 / 断开 断开连接 DISCONNECT; 查看性能试图 SELECT * FROM V$TAB; 查看表目录 SELECT * FROM TAB; 查询数据库对象信息 查看表结构 DESC samp; 查看 sequence SELECT * FROM V$SEQ;
  • 31. ISQL – 命令语 分 类 种 类 命 令 语 SPOOL filename; 形成文件 SPOOL OFF; START file_name; sql script 的执行 @ file_name; @@ file_name;( 脚本中) 文件管理 把 iSQL buffer 中的 SAVE abc.sql; SQL 以文件存储 SQL 的 load LOAD abc.sql; ED 编辑 SQL ED filename[.sql] 2ED /2 ED
  • 32. ISQL – 命令语 分 类 种 类 命 令 语 显示 select 结果的 SET LINESIZE 100; 行大小 select 结果的 SET PAGESIZE 10; Row 模式 是否有 select SET HEADING ON; 结果 header SET HEADING OFF; 结果显示 select 结果的字段大小 SET COLSIZE N;; SET TIMING ON; SQL 执行时间 SET TIMING OFF; SET FOREIGNKEYS ON; foreign key 信息 SET FOREIGNKEYS OFF; SET TERM ON; 脚本文件执行结果与否 SET TERM OFF;
  • 33. ISQL – 命令语 分 类 种 类 命 令 语 HISTORY; history H; / 反复执行 2/ 方便性 Shell  命令执行 ! /* comment */ 注释 -- comment HELP; 帮助 HELP INDEX; HELP EXIT;
  • 34. ILOADER – 介绍  iLoader 是一个用于数据的上传和下载的 Altibase 辅 助软件。  数据以表为单位下载到文件,每个表需要相应的表格格式 文件 (FORM FILE) 。  iLoader 主要用于数据库的迁移以及以表为单位的备份, 不存储数据库的对象信息,所以备份时注意这点。  iLoader 包含于产品包,其执行文件在 $ALTIBASE_HOME/bin 下。
  • 35. ILOADER – 功能  表格格式文件 表格格式文件是一种规定怎样上传 / 下载表和列的说明书, 不包括表的约束条件。可以加 where 条件指定上传部分 行和列。  数据导出 数据由表导出到文件  数据导入 数据从文件传送入表
  • 36. ILOADER – 使用方法  iloader { in | out | formout | structout | help } [-T table_name] [-d datafile] [-f formatfile] [-F firstrow] [-L lastrow] [-t field_term] [-r row_term] [-U|-u login_id] [-P|-p password] [-S|-s servername] [-mode mode_type] [-commit commit_unit] [-bad badfile] [-log logfile] [-e enclosing] [-array count] [-replication true/false] [-noexp]
  • 37. ILOADER – 执行例子  表格格式文件的生成 iLoader> formout -T employee -f employee.fmt iLoader> exit shell> ls employee.fmt  数据下载 iLoader> out -f employee.fmt -d employee.dat DATE FORMAT : YYYY/MM/DD HH:MI:SS .. Total 20 record download DOWNLOAD: 56936 iLoader> exit shell> ls employee.dat employee.fmt  数据上传 iLoader> in -f employee.fmt -d employee.dat -mode replace DATE FORMAT : YYYY/MM/DD HH:MI:SS UPLOAD: 13880 Load Count : 20
  • 38. ILOADER – 连接远程数据库  iloader [-H] [-S server_name] [-U user_id] [-P password][-PORT port_no] [-SILENT] [-NST] -H 帮助 . -S server_name server_name 或 IP 地址 -U user_id 数据库用户名 -P password 密码 -PORT port_no 远程数据库端口号 -SILENT silent 模式,是否显示 Copyright 等信息 -NST nst 模式,是否现实 elapsed time 等
  • 39. ILOADER – 应用  SEQUENCE  用户可通过修改表格格式文件来将序列应用在表 / 列上,从而保障序列号的唯一性。  为了修改表格格式文件,需将下列语句加在表格文件头 。  SEQUENCE sequence_name column_name [ NEXTVAL | CURRVAL ]  Nextval 是虚列的缺省值,纵列数最大为 8 。  例子  - 创建表和序列 iSQL> CREATE TABLE seqTable( num INTEGER, name VARCHAR(30)); iSQL> CREATE SEQUENCE seq1 START WITH 30 INCREMENT BY 2 MINVALUE 0 NOMAXVALUE;  表格格式文件生成以及追加序列 iLoader> formout -T seqTable –f seqTable.fmt shell> vi seqTable.fmt SEQUENCE seq1 NUM <- 修改部分 table seqTable{ NUM integer; NAME varchar (30);}  数据上传 iLoader> in -f seqTable.fmt -d seqTable.dat -mode replace
  • 40. ILOADER – 应用  DATE FORMAT  数据类型为日期类型时,用户可将 DATEFORM 语句加在 FORM 文件结 尾, 以特定格式上传或下载。  默认值为 DATEFORM YYYY/MM/DD HH:MI:SS  用户可以采用引号(‘和’)来自定义新的日期格式, 不分大小写 。  可以通过设定参数 ILO_DATEFORM 来设定 DATEFORM , 如 Born, Korn, 或 Bash Shell 的情况 export ILO_DATEFORM='YYYY-MM-DD‘  可以指定每个字段的日期类型,如: table t1 { I1 integer; I2 date “YYYY-MM-DD”; <- 修改部分 I3 date; I4 date “YYYY/MM/DD HH:MI:SS SSSSSS”; <- 修改部分 } DATEFORM YYYY/MM/DD HH:MI:SS
  • 41. ILOADER – 应用  条件  在表格格式文件最后加上 where 条件,指定上传部分数据。  为了高性能,可加上 HINT 。  DOWNLOAD CONDITION 之后,“ ”里添加条件。 DOWNLOAD CONDITION " ……… “  为了确认是否正常运行,执行时可加上 ‘ -displayquery’  语句  DOWNLOAD CONDITION "Where_conditions_clause "  [HINT "hint_string"]  Where_conditions_clause : SELECT 的 WHERE 条件语法相同。  hint_string : SELECT 的 HINT 语法相同。  例子 shell> vi table1.fmt table table1{ T1 integer; T2 date;} DATEFORMYYYY/MM/DD HH:MI:SS DOWNLOAD CONDITION “where t1 > 2” <- 修改部分
  • 42. AEXPORT  ALTIBASE 数据库之间同步 (migration) 的工具。  把数据库的逻辑结构以 SQL 脚本存储,并把所有的数据以文件形式 下载到磁盘,用于 ALTIBASE 之间的数据同步,也用于离线备份。  从数据库取出数据库用户,用户权限,表空间,表,约束条件,索引, 视图,存储过程,复制对象。  不同 ALTIBASE 版本,不同操作系统之间同步数据时,可有效使用 。
  • 43. AEXPORT – 功能  AEXPORT 执行后,自动生成以下脚本。  SQL 脚本文件:  SYS_CRT_USER.sql : 生成用户  SYS_PRIV_USER.sql : 用户权限  SYS_CRT_TBS.sql : 生成表空间  SYS_CRT_REP.sql : 复制对象  ALL_CRT_VIEW.sql : 生成视图  ALL_CRT_PROC.sql : 生成存储过程  { 用户名 }_CRT_TBL.sql : 生成表  { 用户名 }_CRT_INDEX.sql : 生成索引,包括主键  { 用户名 }_CRT_FK.sql : 生成外键 (Foreign Key)  执行脚本文件:  run_il_in.sh : 数据上传脚本  run_il_out.sh : 数据下载脚本  run_is.sh : 数据库对象生成执行脚本  run_is_fk.sh : 生成外键执行脚本  run_is_index.sh : 生成索引执行脚本  AEXPORT 生成的文件都是文本文件,用户可根据需要修改,提供方便性。
  • 44. AEXPORT – 使用方法  语句 aexport { -h | [ -S | -U | -P | -port ] }  参数 -h : 帮助 -S : server_name 或 IP 地址 -U : 数据库用户名 -P : 密码 -port : 数据库端口号
  • 45. AEXPORT – 执行步骤  数据同步步骤  从源数据库取出数据库逻辑结构 # aexport –s 127.0.0.1 –u sys –p manager  从源数据库取出数据 # sh run_il_out.sh  目标数据库上创建数据逻辑结构 # sh run_is.sh  数据导入到目标数据库 # sh run_il_in.sh  目标数据库上生成索引和外键 # sh run_is_index.sh # sh run_is_fk.sh
  • 46. AEXPORT – 参数  AEXPORT 根据以下文件设定执行参数  $ALTIBASE_HOME/conf/aexport.properties  参数  OPERATION = OUT  EXECUTE = OFF  INDEX = ON  USER_PASSWORD = altibase  DROP = ON  ILOADER_OUT = run_il_out.sh  ILOADER_IN = run_il_in.sh  ISQL = run_is.sh  ISQL_INDEX = run_is_index.sh  ILOADER_FIELD_TERM = ^  ILOADER_ROW_TERM = %n
  • 47. AEXPORT – 注意事项  不是 SYS 用户,而是以一般用户 AEXPORT 时, 只生成此用户的数据库结构 。  不是 SYS 用户,而是以一般用户 AEXPORT 时,不生成 Replication 对象。  执行 ‘ run_is.sh’ 时,删除所有用户以及对象,所以谨慎使用  生成存储过程时,如果没有提前生成需要参照的存储过程则会失败。 AEXPORT 无法访问存储过程之间的逻辑关系,所以无法保证存储过程生成顺序。所以需要手 动生成失败的存储过程  AEXPORT 只能限制性地访问 sequence 的 meta 信息,  所以当在一般用户下创建 sequence 的时候,只能创建‘ increment by’ 定 义的属性,其他属性就是默认值。
  • 48. SHMUTIL  查询,备份,删除 ALTIBASE 使用的共享内存的工具。  ALTIBASE 在内存中分配数据领域时,使用 Process Heap 领域或共享内 存领域。使用共享内存领域时, 即使关闭数据库数据依然存在于共享内存领 域。  所以为了查询和管理此领域提供 SHMUTIL 工具。  SHMUTIL 功能如下:  查询共享内存信息  存储共享内存  删除共享内存
  • 49. SHMUTIL  shmutil [OPTIONS -pwe] [-d HOME_DIR] [-f PROPERTY_FILE]  -p : 打印共享内存 DB 信息  -w: 共享内存 DB 写入硬盘  -e : 删除共享内存 DB  -d : 指定 ALTIBASE 目录  -f : 指定参数文件
  • 51. 系统表  系统表  系统表是记录所有数据库对象的相关信息的系统定义表。  目录输出语句 iSQL> select * from tab;  基本系统表 表名 说明 SYS_COLUMNS_ 表的列信息 SYS_CONSTRAINTS_ 表的约束条件信息 SYS_CONSTRAINT_COLUMNS_ 作为约束条件的列信息 SYS_DATABASE_ 数据库信息 SYS_GRANT_OBJECT_ 对象权限信息 SYS_GRANT_SYSTEM_ 系统权限信息 SYS_INDEX_COLUMNS_ 索引信息
  • 52. 系统表  基本系统表 表名 说明 SYS_DIRECTORIES_ 存储过程中控制文件的目录信息 SYS_INDEX_COLUMNS_ 索引的所有字段信息 SYS_INDICES_ 表的索引信息 SYS_PRIVILEGES_ 数据库权限信息 SYS_TABLES_ 表信息 SYS_TBS_USERS_ 表空间用户信息 SYS_USERS_ 用户信息 复制相关系统表 表名 说明 SYS_REPLICATIONS_ 复制信息 SYS_REPL_HOSTS_ 远程服务器信息 SYS_REPL_ITEMS_ 复制表的信息
  • 53. 系统表  存储过程相关系统表 表名 说明 SYS_PROCEDURES_ 存储过程和存储函数信息 SYS_PROC_PARAS_ 存储过程和存储函数的变量信息 SYS_PROC_PARSE_ 存储过程和存储函数的分析信息 SYS_PROC_RELATED_ 存储过程和存储函数访问的表信息  视图相关系统表 表名 说明 SYS_VIEWS_ 视图对象信息 SYS_VIEW_PARSE_ 视图对象分析信息 SYS_VIEW_RELATED_ 视图访问的对象信息
  • 54. 系统表  触发器相关系统表 表名 说明 SYS_TRIGGERS_ 触发器系统信息 SYS_TRIGGER_DML_TABLES_ 触发器访问的表信息 SYS_TRIGGER_STRINGS_ 触发器语句信息 SYS_TRIGGER_UPDATE_COLUMNS_ 触发器更新的字段信息  别名相关系统表 表名 说明 SYS_SYNONYMS_ 对象别名信息
  • 55. 系统视图  动态性能视图  记录当前系统的信息,包括内存使用信息,进程、会话、缓冲信息等,用 于监控数据库状态。  用户可以通过 SQL 查询动态系统试图,取得数据库运行时的状态信息 (如会话信息、日志信息),使得数据库维护更方便。  以视图的方式提供 ALTIBASE 数据库内部的内存结构,可实时获得数据 库运行时的状态信息。  列出所有可用的动态性能视图 iSQL> select * from v$tab;
  • 56. 系统视图 动态性能视图 表名 说明 V$ALLCOLUMN 动态系统试图的字段信息 V$ARCHIVE 归档相关信息和备份信息 V$BUFFPAGEINFO 数据库缓冲的页信息 V$BUFFPOOL_STAT 数据库缓冲 hit ratio 以及相关统计信息 V$DATABASE 内存数据库空间的内部信息 V$DATAFILES 表空间使用的数据文件信息 V$DB_FREEPAGELISTS 数据库可使用的页信息 V$DISKGC 磁盘空间回收 (disk garbage collection) 信息 V$DISKTBL_INFO 磁盘表信息 V$FLUSHINFO 刷新缓冲信息 V$INDEX 数据库索引信息 V$INSTANCE ALTIBASE 多阶段启动信息
  • 57. 系统视图 动态性能视图 表名 说明 V$LATCH 缓冲池的缓冲控制块 (BCB) latch 统计信息 V$LFG 日志集合有关统计信息 V$LOCK 数据库所有表的锁信息 V$LOCK_WAIT 事务之间等待的信息 V$LOG 日志控制信息 V$LOCK_STATEMENT Lock 和 statement 信息 V$MEMGC 内存垃圾回收 (memory garbage collect) 信息 V$MEMTBL_INFO 内存表状态信息 V$MEMSTAT ALTIBASE 进程使用的内存统计信息 V$MUTEX 并发控制有关的 mutex 统计信息
  • 58. 系统视图 动态性能视图 表名 说明 V$PLANTEXT SQL 执行计划内容信息 V$PROCTEXT 存储过程内容信息 V$PROPERTY ALTIBASE 内部参数信息 V$REPEXEC 复制管理信息 事务当前日志文件和传送到复制目标数据库的日志文 V$REPGAP 件的差距信息 V$REPSYNC SYNC 中的表信息 V$REPRECEIVER 复制的接收数据库信息 V$REPRECEIVER_TRANSTBL 复制的接收数据库的事务表信息 V$REPSENDER 复制的传送数据库信息 V$REPSENDER_TRANSTBL 复制的传送数据库的事务表信息 V$SEGMENT 断状态、类型、分配的范围个数 V$SEQ 序列相关信息
  • 59. 系统视图 动态性能视图 表名 说明 V$SERVICE_THREAD 服务线程信息 V$SESSION ALTIBASE 内部生成的对应客户端的会话信息 V$SESSIONMGR 会话统计信息 V$STATEMENT 会话的所有表达式信息 V$SQLTEXT 系统上执行的 SQL 内容信息 V$TABLE 所有性能视图的行和列信息 V$TABLESPACES 表空间信息 V$TRACELOG 内部模块跟踪日志信息 V$TRANSACTION 事务信息 V$TRANSACTION_MGR 事务管理信息 V$UNDO_BUFF_STAT Undo table space 的缓冲池统计信息
  • 60. 对象及权限管理 1. 数据库对象 2. 表 / 约束条件 3. 索引 / 视图 / 序列 / 别名 / 存储过程 / 函数 4. 触发器 / 用户 / 表空间 5. 权限
  • 61. 数据库对象  数据库对象  Schema object : 与数据库数据直接联系的逻辑结构  表  约束条件  索引  视图  序列  别名  过程,函数  触发器  Non-Schema object : 不属于特定 schema ,而属于整个数据库  目录  复制  表空间  用户
  • 62. 表  存储空间的不同  内存表  磁盘表  管理主体的不同  系统表 (meta table , process table)  一般用户表  使用大容量内存表时的注意事项  执行 DDL 时,建议使用 iLoader 导出并再导入  对于大表进行 DML 操作时  因为表锁,可能不能访问该表  Altibase 内存使用量积蓄增加  存储 Logfile 的目录空间不够  对于复制的表不能进行 DDL
  • 63. 约束条件  约束条件  系统用一定的机制来检查数据库中的数据是否满足规定的条件,这 种条件称为约束条件。  种类  NOT NULL / NULL  唯一标识 (unique key)  主键 (primary key)  外键 (foreign key)  TIMESTAMP  字段约束条件和表约束条件  NULL/NOT NULL 和 TIMESTAMP 只能作为字段约束条件
  • 64. 索引  索引  为了加快访问记录的速度而设置的。  类型  B-tree 索引  R-tree 索引  索引的特点  唯一索引 : unique, non-unique, primary key  复合索引 : Non-composite Index, Composite Index  索引的存储 : 永久存储索引 (Persistent Index), 非永久索引 (Non-persistent Index)
  • 65. 视图  视图 (View)  不保存实际的数据,保存的是实在表经查询后的结果,是逻辑表 (logical table) 。  基本表  是数据库中实在的表,是视图的来源和基础,一个视图可以包含一 个或多个基本表。  ALTIBASE 的视图  ALTIBASE  支持只读试图,不支持可更新的视图 (updatable view) 和实物化视图 (materialized view) 。
  • 66. 序列  序列  是一个等差数列,任何时候数据库系统都可以根据当前记录数大小加上 步长来获取到下一条记录,因为缓冲使用,保持一定的性能。  序列的用途  序列自动生成唯一值,可赋值给 DML 语句的任何字段  使用方法  sequence name.nextval  sequence name.currval  序列生成以后不能直接使用 sequence_name.currval ,而是首先使 用 sequence_name.currval ,再使用 sequence_name.nextval 才能获得序列号。
  • 67. 别名  别名  Altibase 提供对于表、序列、视图、存储过程、存储函数的  别名 (alias) 。  优点  可隐藏生成特定对象的用户和特定对象  SQL 语句简单化  最小化用户名变更引起的代码变更
  • 68. 存储过程和存储函数  存储过程  是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。 用户通过指定存储过程的名字并给出参数来执行它。  区别  存储过程与存储函数区别在于是否有返回值  类型  存储过程  存储函数  Type set
  • 69. 触发器  触发器  一种特殊类型的存储过程,它在插入,删除或修改特定表中的数据 时触发执行。  组成要素  Trigger event : 触发事件的 SQL 语句  Trigger condition : 触发事件并执行触发器的条件  Trigger action : 触发条件为真时,执行的存储过程内容 (body)
  • 70. 用户  数据库用户  SYSTEM_ 和 SYS 用户  创建数据库时默认生成的用户  SYSTEM_ : 系统表的所有者  SYS : DBA, 拥有数据库的所有权限  不能随意变更或删除
  • 71. 表空间  表空间  表空间作为数据库逻辑结构的最大单位,数据库由多个表空间组成  一个表空间由多个数据文件组成  一个数据文件只属于一个表空间  类型  存储空间的不同  内存表空间 (SYS_TBS_MEMORY)  磁盘表空间  生成阶段的不同  SYSTM 表空间  USER 表空间
  • 72. 权限  权限管理  系统权限 (System Privilege)  DBA 管理系统权限,对数据库进行特定操作并管理所有对象  系统权限类型  DATABASE  INDEXES  PROCEDURES  SEQUENCES  SESSIONS  TABLES  TABLESPACES  USERS  VIEWS  MISCELLANEOUS  TRIGGER
  • 73. 权限 用户对象权限 (Object Privilege)  由对象的创建用户管理,并赋予和回收其他用户对该对象的权限 用户对象权限类型  ALTER  DELETE  EXECUTE  INDEX  INSERT  REFERENCES  SELECT  UPDATE 赋予权限 : GRANT 回收权限 : REVOKE
  • 75. altiProfile  altiProfile 概念  可以实时获得数据库的信息  记录所有 DML 的 Query 信息  altiProfile 设定  iSQL 上设定 altiProfile 执行属性  ALTER SYSTEM SET QUERY_PROF_FLAG = [0~1023]  设定属性时,生成以下文件  $ALTIBASE_HOME/TRC/alti-TIMEMICROSEC.prof.  分析  altiProfile [ profile_name ]
  • 76. Admin Center  Admin Center  Altibase GUI 监控工具  安装方法  首先下栽 Admin Center package  拷贝 JDBC Driver  把 $ALTIBASE_HOME/lib/Altibase.jar 拷贝到 Admin Center 安装的目录  http://java.com/ 上下载 JRE 1.4.x 并安装
  • 77. Admin Center  初始画面  左边窗口罗列登记的数据库名称,详细信息在右边窗口显示 Object Tree 罗 列各 Object 的 详细 信 息 执 行 结 果窗口
  • 78. Admin Center  连接 / 变更 / 结束  左边的 Object tree 上显示登记的服务器名, 点击右件选择连 / 变 更 / 结束或点击相关按钮。  连接后就能看到数据库上的所有的对象。
  • 79. Admin Center  数据库管理  CheckPoint, Online Backup, Trc-Log Level 变更 , 数据库对象相 关脚本生成目录
  • 80. Admin Center  表空间管理  Object tree 窗口上点击 Tablespaces ,就显示所有的表空间。  点击每个 Tablespaces ,就显示其 FileName, Size 信息。
  • 81. Admin Center  用户管理  Object tree 窗口上点击 Users ,就显示数据库的所有用户  可以生成 / 变更 / 删除用户,并赋予权限。
  • 82. Admin Center  监控  Server Monitor & Admin 栏上点击 Performance View 。
  • 83. Admin Center  数据库结束通知  通知数据库结束 ( 包括非正常结束 ) 的功能,以 10 秒为单位检查数 据库的状态。
  • 84. 谢谢 Contact Point 天津南大通用数据技术有限公司 天津总部 :天津华苑产业园区海泰发展六道 6 号 邮 编: 300384 电 话: 022-58815881 传   真: 022-58815882 北京业务中心:北京海淀区金源时代商务中心 2 号楼 A 座 17D 邮 编: 100089 电 话: 010-88866866 传   真: 010-88864556 Web : http://www.generaldata.com.cn

Notes de l'éditeur

  1. 关系型数据模型 Altibase 数据模型为关系型数据模型 (Relation model) 。 多线程结构 Altibase 是单进程多线程结构的数据库。在客户端 / 服务器架构, 1 个客户端与 1 个服务器线程构成 session 。在嵌入式架构,应用程序生成的线程就是一个 session ,并一个 session 可以生成多个事务。 Altibase 支持客户端 / 服务器架构和嵌入式架构。客户端 / 服务器架构为数据库普遍提供的模式,应用易开发并数据库维护方便,但因为客户端和服务器端的通信费用性能稍微下降。嵌入式架构适合高性能的小型系统,即特定系统。 多版本并发控制 (MVCC: Multi-Version Concurrency Control) 每一次写数据均产生一个新的版本,使得消除读操作和写操作的冲突,最大化性能。特别是弥补了 row locking 方式的缺点,读写操作互不阻塞,而且回收无意义的数据,防止内存的不必要消耗。多版本并发控制技术保证了多用户并发操作情况下数据库的一致性,并提高了性能, Altibase 的内存表和磁盘表在外观上表现出同样的功能但内部实现不同的 MVCC 方式。对于内存表采用 out-place MVCC ,每当 row 发生变更时会有新的版本生成,而对于磁盘表采用 in-place MVCC 方式,将变更的数据改写到原有的 row 上,并将变更以前的信息存放到 undo table space 空间以参照。
  2. 接口 Altibase 不同于一般的实时数据库,追求通用性,支持工业规范标准。支持完整的 SQL92 国际标准,同时支持 SQL92 标准以外的多种有用的功能。程序接口为 ODBC, JDBC, C/C++ Precompiler, LDAP 等,所以容易转换原有的应用程序并使用 Altibase 。 事务管理 Altibase 作为 Hybrid MMDBMS ,提供最优的事务管理以及相应的功能。首先,可以通过 Property 设置数据库中可同时执行的事务个数,并且提供 autocommit mode 提高数据库的效率。其次 Altibase 提供多种隔离级别 (isolation level) ,如 read committed(=0), repeatable read(=1), no phantom read(=2) 等。 Logging 为了保证数据的安全性和连续性, Altibase 对变更的数据写日志 (logging) 。而且为了数据库之间复制 (replication) 的性能最大化,生成最优的日志。 Buffer Pool 为了能够加快磁盘表数据处理的速度,必须最小化磁盘 I/O 。 Buffer pool 是从磁盘把一部分数据缓冲到内存里,减少访问磁盘的次数,并以 LRU(Least Recently Used)  算法管理。
  3. 双写缓冲 (Double Write Buffer) Altibase 数据库的页大小和文件系统的物理页大小不一样时, 如果在页面写入期间操作系统崩溃了,则有可能数据不完整。 为了防止这种现象, Altibase 在将页面写入一个数据文件前先将他们写入到一个双写缓冲 等特定磁盘领域中,并 写入与转储清除 (flush) 双写缓冲结束后,才将页面写入到数据文件的适当的位置。还有, Altibase 重起时, 将在双写缓冲中找出一个完好的副本 (copy) 来恢复。 模糊乒乓检查点 (Fuzzy &amp; ping-pong checkpoint) Altibase 为了把最新的数据库状态反映到备份数据库中,执行模糊乒乓检查点。为了发生 checkpoint 时,不影响事务处理的性能执行模糊检查点 (fuzzy checkpoint) 和乒乓检查点 (ping pong checkpoint) 。就是管理两份 backup database ,解决一份内存脏页要往磁盘上写两次的问题,减少了 Disk I/O 并减少了事务日志持久化的开销,提高事务的性能。 存储过程 (Stored Procedure) 存储过程是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。根据返回参数分为存储过程和存储函数 死锁检测 (Deadlock Detection) 死锁是事务之间无法自由释放占有资源而发生的现象。一般是通过特定的进程或线程监测死锁,但这种方法会导致事务处理的停滞。 Altibase 没有特殊的死锁检测线程,而是发生死锁瞬间获得死锁信息,并迅速采取措施,使得防止服务中断的情况,提供稳定而持久的运营。
  4. 为了启动 Altibase ,系统需要足够的内存空间存储数据。 启动时 把 Backup DB 加载到内存。 数据库非正常结束并重起时,根据 Log 文件恢复到非正常结束之前的状态。 运行时 访问内存上的数据库 (Primary DB) 处理事务。 当执行变更操作时 (Insert, Update, Delete) ,把日志写到磁盘。 周期 (property 条件 ) 性发生 Checkpoint 。 结束时 数据库正常结束时,把内存上的 Primary DB 反映到磁盘的 Backup DB 。 (checkpoint) 数据库非正常结束时,无法把内存上的 Primary DB 反映到磁盘的 Backup DB 。因此 Altibase 数据库重起时根据日志文件恢复到非正常结束之前的状态。 CheckPoint - 执行 CheckPoint 的理由 随着时间的推移,日志累积越来越多,随之浪费不必要的磁盘空间。而且数据库非正常结束并重起时,恢复的时间较长。 - 执行 CheckPoint 的周期 时间,日志的个数,命令语执行,数据库正常结束
  5. 主线程 (Main Thread) 创建 / 退出所有线程,并管理它创建的线程。 . 服务守护线程 (Service Demon Thread) 当客户端要求连接时,该线程连接客户端与服务线程池中的一个等待状态的服务线程。 服务线程池 (Service Thread Pool) 数据库启动时,根据서 configuration 信息生成服务线程,服务线程是处理语句的线程。 检查点线程 (CheckPoint Thread) 为了减少恢复操作中的工作量,该线程周期性地或不定时地将当前数据映射到磁盘数据文件。 对话管理线程 (Session Mgr. Thread) 检查客户端 / 服务器之间的通信对话状态。 垃圾回收线程 (Garbage Collection Thread) 在 MVCC (多版本并发控制)中,可能对记录产生不必要的数据。该线程重新规划和优化这些数据占据的内存空间,从而最大提高系统效率。
  6. 日志控制文件 (loganchor file) 记录日志文件和数据备份文件之间的关系信息,即记录数据备份文件和日志文件的重要时间戳。此文件与数据备份文件一样,是重要的备份对象。 日志文件 (logfile) 日志文件保证事务的原子性和持久性。原子性为当事务回滚 (rollback) 时,可以回到之前状态的特性;持久性为事务正常结束 (commit) 时,无论什么样的数据库故障都能保证原来内容的特性。 日志文件根据具体内容分为 active logfile 和 archive logfile 。 Active logfile 为当前事务的日志, archive logfile 为某时间点 (checkpoint 等)内存上的数据回写到磁盘上相应的数据文件时,那个时间点之前的所有日志文件。数据库运营时发生的多种更新操作都为 active 日志文件。 日志文件作为具有当前数据库状态的重要文件,如果当前日志文件被损坏,不管当前的操作,数据库都有可能被损坏。日志文件与数据文件一起被用于恢复当前数据库状态。
  7. Altibase 数据存储结构 逻辑 : 表空间 物理 : 存储到表空间对应的数据文件 表空间和数据文件的关系 表空间由一个以上的数据文件组成 但,一个数据文件只属于一个表空间 数据库、表空间、数据文件的区别 Altibase 数据库由一个以上的逻辑表空间组成,表空间的数据存储在物理数据文件里 Altibase 数据库里的各个表空间以一个以上的物理数据文件组成 数据库的所有数据存储在物理数据文件里
  8. 表空间 (tablespace) 是逻辑数据库空间的最大单位,包含以下结构。 Page ( 与操作系统管理的 page block 不一样,物理大小为 32K) 是构成表空间的最小单位也是存储记录的最小领域。 Altibase 为了有效管理这些 Page ,使用所谓范围 (Extent) 的单位,并为了存储表 / 索引等对象使用段 (Segment) 概念。 页 (page) 存储数据的最小单位。 . 范围 (Extent) Extent 由固定个数且连续的 page 组成,是逻辑存储领域。 段 (segment) Segment 是一组 extent ,这些同一个 segment 包含的 extent 都存储在同一个 tablespace 。
  9. 日志系统 Altibase 日志系统是由日志文件 (logfile) 和日志控制文件 (loganchor) 组成,提供数据库的连续性 日志控制文件 (Log Anchor) 存储表空间信息,文件位置, chekcpoint 信息等重要信息,数据库启动时必须完整无缺,不然启动失败。 最初创建数据库时,日志文件和日志控制文件生成 $ALTIBASE_HOME/logs/ 。 Altibase 保存三份日志控制文件,创建数据库时,与日志文件生成在同一个目录,但建议把三份日志控制文件分散存储到不同的文件系统,此目录信息可以在 altibase.properties 里的 LOGANCHOR_DIR 设定。
  10. Altibase 目录 安装 Altibase 将生成下列目录。 环境变量 ALTIBASE_HOME 指定 Altibase 数据库的 Home 目录。她包含子目录 bin, conf, lib, include, msg, dbs, logs, sample, install, audit, trc, admin, arch_logs 。 admin 目录 包含 sql 文件和 fixed table 关联 view 生成脚本。 arch_logs 目录 包含完成 Sync 的日志文件。此目录地址可以在 altibase.properties 设置。 audit 目录 包含一个寻找并同步本地和远程服务器上指定表的不同行的例子脚本文件。 bin 目录 包含管理工具和 Altibase 操作执行文件。目录下存在以下文件 : aexport, altibase, altidump, altierr, altimon, audit, checkipc, checklogfiles, checkServer, dumpdf, dumpla, dumplf, iloader, isql, killCheckServer, relink, server, sesc, shmutil
  11. 事务的特点: 原子性 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 一致性 事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。 隔离性 由 并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务识别数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是第二个事务修改它 之后的状态,事务不会识别中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态 相同。 持久性 事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。 Statement 类型: DCL (Data Control Language) 数据控制语言 (GRANT , REVOKE , COMMIT , ROLLBACK) 管理对数据库内对象的访问权限和授予和回收, DDL (Data Definition Language) 数据定义语言 (CREATE , ALTER , DROP , DECLARE) 用于定义、修改或者删除数据库对象 . DML (Data Manipulation Language) 数据操纵语言 (SELECT , DELETE , UPDATE , INSERT) 用于访问、建立或者操纵在数据库中已经存在数据,