Oracle 基础

本文介绍了Oracle数据库的多种管理操作,包括启动、关闭的不同模式、参数设置、用户管理及故障排查等关键步骤。此外还讲解了检查点的工作原理及其触发条件。

sqlplus /nolog;

 

conn / as sysdba;//链接

 

startup;//读参数文件

 

clear scr;清屏

 

col name format a20;//设置显示格式

col value format a20;

 

select  name,value from parameter ;//查看参数

 

或show parameter sga_xxxx;//xxx是参数名称 建议使用这个

 

 

 -------------------------------------启动 Restricted (约束) Model

startup Restricted

 

alter system enable Restricted session ://设置用户为受限模式(主要是用来维护数据库),但是SYSTEM可以连。

 

 可以用以下方法Kill用户:

 (

desc v$Session;//此表描述

 

select sid,serial#,username from v$session;//查询所有用户有进程信息

 

alter system kill session 'sid,serial#';//kill 其中一个用户

 )

------------------------------------- 启动 -Read—only Model

start mount

 

alter database open read only //;只能读不能该

 

 --------------------------------------关闭 Database

Shut                                Model (Abort/immediate/Transactional/normal)

 

允许新的用户连接:                        N           N                   N                 N

 

等待当前用户Session END:            N           N                   N                  Y

 

等待当前用户Transcation END:      N           N                   Y                  Y

 

是否允许CHECKPOINT 和关闭文件  N            Y                   Y                  Y

 

 

比如:normal:容易会产生死锁,因为它要等其他session END退出 ;

         当有Transcation 发生时: desc v@transaction; select addr,status from v$transaction;(查询是否有Transcation );如果没有Commit。也会产生死锁。一般用immediate

 checkpoint是一个数据库事件,它将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件

  什么时候发生checkpoint?
    我们知道了checkpoint会刷新脏数据,但什么时候会发生checkpoint呢?以下几种情况会触发checkpoint。
    1.当发生日志组切换的时候
    2.当符合LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL,fast_start_io_target,fast_start_mttr_target参  数设置的时候
    3.当运行ALTER SYSTEM SWITCH LOGFILE的时候
    4.当运行ALTER SYSTEM CHECKPOINT的时候
    5.当运行alter tablespace XXX begin backup,end backup的时候
    6.当运行alter tablespace ,datafile offline的时候;
   
    增量检查点(incremental checkpoint)
    oracle8以后推出了incremental checkpoint的机制,在以前的版本里每次checkpoint时都会做一个full thread checkpoint,这样的话所有脏数据会被写到磁盘,巨大的i/o对系统性能带来很大影响。为了解决这个问题,oracle引入了checkpoint queue机制,每一个脏块会被移到检查点队列里面去,按照low rdb(第一次对此块修改对应的redo block address)来排列,靠近检查点队列尾端的数据块的low rba值是最小的,而且如果这些赃块被再次修改后它在检查点队列里的顺序也不会改变,这样就保证了越早修改的块越早写入磁盘。每隔3秒钟ckpt会去更新控制文件和数据文件,记录checkpoint执行的情况。

 

 select * from X$KCCRT where indx=0;(要用SYSDBA)

-----------------------------------------------------------Diagnostic file

1 alter_SID.log

2 background_trace_file

3 user_trace_File

通过show parameter dump;找到对应的background_dump_dest 找到alter_SID.LOG和background_trace_log日志

user_dump_dest 找到user_trace_log

 

-----------------------------------------------------------可以自订义LOG

通过show parameter sql_trace 查看此时状态

Alter session set sql_trace=true;session级的日志查看

一般不用sql_trace =true i

 

 

 

 

 

 

 

 

 

 

 

SID是System IDentifier的缩写,而ORACLE_SID就是Oracle System Identifier的缩写,在Oracle系统中,ORACLE_SID以环境变量的形式出现,在特定版本的Oracle软件安装(也就是ORACLE_HOME)下,当Oracle实例启动时,操作系统上fork的进程必须通过这个SID将实例与其他实例区分开来,这就是SID的作用。(同一个Oracle_home 不同的SID )

Oracle的实例(instance)是由一块共享内存区域(SGA)和一组后台进程(background processes)共同组成;而后台进程正是数据库和操作系统进行交互的通道,这些进程的名称就是通过ORACLE_SID决定的。

实例的启动仅需要一个参数文件,而这个参数文件的名称就是由ORACLE_SID决定的。对于init文件,缺省的文件名称是init<ORACLE_SID>.ora,对于spfile文件,缺省的文件名为spfile<ORACLE_SID>.ora,Oracle依据ORACLE_SID来决定和寻找参数文件启动实例,参数文件的缺省位置为$ORACLE_HOME/dbs(Windows上为$ORACLE_HOME/database目录)。

spfile从Oracle 9i开始引入并成为了缺省使用的参数文件,Oracle启动实例时按照以下顺序从缺省目录查找参数文件:spfile<ORACLE_SID>.ora→spfile.ora →init<ORACLE_SID>.ora。如果这3个文件都不存在,则Oracle实例将无法启动。

通过这些信息可以知道,在同一个ORACLE_HOME下,Oracle能够根据ORACLE_SID将实例区分开来;但是如果在不同的ORACLE_HOME下,Oracle将无法屏蔽相同名称的ORACLE_SID,也就是说即使在同一台主机上,Oracle也是能够创建相同ORACLE_SID的实例的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值