Oracle 9i DBA Fundamentals I & II可谓是Oracle官方教材的经典之作,历久弥新。虽然Oracle的最新版本是11g,但是这些教材依然是Oracle入门的最佳教材。
视频教材:
http://www.boobooke.com/bbs/viewthread.php?tid=1857&extra=page%3D1
文本教材:
http://www.boobooke.com/bbs/viewthread.php?tid=1857&extra=page%3D1
1-10总结:(建议大家自己好好看看视频,收获会很多)
Oracle Architecture Components (Oracle结构组件)
1.由哪些组件组成
2.建立连接时需要哪些组件
ORACLE由两部分:实例和数据库
实例由以下组成: SGA,Shared pool,Database buffer cache,Redo log buffer cache.
数据库由物理文件组成,其中必须有的文件是:数据文件,控制文件,重做日志
另外还有:参数文件,口令文件,归档日志文件(这三个不是必须的)
用户建立连接后,启动一个服务器进程,用来将来代替用户进程完成SQLCOMMAND,再通过ORACLE实例实现对数据库的相关文件进行改变(数据进行读取或修改).
用户进程不可以直接操作数据库,而必须通过建立连接后,再通过服务器进程来完成.
ORACLE SERVER 由两个部分组成,
1.INSTANCE:又由内存结构和后台进程
2.DATABASE:又由数据文件,日志文件和控制文件组成<这三个文件是必需的>.
CONTROL FILE是用来连接实例和DATABASE的
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP NOMOUNT
SQL>ALTER DATABASE MOUNT
以上三个过程就是通过CONTROL FILE来连接实例和数据库.
SQL>ALTER DATABASE OPEN
在OPEN的过程对DATABASE的数据文件和重做日志文件进行一次性的验证,验证它们的状态.
ORACLE INSTANCE:存取数据库的一个手段
一个DATABASE与INSTANCE之间是1:N的关系,一个INSTANCE只能操作一个DATABASE,由内存结构(共享池,
BUFFER CACHE,REDO LOG BUFFER CACHE)及相应的进程结构组成(PMON<程序监控进程>,SMON<系统监控进
程>,CKPT<检查点进程>)
SQL>SHOW SGA ---显示DATABASE内存结构信息
SQL>SET WRAP OFF
SQL>SET LINESIZE 200
以上这两个是设置行宽
SQL>SELECT * FROM V$BGPROCESS;
将看到在这个系统中所有可能使用到的进程,其中PADDR并不每个进程都分配到有效的地址,即并不是每个进程都是必须的.
SQL>SELECT * FROM V$BGPROCESS WHERE PADDR<>’00’
将显示所有必需的进程.
ESTABLISHING A CONNECTION AND CREATING A SESSION
连接到ORACLE实例包括建立一个用户连接及创建会话.
SQL>SELECT * FROM V$CONTROLFILES; --显示现系统下由几个控制文件组成
SQL>SELECT * FROM V$DATAFILE; --显示由几个数据文件组成
SQL>SELECT * FROM V$LOGFILE; --显示由几个日志文件组成
ORACLE MEMORY STRUCTURE (内存结构)
由两部分组成:
1.SGA
SGA是动态的,其最大值由SGA_MAX_SIZE指定,SGA的内存由SGA COMPONENTS来动态调整.
2.PGA 是不共享的,即其包含的信息是不一样的,有两个可享的内存可以由SGA配置
<1> LARGE POOL
<2> JAVA POOL
SQL>SHOW PARAMETER SHARED
SQL>SHOW PARAMETER DB_CACHE
SQL>SHOW PARAMETER LOG
以上三个命令是用于查看相关内存信息
SQL>ALTER SYSTEM SET DB_CACHE_SIZE=20M;
所有内存大小总和不能大于SGA_MAX_SIZE的值,当提示信息出现?号或乱码时,是由于系统的语言问题.
可以通过ALTER SESSION SET NLS_LANGUAGE=’AMERICAN’或ALTER SESSION SET NLS_LANGUAGE="SIMPLE
CHINESE"
SHARED POOL (共享池)
含:<1>LIBRARY CACHE 库缓存
<2>DATA DICTIONARY CACHE 数据字典缓存,有的地方又称行CACHE,由SHARED_POOL_SIZE指定大小.
SQL>ALTER SYSTEM SET SHARED_POOL_SIZE=64M;
LIBRARY CACHE 主要为提高代码的共享,存储的是最近使用的SQL和PL/SQL代码.
<1>.用最近最少使用(LRU)算法
<2>.包括两个结构 1:共享SQL代码 2:共享PL/SQL代码
<3>.不可直接定义,而由SHARED POOL SIZE决定.
DATA DICTONARY CACHE.
如:SQL>SELECT * FROM AUTHORS;
执行此命令的过程是:首先确认是否存在AUTHORS,,然后确认字段存不存在,再检查语法,最后验证权限,而
这些信息就属于DATA DICTIONARY CACHE的内容.其包含的信息有:DATABASE FILES,表,索引,字段,用户,
权限和其他数据库对象.
<1>.主要用来改变系统的感应时间和性能.
<2>.通过改变SHARED POOL大小来设置,DATA DICTIONARY CACHE不能单独设置大小.
用到的命令:
sqlplus /nolog (无日志启动sqlplus)
conn / as sysdba
startup
show parameter pga_ag;(查参数)
clear (清除屏幕)
ls -l
env | grep ORACL
env | grep PATH
cp init.ora $ORACLR_HOME/dbs/initdba01.ora
pwd
mkdir old
mv * old
cd old
rm -f initwilson.ora
creat spfile from pfile
strings spfile more (strings去提取二进制文件可以读的字符)
ps -ef | grep oracle
!(从sqlplus切换到shell)
alter system set fet = 200;(默认是scope是both,memory和spfile两个都改)
alter system set fet = 2oo scope = memory;
clear scr(清除shell)
desc v$parameter
col name format a10
col value format a10
shutdown immediate;
startup pfile=$ORACLE_HOME/doc/abc.ora;
ipcs
alter database mount;
alter database db01 mount;
startup nomount;
设置系统为只读模式
-----------------------
startup mount;
alter database db01 open read only;
----------------------
startup restrict;(把数据库设置成受限状态)(管理员来维护系统)
alter system enable restricted session;(数据库是open状态。直接修改为受限
状态)
踢出别的用户。去查session表,然后kill掉
desc v$session;
select saddr,sid,serial# from v$session;
select sid ,serial#,username form v$session;
alter system kill session '15,6';(15是sid,6是serial#);
create user boobooke identified by bbk;
grant connect, resource to boobooke;
sqlplus bookbooke/bbk@oracle9ivm
select * from dual;