• oracle基础知识


    1、RMAN全备备份文件的顺序
    备份归档日志、所有的数据文件、控制文件、spfile、再次备份归档日志
    2、redo日志丢失恢复
    redo日志的三种状态是current、active、inactive
    inactive,可以重建 clear log
    active、current不能变成inactive,只能通过不完全恢复进行恢复,然后重建日志文件
    3、口令文件丢失恢复
    丢失可重建 orapwd file=<fname> password=<password> enfries=<users>
    重建完成之后ORACLE正常使用
    4、控制文件丢失恢复
    a> rman 可以备份控制文件
    b> 控制文件可以cp一份备用
    c> 控制文件可以重建手写
    5、体系结构
    物理:
    ORACLE数据库包括instance、database两部分。
    instance包括SGA(系统全局区)跟一些后台进程组成的。
    SGA包括:share pool、db buffer cache、redo log buffer、流池、大型池、JAVA POOL、
    share pool(共享池) :
    库缓存:缓存最近执行的代码,同样的sql多次执行不需要频繁读取数据字典中得数据
    数据字典缓存:存储oracle中得对象定义
    PL/SQL区:缓存存储过程、函数触发器等数据库对象。
    db buffer cache(数据库缓存区)
    redo log buffercache(日志缓存区)
    常见的后台进程:
    DBWn:用于数据库缓存写入磁盘
    LGWn:用于log日志写入磁盘
    CKPT:检查点进程
    SMON:实例维护进程,系统监视器
    MMON:AWR主要进程
    PMON:维护用户进程,进程监视器
    ARCN:归档进程
    database包括数据文件、控制文件、日志文件等。
    逻辑:
    oracle数据块-区-段-表空间-数据库-方案
    多个oracle数据块组成一个区,多个区组成一个段,多个段组成一个表空间,多个表空间组成一个数据库
    表空间和数据文件的关系:
    表空间是由一个或多个数据文件组成的,一个数据文件只属于一个表空间,表空间的大小是所有数据文件大小的总和。
    数据文件和段的关系
    一个段只能存在一个表空间上,但是可分布在属于这个表空间中得多个数据文件中。
    一个段就是一张表
    6、一条SQL语句的执行历程(UPDATE)
    客户端发起一条update语句由服务进程提交到sga,这个服务进程占用的是pga的内存,首先对这条update语句进行语义解析跟语法解析
    硬解析、软解析、软软解析,解析完成后判断无语法错误,然后会在共享池中查找是否有执行计划,如果有则意味着在缓存中有所需的
    语句跟数据,若没有则会生成执行计划,然后将磁盘中的数据提出到缓存中,在此同时会更新undo日志文件,update语句在缓存中执行
    先写入redo日志,然后修改过的数据会通过dbwr写入磁盘,最后通过服务器进程返回客户端,完成SQL执行历程。
    7、redo log跟undo log 的作用
    这两类日志文件作用是保持数据的完整性跟一致性
    redo log 重做日志(用于前滚日志) undo log 撤销日志(用于回滚日志)
    一条insert语句redo跟undo都会生成。
    redo记录的是insert的状态
    undo记录的是insert之前的状态
    8、索引
    a、索引是数据库对象之一,用于加快数据库的检索,类似于书籍的索引,在数据库中索引可以减少数据查询结果
    时需要读取的数据量。
    b、索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索的方式,从而提高检索效率。
    c、索引在逻辑上和物理上都与相关的表和数据无关,当创建或者删除一个索引时,不会影响基本的表。
    d、索引一旦建立,在表上进行DML操作时,oracle会自动管理索引,索引删除,不会产生影响。
    e、索引对用户是透明的,无论表上是否有索引,sql语句的用法不变。
    f、oracle创建主键时会自动在该列上创建索引
    9、索引的基本操作
    创建索引的基本语法
    create index index_name on table_name;
    重命名索引
    alter index index_name rename to index_name2;
    合并索引
    alter index index_name coalesce;
    创建索引
    删除原索引,重建索引
    alter index index_name rebuild;
    删除索引
    drop index index_name;
    10、索引的种类
    a、B树索引(默认索引):最常用的索引,是一颗二叉树;不管查询条件怎么样,查询速度基本相同;能够适应精确查询,模糊查询
    和比较查询。
    创建语句:create index index_name on EMP('name');适用于列基数(列不重复的个数)。
    b、位图索引:建立位图索引时,oracle会扫描整张表,并为索引列的每个取值建立一个位图(要么0要么1)来标示该行是否包含该位图
    的索引列的取值如果为1,表示对应的rowid所在的纪录包含该位图索引的列值,通过位图索引中的映射函数完成位到行的ROWID的转换
    创建语句:create bitmap index index_name on EMP('name');适用于基数小,种类少的列(性别)
    c、单行索引和复合索引(基于多个列创建):如果索引建立在多个列上,只有它的第一个列贝where子句引用时,优化器才会适用该索引,
    即至少要包含组合索引的第一列
    d、函数索引:当要经常访问一些函数或者表达式时,可以将其存储在索引中,这样下次访问时,该值已经计算出来了可以加快查询速度
    函数索引既可以适用B数索引,也可以适用位图索引;当函数结果不确定时采用B树索引,结果是固定的某个值时使用位图索引。寒暑索引中可以使用len、
    trim、substr、upper(每行返回独立结果的)不能使用sum、max、min、avg等
    创建语句:create index index_name on EMP(upper(name));
    此时使用函数索引 select * from student where upper(name) = 'swith';
    11、索引的一些特点
    a、如果有两个或两以上的索引时其中有一个唯一性索引,而其他的是非唯一的则这种情况下会使用唯一性索引而完全忽略非唯一性索引。
    b、带有索引的列不能进行函数计算以及隐式转换,否则会造成索引失效。
    12、oracle启动过程
    startup nomount 启动数据库实例,读取参数文件,不加在数据库;
    alter database mount 加载数据库,但数据库处于关闭状态,读取控制文件;
    alter databses open 加载并打开数据库,读取数据文件;
    13、服务端连接不上服务器的原因
    a、用户名密码错误
    b、监听没启动
    c、服务端文件配置错误
    14、oracle中控制文件的作用
    记录了:数据库名称和数据库唯一标识符(DBID)、创建数据库的时间戳、有关数据库文件、联机重做日志、归档日志的信息表空间信息、RMAN备份信息
    指导数据库,找到数据文件,日志文件并将数据库启动到open状态。
    15、oracle中参数文件的作用
    参数文件在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,
    是进行数据库设计和性能调优的重要文件。
    参数文件分为:
    pfile 可以手工修改
    spfile 二进制文件,不能手工修改
    16、oracle备份方式
    a、RMAN备份(物理备份) 特点:数据库需要开启归档模式 ,支持增量备份,自动管理备份文件,自动化备份与恢复,不产生重做信息,支持映像复制
    备份的数据文件支持压缩处理,备份文件有效性检查功能。
    RMAN〉backup database;restore database;recover database
    b、exp/imp、expdp/impdp(导入导出逻辑备份)
    四种模式:exp 全库导出full=y,用户到出owner=,表导出tables=,表空间导出tablespace=
    expdp 全库导出full=y,用户导出schemas=,按表导出TABLES=,按查询条件导出query='';按表空间导出TABLESPACES=,并行进程parallel=;
    c、冷备
    直接打包复制,操作需要关库,最简单的,low

    17、开启归档模式
    shutdown immediate;
    startup nomount;
    alter database archivelog ;
    alter database open;

    18、查锁表sql
    select l.session_id sid,
    s.serial#,
    l.locked_mode,
    l.oracle_username,
    s.user#,
    l.os_user_name,
    s.machine,
    s.terminal,
    a.sql_text,
    a.action
    from v$sqlarea a, v$session s, v$locked_object l
    where l.session_id = s.sid
    and s.prev_sql_addr = a.address
    order by sid, s.serial#;
    19、exp/imp、expdp/impdp区别
    a、使用expdp要先在数据库中创建directory,并给相应的用户read、write权限。
    b、常用导出方法有一些参数不一样例如按用户导出exp:user=,expdp:schemas=,owner=。有些参数也相同比如全库导出full=y
    c、expdp可以通过parallel参数增加线程来显著的加速作业。
    d、expdp/impdp只能在DB服务器上运行,exp/imp可以再客户端上运行,expdp/impdp所支持的参数类型更多,功能更强大。
    20、oracle的客户端 : PLSQL、toad for oracle
    21、数据库迁移的方式
    a、exp/imp、expdp/impdp 数据库导出工具导出dump文件实现数据库迁移。
    b、rac集群架构能够实现数据库迁移。
    c、DG高可用主备库同步,能够实现数据库迁移。
    d、rman备份能够迁移。
    e、冷备,打包发走能够实现数据库迁移。
    f、某些工具能够实现数据库迁移PLSQL
    22、oracle登录方式
    sqlplus / as sysdba 本地登录
    sqlplus sys/oracle@192.168.2.1:1521 as sysdba 网络登录

  • 相关阅读:
    RabbitMQ资料
    在网页打开本地程序的思路
    HttpClient的巨坑
    webbrowser设置为相应的IE版本
    cpupower:Shows and sets processor power related values
    golang 国内环境配置
    OSX 创建 randisk(或称 tmpfs)
    Gentoo 搭遗
    ubuntu 去除开机背景
    fabric && cita 调研对比
  • 原文地址:https://www.cnblogs.com/Wardenking/p/10238555.html
Copyright © 2020-2023  润新知