《oracle数据库实用教程课件.ppt》由会员分享,可在线阅读,更多相关《oracle数据库实用教程课件.ppt(156页珍藏版)》请在三一办公上搜索。
1、欢迎参加学习,ORACLE数据库实用教程 trainingasiainfo 亚信科技(中国)有限公司 培训中心,欢迎参加学习 ORACLE数据库实用教程,什么是数据库?,数据库是管理数据的一种方法,如何组织和存储数据,如何高效地获取和处理数据。,什么是数据库?数据库是管理数据的一种方法,,数据管理的发展的3个阶段,人工管理阶段无数据管理的专用软件,数据和程序在一起文件系统阶段软件进行数据管理,程序和数据分离数据冗余度大,数据和程序缺乏独立性文件之间不能建立联系数据库系统阶段数据具有更高的独立性数据库管理系统-DBMS:数据库的定义、操作和管理,数据管理的发展的3个阶段人工管理阶段,关系型数据库
2、,关系型数据库 支持关系模型,以关系(表)形式组织数据。 著名的关系型数据库 DB2,ORACLE,INFORMIX,SYBASE等。关系型数据库=Datafile+RDBMS,RDBMS,OS,DB,datafile1,datafile2,关系型数据库关系型数据库RDBMSOSDBdatafile1,实验环境,%telnet 200.1.1.115 用户名/口令:oracle8/oracle8%sqlplus scott/tigersqlconnect scott/tigersqlshow usersqlquit,实验环境%telnet 200.1.1.115,表,表-关系型DB数据组织的形
3、式报道表空表-表的结构白纸-设计一张表-多少项内容(列)-画表时,每项多宽列-字段;列类型( 宽、 类型)-数据类型(长度、类型)行-记录表=列+行-字段+记录,姓名,编号,单位,性别,表表-关系型DB数据组织的形式姓名编号单位性别,表,看scott用户有哪些表然后查看其中一个表的结构和内容#sqlplus scott/tigersqlselect table_name from tabs; (user_tables)sqldesc emp;sqlselect * from emp;,表看scott用户有哪些表,表,表结构(DDL)create tablealter tabledrop tab
4、letruncate table,表内容(DML)insertupdatedelete,desc table_name,select field_name from table_name,表表结构(DDL)表内容(DML)desc table_na,基本数据类型,CHAR(n)n=255VARCHAR2(n)n=2000LONG(n)n=2G,NUMBER(m,n)m精度(1-38) n小数后位数RAW(n)二进制数据 n=2000LONG RAW(n)n=2G,DATE 缺省形式DD-MON-YYROWID内部数据类型 (数据库序号.行序号.数据文件号)NULL,字符串用单引号括起来,可以存
5、储声音、图片,基本数据类型CHAR(n)n=255NUMBER(,日期型数据的格式说明,Daysdd number12dyabbreviated fridayspelledoutFridayddspthspelled out,ordinaltwelfthMonthmmnumber03monabbreviatedmarmonthspelled outmarchYearyyyear87yyyyyear and century1987,日期型数据的格式说明Days,日期型数据的格式说明,缺省日期型:dd-mon-yyselect sysdate from dual; 系统:date,time改变日期
6、形式:1.本次会话SQL ALTER SESSION SET NLS_DATE_FORMAT=YY-MM-DD;2.下次启动后永久生效-改文件设置INITSID.ORA中的NLS_DATE_FORMAT参数可改变缺省日期的格式。,日期型数据的格式说明缺省日期型:dd-mon-yy,表结构,1建立sqlcreate table table_name (column_name1 datatype not null|unique, column_name2 datatype not null|unique, column_name2 datatype not null|unique);,表结构1建立
7、,表内容,1.插入记录sqlinsert into table_name column_name-a, ,column_name-x values (column_value-a,column_value-x);,表内容1.插入记录,表结构,2.变更1修改 sqlalter table table_name modify(column_name datatype );2增加 sqlalter table table_name add(column_name datatype );,表结构2.变更,表内容,2.修改记录sqlupdate table_name set column_name1=
8、values1,column_name2=values2 where search_conditions;,表内容2.修改记录,表内容,3.删除记录sqldelete from table_name where search_conditions;sqltruncate table table_name;,表内容3.删除记录,表结构,3.删除1删结构及内容sqldrop table table_name;,表结构3.删除,事物处理,事物处理命令提交:commit回滚:rollback保留点:savepointSQL SAVEPOINT CLARK_SAL;SQL ROLLBACK TO SAV
9、EPOINT BLAKE_SAL;,事物处理事物处理命令,2. 命令修改,a 当前行末追加c/old/new 更改cl buff 清缓存del 删除(n, last, m n)i 加入(i, i text),save filename 保存edit、vi filename 编辑,start filenamefilename,3.保存命令,4.执行命令,1.显示命令,l 显示(l,l n ,l m n,l last),SQL*PLUS,2. 命令修改a 当前行末追加save filena,练习,建表注意利用SQL命令缓冲区插入、修改、删除数据(注意条件)提交、回滚,练习建表,练习,表名txl-n
10、结构:学号 数字型 3 唯一 姓名 可变长字符串 10 非空 出生 日期型 电话 数字型 10查看结构、查看内容,练习表名txl-n,练习,1增加字段 单位 可变长字符串 122修改字段 出生 可变长字符串 5(原日期),练习1增加字段 单位 可变长字符串 12,练习,插入数据 至少5条修改数据 (根据条件)删除数据(根据条件),练习插入数据 至少5条,SQL语句中的函数,字符函数substr、length 、lower 、rtrim 、ltrim数值函数abs 、mod 、round 、trunc 、nvl日期函数months_between 、add_months 、next_day转换函
11、数to_char 、to_date,SQL语句中的函数字符函数,数据查询语言(DML)命令,SELECT语句SELECT FROM WHERE GROUP HAVING ORDER BY ,数据查询语言(DML)命令SELECT语句,简单查询,无条件查询条件查询排序统计分组统计,简单查询无条件查询,分组函数(统计函数),完成对一组记录的统计处理count(*| distinct|all x): 行数sum(x):数据列求和avg(distinct|all x):数据列平均值max(x):列的最大值min(x): 列的最小值 除count(*)外,当使用分组函数时,均忽略空值,分组函数(统计函数
12、)完成对一组记录的统计处理,分组函数(统计函数),练习,1 工资的平均值2 奖金的最大值3 工资的总和4 最低工资5 表中数据行的总数6 有多少个不同的部门,分组函数(统计函数)练习1 工资的平均值,分组查询与排序,数据分组:对有重复值的列进行分组。查询: SELECT col1,col2,分组函数 FROM table1 WHERE conditions GROUP BY col1,col2 HAVING condition ORDER BY col1,col2 SELECT选择的列,必须出现在GROUP BY 子句中;GROUP BY 子句中的列只能是SELECT选择的列或分组函数中的列。
13、顺序无关。,分组查询与排序数据分组:对有重复值的列进行分组。,分组查询,练习:1)编写SQL语句,从EMP表中返回-部门编号、部门平 均工资。2)编写SQL语句,从EMP表中返回-部门编号、部门工资总和条件是:部门工资总和大于8000。3)编写SQL语句,从EMP表中返回-部门编号、部门平均工资条件是:除了部门10,部门工资平均值大于1500的部门的情况。,分组查询练习:,多表查询-连接,等值连接非等值连接-自连接外连接,多表查询-连接等值连接,select ename,dnamefrom emp e,dept dwhere e.deptno=d.deptno,等值连接(EQUIJOIN),基
14、于列的相等性来连接两张或多张表。 题目: 查找雇员姓名及所在部门的名称.,select ename,dname 等值连接(EQUIJO,非等值连接(NON-EQUIJOIN),基于列的不等性来连接两张或多张表。题目:请查找雇员SMITH的工资和工资等级情况, 希望显示的信息-员工名、工资、工资等级.,非等值连接(NON-EQUIJOIN)基于列的不等性来连接两,非等值连接(NON-EQUIJOIN),请分析下列语句:SELECT ENAME,SAL,GRADE FROM EMP,SALGRADWHERE ENAME=SMITH;,SELECT * FROM SALGRAD;,SELECT EN
15、AME,SAL,GRADE FROM EMP,SALGRADWHERE ENAME=SMITHAND SAL BETWEEN LOSAL AND HISAL,非等值连接(NON-EQUIJOIN)请分析下列语句:SEL,等值连接和非等值连接,题目:查找工资级别为2的雇员的信息 。 要求显示的信息:雇员的姓名,部门的名称, 工资、工资级别,SELECT ENAME,DNAME,SAL,GRADEFROM EMP,DEPT,SALGRADEWHERE GRADE=2 AND SAL BETWEEN LOSAL AND HISAL AND EMP.DEPTNO=DEPT.DEPTNO;,等值连接和非
16、等值连接题目:查找工资级别为2的雇员的信息 。,自我连接(SELF JOIN),将表连接到自身在SQL语句中一个表暂时重新命名为两个表。,题目:EMP中查找员工和其经理的对应关系:要求-员工名称和其经理的名称,同一基表的不同行做联接,如同两个独立的基表,在FROM子句中至少要为一个基表起别名,以区别联接条件中的列名,自我连接(SELF JOIN)将表连接到自身同一基表的不同行,自连接(SELF JOIN),SELECT WORKER.ENAME, MANAGER.ENAME MANAGERFROM EMP WORKER, EMP MANAGERWHERE WORKER.MGR=MANAGER.
17、EMPNO;,自连接(SELF JOIN)SELECT WORKER.E,外连接(OUTER JOIN),用于返回存在在一张表上 的所有数据行,甚至相对 应的行 在连接的表中不存 在。(+)号用于在查询中的 OUTERJOIN。 带(+)的表是那些没有 相应行的表。,外连接(OUTER JOIN)用于返回存在在一张表上,外连接(OUTER JOIN),题目1:EMP中查找员工和其经理的对应关系: 要求-员工名称和其经理的名称,请注意使用外连接及(+)放置位置。,SELECT WORKER.ENAME, MANAGER.ENAME MANAGERFROM EMP WORKER,EMP MANAG
18、ERWHERE WORKER.MGR=MANAGER.EMPNO(+);,外连接(OUTER JOIN)题目1:EMP中查找员工和其经,外连接(OUTER JOIN),题目2:查找哪些部门有叫SMITH的人 显示:雇员名称、部门名称(所有部门都要列出来),ENAME DNAME- - ACCOUNTINGSMITH RESEARCH SALES OPERATIONS,SELECT ENAME,DNAMEFROM EMP E,DEPT DWHERE E.DEPTNO(+)=D.DEPTNO AND E.ENAME(+)=SMITH;,外连接(OUTER JOIN)题目2:查找哪些部门有叫SMI,
19、外连接(OUTER JOIN),题目3:查找哪些部门没有叫SMITH的人 要求显示信息:雇员名称、部门名称,ENAME DNAME- - ACCOUNTINGSMITH RESEARCH SALES OPERATIONS,select ename,dnamefrom emp e,dept dwhere e.deptno(+)=d.deptnoand e.ename(+)=SMITHand e.ename is null,外连接(OUTER JOIN)题目3:查找哪些部门没有叫SM,子查询,单行值子查询多行值子查询多列子查询相关子查询,子查询单行值子查询,单行值子查询,工资高于7698号雇员,并
20、且工种与他相同的雇员情况SQLSELECT ENAME,SAL,JOB FROM EMP WHERE SAL(SELECT SAL FROM EMP WHERE EMPNO=7698) AND JOB=(SELECT JOB FROM EMP WHERE EMPNO=7698);,单行值子查询工资高于7698号雇员,并且工种与他相同的雇员情,多行值子查询,谓词IN, NOT IN哪些部门没有叫SMITH的雇员。SQL select dept.deptno,dname,loc from dept 2 where dept.deptno not in 3 ( select deptno from
21、emp 4 where ename=SMITH);,多行值子查询谓词IN, NOT IN,多行值子查询,ANY: 子查询返回结果中的任一值满足条件即可。ANY前可以使用!=、=、 SELECT EMPNO,ENAME,SAL 2 FROM EMP 3 WHERE SALANY(SELECT SAL FROM EMP 4 WHERE JOB=SALESMAN) 5 AND JOB!=SALESMAN;,多行值子查询ANY: 子查询返回结果中的任一值满足条件即,多行值子查询,ALL: 子查询返回结果中的所有值满足条件才行。查找工资高于20号部门所有雇员的人员信息。SQL SELECT EMPNO,
22、ENAME,SAL FROM EMP 2 WHERE SALALL( SELECT SAL FROM EMP WHERE DEPTNO=20);也可表达为:SQL SELECT EMPNO,ENAME,SAL FROM EMP 2 WHERE SAL( SELECT MAX(SAL) FROM EMP WHERE DEPTNO=20);,多行值子查询ALL: 子查询返回结果中的所有值满足,多行值子查询,EXISTS: 子查询至少返回一行时条件成立。NOT EXISTS:子查询不返回任何行时条件成立。用途确定一个表中的哪些信息在另一个表中没有匹配。用NOT EXISTS代替NOT IN,多行值子
23、查询EXISTS: 子查询至少返回一行时条,多列子查询,例:查出工资、奖金与20号雇员匹配的人员。SQL select ename from emp where (nvl(comm,0),sal) in (select nvl(comm,0),sal from emp where deptno=20);,多列子查询例:查出工资、奖金与20号雇员匹配的人员。,相关子查询,例:查出工资、奖金与20号雇员匹配的人员。SQL select ename from emp where (nvl(comm,0),sal) in (select nvl(comm,0),sal from emp where d
24、eptno=20);,相关子查询例:查出工资、奖金与20号雇员匹配的人员。,其它查询,集合UNION INTERSECTMINUS树查询,其它查询集合,UNION,UNION:将表和视图中的记录合并在一起。所有部门中有哪些雇员的工资超过2OOO?SQL select * from emp where sal2000SQLselect ename,sal from dept10 where sal2000 union select ename,sal from dept20 where sal2000 union select ename,sal from dept30 where sal200
25、0;,UNIONUNION:将表和视图中的记录合并在一起。,视图,SQL create view dept10 as 2 select ename,job,sal from emp 3 where deptno=10;dept20、dept30的创建过程同dept10,视图SQL create view dept10 as,INTERSECT,返回查询结果中相同的部分。哪些部门有相同的工种?SQLselect distinct a.job from emp a,emp b where a.deptnob.deptno and a.job=b.jobSQL select job from dep
26、t30 intersect select job from dept20 intersect select job from dept10;,INTERSECT返回查询结果中相同的部分。,MINUS,返回第一个查询结果中与第二个查询结果不相同的那部分行记录 有哪些工种是在财会部有,而在销售部中没有?SQLselect job from emp where deptno=10 and job not in (select job from emp where deptno=30);SQL select job from dept10 minus select job from dept30;,M
27、INUS返回第一个查询结果中与第二个查询结果不相同的那部分,子查询注意,子查询必须用括号括住;子查询必须只有一列,或者子查询的多列与主查询中用括号括起来的多个列连接;单行值子查询可以使用单值或多值运算符,多行子查询必须使用多值运算符;BETWEEN AND不能用于子查询;子查询中不能使用ORDER BY子句;,子查询注意,测试操作运算符,单值: =、=、 LIKE、IS NULL、IS NOT NULL。多值: IN、NOT IN; (BETWEEN AND、NOT BETWEEN AND) ANY、NOT ANY; ALL、NOT ALL; EXISTS、NOT EXISTS。,测试操作运算
28、符单值: =、=、=、!= 、=、,ORACLE数据库体系结构,ORACLE数据库的存储结构ORACLE数据库的软件体系结构,1. 逻辑存储结构2. 物理存储结构,1. 实例2. Oracle 8网络* 锁机制和SCN,ORACLE数据库体系结构ORACLE数据库的存储结构1.,数据库存储结构,物理结构是实际数据的存储单元,例如数据库文件逻辑结构是数据概念上的组织,例如表空间 因为物理和逻辑结构是分开的,数据物理存储的管理并不影响逻辑结构,能灵活的独立管理。,数据库存储结构物理结构,表空间和数据文件,表空间和数据文件,由组成数据库的操作系统文件决定数据库的文件提供了数据库信息的实际物理存储三种
29、类型的文件控制文件:记录数据库的物理结构数据文件:包括全部数据库数据日志文件:记录对数据库所做的修改,物理结构-数据库文件,由组成数据库的操作系统文件决定物理结构-数据库文件,Oracle数据库结构组成,Parameter File,Datafiles,Control Files,Redo Log Files,Oracle Database,Oracle数据库结构组成 Parameter FileD,物理结构-控制文件,控制文件,物理结构-控制文件控制文件,物理结构-控制文件,控制文件,物理结构-控制文件控制文件,物理结构-控制文件,1. $ORACLE_HOME/dbs目录下,ls *.or
30、a : initTX08.ora configTX08.ora control_files = (/data1/oracle8/oradata/TX08/control01.ctl, /data1/oracle8/oradata/TX08/control02.ctl, /data1/oracle8/oradata/TX08/control03.ctl) 2. SQL select * from V$controlfile;,物理结构-控制文件1. $ORACLE_HOME/dbs目录,物理结构-日志文件,联机重做日志文件,归档日志文件,物理结构-日志文件联机重做日志文件归档日志文件,以ORAC
31、LE FOR SOLARIS为例:数据文件:mount_point/oradata/ora_sid/system01.dbfmount_point/oradata/ora_sid/tools01.dbfmount_point/oradata/ora_sid/users01.dbfmount_point/oradata/ora_sid/temp01.dbfmount_point/oradata/ora_sid/rbs01.dbf控制文件:mount_point/oradata/ora_sid/control01.ctlmount_point/oradata/ora_sid/control02.c
32、tlmount_point/oradata/ora_sid/control03.ctl日志文件:mount_point/oradata/ora_sid/redoora_sid01.logmount_point/oradata/ora_sid/redoora_sid02.logmount_point/oradata/ora_sid/redoora_sid03.log,以ORACLE FOR SOLARIS为例:,逻辑组成,多个表空间(tablespace)组成一个表空间是一个逻辑存储区数据库模式(schema)对象模式是对象的集合。模式对象直接涉及数据库数据的逻辑结构 ,包括表、视图、序列、存储
33、过程、同义词、索引等,逻辑存储结构包括表空间、段(segment)、区(extent)、块(block),指明如何使用数据库物理空间。,逻辑组成多个表空间(tablespace)组成逻辑存储结构包,表空间的几个概念,表空间分类: System表空间、其它表空间只读表空间、可读写表空间 表空间的状态: 脱机、联机-控制数据的可用性表空间大小的管理:建立、增加、修改,表空间的几个概念表空间分类:,表空间的几个概念,表空间的状态: 脱机、联机-控制数据的可用性SQL alter tablespace name offline normal;SQL select * from user_tablesp
34、aces;SQL alter tablespace test online;SQL select table_name , tablespace_name from tabs;,表空间的几个概念表空间的状态: 脱机、联机-控制数据的,单一表空间-system表空间,单一表空间-system表空间,多个表空间-system表空间和其它表空间,多个表空间-system表空间和其它表空间,表空间中数据文件的自动增长,表空间中数据文件的自动增长,表空间的物理存储区-数据文件,表空间的物理存储区-数据文件,数据库对象的物理存储区-段,数据库对象的物理存储区-段,例子:表空间与表空间中对象,CREATE
35、TABLESPACE user_dataDATAFILE datauser1Tx08.dbf SIZE 5MONLINEDEFAULT STORAGE (INITIAL 10KNEXT 10KMINEXTENTS 2MAXEXTENTS 50PCTINCREASE 0 );,例子:表空间与表空间中对象CREATE TABLESPACE,逻辑结构段、区和数据块,数据库空间的分配单元是段、区和数据块。段:决定数据库对象使用的全部区的集合。区:由连续的数据块的集合。块:Oracle数据库磁盘存取的最小的单元。,逻辑结构段、区和数据块数据库空间的分配单元是段、区和数据块,保存表和簇的所有数据的区的聚集
36、保存特殊索引的所有数据的区的聚集,1.数据段,2.索引段,逻辑结构段类型,保存表和簇的所有数据的区的聚集1.数据段2.索引段逻辑结构,4.临时段,回滚段记录一个事务的回滚数据。事务可以使用提交或回滚结束。回滚即撤消事务的全部作用,就象事务从未发生过。要实现回滚,必须跟踪事务所更改的数据,直到提交或回滚。保存属于临时对象的数据的区的聚集SQL语句经常要求临时工作区。例如,当为一个大表创建索引时,必须分配临时空间,排序全部的索引项;当处理一条需要临时工作空间的SQL,就从数据库的表空间中分配小的临时段。语句完成后,将段释放回表空间。,3.回滚段,逻辑结构段类型,4.临时段回滚段记录一个事务的回滚数
37、据。3.回滚段逻辑结构,查询有哪些类型的段:SQL select distinct segment_type from dba_segments;(以SYS和SYSTEM用户身份登录),逻辑结构段类型,查询某一用户在某一表空间中段的占有情况:SQL column segment_name format a10SQL select * from user_segments;SQL select * from user_segments where tablespace_name=TEST;,查询有哪些类型的段:逻辑结构段类型查询某一用户在某一表空间,数据段每张非聚簇表有一个单独的数据段来存放所有
38、的数据。SQL select segment_name from dba_segments where segment_type=TABLE;,逻辑结构段类型,索引段每个索引有单独的索引段来存放数据。SQL select segment_name from dba_segments where segment_type=INDEX;ROLLBACKTEMPORARY,数据段逻辑结构段类型索引段,逻辑结构区,当创建新的数据对象(表、索引等)时,Oracle为对象的段分配一个或多个区。区是存储对象段的表空间数据文件中的一系列连续的数据块。,逻辑结构区当创建新的数据对象(表、索引等)时,Oracle
39、,逻辑结构区,区的设置(决定区的参数)创建段时,可以决定分配区的数目。maxextents 最大分配的区数,minextents 最小分配的区数可以控制区的大小。能够设置段的初始区间和后续区间的大小initial 最初分配的空间数(缺省为10k,5个数据块)next 下一步分配的空间数pctincrease 增长率,指数级增长,逻辑结构区区的设置(决定区的参数),逻辑结构区,SQL select * from user_extents;SQL select * from dba_extents;(SYS用户和SYSTEM用户),逻辑结构区SQL select * from user_,逻辑结构
40、数据块,最小的磁盘存取单元,当操作一个数据库时,Oracle使用数据块存储和提取磁盘上的数据。 当查询一个表时,Oracle将含有查询结果集记录的全部数据快读取到服务器的内存中。由一个或多个O/S 块组成在数据库创建时设定块大小,块大小必须等于O/S 块的大小或它的倍数。 如果服务器的操作系统块大小是512K,数据块大小可以是512K、1024K和2048K等。,逻辑结构数据块最小的磁盘存取单元,当操作一个数据库时,Or,Inserts,Inserts,Inserts,Inserts,1,2,3,4,PCTFREE=20,80%,80%,40%,逻辑结构 数据块空间,PCTUSED=40,In
41、sertsInsertsInsertsInserts12,Tablespace,Database,Location of,Free,Extent,Used,Made up of,I n,Location of,Instance,DB Block,Part of,Made up of,OS Block,Controlling,Controlled by,File,Logical Disc,Part of,Made up of,Part of,Made up of,Made up of,Part of,Made up of,Part of,Part of,Part of,数据库结构组成,Made
42、up ofPart ofTemporaryInde,实例,实例,实例=PGA+SGA+后台进程,实例=PGA+SGA+后台进程,程序全局区(PGA),程序全局区(PGA)用于保存服务器进程的数据和控制信息。当用户进程要连接到Oracle数据库服务器时,会在实例中为其分配相应的服务器进程。,程序全局区(PGA)程序全局区(PGA),SGA组成,Shared Pool,Database Buffer Cache,Redo LogBuffer,System Global Area(SGA),Shared SQL Areas,Data Dictionary,SGA组成Shared PoolDataba
43、se Buffe,系统全局区(SGA),1.数据库高速缓存(Data Block Buffer Cache),系统全局区(SGA)1.数据库高速缓存(Data Block,系统全局区(SGA),2.重做日志缓冲区(Redo Log Buffers),系统全局区(SGA)2.重做日志缓冲区(Redo Log B,系统全局区(SGA),3.数据字典高速缓存(Dictionary Cache),该高速缓存用于存放最近使用和经常使用的数据字典信息。当下次需要这些信息时,就可以直接从数据字典高速缓存中读取到这些信息,从而提高系统性能.,系统全局区(SGA)3.数据字典高速缓存(Dictionar,系统全
44、局区(SGA),共享SQL池用于保存SQL语句的执行计划和分析树。当执行SQL语句时,系统会将相应的执行计划和分析树保存到共享SQL池中。然后当再次执行这些SQL语句时,系统会自动使用原有执行计划和分析树,从而提高了系统性能。,4. 共享SQL池(Shared SQL Pool),系统全局区(SGA)4. 共享SQL池(Shared SQL,Oracle后台线程,Oracle后台线程,后台进程,1. DBWR,后台进程1. DBWR,后台进程,2. LGWR,后台进程 2. LGWR,后台进程,3. ARCH,后台进程3. ARCH,实例与数据库的关系,一对一,一对多,实例与数据库的关系一对一
45、一对多,创建实例,创建实例,OPEN,MOUNT,NOMOUNT,SHUTDOWN,All files opened as described by the control file for thisinstance.,Control file opened for this instance.,Instance started.,START UP,启动一个实例,START UP,OPENMOUNTNOMOUNTSHUTDOWNAll,数据库的启动,启动实例-nomount打开初始化参数文件 svrmgrconnect internal svrmgrstartup nomount; svrmg
46、rselect * from v$process; svrmgrselect * from v$controlfile; svrmgrselect * from v$logfile; svrmgrselect * from v$datafile;,数据库的启动启动实例-nomount,数据库的启动,装配数据库-mount 打开控制文件 方法1: svrmgralter database mount; 方法2: svrmgrconnect internal svrmgrstartup mount; 查询操作同前页。,数据库的启动装配数据库-mount,数据库的启动,打开数据库-open 打开数据
47、文件和日志文件 方法1: svrmgr alter database open; 方法2: svrmgrconnect internal svrmgrstartup; svrmgrselect * from user_tablespaces; svrmgrselect * from dba_data_files;,数据库的启动打开数据库-open,OPEN,MOUNT,NOMOUNT,SHUTDOWN,All files opened as described by the control file for thisinstance.,Control file opened for this
48、instance.,Instance started.,SHUTDOWN,关闭一个实例,SHUTDOWN,OPENMOUNTNOMOUNTSHUTDOWNAll,数据库实例的关闭,关闭数据库 关闭数据文件和日志文件 svrmgrshutdown;卸下数据库 关闭控制文件 svrmgrshutdown;停止实例 关闭初始化参数文件 svrmgrshutdown;,数据库实例的关闭关闭数据库,Oracle8网络与Net8,Net8-Oracle的网络连接软件连接描述器与tnsnames.ora监听进程与listener.ora监听进程的操作命令配置服务器配置客户机调试连接问题,Oracle8网络与
49、Net8Net8-Oracle的网,Net8,Net8,SQL*NET原理及所需配置文件,listener.ora,tnsnames.ora,Process,Server,SQL*NET原理及所需配置文件listener.oratn,连接描述器与tnsnames.ora,TX08=( DESCREPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=200.1.1.115) (PORT=1521) ) (CONNECT DATA= (SID=TX08) ) )$ORACLE_HOME/network/admin-tnsnames.oratnsnames.ora 2个要求,
50、连接描述器与tnsnames.oraTX08=( DESCR,监听进程与listener.ora,Listener=(ADDRESS LIST= (ADDRESS= (PROTOCOL=TCP) (HOST=200.1.1.115) ) ) - (SID_LIST_LISTENER= (SID LIST= ( SID_DESC= SID_NAME=TX08 ORACLE_HOME=/DATA1/ORACLE/TX08 ) ) ),1.地址列表,2.监听服务的实例列表,监听进程与listener.oraListener=(ADD,监听进程的操作命令,lsnrctllsnrctl start li