记录学习oracle的操作与原理1

实际上oracle和mysql最大的不同就是oracle比mysql多了一个表空间来管理表而已

(1)mysql/oracle骚操作之账户:

a

你得从假设你是一个dba的角度去理解这个账户的问题,

假设你工作在,某个大公司,这个大公司有两个数据库管理系统oracle和mysql都交由你去管理,这个时候有程序员申请用客户端连接公司的数据库,这个时候你就得注意了,首先你需要给这个程序员分配一个账户,在对应给这个账户一些权限,

由于我们操作mysql数据库的时候一直都是以root用户的身份操作,如果真的需要你去给别人连接你数据库的权力时,我希望你给的不是你root的账号和密码,而是给他新开一个账户,给他一些基本的权限就行了,oracle操作的时候也是这样

b

其中oracle和mysql不同的地方就是oracle数据库管理系统最初会给你提供几个默认的账户包括root账户,其中/hr/scott账户是一个示例账户,用户以这个账户登陆只会看到oracle数据库的一部分的表,因为不同的用户下面会有不同的表,这也是任何一个数据库管理系统为了安全起见都会那么做的,所以我们得熟悉各个账户下都有什么表

oracle叫sysdba,这个账户具有最高的管理权力,相当于mysql的root账户

而mysql数据库管理系统最初只会给你提供一个账户root,

总结:

mysql的超级管理员账户root,oracle的超级管理账户sysdba

任何想要连接数据库的账户除了dba之外,你作为dba都要给他新开一个账户,给他基本的权限就可以了

(2)oracle骚操作之oracle10g体系结构

任何一种软件,都会有其体系结构,mysql也有,oracle也不例外,如果要想深入了解一个软件的工作原理,可以看一下这个软件的体系结构,前几天我在网上看了mysql的体系结构,今天我也大盖看一下oracle的体系结构吧,了解一下oracle的工作原理吧

内存结构:数据库缓存/重做日志缓存/数据字典缓存/共享池/java池大型池/程序全局区

进程结构:数据库写入进程/日志归档进程/日志写入进程/检查点进程/系统监控进程/进程监控进程等等

物理结构:就是oracle的各种文件(数据文件/重做日志文件/控制文件/归档日志文件/参数文件/口令文件)

逻辑结构:数据库/表空间/段/区间/块(MYSQL只有表)

其中内存结构和进程结构合起来叫做oracle的例程,物理结构叫oracle的数据库

内存结构/进程结构/物理结构三者的关系是:对应的进程结构将内存结构中的数据缓存写入到外存上的物理结构的数据文件中

(mysql数据库的体系结构也是这样的,存在内存结构,进程结构,逻辑结构和物理结构)

a

对应的看一下oracle在操作系统中真实的进程结构吧

control+alt+delete:查看任务管理器的进程,不难发现oracle的各种进程,你会看见oracle的监听进程,写进程,oracle数据库服务进程,其中有几个oracle数据库服务进程就有几个oracle的数据库,创建oracle数据库的最好方法是用用图形工具创建不然很麻烦。。。。。。。。。。。。。。

b

对应的看一下oracle在操作系统中真实的物理结构吧,看看各种数据文件/日志文件/控制文件都放在了哪里?

oracle数据库文件存放位置:oradata文件夹下

数据文件:oracle在创建完数据库后会自动的创建6个表空间,6个表空间对应6个数据文件.DBF

日志文件:   oracle在创建完数据库后会自动的创建3个日志文件,Redo01.LOG/Redo02.LOG/Redo03.LOG.........

控制文件:   oracle在创建完数据库后会自动的创建1个控制文件.CTL

c

对应的看一下oracle在操作系统中真实的逻辑结构吧

数据库/表空间/段/区间/oracle块

c1

数据库的话你想看有几个数据库,可以看出来的,看oradata下有几个目录jiunengkanchlaile

c2

表空间的话默认建议一个新的数据库oracle会创建6个表空间:

即6个数据文件,包括system表空间/sysaux表空间/数据表空间/索引表空间/临时表空间/undo表空间

oracle将数据插入oracle数据库之前,必须先建立表空间,然后将数据插入表空间的一个对象中(oracle的对象:表/索引)

oracle将在用户选定数据库的表空间中存储数据库对象,而mysql将在用户选定的数据库中存储数据库对象,oracle相比mysql多了 一个表空间的概念

也就是说oracle用户插入数据的过程是选择对应的数据库,再在数据库下选择对应的表空间,选择好对应的表空间之后在选择对应的对象进行数据的插入,而mysql就没有那么繁琐直接就选好数据库选好对象就可以插入数据

system表空间------系统表空间:存放系统表和系统数据/该空间下保存的的是持久的数据对象:表

sysaux表空间-------辅助系统表空间:  存放系统表和系统数据/该空间下保存的的是持久的数据对象:表

undotbs1表空间-------撤销表空间:保存事务回退信息的表空间,该空间下保存的的是非持久的数据对象

users表空间------------用户表空间:存放用户表和用户数据该空间下可以保存用户自定义的数据库对象表,以后我估计我就活在这个表空间下了吧,在这里建表啥的

temp表空间----------临时表空间:存放临时表和临时数据

example表空间--------样例表空间: 存放示例表

反过来观看不同账户看的表不一样,你会发现scott和hr用户看的基本都是样例表空间的表,而system/sysdba用户看的都是系统表空间的表,

(oracle对表空间的信息做了一个系统表:dba_tablespaces,从这个系统表中我们可以查看各个表空间的信息)在实际工程中,用户数据(表和聚簇)放到数据表空间,索引放到索引表空间,临时数据放到临时表空间,undo数据放到undo表空间,系统数据放到系统表空间

c3

段:(相当于是mysql中的表)

段的类型:

表:一个普通表存储在一个表空间中(数据存储在一个表空间)

/分区:一个普通表存储在不同的表空间上数据存储在不同的表空间)

/簇:多个表连接成一个新表(一个粗表包含多个表的数据,主要是为了提高查询性能)

/索引:一个表存储在一个表空间中,表的字段:索引关键字和对应记录的rowid

/索引分区:一个索引表存储在不同的表空间上

/退回段:一个表存放更新事务中更新前的数据

/临时段:一个表存放查询语句得到的解惑

c4

区间:一个区间一定属于某个段

c5

数据块:是oracle在数据文件上执行i/o操作的最小单位,

---------------------------------------------------------------------------------------------------------------------

oracle的数据字典很有用啊,

----------------------------------------------------------------------------------------------------------------------

oracle管理的web端软件:isql*plus/企业管理器em

oracle管理的客户端软件:sql*plus/oracle企业管理器

sql*plus可以处理两种命令:sql命令和sql*plus的命令

常见sql*plus的命令:

conn username/password@database [as sysdba]

show user

disconnect

describe tablename

set pagesize 10

set linesize 10

spool 文件的绝对路径名

spool off等等

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值