• 数据库之Oracle的介绍与使用20180620


    /*******************************************************************************************/

    一、oracle的安装

    1.数据库从类型上分为:

    关系型数据库:oracle mysql

    非关系型数据库:mongodb

    2.oracle的安装

    分为服务器安装和客户端安装

    服务端安装:注意选择默认配置方式

    客户端安装:注意选择管理员方式,(服务器和客户端可以装在一台机子上)

    注意事项:安装目录不能有中文和空格

    3.安装软件与步骤

    安装软件使用的是oracle11g,有linux版本和windows版本可以从官网下载,现在讲的使用的是windows 64位的,版本是11gR2

    步骤:

    1).解压安装文件,运行database目录下的setup.exe

    2).安装时注意不要oracle的支持,安装配置时,

    注意选择Create and configure a database,因为会自动生成一个用户(scott),方便平时个人使用一般公司使用Install database software only

    3).选择Desktop Class模式

    4).典型安装设置中,注意设置的目录不要有中文和空格

    database edition选择Enterprise Edition企业版

    Global database name orcl,这个表示的实例名

    其他默认,并注意设置用户名和密码

    5).一直到安装完成会有个界面出现password management

    点击后可以配置用户,解锁账户并配置密码,一般用了两个HRSCOTT两个用户

    6).oracl自带了一个客户端软件脚SQL Developer,但是我们一般用PLSQL Developer,其实功能都差不多。

    7).检验是否安装好

    本机安装,直接在dos下执行 sqlplus / as sysdba 使用dba用户登录

    本机安装安装的,也可执行 sqlplus scott/密码

    或者执行 sqlplus scott/密码@orcl

    都是使用scott用户登录,其中加@这个是远程登录的意思,依赖于开启了侦听服务。

    比如@orc100,那么就会去读取配置文件tnsname.ora,从中就可以找到orc100对应的ip+实例名,通过这个访问到数据库。所以访问方式也可以改成:

    sqlplus scott/11@//192.168.137.100/orcl,这样就不用配置任何的配置文件了

    8).两个服务

    在运行中执行services.msc,在服务中找到or开头的,这些都是or提供的服务,

    重点是:

    OracleOraDb11g_homeTNSListenerOracleServiceORCL这两个服务

    OracleServiceORCL实例的主服务,Oracle启动的一个叫ORCL的实例,决定数据库是否启动

    OracleOraDb11g_homeTNSListener 监听服务(侦听服务)

    如果以后发现Oracle操作不了了,就是需要去关注这两个服务正常不正常,有没有启动起来

    也就是说这两个服务没有正常启用,登录Oracle数据库是登录不了的

    具体见《Oracle 11G 安装文档.doc

    /*******************************************************************************************/

    二、oracle公司简介

    也就是甲骨文公司,收购了weblogic(java应用服务器)sun

    /*******************************************************************************************/

    三、oracle体系结构

    数据文件+实例,注意其中的数据文件,也就是数据库位于硬盘上,实例位于内存中。

    框架图见图1

     

    一般来说,就是一个实例对应一下db files

    也有特殊的,

    比如多个实例管理一个数据库的,这几个实例也叫做集群,oracle中集群称为:RAC(real application cluster)

    客户端软件是通过实例去操作数据库的,这个实例可以是多个实例(集群)中的一个,

    集群的好处:

    1.负载均衡

    一般一台机器上运行一个实例(实例和文件可以部署在不同的机器上),如果访问很多的话,多个实例就可以让不至于一台机器负载太多。

    2.失败迁移

    当一台实例失败时,可以自动的切换到另外一个实例。也就是当失败的时候可以直接切换到下一个实例,这个过程中应用不需要停下来。

    实例的详细介绍见图2

     

    实例是运行在内存中,是若干个操作数据库的进程的集合,也就是管理系统(RDBMS(关系型数据库管理系统))

    里面主要有很多读写进程,去操作数据库文件的。这是在后端,

    在另外一端,有一个叫pga的,

    pgaprogram global area(程序全局区)pga的作用是给我们客户端使用的,一个客户端对应一个pga,显然实例中有多个pga

    pga也不是直接操作数据文件的,pga后面还有一个sga,

    sga:system global area(系统全局区)

    一个提交操作的流程:

    比如有一个提交操作是通过客户端提交给pgapga提交到sga,然后再由sga操作读写进程,最终操作数据库。

    也就是说内部有两次提交,两次提交是为了支持闪回,

    闪回:对已经提交的操作,进行回退。

    闪回需要开启 行移动。

    /*******************************************************************************************/

    四、oracle相关概念

    逻辑概念:表空间,表空间由多个数据文件组成。位于实例上,在内存中。

    oracle接触到最多的就是表,表是oracle存储的基本单位,这个表就是存放在表空间上,

    物理概念:数据文件,位于硬盘之上(c:appadministratororadataorcl目录内后最为.DBF的文件)

    一个表空间可以包含多个数据文件。1:n(表空间:数据文件)

    段存在与表空间中,段是区的集合,区是数据块的集合,数据块会被映射到磁盘,可看图3:

     

    具体结构关系可看图4

     

    其中的数据库这一块可以看成是实例,

    数据库层次结构见图5

     

    DBA(数据库管理员)

    /*******************************************************************************************/

    五、登录

    登录管理员

    sqlplus /as sysdba

    登录管理员不需要输入密码,这是因为oracle安装的时候将sys用户和本地操作用户绑定,所以可以直接登录

    登录指令:

    对于自己安装服务器的

    sqlplus scott/11

    对于使用虚拟机

    sqlplus scott/11@//192.168.137.100/orcl(要连接到137.100的服务器上的orcl数据库)

    sqlplus scott//11@orc1100(可以替代上一条命令,由于事先设置了配置文件)

    配置文件:client_1>network>admin>tnsnames.ora

    服务器和客户端都具有sqlplus.exe文件,在bin目录下,

    还有在服务器中的oradata中的orcl(实例)目录下,有.dbf的数据文件,也有.ctl的控制文件。

    如果忘记密码就要在服务器中,登录管理员:sqlplus /as sysdba,如果不行则加上密码:sqlplus sys/sys as sysdba

    登录后就可以修改密码了

    修改密码的命令是alter,如:

    解除账户锁定并修改密码:

    alter user scott account unlock

    alter user scott identified by 11;//重设密码为11

    /*******************************************************************************************/

    六、配置与配置文件

    登陆命令sqlplus scott/11@orcl222中的orcl222来自于

    配置文件tnsnames.ora,在配置文件中成为服务名

    增加新的登陆服务,可以参考该文件中的其他登陆服务来填写服务名,ip,端口号,实例名

    也可以使用工具来完成这个增加的操作

    工具名称:oracle net configuration assistant

    注意,

    登陆数据库的工具:pl/sql developer  中的drop命令表示的是删除的意思 。

    /*******************************************************************************************/

    七、rehat启动oracle

    linux下启动oracle服务,即Linux下装了oracle 然后启动。

    1.登录到oracle用户 su -oracle

    -表示携带环境变量

    2.sqlplus / as sysdba

    3.startup 启动实例

    出现System Global Area表示启动成功了

    4.quit

    5.lsnrctl start

    (shell环境执行)启动监听服务。

    6.远端

    tnsping ping服务器

    然后用sqlplus来登录。

    7.可能需要服务器关闭防火墙

    切换到管理用户:

    su

    执行:

    service iptables stop

    dba,oracle认证的级别

    oca

    ocp 2w+

    ocm 3w

      

    /*******************************************************************************************/

    八、oracle项目方案

    oracle项目案例(Oracle客户端测试用).sql

    这个脚本文件是一个完整创建用户的过程。

    注意,

    1.21行中的TABLESPACE USERSusers这个表空间是orcl默认给的表空间。

    2.

    -- 03 创建表

    -- 创建部门表 并赋值,-- 是注释

    CREATE TABLE MYSCOTT.DEPT(

    DEPTNO      NUMBER(2) PRIMARY KEY,

      DNAME       VARCHAR2(14) NOT NULL,

      LOC         VARCHAR2(13)

    )TABLESPACE ts_myscott;

    //TABLESPACE ts_myscott 指定表空间,由于当前是dba用户,所以指定用户名MYSCOTT.DEPT

    脚本的使用:

    打开plsql开发工具,然后登录dba用户,再打开command window,在该窗口下,把文件中所有的内容粘贴到该窗口下就可以了。

    测试新用户是否创建成功:

    登录用户:

    sqlplus MYSCOTTUSER1/123456@orcl100;

    select * from myscott.emp;

    /*******************************************************************************************/

    九、plsql工具相关介绍

    ed 表名;

    工具里面使用ed命令

    这个时候出来的界面里面,就是直接进行表的相关操作,并从这里点击view sql就可以推出表相关操作对应的语句。

    并且这个界面还可以给表加各种约束,比如主键啥的,还可以创建索引等等。

    并可以推出表相关操作对应的语句。

    同样,

    ed 视图名

    或者ed 序列名

    就能看到视图或者序列相关的操作,

    比如视图能看到 视图创建的语句

    使用工具插入或者导入数据:

    select * from emp2 where 1=2 for update;

    for update就是表示接下来要(增加)修改,

    此时点击解除锁定后,这时就可以修改这个表的,可以手动在表里面填入数据,也可以直接粘贴数据过来。

    数据填好后再打勾,然后锁定

    导出数据

    export 表名

    就会出现界面,这里有导出的配置,导出的是创建这个表的sql语句,包括建表,insert等语句

    导出的sql语句直接粘贴到敲命令的窗口就可以直接全部执行了。

  • 相关阅读:
    关于总线的总结
    我已经理解了并发和并行的区别
    关于CPU的一些基本知识总结
    shell生成指定长度的随机数
    进程、线程、协程、例程、过程的区别是什么?
    Perl输出带颜色行号或普通输出行
    Ruby数组(2):数组方法详细整理
    Linux find常用用法示例
    MariaDB官方手册翻译
    Ruby中to_s和to_str、to_i和to_int、to_a和to_ary、to_h和to_hash的解释说明
  • 原文地址:https://www.cnblogs.com/yuweifeng/p/9204149.html
Copyright © 2020-2023  润新知