“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的区别?
领取专属 10元无门槛券
私享最新 技术干货