数据库基础知识学习

存放数据文件信息的数据字典:dba_data_files和v$datafile
存放控制文件信息的数据字典:v$controlfile
查询系统正在使用的日志组:v$log(一个实例一个日志组)
查询表空间信息:dba_tablespaces
查询数据块的大小:show parameter db_block_size
程序全局区信息:show parameter pga_aggregate_target
日志缓冲区大小:show parameter log_buffer
共享池大小:show parameter shared_pool_size
排序区大小:show parameter sort_area_size
大池(大区)大小:show parameter large_pool_size
java池大小:show parameter java_pool_size

数据字典(视图):user、all、dba、v$和gv$
oracle常用数据字典:
1.基本数据字典
dba_tables所有用户的所有表的信息
dba_tab_columns所有用户的表的字段的信息
dba_views所有用户的所有视图信息
dba_synonyms所有用户的同义词信息
dba_sequences所有用户的序列信息
dba_constraints所有用户的表的约束信息
dba_indexes所有用户表的索引简要信息
dba_ind_columns所有用户的索引的字段信息
dba_triggers所有用户的触发器信息
dba_source所有用户的存储过程信息
dba_segments所有用户的段的使用空间信息
dba_extents所有用户的段的扩展信息
dba_objects所有用户对象的基本信息
cat当前用户可以访问的所有基表
tab当前用户创建的所有基表,视图和同义词等
dict构成数据字典的所有表的信息

2.与数据库组件相关的数据字典
v$datafile记录系统的运行情况
dba_tablespaces记录系统表空间的基本信息
dba_free_space记录系统表空间的空闲空间的信息
v$controlfile记录系统控制文件的基本信息
v$controlfile_record_rection记录系统控制文件中记录文档段的信息
v$parameter记录系统各参数的基本信息
dba_data_files记录系统数据文件以及表空间的基本信息
v$filestat记录来自控制文件的数据文件信息
v$datafile_header记录数据文件头部分的基本信息
dba_segments记录段的基本信息
dba_extents记录数据区的基本信息
v$thread记录日志线程的基本信息
v$log记录日志文件的基本信息
v$logfile记录日子文件的概要信息
v$archived_log记录归档日志的基本信息
v$archive_desc记录归档日志文件的路径信息
v$instance记录实例的基本信息
v$system_parameter记录实例当前有效的参数信息
v$sga记录sga区的大小信息
v$sgastat记录sga的使用统计信息
v$db_object_cache记录对象缓存的大小信息
v$sql记录sql语句的详细信息
v$sqltext记录sql语句的语句信息
v$sqlarea记录sql区的sql基本信息
v$bgprocess显示后台进程信息
v$session显示当前会话信息

3.常用动态性能视图
v$fixed_table 显示当前发行的固定对象的说明
v$instance 显示当前的实例信息
v$latch 显示锁存器的统计数据
v$librarycache 显示有关库缓存性能的统计数据
v$rollstat 显示联机的回滚段的名字
v$rowcache 显示活动数据字典的统计
v$sga 显示有关系统全局区的总结信息
v$sgastat 显示有关系统全局区的详细信息
v$sort_usage 显示临时段的大小及会话
v$sqlarea 显示sql区的sql信息
v$sqltext 显示在sga中属于共享游标的sql语句类容
v$stsstat 显示基本的实例统计数据
v$system_event 显示一个事件的总计等待时间
v$waitstat 显示块竞争统计数据

表空间
dba_tablespaces 表空间信息数据字典

1.创建表空间
创建表空间语法
create [temprary|undo] tablespace tablespace_name -存放排序等操作中存放的数据|用于存放数据修改之前的数据,以便撤销操作时能够恢复原来的数据。
[datafile datafile_tempfile_spacification] -数据文件的位置,名称和大小。
[blocksize number k] -表示创建非标准数据块表空间
[online|offline]
[logging|nologging] -指定存在该表空间的默认日志选项,logging生成表空间日志选项,用来记录对该表空间数据库对象的任何操作,nogging不生成表空间日志选项。
[force logging] -迫使oracle生成表空间日志选项无视logging和nologging参数。
[default storage storage] -用来设置保存在表空间中的数据库对象的默认存储参数。
[compress|nocompress] -是否对数据块中的数据进行压缩,压缩的结果是消去列中的重复制。
[permanent|temprary] -永久保存表空间中的数据库对象|临时保存数据库对象。
[extent management dictionary|local [autoallocate|uniform size number k|m]]
-决定创建的表空间为数据字典管理方式还是本地化管理方式。
[segment space management auto|manual] -表空间中段的管理方式是自动管理方式还是手动管理方式。

datafile|tempfile file_name size k|m reuse --reuse如果存在,则删除原有的重新创建
[autoextend off|on --是否允许自动扩展
[next number k|m --下次扩展的大小
maxsize unimited|number k|m]] --允许扩展的最大值
例:create tablespace temp201808
datafile 'E:use201808.dbf' size 10m
next 10m maxsize 100m
extent management local uniform size 800k; --表空间的管理方式,local为本地化管理,uniform表示表空间中盘区大小相同,都是800k,不设置默认值为64k.

2.修改表空间
2.1为表空间增加数据文件
alter tablespace temp201808
add datafile 'E:use2018081.dbf' size 10m;
2.2修改数据文件的大小
dba_free_space 了解空闲表空间空闲分区的情况。
bytes -以字节的形式列出空闲表空间的大小。
blocks -以数据块数目的形式列出空闲空间的大小。
dba_data_files了解数据文件的名称,大小和路径信息。
修改:alter database datafile 'E:use2018.dbf' resize 10m;
2.3修改数据文件的自动扩展属性
alter database datafile 'E:use2018.dbf' autoextend on maxsize 20m;
2.4修改表空间状态
表空间状态有:在线(online),离线(offline),只读(read only)和读写(read write)四种,其中在线和读写为正常状态,其他两种为非正常状态。
alter tablespace temp2018 offline[online|read only|read write];
2.5移动数据文件
步骤:(1)修改表空间为offline状态,防止其他用户进行操作。
(2)复制数据到另一个磁盘
(3)使用alter tablespace rename语句修改数据文件名称(实际上是重命名数据文件的存储目录)
alter tablespace temp201808
rename datafile 'E:use2018.dbf' to 'G:\USE20181.DBF';
(4)将表空间的状态修改为online
2.6删除表空间
语法: drop tablespace tablespace_name
[including contents] -删除表空间但是保留其中的数据库文件。
[including contents and datafiles] -删除表空间以及其中的全部内容和数据库文件。

4.2临时表空间
4.2.1创建临时表空间
create temporary tablespace temp8023
tempfile 'g:\temp8023.dbf' size 10m
extent management local;
-创建临时表空间时不使用数据文件使用临时文件。
v$tempfile 存储临时文件的数据字典视图
临时表空间的管理方式都是uniform,不能指定管理方式autoallocate否则会报错。
4.2.2修改临时表空间
增加临时文件
alter tablespace temp8023
add tempfile 'g:\temp8024.dbf' size 10m;
修改临时文件大小
alter database tempfile
'g:\temp8024.dbf' resize 15m;
修改临时文件的状态
alter database tempfile
'g:\temp8024.dbf' offline;

4.2.3临时表空间组
创建临时表空间组
create temporary tablespace tempgroup
tempfile 'g:\temp8025.dbf' size 5m
tablespace group group2018;

4.3大文件表空间
create bigfile tablespace bigfile2013
datafile 'g:\dafile2013.dbf' size 100m;
最大可以达到4G个字节的数据块大小。大表空间只能包含一个文件
4.4撤销表空间的管理
回退撤销管理(手工撤销管理)
自动撤销管理
4.4.1创建和管理撤销表空间
创建撤销表空间两种方式:创建数据库的同时创建一个撤销表空间;数据库创建完成后,创建新的撤销表空间 (一般使用第二种方式创建撤销表空间)
创建撤销表空间的语法:
create undo tablespace undotbs201830
datafile 'g:\undotbs201830.dbf' size 10m
autoextend on;
撤销表空间的修改和删除操作和临时表空间相同。
切换撤销表空间(不需要重启数据库)
alter system set undo_tablespace = undotbs201830;
查看撤销保留记录
show parameter undo;
修改撤销保留记录时间
alter system set undo_retention = 600;(10分钟)
查看撤销表空间的数据字典视图
v$undostat -撤销表空间的使用情况
v$rollstat -记录撤销表空间中各个撤销段的信息
v$transaction -记录各个事务所使用的撤销段的信息
dba_undo_extents -记录撤销表空间中每个区所对应的事务的提交时间

创建控制文件:
1.查询数据文件和日志文件,了解文件的路径和名称 v$datafile
2.关闭数据库:sql>shutdown immediate
3.备份前面查询出来的所有数据文件和日志文件-建议使用操作系统冷备份
4.启动数据库实例但不打开数据库:startup nomount
5.创建新的控制文件,在创建时指定前面查询出来的所有数据文件和日志文件。
6.修改服务器参数文件spfile中参数control_files的值,让新创建的控制文件生效。
7.打开数据库 alter database open

管理与维护控制文件:
1.备份控制文件
1.1备份为二进制文件
alter database backup controlfile
to_'f:\controlfile\a.bkp';
控制文件复制到f:\controlfile,文件名称为a.bkp
1.2备份为脚本文件
alter database backup controlfile to trace;
使用该命令创建的脚本文件路径由user_dump_dest参数指定。
通过show parameter user_dump_dest;
2.恢复控制文件
2.1关闭数据库
2.2使用一个完好的控制文件覆盖已经损坏的控制文件。通过操作系统命令实现。
2.3重新启动数据库。
3.移动控制文件
实际上是改变服务器参数的spfile中的参数control_files的值,让该参数指向一个新的控制文件的路径。
3.1修改control_file的值
alter system set control_file=
'f;\controlfile\01.ctl',
'f;\controlfile\02.ctl',
scope = spfile;
3.2关闭数据库
3.3创建新的控制文件,也就是创建现在control_files所指向的控制文件,路径和名称要绝对一致。
3.4重新启动数据库
4.删除控制文件
4.1修改control_file的值
alter system set control_files
'f;\controlfile\01.ctl',
scope = spfile;
将参数control_files所指向的控制文件由2个修改为1个,即删除了另外一个
4.2关闭数据库
4.3从磁盘上物理的删除控制文件
4.4重新启动数据库。
5.查询控制文件信息
v$controlfile,v$parameter,v$controlfile_record_section
v$controlfile 包含所有的控制文件的名称和状态信息。
v$parameter 包含系统所有初始化参数,其中包括与控制文件相关的参数control_files.
v$controlfile_record_section 包含控制文件中各个记录文档段的信息。
5.2管理日志文件
5.2.1创建日志文件组
语法:alter database database_name
add logfile [group group_name]
(file_name,file_name)
[SIZE size] [reuse]

database_name 数据库实例名称
group_name日志文件组编号。
file_name 日志文件名称
size 日志文件大小,单位K或M
reuse 如果创建的日志文件已经存在,则使用该关键字可以覆盖已有文件。
alter database add logfile group 4
(
'g:\redo01.log',
'g:\redo02.log'
)
size 10m;
创建日志文件即向日志文件组中添加日志文件
alter database add logfile member
'g:\redo03.log'
to group 4;
5.2.2
重新定义日志成员
(1)关闭数据库
(2)创建新的日志文件或将原日志文件重命名
(3)重新启动数据库但不打开数据库
(4)使用alter database rename file子句,修改日志文件的路径和名称
(5)打开数据库
5.2.3删除日志文件组及其成员
删除日志文件组成员
alter database drop logfile member
'g:\redo03.log';
删除日志文件组
alter database drop logfile group 4;
5.2.4查看日志文件信息
v$log 包含控制文件中的日志文件信息
v$logfile 包含日志文件组及其成员信息
v$log_history 包含日志历史信息
5.3管理归档日志
非归档日志模式,切换日志文件时,日志文件中的原有内容将被新的内容覆盖。
归档日志模式,切换日志文件时,系统会先对日志文件进程归档存储,之后才允许向文件中写入新的日志内容。
日志文件的归档操作由后台进程ARCn自动完成,要提高归档效率可以多启动几个归档进程。最多允许启动的归档进程个数由参数log_archive_max_progresses决定,该参数的取值范围为1~10.可以通过数据字典v$parameter了解该参数的值。修改该参数的值:
alter system set log_archive_max_progresses = 10
scope = both;
scope参数有三个可选值,memory,spfile和both,memory表示只更改当前实例运行参数,spfile表示修改服务器参数文件spfile中值得设置,both表示即修改当前实例运行的参数又修改服务器参数文件spfile中的值。
切换数据库模式:由非归档模式切换至归档模式
(1)关闭数据库
(2)启动数据库实例,但不打开数据库。
(3)alter database archivelog -将数据库的日志模式切换为归档模式。
alter database noarchivelog -将数据库的日志模式切换为非归档模式。
(4)打开数据库。
5.3.3设置归档日志的目标

posted @ 2020-10-15 13:24  AWNUygah  阅读(212)  评论(0编辑  收藏  举报