Oracle数据库1

一.对比Mysql,理解Oracle的基本概念

1.1.Oracle数据库的基本概念

问题1:什么是数据库?

1.数据库:有组织的数据的集合。俗称「数据的仓库」。
2.数据库系统分为数据库管理系统和数据库。
3.狭义上来讲,我们口头上的“数据库”,通常都是指「数据库管理系统 (DBMS)」。

问题2:我们为什么使用数据库呢?

三个要素:安全、方便、效率。

1.提供底层数据的持久化存储,保证了其一致性和稳定性。
2.提供了接口对数据的操作与检索,方便对数据的日常维护和管理。
3.提供了并发控制访问和数据容错机制,并为程序提供读写接口。
数据库的优点
数据库的特点的解释

1.2.Oracle数据独有的实例的概念

问题1:实例是什么?

1.数据库实例(instance)是用与管理数据库文件的内存结构。
2.数据库是一组位于磁盘上的物理文件,通过 CREATE DATABASE 语句创建。实例管理相关的数据,并且为数据库用户提供服务。
3.每个正在运行的 Oracle 数据库至少与一个实例相关联。因为实例存在于内存中,而数据库存在磁盘上,所以实例可以独立于数据库存在,数据库也可以独立于实例存在。

1.2.1.实例是由系统全局区(SGA)和一些后台进程组成。
1.2.2.系统全局区(SGA/Shared global area)的概念
1.SGA是Oracle实例的组成部分,是一组共享内存结构。SGA区的内容可以被所有用户所共享。
2.主要由以下几部分组成:
(1)高速数据缓冲区。
(2)重做日志缓冲区。
(3)共享池和大型池等。
1.2.3.后台进程
进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务,进程可看作由一段可执行的程序、程序所需要的相关数据和进程控制块组成。
五大进程

1.2.4.数据库实例的启动与关闭

打开数据库
1.startup 或 startup open
2.startup nomount
3.startup mount
使用2,3命令,此时数据库实例已经打开,不能再使用startup,而是要改变数据库的状态:alter database 下一状态
三种状态的说明
1.nomount
startup nomount- -非安装启动
启动数据库实例
说明:
读取init.ora参数文件,启动实例instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
2.mount
Alter database mount- -加载
装载数据库
说明:
该状态常用于数据库日志归档、数据库介质恢复、使数据文件联机或脱机。
3.open
Alter database open- - 打开数据库
打开数据库
说明:
读取所有控制文件中标识的数据文件、日志文件等,如果这些文件异常,则打开失败。此时所有数据库文件都被定位和打开,并且终端用户可以使用数据库。
关闭数据库
1.shutdown normal 或 shutdown
2.shutdown immediate
3.shutdown transactional
4.shutdown abort
shutdown [normal]- -正常方式
不允许新的用户连接
现有用户可继续工作,等待所有用户断开连接(disconn)
关闭数据库
因此此种方式最慢,不推荐此种方式
Shutdown transactional- -禁事务关闭
不允许新的用户连接
禁止所有新事物发生
等待用户回滚或提交未提交事务即允许完成当前活动事务–-无需等待用户断开连接
关闭数据库
shutdown immediate-立即关闭
不允许新的用户连接
中止所有用户连接
注:终止会话、释放会话资源
回滚所有未提交事务—未提交的则忽略掉
关闭数据库
shutdown abort--直接关闭(中止关闭数据库实例)
不允许新的用户连接
中止当前所有SQL语句
立即结束例程
注:相当于断电。由于会使数据库处于不一致的状态,因此不推荐。
数据库实例创建
数据库实例详解

问题2:什么是用户?

1.用户是在实例下建立的。不同实例可以建相同名字的用户。
2.Oracle数据库建好后,要想在数据库里建表,必须为数据库建立用户,并为用户指定表空间。
多个用户可以对应不同表空间,也可以对应相同的表空间。
创建好一个实例的时候,一般有默认的两个用户。分别为sysytem和sys,system是数据库内置的一个普通管理员,sys是数据库的超级用户。

1.3.Oracle数据库存储结构

问题1:什么是表空间?

表空间只是一个逻辑概念,若干操作系统文件(文件可以不是很大)可以组成一个表空间。表空间统一管理空间中的数据文件,一个数据文件只能属于一个表空间。一个数据库空间由若干个表空间组成。

问题2:什么是段?

回答:段是表空间的重要组织机构,段是指占用文件空间的统称,或数据对象使用的空间集合;段可以有表段、索引段、回滚段、临时段和高速缓存段。

二.Oracle数据库的物理存储结构

2.1.数据文件

1.数据文件是物理存储Oracle数据库数据的文件。包括两部分内容:用户数据和系统数据。用户数据是用来存放用户对象(表或者索引等),而系统数据则主要是指数据字典中的数据。
2.数据文件都是以.DBF后缀结尾。

2.2.控制文件

1.控制文件是一个较小的二进制文件,它维护着数据库的全局物理结构,用以支持数据库成功地启动和运行。
2.创建数据库时,同时就提供了与之对应的控制文件。在数据库使用过程中,Oracle不断更新控制文件,所以只要数据库是打开的,控制文件就必须处于可写状态。若由于某些原因使控制文件不能被访问,则数据库也就不能正常工作了。
3.控制文件存储了数据库名、数据库的数据文件和联机重做日志文件的名称和位置、数据库建立日期、数据库的当前序列号、数据库检查点、数据库中表空间名等信息。
每个数据库可包含两个或多个控制文件。
4.控制文件以.CTL后缀结尾 
2.2.1.查询控制文件的路径
select name from V$controlfile;
2.2.2.将控制文件备份为二进制文件
alter database backup controlfile to 'path/name.bkp';

2.3.重做日志文件

1.重做日志文件(Redo Log File)用于记录对数据库的所有修改信息。其特点如下:
 (1)每一个数据库至少包含两个重做日志文件组。
 (2)重做日志文件以循环方式进行写操作。
 (3)每一个重做日志文件成员对应一个物理文件。
2.数据库中的重做日志文件就是专门记录用户对数据库的所有修改,一旦数据库出现问题(如数据库服务器死机或突然断电),可以通过重做日志文件把数据库恢复到一个正确的状态。
3.重做日志文件以.LOG后缀结尾。
2.3.1.重做日志文件有相关的两个视图
1.重做日志文件组:V$log
2.重做日志文件成员:V$logfile
2.3.2.查询重做日志文件组的信息
select group#,sequence#,menbers,status,archive from V$log;
2.3.3.创建日志文件组
alter database add logfile group('path/name.log',...);
一个数据库中可以包含的重做日志文件组的最大数量是由控制文件中的MAXLOGFILES参数决定的。
2.3.4.查询重做日志文件的信息
select group#,type,menber from V$logfile order by group#;
2.3.5.添加重做日志文件成员到重组日志文件组
alter database add logfile menber 'path/name.log' to group;
2.3.6.手动切换日志文件,并查看
alter system switch logfile;
select group#,bytes,menbers,status from V$log;
2.3.7.修改重做日志文件的位置
注意:重做日志文件组处于INACTIVE状态的时,才能对其成员文件的名称或位置更改。
第一步:查看该文件的位置。
第二步:关闭数据库。
第三步:将文件的物理位置移动到目标点。
第四步:打开数据库到mount状态。
第五步:修改数据字典中的信息:alter database rename file 'path/old_name.log' to 'path/name.log';
第六步:打开数据库至open状态。
2.3.8.删除重做日志文件
alter database drop logflie;
注意:
(1)无论重做日志文件组中有多少个成员文件,一个数据库至少需要有两个重做日志文件组。
(2)只能删除处于INACTIVE状态或UNUSED状态的重做日志文件组,若要删除状态为CURRENT的重做日志文件组,则需要执行一次手动日志切换。
2.3.9.删除重做日志文件成员
alter database drop logfile menber;
注意:
1.只能删除状态为INACTIVE或UNUSED的重做日志文件组中的成员;若要删除状态为CURRENT的重做日志文件组中的成员,则需执行一次手动日志切换。
2.每个重做日志文件组中至少要有一个可用的成员文件。如果要删除的重做日志文件是所在组中最后一个可用的成员文件,则无法删除。
2.3.10.设置数据库为归档模式
第一步:关闭数据库:shutdown immediate;
第二步:打开数据库到mount模式:startup mount;
第三步:更改数据库至归档模式:alter database archivelog;
第四步:打开数据库至open模式:alter database open;

2.4.其他文件

1.初始化参数文件。
2.口令文件。
3.归档日志文件。
2.4.1.初始化参数文件
1.初始化参数文件是初始化参数的资料库,用于设置初始化参数。
2.当Oracle数据库实例启动时,系统需要从初始化参数文件中读取初始化参数。
3.Oracle的初始化参数文件有两种:
(1)文本初始化参数文件(Initialization Parameter,PFILE)
(2)服务器参数文件(Server Parameter File,SPFile)
2.4.2.文本初始化参数文件(PFile)
1.文本初始化参数文件的名称通常是init.ora或者initORACLE_SID.ora。内容为纯文本文件,可编辑。
2.文本初始化参数文件中配置参数由一组<参数名>和<参数值>对组成。
2.4.3.服务器参数文件(SPFile)
1.其文件名称是spfileORACLE_SID.ora。可以把SPFile看作是在Oracle数据库服务器上维护的初始化参数的容器,它是服务器端的初始化参数文件。
2.在一个数据库实例运行过程中,如果SPFile中的初始化参数被修改,则需要关闭数据库实例再启动后才能生效。
3.在数据库实例启动时,只能有一个初始化参数文件起作用,默认使用spfile。在启动数据库实例时将在操作系统默认的位置上找到SPFile,并从中获取初始化参数设置。
posted @ 2023-02-23 22:17  彭乐祥  阅读(42)  评论(0编辑  收藏  举报