首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关系型数据库之oracle

Oracle是甲骨文公司的一款关系数据库管理系统。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

在数据库这一块知识不仅杂而且还很多。我们都知道数据库有关系型和非关系型也叫做sql数据库和nosql数据库。而数据库还在持续发展中,逐个举例肯定行不通,因为我也不知道,而且查资料找出来大家也不怎么会用到。那么我们就来搞搞我们很大几率能够用到的。今天就来搞搞关系型数据库中三大经典之一的oracle数据库。

01

oracle基本知识

一、基础名词

其他理论知识就不说了,意义不大,名词不懂了直接找度娘。这里只说一下我们常用达到的基础单元。

关系:可以理解为一张Excel表,每个关系都具有一个关系名,就是通常说的表名。

元组:可以理解为二维表中的一行,在数据库中经常被称为记录。

属性:可以理解为二维表中的一列,在数据库中经常被称为字段。

域:属性的取值范围,也就是数据库中某一列的取值限制(自己建表的时候就会让你来定义)。

关键字:一组可以唯一标识元组的属性。数据库中常称为主键,由一个或多个列组成(多列组成的也可以称为联合主键)。

关系模式:指对关系的描述,其格式为:关系名(属性1,属性2,…,属性N)。在数据库中通常称为表结构。(一般执行的建表脚本就是它里了)。数据库的事物的四大特性:ACID:原子性,一致性,隔离性,持久性以及oracle中四大隔离级别,以及oracle的绑定变量,以及oracle中关于锁的使用这些我们暂且不谈。因为这些很重要,我们放在后边细细的去搞。

02

oracle实际使用

就如上边所说,我们今天的文章定位就是实际使用中可能会遇到的问题。

1、首先我们来讨论一下如果你安装oracle数据库失败了该怎么办?毫无疑问卸载重装。

安装oracle [INS-32025] 所选安装与指定 Oracle 主目录中已安装的软件冲突

这个是最为常见的坑没有之一。

解决:

彻底卸载:

(1)在服务中停止Oracel的所有服务(win+R------>services.msc------在服务列表中关闭所有oracle相关服务)

(2)进入注册表删除Oracel有关的所有键值(win+R→regedit→HK_LOCAL_MACHINE_software_右键删除oracel)

(3)HK_LOCAL_MACHINE--system→分别进入:

controlset001→service→删除oracel所有服务

controlset002→service→删除oracel所有服务

currentcontrolset→service→删除oracel所有服务

(4)删除安装后的软件目录和产品目录

(5)删除软件目录 C:\Program Files (x86)\Oracle

(6)删除产品目录 oracle安装所在的位置

(7)删除开始菜单中的oracel相关项,path环境变量中的oracel路径值

(8)重启系统

(重要:一定得把自己以前的解压的oracle文件夹全部删除,重新解压。

2、如果安装成功我们一般会怎么去启动oracle呢?命令方式如下:

windows下:

(1)lsnrctl start (启动监听)

(2)oradim –startup –sid 实例名

linux下:

(1) lsnrctl start (启动监听)

(2) sqlplus sys/chang_on_install as sysdba(以sysdba身份登录)

sqlplus /nolog

conn sys/chang_on_install assysdba

(3)startup

3、安装成功以后就要去创建实例和解锁用户了

一般情况我们在创建实例的时候会使用sqlplus以sysdba身份登陆(sqlplus / as sysdba)创建表空间,然后去创建用户,为用户授权。

创建表空间

CREATE BIGFILE TABLESPACE "TS_TABLE_TMS" DATAFILE 'E:\OrcaleFile\TS_TABLE_TMS.ora' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

创建用户

create user (username) identified by (password) default tablespace (实例名,比如orcl);

为用户授权

grant connect,resource,dba to (username)

一般使用oracle的话我们需要创建这样一个东西

创建日志文件夹和dmp存储文件夹:

CREATE OR REPLACE DIRECTORY

dump_dir AS

'E:\OracleFile\java\db\tmp'//dos命令下创建文件夹

其实上边的文件夹是为了我们以后更新库的时候方便,因为你的dmp文件一般都会 比较长,有了上边的文件夹你在做导入的时候就可以使用变量模式了,只需要将你的dmp文件改一个简单的名字,然后复制到上边建立的文件夹里就可以。

impdp (username)/(password)@orcl directory=dump_dir EXCLUDE=USER dumpfile =(dmp文件) logfile=ATS_WEB_FONT.log

我们可能还会遇到另一种问题就是,dmp导出的时候是与你要做导入的用户不同名,这时如果你直接执行导入,可能你导入的文件会不能用,那么该如何解决?这时可以用下边这个操作语句:

数据库文件导入更换用户(我喜欢叫这个名字)

impdp sys/(password)@orcl(拥有dba权限的用户/密码/目标库) directory=dump_dir remap_schema=(用户1):(用户2) 用户1是导出dmp的用户/用户2是需要拥有dmp文件下所有表的用户) transform=OID:N EXCLUDE=USER dumpfile=(要导入的文件名) logfile=001z002.log

4、上边是sqlplus能正常使用的情况下,要是不能正常使用呢?

启动sqlplus,然后登陆数据库出现错误:TNS:协议适配器错误

原因有3个:

(1).监听服务没有启动:services.msc或开始—>程序—>管理工具—>服务,打开服务面板:启动oraclehome92TNSlistener服务

(2).database instance没有启动:services.msc或开始—>程序—>管理工具—>服务 启动oralceserviceXXX,XXX就是你databaseSID如orcl

(3).注册表问题:

regedit.msc

进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1下的ORACLE_SID值修改为orcl你的全局数据库名字 你的数据库SID即可。

5、至此你基本上可以正常的使用oracle数据库了,那么我们再再来了解一下常用的命令

drop user 用户名[cascade]

当我们删除一个用户的时候,若这个用户自己已经创建了数据对象(表、触发器等),需要加选项cascade表示把这个用户删除同时,把该用户创建的数据对象一并删除。

create profile lock_accountlimit failed_login_attempts 3 paswword_lock_time 2;

alter user tea profilelock_account;//其中lock_account是文件名

一般我们使用profile管理用户口令,账号锁定指用户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用DBA的身份去执行该命令。 profile文件[规则]

账号解锁:

alter user 用户名 account unlock;

终止口令:

create profilemyprofile limit password_life_time 10 password_grace_time

我们给tea创建一个profile文件,要求该用户每隔10天必须修改自己的登录密码,款限期为2天。(一般用不到)可以继续加限制条件。

alter user tea profile myprofile;

删除profile文件

drop profile profile文件名

当不需要某个profile文件时,可以删除该文件。

关于基本使用我们就说到这里,后续会详细跟进上边提到的还有没提到的知识点。

九月12号周三:关系型数据库之oracle

九月13号周四:探究Java8的Optional 类

九月14号周五:Effective Java(第三版)——条目十四:考虑实现Comparable接口

那么今天小程序更新的题库是什么呢?

今天小程序更新的题目是:

1.什么是CAP理论?

2.springCloud是什么?

3.Ribbon和Feign的区别

4.springcloud断路器的作用

5.springcloud如何实现服务的注册和发现

6.atomic 与 volatile的区别?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180912G1MATJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券