目录
一、基本架构与相关概念
1、整体逻辑架构
2、数据库与实例
2.1 数据库(文件)
2.2 实例(内存)
二、常用语句
三、功能检查与开启
1、数据库状态检查
2、创建用户
3、检查监听
4、检查归档模式
5、检查自动备份状态
四、参考
(1)、数据文件(dbf)是数据库的物理存储单位,表空间是数据库的逻辑组成部分。表空间可以包含多个数据文件,但数据文件只能属于一个表空间。数据文件一旦加入表空间后就无法改变,也无法删除,只能通过删除其所属表空间进行删除。
(2)、表空间是Oracle对物理数据库上相关文件的逻辑映射,一个数据库在逻辑上分为一到多个表空间。
(3)、用户是在数据库实例下创建的,实例之间相互隔离(不同实例可以创建相同名称的用户)。
(4)、表是由用户维护的,表数据存放在表空间中,表空间会随机把这些数据存放到一个或多个数据文件中。用户之间数据相互隔离(即使一个表空间下,不同用户也可以创建同名表)。
Oracle 数据库服务器由一个数据库和至少一个数据库实例组成。 数据库是一组存储数据的文件,而数据库实例则是管理数据库文件的内存结构。简单的说,Oracle数据库服务器包含两部分:文件(数据库)+ 内存(实例)。
数据库和实例是紧密相连的,所以我们一般说的 Oracle 数据库,通常指的就是实例和数据库。
Oracle 数据库的一个基本任务是存储数据,其包含物理与逻辑存储结构。
2.1.1 物理存储结构
物理存储结构是存储数据的纯文件。当执行一个 CREATE DATABASE 语句来创建一个新的数据库时,将创建下列文件:
数据文件:数据文件包含真实数据,例如销售订单和客户等。逻辑数据库结构(如表和索引)的数据被物理存储在数据文件中。
控制文件:每个 Oracle 数据库都有一个包含元数据的控制文件。元数据用来描述包括数据库名称和数据文件位置的数据库物理结构。
联机重做日志文件:每个 Oracle 数据库都有一个联机重做日志,里面包含两个或多个联机重做日志文件。联机重做日志由重做条目组成,能够记录下所有对数据所做的更改。
除这些文件外,Oracle 数据库还包括如参数文件、网络文件、备份文件以及用于备份和恢复的归档重做日志文件等重要文件。
2.1.2 逻辑存储结构
Oracle 数据库使用逻辑存储结构对磁盘空间使用情况进行精细控制。以下是 Oracle 数据库中的逻辑存储结构:
数据块(Data blocks):Oracle 将数据存储在数据块中。数据块也被称为逻辑块,Oracle 块或页,对应于磁盘上的字节数。
范围(Extents):范围是用于存储特定类型信息的逻辑连续数据块的具体数量。
段(Segments):段是分配用于存储用户对象(例如表或索引)的一组范围。
表空间(Tablespaces):数据库被分成称为表空间的逻辑存储单元。 表空间是段的逻辑容器。 每个表空间至少包含一个数据文件。
下图说明了表空间中的段,范围和数据块:
Oracle 实例是客户端应用程序(用户)和数据库之间的接口。Oracle 实例由三个主要部分组成:系统全局区 (SGA),程序全局区 (PGA) 和后台进程。
如下图所示 :
DBWr(DBWR)在后来允许多进程写data file,所以改成DBWn了。
SGA 是实例启动时分配的共享内存结构,关闭时释放。 SGA 是一组包含一个数据库实例的数据和控制信息的共享内存结构。
不同于所有进程都可用的 SGA,PGA 是会话开始时为每个会话分配的私有内存区,当会话结束时释放。
以下是 Oracle 实例的主要后台进程:
PMON 是 Oracle 数据库中最活跃的一个进程,是调节所有其他进程的进程监视器。PMON 能够清理异常连接的数据库连接,并自动向侦听器进程注册数据库实例。
SMON 是执行系统级清理操作的系统监视进程。它有两个主要职责,包括在发生故障的情况下自动恢复实例,例如断电和清理临时文件。
DBWn 是数据库编写器。Oracle 在内存中执行每个操作而不是磁盘。因为在内存中的处理速度比在磁盘上快。DBWn 进程从磁盘读取数据并将其写回到磁盘。 一个 Oracle 实例有许多数据库编写器,如:DBW0,DBW1,DBW2等等。
CKPT 是检查点进程。 在 Oracle 中,磁盘上的数据称为块,内存中的数据称为缓冲区。 当该块写入缓冲区并更改时,缓冲区变脏,需要将其写入磁盘。CKPT 进程使用检查点信息更新控制和数据文件头,并向脏盘写入脏缓冲区的信号。 请注意,Oracle 12c 允许全面和增量检查点。
LGWR 是日志写入过程,是可恢复架构的关键。 在数据库中发生的每一个变化都被写出到一个名为 redo 日志文件中用于恢复目的。 而这些变化是由 LGWR 进程编写和记录的。 LGWR 进程首先将更改写入内存,然后将重做日志写入磁盘,可将其用于恢复。
ARCn 是归档进程,它将重做日志的内容复制到归档重做日志文件。存档程序进程可以有多个进程,如:ARC0,ARC1 和 ARC3,允许存档程序写入多个目标,如 D:驱动器,E:驱动器或其他存储。
MMON 是收集性能指标的可管理性监控流程。
MMAN 是自动管理 Oracle 数据库内存的内存管理器。
LREG 是监听器注册过程,它使用 Oracle Net Listener 在数据库实例和调度程序进程上注册信息。
控制
登陆 sqlplus:sqlplus /nolog
使用sysdba链接oracle:connect /as sysdba
使用自定义 u1 连接oracle:connect u1 /123456
开启数据库:startup
关闭数据库:shutdown immediate;
查看数据库状态:select * from v$instance;
监听状态($ORACLE_HOME/bin):lsnrctl status
开启监听:lsnrctl start
关闭监听:lsnrctl stop
查询
查询当前数据库 : select name from v$database;
查询当前实例名 : select instance_name from v$instance;
查询表空间:select default_tablespace, d.username from dba_users d;
查看数据库用户:select * from dbs_users;
查询表空间路径:select status,fuzzy,tablespace_name,name from v$datafile_header;
显示当前连接用户:show user;
显示系统下所有用户:select * from all_users;
显示用户空间下所有表格:select table_name from user_tables;
显示用户下表格中的数据:select * from "HFTEST"."stu";
创建
创建表空间:create TableSpace 表空间名称 DataFile 表空间数据文件路径 Size 初始大小 AutoExtend on;
创建用户:create user 用户名 identified by 密码 default tablespace 表空间;
用户授权:Grant connect, backup any table, select any dictionary, dba to 用户;
删除
删除用户:drop user 用户名 cascade;
删除表空间:Drop tablespace 表空间名 including contents and datafiles CASCADE CONSTRAINTS;
删除表:drop table "stu";
su - oracle # 进入 oracle 系统账户
sqlplus /nolog # 登录sqlplus
connect /as sysdba # 用sysdba连接Oracle
startup # 启动数据库
select status from v$instance; # 查询数据库状态
# 创建授权高级权限用户,既可以备份又可以恢复数据库
create user 【USERNAME】 identified by 【PASSWORD】;
grant dba,sysdba to 【USERNAME】;
# 创建低级权限用户,只能备份数据库,恢复数据库需要用具有sysdba权限的用户。
create user 【USERNAME】 identified by 【PASSWORD】;
Grant connect,backup any table,elect any dictionary to 【USERNAME】;
$ORACLE_HOME/bin目录输入:lsnrctl status.如未出现如下界面则需要开启监听。
su - oracle # 进入 oracle 系统账户
sqlplus /nolog # 登录sqlplus
connect /as sysdba # 用sysdba连接Oracle
select instance_name from v$instance。 # 查看 SID_NAME,设置监听需要一致。
监听配置完成,重新启动监听服务
lsnrctl stop
lsnrctl start
查看是否开启归档模式
su - oracle # 进入 oracle 系统账户
sqlplus /nolog # 登录sqlplus
connect /as sysdba # 用sysdba连接Oracle
archive log list
如果没有开启归档模式,则显示:No Archive Mode
shutdown immediate; # 关闭数据库
startup mount; # 启动数据库实例到mount状态
alter database archivelog; # 启动归档模式
alter database open; # 打开数据库并将其装入
archive log list; # 配置完成之后再次检查归档日志类型
关闭自动备份。
首先进入 rman 终端
su - oracle
rman # 进入RMAN
RMAN> connect target / # 连接到实例
MAN> show all # //查看默认设置,看自动备份是否开启
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP OFF; // 关闭自动备份
Oracle COMMIT语句(提交事务)_w3cschoolhttps://www.w3cschool.cn/oraclejc/oraclejc-grjn2r0x.htmlOracle Database Online Documentation 11ghttps://docs.oracle.com/cd/E11882_01/index.htm