zoukankan      html  css  js  c++  java
  • 【HICP Gaussdb】数据库 数据库管理(连接方式 会话模式 存储表空间)-6

    数据库连接方式:驱动连接和客户端连接
    驱动连接 : JDBC GSC ODBC 客户端连接 zsql工具

    zsql / as sysdba -q #管理员身份登陆 
    zsql omm/passwd@127.0.0.1:1611 -w 20  #普通身份登陆

    会话模式
    会话级参数

    # 设置事务提交是否等待日志写入 
    alter session set commit_wait_logging = { wait | nowait }; 等待 不等待 
    # 设置redo日志提交方式 alter session set commit_mode
    = { immediate | batch } 立即 批量
    # 设置异常会话停止 alter system
    kill session 'session_id ,session_serial '; 会话ID 会话序列号
    # 设置当前会话执行SQL是否会出发 trigger
    alter session { enable | disable } triggle
    # 开启 关闭空闲检测 alter session {enable
    | disable } interactive timeout ;
    # 设置当前会话 插入数据
    /不记录redo/undo 日志 alter session { enable | disable } nologging ;
    # 设置最大连接数 
    在 Zengine.ini 文件配置中 修改session 的值 重启数据库生效 推荐 69~8192
    查看 select name, value from dv_parameters where name = "session"
     

    存储

    数据库依照 数据模型将用户数据组织起来并存放在存储介质中 可以纵向将存储分为逻辑存储和物理存储
    物理存储置放着 控制文件 redo日志文件 数据文件 其他文件 等物理文件
    逻辑存储主要包含 数据页 数据区 数据段 表空间 等概念

    
    

    unmount --- > mount ---> normal ----> open --->restricted
    加载配置文件 加载控制文件 加载redo 数据 限制

    
    

    控制文件
    控制文件包含 表空间 数据文件 重演日志文件 元数据入口 备份信息
    数据库启动到mount模式 会加载控制文件 对数据库相关操作会写入控制文件
    控制文件为二进制文件 通过dump命令文本形式输出 可以通过DV_contral_file 查看文件大小 状态

    # 将控制文件dump 为文件 保存在trc下
    alter system dump ctrlfile 
    # 通过视图查看系统的控制文件 
    select * from dv_controls_files

    重做日志文件 redo
    WAL机制 write ahead log 在提交时不强制写 ,为了保障数据库发生故障时可以恢复 引入了redo机制
    作用: redo是WAL的基石 任何写入Page到磁盘 需要保证重做日志写到磁盘
                如果发生宕机事件,可以通过redo日志进行恢复
                HA架构下 ,主要通过redo文件进行同步

    
    

    数据库至少需要三个重做日志
    log writer 结合 checkpoint 操作 循环使用多个redo日志
    重做日志状态可以分为 in-active active current in-active 未使用- 已经使用- 正在使用 - 未使用
    log swtich redo文件写满 切换的过程

    
    

    归档日志
    归档模式下,在线日志logswtich后,会将当前日志文件的数据复制到归档日志文件中
    归档文件做主备复制 配合备份文件 在数据库损坏时 尽可能恢复到故障发生点

    数据文件
    数据文件是存储数据的物理单位 ,以文件方式持久化到存储介质上
    包括文件ID 名称 大小 类型 EXTENT大小 表空间 ID和其他属性
    UNDO表空间 单个数据文件最大上限是32G ,其他表空间最大单个数据文件上线是8T数据库最多支持1023个数据文件

    数据文件是可扩展的 扩展文件大小 扩展文件个数,可以通过创建时候自动拓展策略配置
    数据文件内部以默认的大小8K 的page 进行管理,并由表空间和负责空间的分配回收
    单个表的数据在物理上可能回跨同一个表空间的多个数据文件

    其他文件
    配置文件:用于设置数据库的运行参数 ,包括监听地址 端口号 各种buffer大小 控制文件路径等
    日志系统文件: 用于输出运行过程中各种日志信息 包括运行日志 审计日志 告警日志 等不同类型日志
    备份文件: 数据库备份之后行程的文件 用于数据库故障恢复

    逻辑存储结构
    表空间 ----> 空间区----->空间段---->空间页
    若干page组成extent    若干extent组成segment     表格表至少对应一个segment

    数据库划分多个逻辑上的存储单元 叫表空间 一个表空间包含多个数据文件
          优化数据库分配策略
          可以设置不同用户分配的空间份额
          控制部分数据库的可用性
          将数据分布到不同的表空间 不同存储介质 提高性能
          细粒度恢复

    表空间默认包含 系统表空间 用户表空间 undo表空间 临时表空间
    系统表空间:数据库创建时 自动创建 用于存放系统表和元数据 用户表创建时的结构定义 索引数据 存储过程等都在系统表空间中
    用户表空间:存放用户表数据和索引数据 默认表空间
    undo表空间:回滚事务
    临时表空间:不持久化 服务器重启后 数据会被清理 cache溢出出 会将数据dump到临时表空间

    数据页
    块设备存储d额概念对应 默认是8k 创建时可以指定8~32k

    数据区extent
    连续的page空间集合,默认表空间extent是固定的 如果不指定 是8页

    数据段segment
    以链表的形式组织和存储一组extent 根据不同用途 可分为 表段 索引段 回滚段 临时段

    表空间管理
    系统会默认创建 system temp undo user 四个表空间 用户可以根据自己需求 ,管理和自定义表空间 并且在表空间下管理自己对象
    创建删除表空间 将对象创建到表空间 维护表空间

    创建表空间

    # 创建表空间 一个extent 128个page 并指定数据文件 datafile_name 为32M 表空间满时自动扩展10M 
    create tablespcace tablespace_name extents 128 datafile 'datafile_name' 32M autoextend on next 10M ;
    # 删除表空间 如果表空间内还有用户对象会报错 
    drop tablespace tablespace_name 
    # 删除表空间 同时删除数据文件和对象 
    drop tablespace tablespace_name including contents and datafiles; 
    # 将对象创建到表空间 
    create user jessica identified by database_123 passwd expire tablespace SPC;
    # 创建对象时 指定表空间 
    create table TB(A int) tablespace SPC;

    表空间名称 tablespace_name
    表空间下的数据文件信息 datafile
    空间段 默认8个page extents
    表空间extent自动增长 extent autoallocate

    维护表空间

    # 增加数据文件 单个表最大支持1000个数据文件 
    alter tablespace spc add datafile ‘file_new’ size 32M 
    # 表空间/数据文件 重命名 
    alter tablespace spc rename to new new_name 
    # 设置自动拓展 自动管理表空间大小 
    alter tablespace spc autoextend on next 16M maxsize 1G 
    # 空间回缩 回收未使用空间 
    alter tablespace spc shrink space keep 128M 
    # 表空间离线 当表空间损坏时 可以通过离线表空间保证数据正常 
    alter tablespace spc offline datafile “file

    表空间视图

    # 查询所有表空间 
    select * from dv_tablespaces;
    # 查询表空间使用情况 
    select * from DBA_tablespaces;
    # 查询所有数据文件 
    select * from DV_DATA_FILES;
    # 查询所有逻辑对象 空间区 
    select * from DBA_segments;
    
    

    重做日志

    # 创建重做日志文件
    alter database add logfile("redolog1" size 1G) 
    # 删除redo日志 
    alter database drop logfile('redolog1')
    # 在线切换redo日志 
    alter system switch logfile ; 
    # 切换归档模式 需要在mount下执行 
    alter database archivelog
    # 查看redo 日志文件 DV_LOG_FILES
    select * from dv_log_files 
    # 查看归档文件 DV_ARCHIVELOGS 
    select * from av_archivelogs;

    数据库存储故障 :
    日志系统文件损坏 不影响数据正常运行
    单个控制文件损坏 可以通过备份和文件冗余机制恢复
    配置文件损坏或者丢失 可以通过人工干预编辑和配置一个新的配置文件
    数据文件损坏 会影响数据库正常的使用 但是可以启动到mount模式 离线此数据文件 这样不会影响其他文件使用


    
    

     

     
  • 相关阅读:
    PHP识别验证码-image-ocr
    Session的一些小疑问
    PHP-webdriver自动化测试完成登录
    大文件日志快速解析入库
    Linux权限说明
    使用python的selenium自动化登录获取cookie
    PHP编码的注释规范
    MySQL主主架构、读写分离搭建学习
    用docker尝试nginx的负载均衡
    lua require
  • 原文地址:https://www.cnblogs.com/oscarli/p/12055049.html
Copyright © 2011-2022 走看看