1.1 Oracle目录结构
-
Oracle目录结构:
1、admin目录
记录Oracle实例的配置,运行日志等文件。每个实例一个目录。
SID:System IDentifier 的缩写,是Oracle实例的唯一标记。在Oracle中一个实例只能操作一个数据库。如果安装多个库那么就会有多个实例,我们可以通过实例SID来区分。
由于Oracle中一个实例只能操作一个数据库的原因,Oracle中也会使用SID来作为库的名称。
2、cfgtoollogs目录
里面的子目录分别存放着运行的dbca、emca、netca等图形化配置程序时的log。
3、checkpoints目录
存放检查点文件
4、diag目录
Oracle11g新添加的一个重组目录。其中的子目录,基本上Oracle每个组都有自己单独的目录,在Oracle10g中我们一直诟病的log文件散放在四处的问题终于得到解决,无论是asm还是crs还是rdbms,所有组件需要被用来诊断的log文件都存放在了这个新的目录下。
5、flash_recovery_area(闪回区)目录
闪回区:分配一个特定的目录位置来存放一些特定的恢复文件 ,用于集中和简化管理数据库恢复工作。闪回区可存储完全的数据文件备份、增量备份、数据文件副本、当前的控制文件、备份的控制文件、spfile 文件、快照控制文件、联机日志文件、归档日志、块跟踪文
件、闪回日志。
6、oradata目录
(1)用于存放数据文件,orcl数据库文件就存放在这里
(2)数据库中的文件介绍
- CONTROL01.CTL
Oracle数据库的控制文件。
- EXAMPLE01.DBF
Oracle数据库表空间文件(数据文件)。
- REDO01.LOG、REDO02.LOG、REDO03.LOG
Oracle数据库的重做日志文件。保证高可用性,三个文件的内容是一样的。
- SYSAUX01.DBF
11g新增加的表空间。主要存储除数据字典以外的其他数据对象。由系统内部自动维护。
- SYSTEM01.DBF
用于存放Oracle系统内部表和数据字典的数据。比如,表名、列名、用户名等。
- TEMP01.DBF
临时表空间文件。
- UNDOTBSO1.DBF
撤销表空间文件。用来保存回滚数据。
- USERSO1.DBF
用户表空间。
7、product目录
Oracle RDBMS的软件存放目录。RDBMS即关系数据库管理系统(Relational Database Management System)。
1.2 Oracle系统用户
1、Oracle系统用户
(1)sys用户
sys: sys是Oracle中的超级账户,拥有的权限最大。可以完成数据库的所有管理任务。
(2)system用户
system:没有sys 权限大,通常用来创建一些用户查看管理信息的表或视图。不建议使用 system用户来创建一些与管理无关的表或者视图。
- 二者在登录时的区别
sys和system在登录Oracle 时, sys只能以系统管理员( sysdba)或系统操作员( sysoper)
的权限登录,而system可以直接登录(normal) 。
(3)scott用户
scott:是oracle提供的示例用户,提供了一些学习oracle操作的数据表。如: emp、dept、salgrade、bonus表
1.3 Oracle的启动和停止
1、Oracle启动
Oracle是通过系统的服务来启动的。
(1)OracleServiceORCL[(必须启动)
OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,该服务是数据库启
动的基础,只有该服务启动,Oracle 数据库才能正常启动。
(2)OracleOraDb11g home1TNSListener(必须启动)
OracleOraDb11g. _home1TNSListener: 监听器服务,服务只有在数据库需要远程访问的时候或者使用PL/SQL Developer 等第三方工具时才需要。
(3)Oracle ORCL VSS Writer Service(非必须启动)
Oracle ORCL VSS Writer Service: Oracle 卷映射拷贝写入服务,VSS(Volume Shadow Copy
Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝
(shadow copy)它可以在多卷或者单个卷.上创建映射拷贝,同时不会影响到系统的系统能。
(4)OracleDBConsoleorcl(非必须启动)
OracleDBConsoleorcl : Oracle 数据库控制台服务, orcl 是Oracle的实例标识,默认的实
例为orcl 在运行Enterprise Manager(企业管理 器OEM)的时候,需要启动这个服务。
(5)OracleJobSchedulerORCL(非必须启动)
OracleJobSchedulerORCL: Oracle 作业调度(定时器服务, ORCL是Oracle实例标识。
(6)OracleMTSRecQveryService(非必须启动
OracleMTSRecoveryService:服务端控制。该服务允许数据库充当-一个微软事务服务器
MTS、COM/COM+对象和分布式环境下的事务的资源管理器。
2、Oracle 关闭
关闭Oracle只需要将服务停止即可。
1.4 Oracle第三方工具介绍
1、SQL plus:Oracle自带的客户端工具
黑色的窗口,结果集以文本的形式显示,不方便查看数据
2、SQL developer:Oracle公司提供的客户端工具
Command window和SQL plus一样
SQL window具有良好的图形化界面,使用更方便
1.5 Oracle的使用
1、Oracle的表空间
(1)Oracle的表空间分类
- 永久表空间
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间。
- 临时表空间
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间。
(2)创建永久表空间命令
注:只有在sys和system用户下才能创建表空间
create tablespace 永久表空间名称 datafile '永久表空间物理文件位置' size 15M autoextend on next 10M permanent online; |
create tablespace YNHR datafile ‘D:\APP\app\oradata\orcl\YNHR.DBF’ size 15M autoextend on next 10M permanent online; |
tablespace表示表空间 datafile表示数据文件,后面指定的就是.DBF的数据文件 autoextend表示自动扩展 permanent online表示永久表空间 |
(3)查看表空间
select * from dba_data_files; |
(4)删除表空间
drop tablespace 表空间名称 [including contents ][ cascade constraints ] |
drop tablespace:删除表空间的关键字,tab_name表示表空间名字。 [including contents]:表示在删除表空间的时候把表空间中的数据文件一并删除。 [cascade constraints]:表示在删除表空间的时候把表空间的完整性也一并删除。比如表的外键,和触发器等就是表的完整性约束。 |
drop tablespace oracleceshi including contents cascade constraints; |
![]() 直接在SQL Developer中用图形化删除 |
2、创建用户
(1)利用PL/SQL的图形化界面创建用户
点击apply应用后创建用户成功,在users文件中就可以看到LX用户了
(2)登录用户
前面创建的用户LX不具备登录的权限,我们在PL/SQL中登录时是登录不上的
提示如下错误,用户LX不具备登录权限
在这里,说明在Oracle数据库中,对于权限的管理是非常严格的,每个权限划分的很细,只有具有对应的权限才能进行相应的操作。
(3)权限介绍和分类
- 对象权限[0bject privileges)
对象权限是指在指定的表,视图,序列上制定执行动作的权限或权利。
- 角色权限(Role privileges)
角色是可以授予用户的相关权限的组,该方法使权限的授予撤回更加容易管理。
- 系统权限(System privileges)
为用户分配创建表、创建用户、创建视图、创建存储过程等权限。
(4)分配权限
给用户LX分配角色权限:connect(连接权限)
给用户LX分配系统权限:
注:我们在现在的学习阶段可以直接给一个用户dba的角色权限,这样该用户就具有所有的权限。
这时候在该用户下就可以创建表了
(5)利用SQL语法创建用户:
语法:
CREATE USER user_name IDENTIFIED BY password [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace] |
创建用户zhangsan,密码为123456: create user zhangsan identified by 123456; |
(6)删除用户:
以上情况说明用户还在连接的会话中,要先终止才能删除
在sys或system用户下查看有哪些连接信息
用命令杀掉对应的连接
再次执行删除用户,成功
(7)利用SQL语法分配权限:
语法:
给用户分配权限或角色: grant 权限或角色 to 用户; 撤销用户的权限或角色: revoke 权限或角色 from 用户; |
给用户zhangsan分配connect和resource角色 connect角色分配了连接权限,resource角色分配了创建权限,资源分配 grant connect,resource to zhangsan; 撤销用户zhangsan的resource角色 revoke resource from zhangsan; 允许用户zhangsan查看emp表中的数据 grant select on emp to zhangsan; 允许用户zhangsan修改emp表中的数据 grant update on emp to zhangsan; |