百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Oracle基础知识杂谈(oracle基础知识入门)

sinye56 2024-10-06 00:38 6 浏览 0 评论

主题一: 体系结构

数据库很复杂---》体系结构很复杂---》为什么体系结构很复杂?

因为稀有资源不足,所以oracle引入复杂的内存、外存有效的管理稀有资源。

什么是稀有资源?(引入人类历史)

1.Oracle的数据保存在什么地方?

硬盘(机械速度 读取磁盘的速度)

2.Oracle的数据在什么地方更新?

内存(90%)(电子速度 计算机的配置)

所以Oracle的稀有资源是什么?(硬盘、内存)

举一个场景

数据库断电(事务执行一半断电,再次启动时要恢复已经写入得数据)

oracle体系结构设计的初衷是什么?

不是为了处理SQL,而是为了以后可以方便改进系统的效率和数据的恢复

数据库由两分组成

实例(instance):内存和后台进程的集合

SGA:系统全局区

{

共享池(shared pool):

{

库缓存(library cache):

{

作用:共享sql、plsql代码

}

数据字典缓存(data dict cache):

{

作用:保存数据字典和用户的权限信息

}

}

数据库高速区:产生脏数据的场所。

重做日志缓冲区:操作ddl和dml时必须先写入重做日志缓冲区

}

PGA:程序全局区

排序信息、游标信息、会话信息

后台进程:smon、dbwr、pmon、lgwr、ckpt

数据库(database):由一系列数据库文件组成

控制文件:

数据文件:

日志文件:

参数文件:

口令文件:

归档日志文件:

一条sql语句是如何执行的?

编译

1.库缓存检查是否存在

2.检查语法是否正确

3.查询数据字段检查表和列的定义

4.加编译锁(sql语句在编译过程中涉及的对象不能被改变)

5.查询引用对象的用户权限

6.生成执行计划、装入sql共享区

执行

7.服务器进程执行Sql语句

提取数据

8.服务器进程返回数据集合,必要的时候要进行排序

主题二: 存储结构

1.Oracle为什么要引入那么复杂的逻辑结构?

可移植性强、不依赖操作系统文件

2.引入表空间(Tablespace)、段(Segment)、区(Extent)、块(Oracle block)的概念(看图说话)

3.如何查询当前数据库的现有表空间?

select * from dba_tablespaces

4.表空间分类

数据表空间 固定段

还原表空间 回滚段

临时表空间 临时段

固定段:表、索引

回滚段:需要回滚数据

临时段:临时的排序信息、临时表

5.创建用户时要选择默认表空间和临时表空间

默认表空间:创建表的时候如果不指定表存放的表空间则保存在当前用户的默认表空间

临时表空间:为当前用户指定临时表空间,如果不指定会使用数据库的默认临时表空间

(打开user.sql进行讲解)

如何查看数据库的默认临时表空间?

select * from DataBase_properties where property_name like 'DEFAULT%';

6.表空间段管理的两种方式

数据字典方式(9i中已经被废弃)

Create TableSpace lession_db_data

DataFile 'E:\tablespace\lession_db_data.dbf' Size 5M

MINIMUM EXTENT 50k EXTENT MANAGEMENT DICTIONARY

DEFAULT STORAGE

(INITIAL 50K NEXT 50K MAXEXTENTS 100 PCTINCREASE 0);

n-2

next*(1+PCTINCREASE/100) 从第三次开始

本地创建方式

Create TableSpace lession_data

DataFile 'E:\tablespace\lession_data.dbf'

Size 5M

Extent Management Local

uniform size 1M;

7.如果创建表空间?从语法进行介绍

Create TableSpace lession_index

DataFile 'E:\tablespace\lession_index.dbf'

Size 5M

Extent Management Local

uniform size 1M;

如何查看数据文件?

select file_id,file_name,tablespace_name,bytes/(1024*1024)MB from dba_data_files;

如何创建临时表空间?

Create TEMPORARY TableSpace lession_temp

Tempfile 'E:\tablespace\lession_temp.dbf'

Size 5M

Extent Management Local

uniform size 1M;

查看临时表空间文件的方式?

select * from v$tempfile

8.删除表空间的问题

删除表空间的语法

drop tablespace LESSION_DATA including contents and datafiles;

注 默认临时表空间不允许删除

更新一个临时表空间为默认临时表空间

alter database default temporary tablespace lession_temp;

9.表空间不足了怎么办?

1.增加文件

alter tablespace LESSION_INDEX add datafile 'E:\TABLESPACE\LESSION_INDEX02.DBF' size 5M;

2.扩充文件

alter database datafile 'E:\TABLESPACE\LESSION_INDEX.DBF' resize 10M;

准备工作 还原数据库最初的结构

模拟我们现实开发中的跑库流程

相关推荐

Linux基础知识之修改root用户密码

现象:Linux修改密码出现:Authenticationtokenmanipulationerror。故障解决办法:进入单用户,执行pwconv,再执行passwdroot。...

Linux如何修改远程访问端口

对于Linux服务器而言,其默认的远程访问端口为22。但是,出于安全方面的考虑,一般都会修改该端口。下面我来简答介绍一下如何修改Linux服务器默认的远程访问端口。对于默认端口而言,其相关的配置位于/...

如何批量更改文件的权限

如果你发觉一个目录结构下的大量文件权限(读、写、可执行)很乱时,可以执行以下两个命令批量修正:批量修改文件夹的权限chmod755-Rdir_name批量修改文件的权限finddir_nam...

CentOS「linux」学习笔记10:修改文件和目录权限

?linux基础操作:主要介绍了修改文件和目录的权限及chown和chgrp高级用法6.chmod修改权限1:字母方式[修改文件或目录的权限]u代表所属者,g代表所属组,o代表其他组的用户,a代表所有...

Linux下更改串口的权限

问题描述我在Ubuntu中使用ArduinoIDE,并且遇到串口问题。它过去一直有效,但由于可能不必要的原因,我觉得有必要将一些文件的所有权从root所有权更改为我的用户所有权。...

Linux chown命令:修改文件和目录的所有者和所属组

chown命令,可以认为是"changeowner"的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。当只需要修改所有者时,可使用...

chmod修改文件夹及子目录权限的方法

chmod修改文件夹及子目录权限的方法打开终端进入你需要修改的目录然后执行下面这条命令chmod777*-R全部子目录及文件权限改为777查看linux文件的权限:ls-l文件名称查看li...

Android 修改隐藏设置项权限

在Android系统中,修改某些隐藏设置项或权限通常涉及到系统级别的操作,尤其是针对非标准的、未在常规用户界面显示的高级选项。这些隐藏设置往往与隐私保护、安全相关的特殊功能有关,或者涉及开发者选项、权...

完蛋了!我不小心把Linux所有的文件权限修改了!在线等修复!

最近一个客户在群里说他一不小心把某台业务服务器的根目录权限给改了,本来想修改当前目录,结果执行成了根目录。...

linux改变安全性设置-改变所属关系

CentOS7.3学习笔记总结(五十八)-改变安全性设置-改变所属关系在以前的文章里,我介绍过linux文件权限,感兴趣的朋友可以关注我,阅读一下这篇文章。这里我们不在做过的介绍,注重介绍改变文件或者...

Python基础到实战一飞冲天(一)--linux基础(七)修改权限chmod

#07_Python基础到实战一飞冲天(一)--linux基础(七)--修改权限chmod-root-groupadd-groupdel-chgrp-username-passwd...

linux更改用户权限为root权限方法大全

背景在使用linux系统时,经常会遇到需要修改用户权限为root权限。通过修改用户所属群组groupid为root,此操作只能使普通用户实现享有部分root权限,普通用户仍不能像root用户一样享有超...

怎么用ip命令在linux中添加路由表项?

在Linux中添加路由表项,可以使用ip命令的route子命令。添加路由表项的基本语法如下:sudoiprouteadd<network>via<gateway>这...

Linux配置网络

1、网卡名配置相关文件回到顶部网卡名命名规则文件:/etc/udev/rules.d/70-persistent-net.rules#PCIdevice0x8086:0x100f(e1000)...

Linux系列---网络配置文件

1.网卡配置文件在/etc/sysconfig/network-scripts/下:[root@oldboynetwork-scripts]#ls/etc/sysconfig/network-s...

取消回复欢迎 发表评论: