Oracle体系结构(二)

Oracle物理结构

控制文件(Control File)、数据文件(Data File)、联机Redo日志文件(Online Redo log Files)、参数文件(Parameter file)、归档日志文件(Archive log files)、密码文件(Password file)

#查看服务器参数
select name,value,ismodified from v$parameter;
show parameter
#修改服务器参数的数据块大小(或使用OEM工具)
alter system set db_block_size=4096;

#查看数据文件信息(dba_data_files)
select file_name,tablespace_name from dba_data_files;
#查看临时数据文件信息(dba_temp_files或v$tempfile)
select file_name,tablespace_name from dba_temp_files;

#查看警告文件所在路径
select name,value from v$parameter where name='background_dump_dest';
#查看跟踪文件所在路径
select name,value from v$parameter where name='user_dump_dest';

新增控制文件的步骤

#控制文件记录数据库的创建时间、数据文件和日志文件的位置
#作用是指导数据库找到数据文件、日志文件并将数据库启动到 open 状态

#查看控制文件信息(v$controlfile)
select name from v$controlfile;
show parameter control;
#关闭DB,并cp复制一个新的文件
shutdown immediate
#nomount模式启动DB
startup nomount
#修改指定系统的控制文件,静态参数需要指定spfile并重启
alter system set control_files='xxoo','ooxx' scope=spfile;
#关闭DB
shutdown immediate
#启动DB(修改出错会导致无法正常启动)
startup

重做日志文件

#大小转兆查看信息
select group#,members,status,bytes/1024/1024 as MB from v$log;
#查看日志文件信息(v$logfile)
select group#,member,status from v$logfile;
#status的字段值有INACTIVE:已使用,CURRENT:正在使用,UNUSED:尚未使用。重做日志组会循环使用-覆盖
#手动切换重做日志,每次切换即进行一次归档
alter system switch logfile;
#对已有组添加重做日志
alter database add logfile member '存储位置\FILENAME.log' to group GROUPNUM;
#增加新组,位置任意,多个文件需用括号包起来,并指定大小
alter database add logfile group GROUPNUM ('存储位置\FILENAME.log','存储位置2\FILENAME.log') size 50M;
#删除组
alter database drop logfile group GROUPNUM;

归档日志启停

#查看归档模式(v$database)
select dbid,name,log_mode from v$database;
archive log list;
#查看归档日志所在路径
show parameter log_archive_dest;

#关闭DB
shutdown immediate
#开启数据库到mount阶段
startup mount
#开启归档模式,关闭则为noarchivelog
alter database archivelog;
#将数据库正常开启
alter database open;

#指定归档目录,1-存在多个归档文件可供选择,归档位置未指定时默认使用变化的块存储区(不建议默认):DB_RECOVERY_FILE_DEST
alter system set log_archive_dest_1='location=/home/oracle/arch';

Oracle逻辑结构

表空间、段、区、块

  • 数据库由表空间构成
  • 表空间由段构成
  • 段由区构成
  • 区由连续的Oracle块(8192字节 = 8k(默认值))构成
#表空间(系统表)信息
select * from v$fixed_view_definition;

#删除表空间
drop tablespace TABLESPACENAME including contents and datafiles;
#创建用户时指定默认表空间和临时表空间
create user USERNAME identified by USERPWD default tablespace TABLESPACENAME temporary tablespace TEMPNAME;

#查看数据块大小
show parameter block
select name,value from v$parameter where name='db_block_size';

目的:提高数据库的效率

在这里插入图片描述

Oracle实例结构

内存结构

  • shared pool:共享池
  • data buffer:数据缓冲区
  • log buffer:重做日志缓冲区
  • 共享池
  • 大型池
  • Java池
  • 流池
#查看大型池缓冲区大小
show parameter large_pool_size;
#查看共享池
show parameter shared_pool_size;
#查看PGA信息
show parameter pga;

进程结构(后台进程)

  • pmon:Process Monitor Process 进程监控进程
  • smon:System Monitor Process 系统监控进程
  • ckpt:Checkpoint Process 检查点进程(催促dbwr刷新脏块)
  • dbwn(dbwr):Database Write Process 数据写进程,将脏数据写盘(n取值:0-9 a-j,共可并行20个)
  • lgwr:Log Wirte Process 日志写进程(比数据写更重要:先写日志,再写数据)
  • arcn(arch):归档进程
#查看实例进程信息
select name,description from v$bgprocess;

内存管理

  • 自动内存管理
  • 自动共享内存管理
  • 手工共享内存

文本初始化参数文件:pfile

服务器端初始化(二进制)参数文件:spfile

动态参数的修改,静态参数修改需重启生效

#实例修改(全局有效),scope默认both 
memory内存修改-立即生效,重启失效,
spfile服务器端初始化参数修改-重启生效(针对静态参数),
both-立即生效,重启仍有效
alter system set xxoo=ooxx scope='spfile/memory/both'
#会话修改(当前登录用户有效,退出后失效)
alter session set xxoo=ooxx
end
  • 作者:suoyue_zhan(联系作者)
  • 发表时间:2021-07-13 07:21:57
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转载栈主转载的文章,请附上原文链接
  • 公众号转载:请在文末添加作者公众号二维码(公众号二维码见右边,欢迎关注)
  • 评论