zoukankan      html  css  js  c++  java
  • enmo_day_02

    Secure CRT, putty, 等终端工具

    DML :u, d, i, m 增,删,改,合并

    DDL :

    DCL :

    DQL :

    数据字典 :存放在数据文件中,SYSTEM表空间里,纪录数据的变化。

    逻辑数据库结构

    表空间tablespace :每个表空间由一个或多个数据库文件组成

    段 segment:数据段,索引段,回退段,临时段

    区 extent:磁盘空间分配的最小单位,存储于段中,由连续的数据快组成。

    数据块block :数据库中最小的数据组织单位与管理单位,其大小有DB_BLOCK_SIZE参数决定,不同Oracle版本DB_BLOCK_SIZE的默认值不同

    模式对象:表,聚簇,视图,索引序列生成器,同义词,哈西,程序单元,数据库链等

    方案schema : 用户名,权限,数据结构等。

    物理数据库结构

    数据文件 :用户数据(用户表,DML语句可调整),数据字典数据

    控制文件 :DB信息,日志序列号,归档信息,RMAN备份信息, 最后一次同步的SCN信息。大小一半不变。

    eg : show parameter control

    为保护控制文件使用多路复用的方法,同时使用多个控制文件,将其分开存放在不同的磁盘上。

    日志文件 :按照时间顺序纪录数据的改变,大小不变,顺序写入,循环覆写,至少两组日志,日志成员冗余。

    参数文件 : 纪录定制的数据参数,定义数据实例的属性,

    eg : 

    show parameter spfile;

    alter system set processes=300 scope=spfile;

    口令文件 :

    归档日志文件 :重做日志历史,长期保存日志以便恢复,个数=当前日志数-1, 大小<=在线日志文件大小,命名唯一

    database buffer cache数据高速缓存区 :缓存数据文件的读取

    redo log buffer重做日志缓存区 :缓存重做日志的写入

    shared pool : library cache, data dictionary cache

    shared pool : library cache(存放执行计划), data dictionary cache

    内存分配单位 :

    SGA_TARGET :

    eg :

    show parameter sga_

    MEMORY_TARGET :

    eg :

    show parameter memory_

    程序全局区

    大池 :

    java池 :

    进程结构:用户进程,服务器进程,后台进程

    DBWn数据库写进程 (n表示多个)发生的条件:

    发生检查点checkpoint

    脏缓存达到限制

    无自由缓存

    超时发生

    表空间离线,只读

    表被删除或截断

    热备份表空间开始动作

    eg :

    commit;

    rollback;

    conn hr/hr

    create table test (id number)

    insert into test values(1);

    select * from test;

    quit(正常退出(quit),自动执行commit操作,异常退出(rollback),自动执行rollback操作)

    select * from test;(有结果)

    打开宁一个终端,连接进hr

    conn hr/hr

    select * from test;(无结果)

    insert into test values(2);

    LGWR(日志写进程)写的条件:

    commit时

    达到三分之一满

    日志的大小到1M

    每个三秒

    在DBWn进程写之前

    eg :

    note :

    脏数据(内存中和数据文件中不一样的数据,内存中数据改动了)

    空闲状态 :

    干净数据(内存中和数据中一样的数据)

    ping住(你改了,别人改不了了)

    操作系统块 :

    SYSTEM表空间是在数据库创建或安装时zidong创建的,用于存储系统的数据字典表,程序系统单元,过程函数,包和触发器等,也可用于存储用户数据表,索引对象。

    eg :

    desc dba_extends;

    select * from dba_extends where rownum<2;

    desc dba_segments;

    select  * from dab_segments where 

    create tablespace jilili datafile ‘u01/app/oracle/oradata/ENMOEDU/jilili01.dbf size 10m; :创建表空间

    create table test (id number); : 创建段(表)默认表空间

    drop table test purge;

    create table test (id number) tablespace jilili; : 创建表并制定表空间

    insert into test values (1);

    desc dba_extends;

    select * from dba_extends where segment_name=‘TEST’;

    v$instance : v$开头表示oracle自己的动态性能视图。

    select * from v$instance;

    dba_users : 所有dba_,你权限下的all_, 你自己的user_开头表示, 权限不同

    select * from dba_users;

    select tablespace_name from dba_tablespaces;

    SYSTEM, SYSAUX, UNDOTBS1, TEMP, USERS, EXAMPLE, 

    自动内存管理的配置和使用方法 :

    eg :

    show parameter  pga_agg

    show parameter size

    show parameter sga

    show parameter shared

    show parameter pool

    show parameter memory

    show parameter cache

    show parameter log_buffer

    commit为什么不会写出脏数据?

    commit只能触发LGWR的写进程,

    批量提交(按需提交) VS 频繁提交?

    Oracle提倡按需提交

    undo表空间tablespace存放数据块前镜像。

    insert

    select

    读写分开

    SCN系统改变号 : Oracle内部的时钟

    不提交会导致undo表空间过大

    系统监控进程SMON :实例恢复(),释放临时表空间temp tablespace

    进程监控进程PMON : 清楚失败进程(回滚事务,释放锁,释放其他资源,重启死掉的dispatchers, 动态注册监听器)

    note : 监听器listener使用1521端口连接用户进程和服务器进程(通过网络访问服务器)

    检查点进程CKPT(check point) : 给DBWn信号,更新数据文件头,跟新控制文件,协调DBWn和LGWR进程,查看DBWn进程写到的脏块,并记录到控制文件中(ctl)

    归档进程ARCn : 可选的后台进程

    完全检查点:把所有脏块全部写到数据文件中

    增量检查点:根据链表把新的脏快写到磁盘

    注 :链表纪录改变的块

    一致性关闭数据库:脏块已经写到磁盘(数据文件)上,

    手动执行check point : 

    非一致性关闭数据库 :脏块没有写到磁盘(数据文件)上,只有shutdown abort.

    shutdown normal : 正常关闭,关闭前退出所有会话

    shutdown immediate :立即关闭,

    shutdowntransactional :关闭前结束所有事物

    shutdown abort :断电关闭,

    eg :

    su - oracle

    sqlplus / as sysdba

    alter system checkpoint; : 刷新所有脏快(把脏块写到磁盘)

    open cursor

    语法检查

    语义检查

    将语句转为hash值 (软解析)

    解析

    执行

    获取,返回结果

    close cursor

    绑定变量 :为了让sql语句实现共享, 只能执行全表扫描(更适合OLTP,不适合OLAP)

    eg :

    select * from test where id := x;

    注:

    游标格式:

    DECLARE 游标名称 CURSOR FOR SELECT 字段1,字段2,字段3,。。。FROM 表名 WHERE …

    管理框架组建:

    C/S :客户端服务器端

    B/S : 浏览器服务器端

    OEM :oracle enterprise manager 企业管理器

    emctl start dbconsole : 启动OEM

    通过一个sql语句的执行流程体现出整个体系结构图。

    能画出体系结构图

    emca

    emca -config dbcontrol db -repos recreate

    lsnrctl start

    sqlplus / as sysdba

    先启动监听器,后启动数据库

    cd /u01/app/oracle/product/11.2.0/dbhome_1/sqlplus/admin

    ls

    vi glogin.sql

    添加下面这行

    SET SQLPROMPT “_USER’@‘_CONNECT_INDENTIFIER> ”

    登陆浏览器:

    用户名:sys

    密码:oracle

    create user user_name identified by pass_word :创建用户

    alter user user_name identified by new_password :修改密码

    工具:

    sqlplus

    SQL Developer

    PL/SQL

    desc v$instance;

    select * from v$instance;

    select INSTANCE_NAME, STATUS from v$instance;

    set lines 200

    column host_name format a10 : 规范特定列的长度

    col host_name for a10 : 省略形式

    select THREAD# from v$instance;

    col thread# for 999

    set pagesize 300

    eg :

    select * from v$instane

    define _EDITOR=vim

    ed

    重新编辑上面的任务,保存

    ; :查看

    /    :   执行

    !ls : 不用退出sqlplus 执行操作系统命令

    ! : 跳到操作系统执行命令,不用退出sqlplus

    exit : 回到sqlplus

    note : ! 作用等于host

    在 .bash_profile里写入 :

    alias sqlplus =rwlrap sqlplus

    alias rman=‘rlwrap rman’

    可以实现滚动查找命令纪录

  • 相关阅读:
    SQL SERVER 2008的元数据视图
    SQL Server 2008 中的 XML 功能
    SQL SERVER 2008的层次结构支持
    C#打包程序
    SQL SERVER 2008的top增强
    SQL SERVER导出数据字典
    SQL SERVER 2008的转置函数PIVOT
    SQL SERVER 2008的SQLCMD模式
    SQL SERVER 2008传递表值参数
    SQL Server 2005导出表中数据的SQL脚本形式(即INSERT语句)
  • 原文地址:https://www.cnblogs.com/jilili/p/4691481.html
Copyright © 2011-2022 走看看