zoukankan      html  css  js  c++  java
  • Oracle零碎总结:结构-工具-创建语句

    前言:Oracle内部的存储及管理结构是1、数据库系统;2、数据库实例;3、表空间,系统用户system,普通用户;表,视图,触发器,存储过程等;

    一、Oracle数据库系统和数据库实例的对应关系是一对多的关系,如图:

     不过一般而言一个Oracle数据库系统一般就一个实例,或者再加一个当作测试实例。

    二、数据库实例和表空间的对应关系:

     

     需要注意的是,对于Oracle而言,表空间tablespace就类似SQLServer的database或MySQL的schema/database;

    三、创建表空间后一般会创建一个用户用于默认管理此表空间,语句分别是:

    ①创建表空间(用system用户登录)

    create tablespace db_test
    datafile
         'E:Oracle12coradataorcldb_test.dbf'
        size 10M
        reuse
        autoextend on
            next 1M
            maxsize UNLIMITED;
    commit;

    需要注意的是Oracle的默认等级比较严格,在创建表空间(其它数据库系统的数据库的概念)后需要commit才会生效;对于删除、修改等操作也是一样需要commit生效,

    在未commit之前删除的数据只在当前连接里是被删除,但是没有提交到Oracle服务,即其它用户登录后仍然能够看到那条数据。

    ②创建用户并制定此用户默认管理的表空间(system用户登录):

    CREATE USER thisIsUserName IDENTIFIED BY thisIsPassword DEFAULT TABLESPACE db_test;

    上面的语句的意思是创建用户:thisIsUserName,其密码为:thisIsPassword,它默认管理的表空间是db_test;

    四、接着执行给用户赋予权限的语句以保证此用户能够顺利的执行我们想要的操作(system用户登录):

    GRANT resource to thisIsUserName;
    grant unlimited tablespace to thisIsUserName;
    GRANT connect to thisIsUserName;  -- 连接权限
    GRANT CREATE SESSION to thisIsUserName;
    GRANT CREATE TABLE to thisIsUserName;  -- 表权限
    GRANT CREATE VIEW to thisIsUserName;  -- 视图权限
    GRANT CREATE TRIGGER to thisIsUserName;  -- 触发器权限
    GRANT CREATE PROCEDURE to thisIsUserName;  -- 存储过程权限
    GRANT CREATE SEQUENCE to thisIsUserName;
    grant create any synonym to thisIsUserName; 
    grant create public synonym to thisIsUserName; 
    grant create database link to thisIsUserName;
    grant create public database link to thisIsUserName;

    在执行完上面的所有操作后就可以用thisIsUserName登录Oracle数据库系统并直接操作表空间db_test了。

    五、较常用的Oracle数据库系统的客户端工具:

    ①PL/SQL,个人第一次用Oracle数据库时周围的小伙伴就推荐用的这个。

    ②安装Oracle12c后自带的SQL Developer,我自己瞎捣鼓找到的。

    这两个工具由于自己也没有细细研究不好说哪个更好,不过个人比较喜欢用自带的SQL Developer,因为在连远程的Oracle数据库实例时PLSQL需要先配置

    tnsnames.ora文件(在安装目录product12.2.0dbhome_1 etworkadmin下),比如我要能远程访问188.188.66.9的test数据库实例,我需要在此文件里添加

    RemoteORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 188.188.66.9)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = test)
        )
      )

    然后才能在PLSQL登录界面选择此实例,输入用户名密码登录。

    而对于SQL Developer则可以直接输入远程Oracle数据库系统的IP和端口及数据库实例名(SID值)来访问,如图:

    而且SQL Developer里还可以右键连接-生成数据库文档 来生成Web数据库字典。

    六、导入导出表空间:

    ①导出表空间:

    exp thisIsUserName/thisIsPassword@188.188.69.3/orcl file="E:output.dmp" full=y

    这个语句Windows上是在cmd/powershell,Linux是在Bash上执行的,如果端口是1521则可以不写,否则IP后面要带上:xxxx

    ②导入表空间:

    导入表空间之前一般要先清空表空间(如果表空间已经有数据),以system用户登录后执行:

    drop user thisIsUserName cascade;
    drop tablespace db_test including contents and datafiles;

    然后重新执行第三和第四步骤。

    接着转到cmd/bash执行:

    imp thisIsUserName/thisIsPassword@orcl file="E:Oracle12coradata_backupoutput.dmp" full=y

    七、创建或删除数据库实例:

     安装完Oracle12c后有工具Database Configuration Assistant来创建新的数据库实例或删除数据库实例;

    具体步骤跟安装Oracle12c时的步骤差不多,注意安装Oracle12c或创建新的实例时要取消勾选创建为容器数据库。

  • 相关阅读:
    《JavaScript高级程序设计》读书笔记 14章
    C# 程序集是啥
    C#之反射又是什么东西
    C#版 大数计算器加法
    C#版 大数计算器乘法
    我所认识的三层
    《JavaScript高级程序设计》读书笔记 56章
    C# 委托加深理解
    C#版 大数计算器减法
    C# 事件到底是什么
  • 原文地址:https://www.cnblogs.com/silentdoer/p/8205663.html
Copyright © 2011-2022 走看看