关系数据库
1.关系型数模型
2.关系数据库的泛化理论
3.数据库设计(实体-关系模型,E-R图绘制)
4.Oracle应用体系
~ 1.单磁盘独立主机结构
~ 2.多磁盘独立主机结构
~ 3.客户端/服务器端系统结构
~ 4.浏览器/服务器系统结构
~ 5.分布式数据库体系结构
Oracle数据库体系结构
-
1.物理存储结构
-
1.数据文件
2.控制文件
3.日志文件 重做日志文件
4.其他文件
2.逻辑结构
- 1.表空间
数据库实例
-
1.内存结构
-
1.系统全局区
2.程序全局区
3.排序区
4.大池
5.java 池
2.后台进程
-
1.CKPT进程
2.DBWR
3.LGWR
4.SMON
5.PMON
6.RECO
7.LCKN
8.DNNN
9.SNPN
3.数据字典
-
是Oracle存放数据库实例信息的一组表,通过数据字典可以了解数据库的详细配置信息
数据库字典的所有者为sys用户,而数据字典和数据字典视图都是存储在system表空间中的- user_* : 用户对象信息表.
user_tablees; - all视图
1.all_ 为前缀的用来记录用户对象的所有信息,和授权访问对象的信息 - dba视图
1.dba_user,dba_table 等都是存储数据库实例所有信息 - v$视图
1.活动相关的性能统计信息 - GV$视图
1.分布式系统环境下使用的多文件存储信息
- user_* : 用户对象信息表.
dba_table
dba_views
sql*plus:
-
注册表:
-
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
页面设置大小
- set pagesize 行数
SQL> desc dept 部门表
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
表空间
物理结构上 数据信息存储在数据文件中
逻辑结构上,数据信息存储在表空间中
一个数据库是由多个表空间构成,表空间和数据文件存在紧密的对应关系
每个表空间是由一个或多个数据文件组成
dba_tablespaces : 存储Oracle数据库中所有表信息结构
SQL> select tablespace_name,block_size,allocation_type from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE ALLOCATIO
------------------------------ ---------- ---------
SYSTEM 8192 SYSTEM
SYSAUX 8192 SYSTEM
UNDOTBS1 8192 SYSTEM
TEMP 8192 UNIFORM
USERS 8192 SYSTEM
EXAMPLE 8192 SYSTEM
已选择6行。
创建基本表空间
-
在创建表空间的时候:
-
1.在数据字典和控件文件中添加新建的表空间信息
2.操作系统中,创建指定大小的操作系统文件,并作为与表空间对应的数据文件
使用脚本创建:
-
create [temporary | undo] tablespace table_name
datafile filepath
blocaksizze number k
autoallocate number [n/k]
SQL> create tablespace hnkj
2 datafile 'd:\db_file\hnkj.dbf'
3 size 10m
4 autoextend on
5 next 5m
6 maxsize unlimited;
表空间已创建。
修改表空间
- 为表空间增加新的数据文件
SQL> alter tablespace hnkj
2 add datafile 'd:\db_file\hnkj_02.dbf'
3 size 10m;
表空间已更改。
- 查询数据文件信息
SQL> select file_id,file_name,bytes from dba_data_files;
FILE_ID FILE_NAME BYTES
---------- -------------------------------------------------- ----------
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF 5242880
3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF 104857600
2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF 534773760
1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF 713031680
5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF 104857600
6 D:\DB_FILE\HNKJ.DBF 10485760
7 D:\DB_FILE\HNKJ_02.DBF 10485760
已选择7行。
- 修改数据文件大小
SQL> select file_id,file_name,bytes from dba_data_files;
FILE_ID FILE_NAME BYTES
---------- -------------------------------------------------- ----------
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF 5242880
3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF 104857600
2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF 534773760
1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF 713031680
5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF 104857600
6 D:\DB_FILE\HNKJ.DBF 10485760
7 D:\DB_FILE\HNKJ_02.DBF 5242880
已选择7行。
- 修改数据文件是自动增长
- `SQL> alter database datafile ‘D:\DB_FILE\HNKJ_02.DBF’ autoextend on;
数据库已更改。
SQL> select file_id,file_name,autoextensible from dba_data_files;
FILE_ID FILE_NAME AUT
---------- -------------------------------------------------- ---
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF YES
3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF YES
2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF YES
1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF YES
5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF YES
6 D:\DB_FILE\HNKJ.DBF YES
7 D:\DB_FILE\HNKJ_02.DBF YES
已选择7行。`
-
修改表空间状态
-
正常状态 : online(在线),read write(读写)
非正常状态 : offline(离线),read only(只读)
移动数据文件
-
- 修改表空间状态为offline状态,防止其他用户操作
alter tablespace hnkj offline;
- 修改表空间状态为offline状态,防止其他用户操作
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
HNKJ OFFLINE
- 复制数据文件到另一个磁盘
- 使用 alter tablespace rename 语句修改数据文件名称
SQL> alter tablespace hnkj
2 rename datafile 'd:\db_file\hnkj.dbf'
3 to
4 'd:\db\hnkj.dbf';
表空间已更改。
SQL> alter tablespace hnkj
2 rename datafile 'd:\db_file\hnkj_02.dbf'
3 to
4 'd:\db\hnkj_02.dbf';
表空间已更改。
SQL> select file_id,file_name,bytes from dba_data_files;
FILE_ID FILE_NAME BYTES
---------- -------------------------------------------------- ----------
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF 5242880
3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF 104857600
2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF 534773760
1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF 713031680
5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF 104857600
6 D:\DB\HNKJ.DBF
7 D:\DB\HNKJ_02.DBF
已选择7行。
- 将表空间的状态修改为onlin
SQL> alter tablespace hnkj online;
表空间已更改。
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
HNKJ ONLINE
已选择7行。
删除表空间
drop tablespace tablespace_name [including contents] | [including contents and datafiles]
including contents : 表示删除表空间,但是保留该表空间的数据文件(即使保留其数据文件,这些文件也无法使用)
including contents and datafiles : 删除表空间,将内容全部和数据文件全部删除
SQL> drop tablespace hnkj including contents and datafiles;
表空间已删除。
filename 字段最多允许占用50个字符
SQL> column file_name format a50
临时表空间
临时表空间主要用来为排序或者汇总等操作提供的临时工作空间
create temporary tablespace temp_01
tempfile ‘page.temp_01.dbf’
size 10m
autoextend on
next 10m maxsize 100m
临时表空间用于存储临时数据,不能够存储永久性数据.
大文件表空间
最大可以存储4G字节的数据块大小
create bigfile tablespace bigfile_name
datafile ‘page’
size 10m
控制文件和日志文件
控制文件,是一个很小的二进制文件,用于描述数据块物理结构,包括数据库文件和日志文件的信息
1. 数据库名和标识符
2. 数据库创建的时间戳
3. 表空间的名称
4. 数据文件和日志文件得位置
5. 当前日志文件的序列号
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF
D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF
D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF
D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF
D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
D:\APP\LINNE\ORADATA\ORCL\REDO03.LOG
D:\APP\LINNE\ORADATA\ORCL\REDO02.LOG
D:\APP\LINNE\ORADATA\ORCL\REDO01.LOG
SQL> select name from v$controlfile
2 ;
NAME
--------------------------------------------------------------------------------
D:\APP\LINNE\ORADATA\ORCL\CONTROL01.CTL
D:\APP\LINNE\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL
SQL>