简述体系结构篇框架
各端口的作用:1158 1521
监听端口 1521---Install/portlist.ini文件,启动oracle必须打开监听端口
1158 Orcale常用端口
Oracle物理结构组成要素,各部分涉及到的数据字典(如何通过数据字典查询物理结构)
数据文件(data file) 后缀为.dbf 数据字典 dba_data_files和v$datafile
日志文件(redo log file) 后缀为.rdo 数据字典 V$log和v$logfile
归档文件: 后缀为.ARC 数据字典 ARCHIVE LOG LIST和v$database
控制文件(control file) 后缀为.ctl 数据字典 v$controlfile
配置文件(*.ora)
数据文件可以查询数据字典dba_data_files:
select * from dba_data_files;
日志文件可以查询v$logfile;
select * from v$logfile;
控制文件可以直接查参数
show parameter control;
简述何为归档文件,在那种用户下通过何种命令查询当前数据库的归档状态。
Oracle 数据库允许将被填充满的重做日志文件组保存到一个或者多个离线的位置,这叫做归档重做日志,简称归档日志。将重做日志文件转换为归档文件的过程叫归档
归档过程只能在ARCHIVELOG模式下数据库中进行.
归档模式的查询:
方法一
-
- SQL> ARCHIVE LOG LIST(掌握)
- 必须在sys用户下完成
方法二:select name,log_mode from v$database
-------------------------------------------------------
如何修改数据库的归档模式
Shutdown immediate
Startup nomount
Alter database mount;
Alter database archivelog;
-
逻辑结构组成要素
- 表空间(TABLESPACE)、段(SEGMENT)、区(EXTENT)数据块(BLOCK) ;
- 模式对象(schema)(表、视图、序列和同义词等)
分别说明表空间和数据文件,表空间和段的关系
表空间和数据文件是物理存储上的一对多的关系。
表空间和段是逻辑存储上的一对多的关系。
段不可以跨表空间,一个段只能属于一个表空间。
一个数据文件只能属于一个表空间
段不直接和数据文件有联系。一个段可以属于多个数据文件
区间不可以跨数据文件,只能存在于某一个数据文件中。
逻辑结构总结以及如何SQL语句分别查询表空间、常用段(表)、区的分配信息(掌握)
oracle数据库在逻辑上是由多个表间组成的
表空间中存储的对象叫段,比如数据段,索引段,和回退段。
段由区组成,区是磁盘分配的最基本单位。段的增大是通过增加区的个数来实现的。
每个区的大小是数据块大小的整数倍,区的大小可以不相同;
数据块是数据库中最小的I/O单位, 通过SHOW PARAMETER db_block_size显示其大小 。
select * from dba_tablespaces;
select table_name, tablespace_name, min_extents, max_extents from user_tables where tablespace_name=‘USERS';
简述Oracle自带的表空间及其作用
大文件表空间(Bigfile Tablespaces) Oracle 10g以上版本提供的一种新的表空间,它只能包含一个大文件,但文件大小可以达到4G数据块
简述Oracle段的分类和作用
段的分类
数据段(Data Segment) 索引段(Index Segment) 回滚段(Rollback Segment) 临时段(Temporary Segment)
详述 Oracle SGA的含义和组成
系统全局区SGA
SGA是orcale为一个实例分配的一组共享内存缓存区,包含一个数据库实例共享的数据和控制信息。
组成:
数据缓冲区(Database buffer cache))、日志缓冲区(redo log buffer)、共享池(库高速缓存(library cache)、数据字典缓存(data dictionary cache))、大型池(large pool)、Java池、流池
详述 Oracle 后台进程的名称和作用(至少五个)
DBWn(Database Writer,数据库写入)进程,数据缓冲区数据写入数据文件。
LGWR(Log Writer,日志写入)进程,将日志缓冲区写入日志文件。
CKPT(Check Point,检查点或检验点)进程,更新控制文件和数据文件。
SMON(System Monitor,系统监控)进程,数据库实例出现故障时的恢复。
PMON(Process Monitor,进程监控)进程,用户进程出现故障时的恢复。
ARCn(Archive Process,归档)进程,写满日志文件复制到归档文件。
RECO(Recovery,恢复)进程存在于分布式数据库系统中,用于自动解决在分布式数据库中出现的事务故障。
增加一日志文件,确定其大小
SQL> alter database add logfile 'c:\l1.log' size 5m;
添加一日志文件,确定其大小,指定其group为10组
SQL> alter database add logfile group 10('c:\l2.log')size 5m;
向现有日志文件组group10中,添加一新数据文件
SQL> alter database add logfile member 'c:\l3.log' to group 10 ;
删除group10中一日志文件
SQL> alter database drop logfile member 'c:\l3.log';
删除日志文件组group10
SQL> alter database drop logfile group 10;
(1)建立一个普通表空间tablespace ,带一个普通数据文件,说明其大小。
SQL> create tablespace tablespa1 datafile 'c:\b01.dbf' size 2m;
(2)建立一个普通表空间,带一个普通数据文件,说明其大小,可以自动调整数据文件大小,并约定最大为10M
SQL> create tablespace bkj01 datafile 'c:\b02.dbf' size 2m
autoextend on next 2m maxsize 10m;
(3)要求同1,附加要求为:请分别说明对区的两种管理。(两组命令,分别做)
SQL> create tablespace bkj02 datafile 'c:\b03.dbf' size 2m
extent management local autoallocate;
SQL> create tablespace bkj03 datafile 'c:\b04.dbf' size 2m
extent management local uniform size 1m;
---------------------------------------------------
SQL> create tablespace bkj04 datafile 'c:\b05.dbf' size 5m,'c:\b06.dbf' size 4m
extent management local autoallocate;
SQL> create tablespace bkj05 datafile 'c:\b07.dbf' size 5m,'c:\b08.dbf' size 4m
extent management local uniform size 2m;
(4)要求同1,附加要求为:请分别说明对段的两种管理。
SQL> create tablespace bkj06 datafile 'c:\b09.dbf' size 4m
segment space management auto;
SQL> create tablespace bkj07 datafile 'c:\b10.dbf' size 4m
segment space management manual;
SQL> create tablespace bkj08 datafile 'c:\b11.dbf' size 4m,'c:\b12.dbf' size 4m
segment space management auto;
SQL> create tablespace bkj09 datafile 'c:\b13.dbf' size 4m,'c:\b14.dbf' size 4m
segment space management manual;
(5)建立一个普通表空间,带两个普通数据文件
SQL> create tablespace bkj10 datafile 'c:\b15.dbf' size 4m,'c:\b16.dbf' size 4m;
(6)建立一个临时表空间,带一个临时数据文件,说明其大小
SQL> create temporary tablespace bkj12 tempfile 'c:\b18.dbf' size 5m;
(7)建立一个大表空间,带一个数据文件,说明大小
SQL> create bigfile tablespace bkj11 datafile 'c:\b17.dbf' size 5m;
(8)建立一个undo表空间,带一个普通数据文件
SQL> create undo tablespace bkj13 datafile 'c:b19.dbf' size 5m;
(9)修改已经建好的表空间,在原有数据文件基础上,增加另外一普通数据文件,确定其大小;
SQL> alter tablespace tablespa1 add datafile 'c:\b20.dbf' size 2m;
(10)修改已经存在的表空间的名字
SQL> alter tablespace tablespa1 rename to newtablespa1;
(13)设当前数据名为orcl,其中已有数据文件‘t1.dbf’请通过命令方式修改其大小(原数据文件为1000k,要求改为1500k)
SQL> alter database datafile 'c:\b20.dbf' resize 1500k;
如何查询Oracle sga大小?
SQL> show parameter sga;
如何查询当前Oracle的后台进程
SQL> select * from $bgprocess;
如何把已经存在的表放到表空间中
SQL> alter table xs1111(表名) move tablespace users(新表空间名称);
如何修改表scott.xs的某一列的信息
(1)修改表中某一列的列名
SQL> alter table xs1111(表名) rename column xb(旧列名) to xb1(新列名);
(2)修改表中某一列的类型
alter table 表名 modify (列名 varchar(255));
SQL> alter table xs1111 modify(xh number);
如何修改表空间的读写属性?
(1)设置表空间为只读状态
SQL> alter tablespace bkj01 read only;
新建一个表ceshi并放到表空间bkj01下
SQL> create table ceshi(
xh varchar2(10),
xm varchar2(10),
xb varchar2(10))
tablespace bkj01;
(2)设置表空间为读写状态
SQL> alter tablespace bkj01 read write;
SQL> create table ceshi2(
xh varchar2(10),
xm varchar2(10),
xb varchar2(10))
tablespace bkj01;
如何修改表scott.xs为logging状态?
SQL> alter table scott.emp logging;
CREATE TABLE SCOTT.KC 时如何限定kkxq的值在1-8之间??
create table kc_cs(
kch varchar2(10),
kcm varchar2(10),
kkxq int check(kkxq>=1 and kkxq<=8));
CREATE TABLE SCOTT.KC 时如何增加主键(constraint)
SQL> create table xs_cs(
xh varchar2(10),
xm varchar2(10),
xb varchar2(10),
constraint pk primary key(xh));