• 1. ORACLE技能培训山东省邮政信息技术处
  • 2. 主要内容ORACLE基本架构 ORACLE FOR SCO系统安装及客户端的安装 存储管理 用户管理 模式管理 数据管理 实例管理 SQL语言 系统性能优化 系统日常维护
  • 3. 第一章、ORACLE基本架构体系结构 基本概念
  • 4. 体系结构图
  • 5. Oracle 体系结构物理结构 datafiles redo log files control files parameter file 数据文件 日志文件 控制文件 参数文件 data files *.dbfredo log files *.logcontrol file *.ctlparameter iles initoraid.ora
  • 6. 内存结构(SGA)占OS内存的60-70%,大小可由参数文件内参数计算 shared pool(共享池) database buffer cache(数据缓冲区) redo log buffer(重做日志缓冲区) (如以下图所示) SGA=share_pool_size+db_block_size*db_block_buffers +log_buffersshared_pooldatabase_buffer_cacheredo_log buffer
  • 7. 实例instance= SGA + background process 实例 = 内存分配 + 一组后台进程SGAbackground process
  • 8. session(连接)Oracle是多用户、多任务、可分布式管理的数据库,同时可有许 多个用户对数据库操作。oracleusersessionuseruser
  • 9. 后台进程后台进程 PMON,LCLN,RECO,SMON,DBWR,LGWR,CKPT,ARCH PMON:做程序的清洁工作,处理一些不正常退出的事件 SMON:做系统的清洁工作,执行系统出错后自动恢复工作 LCKN:Oracle系统表级或行级加锁的进程 RECO:恢复进程 DBWR:数据写进程 LGWR:日志文件写进程 CKPT:检测点 ARCH:归档方式备份进程
  • 10. 分析一个SQL语句是怎样在Orcle内部工作的A、用户发出SQL请求,打开游标; B、把SQL语句语法分析,执行计划,数据字典等信息存入内存中共享池内; C、从数据文件中把相关数据块读入数据缓冲区; D、做相应操作,若做修改,先加上行级锁,经确认后,把改过前后记录内容存入重做日志缓冲区内; E、返回结果给用户,关闭游标。 备注:SQL语句大小写敏感的,同样的一个语句,若大小写不同,oracle需分析执行两次,每句后必以“;”结束。
  • 11. 系统进程
  • 12. 第二章、ORACLE FOR SCO系统安装及客户端的安装
  • 13. Optimal flexible architecture (OFA)
  • 14. 硬件要求硬件要求CPU486,586,能运行SCO OPENSERVER 5.04 OR HIGHER MemoryA minimum of 32MB RAMDISK SPACEA minimum of 600MB of available disk space to install and run the oracle 7 serverDatabase spaceA minimum of 70MB of databse space to be install (SCO UNIX可以使用dfspace命令查看文件系统的使用情况)TerminalAnsi(ansi terminal for sco) ,vt100,hft(IBM aixterm),hp(HP 700/9x terminal),386u(Unixware terminal),
  • 15. 软件要求软件要求操作系统Sco unix 5.04 or higher开发包Sco development package 5.01A系统补丁Coff linker supplement 5.05 oss459b from sco anonymouse ftp site:ftp.sco.com/sls/oss459bTCP/IP包在配置网卡时自动安装 /etc/services Listener 1521/tcp
  • 16. 交换区的限制当SGA比较大时,系统可能使用系统交换区,如果80%-90%的系统物理内存已经被使用,ORACLE建议交换区的大小至少设置为系统物理内存的3倍。
  • 17. 文件大小限制4GB*(Oracle blocksize in KB) Support asynchronous I/O up to 2GB 如果Blocksize=8k,那么最大的文件到32G,但是如果文件大小大于2G时,系统将不支持异步存取数据。 Oracle建议使用大文件只是在只读的表空间上,如果要进行写,建议使用小的多个文件来代替一个大的数据文件。 Tracle files(跟踪文件命名规则) Processname_pid.trc Alert_sid.log ULIMIT参数
  • 18. NFS-mounted datafiles在两台计算机之间可以通过网络文件系统来共享文件。但是oracle server要求对文件的读写进行完成性检查,但是NFS不提供此功能。因此,Oracle的数据文件不能使用网络文件系统,即NFS。 在创建表空间和增加数据文件是必须注意是否是NFS。
  • 19. 缺省安装配置说明和log location如果使用缺省安装,用户只需提供ORACLE_BASE,ORACLE_HOME,ORACLE_SID的值即可。安装提示缺省值Install log location$ORACLE_HOME/orainst/install.logSql log location$ORACLE_HOME/orainst/sql.logOperationing system log location$ORACLE_HOME/orainst/os.logMake log location$ORACLE_HOME/orainst/make.logInstallation sourceCDROMlanguageAmerican /englishRoot actionsRoot.sh
  • 20. 控制文件的位置缺省的安装在创建数据库时使用3个控制文件,分别在3个不同的mount点上。为了系统的可靠性,建议将3个控制文件放在不同的硬盘上。 缺省的位置是: /mount_point1/oradata/db_name/control01.ctl /mount_point2/oradata/db_name/control02.ctl /mount_point3/oradata/db_name/control03.ctl
  • 21. Redo 文件的位置和大小创建数据时,系统缺省创建3个redo文件,缺省是500k,最小是100k。缺省位置是: /mount_point1/oradata/db_name/redosid01.ctl /mount_point2/oradata/db_name/redosid02.ctl /mount_point3/oradata/db_name/redosid03.ctl 注意: 在创建时用户可以改变文件的位置、大小,系统最少应该有2个redo文件。由于redo是连续的I./O,没有数据并发性,应此可以将redo文件放在一块盘上。
  • 22. 数据文件的位置和大小数据文件Default sizeMinimum size位置PASSWORD1 entryN/A$ORACLE_HOME/dbs/orapw$ORACLE_SIDSYSTEM40MB5MBmnt_pt1/oradata/db_name/system01.dbfROLLBACK8.5MB1400KBmnt_pt1/oradata/db_name/rdbs01.dbfTEMP550KB260KBmnt_pt1/oradata/db_name/temp01.dbfUSERS1M200KBmnt_pt1/oradata/db_name/user01.dbfTOOLS15M1MBmnt_pt1/oradata/db_name/tools01.dbf
  • 23. Oracle软件的所有者Oracle建议用户名为oracle(user name) Oracle用户的所属组名为dba 如果安装系统中安装多个oracle系统,则他们的用户名应该不相同,这一点特别得注意。
  • 24. 实例名的规定Oracle建议使用4个或少于4个字母,因为一些文件是根据实例名来命名的,如果实例名太长,并且操作系统支持的文件名短,在创建数据库时有可能不成功,并且不要使用特殊字符。 不要依靠字母的大小写来区分实例名,oracle for sco在实例名上不区分大小写。
  • 25. 调整系统内核参数名建议值描述SHMMAX20971520The maximum size (in bytes) of a single shared memory segmentSHMMIN1The minimum size (in bytes) of a single shared memory segmentSHMMNI100The number of shared memory identifiersSEMMNS60The number of semaphores in the systemULIMIT2097152The allowable file size in 512 bytes blocks.It should be larger than any database file.SEMMNI20The number of semaphore set identifers in the system.SEMMNI determines the number of semaphore sets that can be created at any one time
  • 26. 调整系统参数的命令(SCO)/etc/conf/cf.d/configure 类似菜单方式 /etc/conf/bin/idtune 参数名 参数值 命令方式
  • 27. 补丁程序的安装假设补丁程序在A盘中,格式为DOS方式,文件名为oss459b.z,root用户方式,操作命令如下: #doscp a:/oss459b.z /tmp/oss459b.Z #uncompress oss459b.Z #mv oss459b VOL.000.000 #custom 选择coff link supplement即可。
  • 28. 设置oracle用户的缺省存取权限在.profile文件中增加行(B or K shell ): umask 022
  • 29. 环境变量设置(1)需要设置的环境变量及说明 ORACLE_HOME:oracle软件的安装目录。Oracle安装程序自动创建此目录并且设置相应的权限。Oracle用户对此目录必须有读、写、执行权限。按照OFA的缺省设置为mount_point/app/oracle/product/release editon。 ORACLE_SID:数据库实例名。在单实例的数据库系统中,sid=DB_NAME,并且不超过4个字母。n ORACLE_TERM:安装过程中根据ORACLE_TERM的值来选择终端资源文件。如果为未定义ORACLE_TERM,那么系统将采用UNIX系统变量TERM来定位资源文件。 PATH:路径包括$ORACLE_HOME/bin,/bin,/usr/bin,.,/usr/lbin LD_LIBRARY_PATH:Motif类库的目录,在安装基于Motif的oracle软件是需要指定。 ORA_NLS32:在创建数据库时不使用缺省的US7ASCII字符集时需要指定。设置ORA_NSL32为$ORACLE_HOME/ocommon/nls/admin/data。Oracle建议在任何安装的时候指定此变量值。如果未指定该变量值,系统将用US7ASCII字符集。
  • 30. 环境变量设置(2)ORACLE_BASE:oracle 安装的基础目录。Oracle用户必须有读、写、执行权限。OFA的缺省目录是mount_point/app/oracle ORACLE_DOS:安装文档的目录。 ORACLE_PATH:在启动ORACLE和TOOLS时,系统先查找ORACLE_PATH目录,再查找PATH目录。ORACLE_PATH最长为242个字符。 TMPDIR:在安装系统过程中重新链接需要足够的临时存取空间,如果系统的/tmp目录空间小,必须指定TMPDIR到一个更多的磁盘空间。TMPDIR的存取权限为777。
  • 31. Mount the product installation CDROM$su root #mkdir mount_point_directoy #chmod 777 mount_point_directory #/etc/mount –f RCKRDG,lower /dev/cd0 /cdrom #exit(ctrl+D) $
  • 32. 两种安装模式Motif 方式 /mount_point_directory/orainst/orainst /m Character 方式 /mount_point_directory/orainst/orainst /c 注意:如果要Motif方式安装,必须先运行/mount_point_directory/rootpre.sh,它将在sco open desktop上创建一个小图标,可以用这个图标运行oracle软件,使open desktop运行在图形方式下。
  • 33. 有关ORACLE_HOME和ORACLE_BASE 如果在环境变量中未指定ORACLE_BASE的值,系统将提示用户输入,并将ORACLE_HOME的值也设置为和ORACLE_BASE相同的值。 建议最好指定ORACLE_BASE和ORACLE_HOME的环境变量值。
  • 34. National Language Support(NLS)在提示选择NLS支持时,选择ALL Languate support 不管选择何种NLS,安装提示语言总是American english。
  • 35. 重新链接可执行文件在安装过程中,系统提示是否重新链接应用程序,选择是; 当重新链接后,旧的可执行文件被重命名为在原名字的后面添加0,例如exp->exp0,可以将旧文件删除; 可执行文件在$ORACLE_HOME/bin目录中
  • 36. DBA组和OPERATOR组DBA组有DBA权限 OPERATOR组有 OPERATOR权限
  • 37. SYS和SYSTEM的缺省口令SYSTEM的缺省口令:manager SYS的缺省口令:change_on_install 可以通过orapwd命令修改用户的口令。
  • 38. 运行root.sh脚本作用#cd $ORACLE_HOME/orainst #sh ./root.sh 作用是设置oracle相关文件的权限
  • 39. 设置异步I/O的内核参数如果数据库采用raw类型,而不是文件型数据库,可以将异步I/O功能打开, 更改文件/etc/conf/sdevice.d/suds,将N改为Y 添加异步I/O的内核功能 mkdev aio Rebulid kernel 在initsid.ora文件中添加async_write=TRUE,此参数只对raw类型的数据文件起作用 需要调整的内核参数参数名参数值NAIOREQ512NAIOBUF512NAIOREQPP512
  • 40. oratab文件的功能Oratab文件的格式 Oracle_sid:oracle_home:{Y|N} 如果想激活dbshut和dbstart脚本的功能,可以使用oratab文件,并且设置为最后位设置为Y。
  • 41. 数据库系统的自动启动和关闭dbstart和dbshut在$ORACLE_HOME/bin目录中 dbstart和dbshut更据/etc/oratab文件中的设置自动启动和关闭数据库 启动脚本放在/etc/rc2.d目录中 关闭脚本放在/etc/rc0.d目录中
  • 42. 侦听进程的启动和关闭启动:lsnrctl start 关闭:lsnrctl stop 注意:在oracle8之前的系统,必须先启动侦听进程,然后再启动数据库系统,在关闭数据库时,先关闭侦听进程后关闭数据库系统。
  • 43. 第三章、存储管理表空间的管理 数据文件的管理 参数说明文本文本文本文本文本文本文本文本文本
  • 44. 数据库、表空间、数据文件之间的关系数据库表空间数据文件第一表空间第二表空间第三表空间
  • 45. tablespacesegmentextentblocksegmentextentblocksegmentextentblocksegmentextentblock表空间的逻辑存储单元headheadheadhead
  • 46. Oracle数据的存储结构Oracle数据存储单位: block 数据块: 2k 最小的I-O单位,伴随database产生而产生,不可变,如果要改变,只能recreate database。 extent 一组连续的数据块:是用户所能分配存储的最小单位 segment 段:有共同结构的一个或几个区域( extent),可跨越多个数据文件 tablespace 表空间:一组segement的逻辑组合,物理上看由一个或多个数据文件组成 file数据文件:属于某个表空间的物理文件 database 数据库:一组表空间所构成的逻辑的可共享的数据。
  • 47. Segment(段)的分类Data:数据段,存储对象(table,view,index,sequence) Temporary:临时段,用作(join,group by,order by,索引生成等),initial=next并为表空间大小的1/20-1/50,pctincrease=0。 Rollback:回滚段,用来记录修改前后的信息,minextent为2,pctincrease应为0。
  • 48. 表空间 tablespaceSystem表空间:把system表空间单独放在一个硬盘上 非system表空间: Tools Rbs Users Temp Application data Application index
  • 49. 控制block空间使用的几个参数pctfree 20%左右 它们是互相消涨的 pctused 40%左右 Inittrans 在单一块中最初活动的交易事务数 Maxtrans 在单一块中最大交易事务数
  • 50. 存储参数的设定规则:1、在对象级的存储参数设置值覆盖表空间级的设置 2、未在对象级设置存储参数,由表空间级数设置决定 3、未在表空间级设置存储参数,由Oracle数据库级参数 设置决定 4、若存储参数改变后,新的选项只针对未分配的extents 有效。
  • 51. 行链行链1 block2 block 当要存储的数据无法在一个数据块中存放时,需分配两个或多个数据块,标志这几个data block连接关系的存储信息
  • 52. 行迁移行链1 block2 block 当一个data block中的某部分数据经修改 后增涨太快,无法继续放在本数据块中,从需把它搬迁到另一个data block,以优化 存储结构,标志这个data block迁移的存储 信息称为行迁移。
  • 53. Pctfree参数Pctfree 低高1、可把块填 得较满 2、如果重组数据,代价较高 3、易引起行迁移1、剩下多的空间给以后修改用 2、需更多的块存数据 3、减少行链和重组数据的代价
  • 54. Pctused参数Pctused 低高1、使重组数据时,代价较低。 2、增加了未用的空间数1、增加空间使用率 2、但使重组数据时,代价较高
  • 55. data segment中可能有十种不同类型的存储对象 (1)table (2)view 实为一个select语句 (3)index(一个表不多于3个) (4)cluster (簇) (5)sequence 序列 (6)synonme 用于定义某个 远程数据库同义词,实现分式数据库管理透明 (7)snapsot 快照 (8)stored procedure(function) (9)package 程序包 (10)db trigger 数据触发器,处理updata,delete,insert中可能出现的问题
  • 56. 决定extent的参数 extent的参数initial 最初分配的空间数(缺省为10k,5 个数据块) next 下一步分配的空间数 maxextents 最大分配的extent数 minextents 最小分配的extnet数,所有重 做日志回滚段的存储结构,必 须成对地分配extent pctincrease 增长率,指数级增长 (1+pctincrease%) optimal 尽量设小,或为0(缺省为空, 仅用于回滚段) freelist n
  • 57. Block 结构( 系统管理员能在SQLDBA状态,查看视图dba-extents,dba-segments,dba-tablespace,dba-data-files查看所有的extent,segment,tablespace和datafile)common and variable header 块地址,段类型 85-100bytes Table directory 簇中的表信息,用于簇表段 Row directory 块中的行信息 Free space 用于insert updata Row data 存储数据、索引block 结构
  • 58. 第四章、用户管理
  • 59. 用户属性用户的属性特性 缺省表空间:用户创建实体的缺省表空间,如果未指定 临时表空间:用户使用的缺省表空间 空间限制:对表空间使用容量的限制 权限:用户拥有的对系统和实体操作权限 缺省角色:用户拥有的角色(权限的集合) 环境文件:限制系统资源如cpu,连接时间,等待时间,还限制数据库资源,如每各用户同时会话的数量,每次会话读取得数据块数等。
  • 60. 权限的分类system privilege 针对整个系统操作的权限 object privilege 针对整个具体object操作的 权限 可以参看视图: dba-sys-privs、dba-tab-privs、dba-col-privs; Admin选项表是委托系统权限的能力。
  • 61. 权限的管理
  • 62. Oracle缺省安全性对象只能由有权创建的用户创建。一旦用户创建了一个对象,那个用户就变为同名的一个模式。一个模式是一个创建一个或多个数据库对象的用户。 一个对象有一个对象的拥有者-创建用户的对象 如果你是一个对象的拥有者,可以对该对象进行任何操作 缺省时,任何其他用户不能查看或修改对象。
  • 63. 权限的授予和回收授予:grant Grant update on username.tablename to otheruser with grant option 回收:revoke Revoke update on username.tablename from otheruser
  • 64. 创建角色创建角色,包括:connect、dba角色;alter any index权限;更改用户username的表tablename的权限。 CREATE ROLE develop_role NOT IDENTIFIED; GRANT "CONNECT" TO " develop_role "; GRANT "DBA" TO " develop_role "; GRANT ALTER ANY INDEX TO " develop_role "; GRANT UPDATE ON username.tablename TO " develop_role ";
  • 65. 系统角色说明Connect:基本操作权限 Dba:所有权限 Exp_full_database:全倒出数据库权限 Imp_full_database:全倒入数据库权限 Resource:创建实体权限 Snmpagent:对系统视图进行查看的权限
  • 66. 创建用户的SQL脚本创建用户develop,缺省表空间是post_comm,临时表空间是post_temp,使用缺省环境文件,没有表空间容量的限制,具有connect和dba角色。 CREATE USER "DEVELOP" IDENTIFIED BY "abc123" DEFAULT TABLESPACE "POST_COMM" TEMPORARY TABLESPACE "POST_TEMP" PROFILE DEFAULT; GRANT "CONNECT" TO "DEVELOP"; GRANT "DBA" TO "DEVELOP"; GRANT UNLIMITED TABLESPACE TO "DEVELOP"; ALTER USER "DEVELOP" DEFAULT ROLE ALL;
  • 67. 小结角色通过将相关的权限集合在单一的角色下,使得DBA和应用程序开发者能够简化权限的管理。给用户分配角色而不是分别分配许多权限。
  • 68. 第五章、模式管理
  • 69. 表(table)定义列 数据类型 改变现存表的结构
  • 70. 常用的数据类型类型参数描述Char(n)N=1-255固定长度字符串,定义时指定最大长度Date日期类型,可保存年月日小时分秒Long可变长字符串,最大长度为2GBLong raw可变长原始二进制数,最大长度为2GBNumber(p,s)P=1-38 S=-84-127 定义长度和小数点后面的位数Raw(n)N=1-255可变长的二进制数据rowid和rowid的格式相同的十六进制格式varchar2(n)n-=1-4000可变长的文本串,必须指定最大长度
  • 71. Null的处理在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零。 ORACLE允许任何一种数据类型的字段为空,除了以下两种情况: 主键字段(primary key) 定义时已经加了NOT NULL限制条件的字段 说明: 1.等价于没有任何值、是未知数。 2.NULL与0、空字符串、空格都不同。 3.对空值做加、减、乘、除等运算操作,结果仍为空。 4.NULL的处理使用NVL函数。 5.比较时使用关键字用“is null”和“is not null”。 6.空值不能被索引,所以查询时有些符合条件的数据可能查不出来,count(*)中,用nvl(列名,0)处理后再查。 7、排序时比其他数据都大(索引默认是降序排列,小→大),所以NULL值总是排在最后。
  • 72. 视图(view)
  • 73. 索引(index)
  • 74. 序列(sequence)
  • 75. 触发器(trigger)
  • 76. 过程(procedure)
  • 77. 函数(function)
  • 78. 相关存储参数
  • 79. 第六章、实例管理
  • 80. 数据库的启动和关闭在$ORACLE_HOME/bin/目录中,有两个脚本文件,即dbstart和dbshut 关闭和启动数据库的规则: 启动数据库时,先启动侦听进程,后起数据库(MTS的限制) 关闭数据库时,向关闭侦听进程,后关数据库
  • 81. 启动和关闭数据库启动 %svrmgrl. 唤醒 SVRMGRL数据库管理 SVRMGRL > connect internal;以系统管理员身份登录。 SVRMGRL >startup 启动instance 连上数据库 打开数据库 关闭 %svrmgrl. 唤醒 SVRMGRL数据库管理 SVRMGRL > connect internal;以系统管理员身份登录。 SVRMGRL >shutdown
  • 82. 启动和关闭Oracle数据库过程图shutdownopen读参数文件initoraid.ora开机关机读控制文件读所有文件未连上数据库 仅启动instancesnomountmount连上数据库,但未打开
  • 83. 快速关闭数据库 方法1 系统即使在使用shutdown immediate关闭数据库时,如果一个主进程在回滚,会浪费很长时间,所以必须使用shutdown abort(关闭放弃)命令。 在执行shutdown abort后,建议立即使用限制状态下重启数据库,即startup restrict 方法2 在执行shutdown abort之前,显示的引发检查点。用命令alter system checkpoint,以减少在线日志的大小,然后再shutdown abort。
  • 84. 第七章、数据管理
  • 85. 备份分类逻辑备份 export/import工具 物理备份 操作系统下备份 归档方式(不关闭数据库) 不归档方式(关闭数据库)
  • 86. Export输出有3种方式:full方式、user方式、table方式。 Full:输出整个数据库。 User:输出一个用户的对象。 Table:输出用户指定的表,索引,授权和数据。
  • 87. 脱机备份脱机备份也叫物理备份,冷备份。在数据库正常关闭的情况下进行。 物理备份需要备份的文件有: 所有数据文件 所有控制文件 所有联机日志文件 Initsid.ora文件 如果目录结构是一致的,例如数据文件存储在/u01到/u05上,则可用 tar –cvf /dev/rmt/0hc /u0[1-5] /oradata/sid
  • 88. 联机备份(1)联机备份也叫热备份,数据库必须运行在ARACIVELOG方式。 启动ARCHIVELOG方式 SVRMGR>connect internal SVRMGR>start mount center SVRMGR>alter database archiverlog; SVRMGR>archive log start; SVRMGR>alter database open; SVRMGR>exit; 关闭ARCHIVELOG方式 SVRMGR>connect internal SVRMGR>start mount center SVRMGR>alter database noarchiverlog; SVRMGR>alter database open; SVRMGR>exit;
  • 89. 联机备份(2)归档日志文件的位置是由参数文件initsid.ora文件的设置决定的 Log_archive_dest=/u0/oracle/arch/center/arch Log_archive_start=TRUE 可以用archive log list命令查看ARCHIVELOG的情况 注意:尽管log_archive_start=true,但是如果不执行alter database archiverlog命令,数据库就不会进入归档方式。当数据库运行在归档方式下,如果不运行alter database noarchiverlog命令,不管数据库关闭、启动,其还是运行在归档方式。
  • 90. 联机备份(3)联机备份安排在用户最少的时候进行。 联机备份的步骤: 1.逐个表空间的数据文件备份 设置表空间为备份状态 备份表空间的数据文件 将表空间恢复到正常状态 2.备份归档的日志文件 临时停止归档处理 记录在归档日志中的文件 重新开始归档处理 备份归档的日志文件,然后删除 3.通过alter database backup controlfile命令备份控制文件
  • 91. 联机备份脚本
  • 92. Import
  • 93. 数据恢复
  • 94. imp步骤 create table insert data create index create triggers,constraints
  • 95. 备份和恢复策略备份和恢复策略 逻辑备份仅能恢复到上次的备份点 物理备份中的不归档备份可恢复到上次备份点 物理备份中的归档备份恢复到failure的前一刻
  • 96. 第八章、SQL语言DDL数据定义语言 Create,drop等 DML数据控制语言 select,update,delete,insert等
  • 97. SQL概述SQL是一种面向数据库的通用数据处理语言规范,能完成以下几类功能:提取查询数据,插入修改删除数据,生成修改和删除数据库对象,数据库安全控制,数据库完整性及数据保护控制。 数据库对象包括表、视图、索引、同义词、簇、触发器、函数、过程、包、数据库链、快照等(表空间、回滚段、角色、用户)。数据库通过对表的操作来管理存储在其中的数据。
  • 98. 数据库查询(select)1)              用SELECT语句从表中提取查询数据。语法为 SELECT [DISTINCT] {column1,column2,…} FROM tablename WHERE {conditions} GROUP BY {conditions} ORDER BY {expressions} [ASC/DESC]; 说明:SELECT子句用于指定检索数据库的中哪些列,FROM子句用于指定从哪一个表或视图中检索数据。 2)              SELECT中的操作符及多表查询WHERE子句。(LIKE,IS,…) WHERE子句中的条件可以是一个包含等号或不等号的条件表达式,也可以是一个含有IN、NOT IN、BETWEEN、LIKE、IS NOT NULL等比较运算符的条件式,还可以是由单一的条件表达通过逻辑运算符组合成复合条件。 3)              ORDER BY 子句 ORDER BY 子句使得SQL在显示查询结果时将各返回行按顺序排列,返回行的排列顺序由ORDER BY 子句指定的表达式的值确定。 4)              连接查询 利用SELECT语句进行数据库查询时,可以把多个表、视图的数据结合起来,使得查询结果的每一行中包含来自多个表达式或视图的数据,这种操作被称为连接查询。 连接查询的方法是在SELECT命令的FROM子句中指定两个或多个将被连接查询的表或视图,并且在WHERE子句告诉ORACLE如何把多个表的数据进行合并。根据WHERE子句中的条件表达式是等还是不等式,可以把连接查询分为等式连接和不等式连接。 5)              子查询 如果某一个SELECT命令(查询1)出现在另一个SQL命令(查询2)的一个子句中,则称查询1是查询2的子查询。
  • 99. 常用函数用法一个函数类似于一个算符,它操作数据项,返回一个结果。函数在格式上不同于算符,它个具有变元,可操作0个、一个、二个或多个变元,形式为: 函数名(变元,变元,…) 函数具有下列一般类形: 单行函数   分组函数 1)单行函数对查询的表或视图的每一行返回一个结果行。它有数值函数,字符函数,日期函数,转换函数等。 2)分组函数返回的结果是基于行组而不是单行,所以分组函数不同于单行函数。在许多分组函数中可有下列选项: l         DISTRNCT 该选项使分组函数只考虑变元表达式中的不同值。 l         ALL该选项使分组函数考虑全部值,包含全部重复。 全部分组函数(除COUNT(*)外)忽略空值。如果具有分组函数的查询,没有返回行或只有空值(分组函数的变元取值的行),则分组函数返回空值。
  • 100. 数据操纵语言(DML)数据库操纵语言(DML)命令用于查询和操纵模式对象中的数据,它不隐式地提交当前事务。它包含UPDATE、INSERT、DELETE、SELECT等命令。
  • 101. UPDATE语句UPDATE tablename SET {column1=expression1,column2=expression2,…} WHERE {conditions}; 例如:S QL>UPDATE EMP SET JOB =’MANAGER’ WHERE ENAME=’MAPTIN’; SQL >SELECT * FROM EMP; UPDATE子句指明了要修改的数据库是EMP,并用WHERE子句限制了只对名字(ENAME)为’MARTIN’的职工的数据进行修改,SET子句则说明修改的方式,即把’MARTION’的工作名称(JOB)改为’MARAGER’
  • 102. INSERT语句INSERT INTO tablename {column1,column2,…} VALUES {expression1,expression2,…}; 例如:SQL>SELECT INTO DEPT(DNAME, DEPTNO) VALUES (‘ACCOUNTING’,10)
  • 103. DELETE语句DELETE FROM tablename WHERE {conditions}; 例如:SQL>DELETE FROM EMP WHERE EMPNO = 7654; DELETE命令删除一条记录,而且DELETE命令只能删除整行,而不能删除某行中的部分数据.
  • 104. 事务控制命令提交命令(COMMIT):可以使数据库的修改永久化.设置AUTOCOMMIT为允许状态:SQL >SET AUTOCOMMIT ON; 回滚命令(ROLLBACK):消除上一个COMMIT命令后的所做的全部修改,使得数据库的内容恢复到上一个COMMIT执行后的状态.使用方法是: SQL>ROLLBACK;
  • 105. 第九章、系统性能优化优化理论 参数调整
  • 106. 更改initsid.ora文件
  • 107. 数据文件中的I/O瓶颈联机日志文件 事务由LGWR进程写入日志文件,而表空间的写入由DBWR进程完成,如果日志文件和数据文件存放在一块盘上,后台进程就有I/O冲突。 控制文件 每个数据库都应该有3个控制文件,并且放在3块独立的盘上,它们只有很少的I/O。 归档日志 LGWR以循环方式写入联机日志文件,当oracle以归档方式运行时,在覆盖日志文件之前ARCH进程将进行备份,ARCH和LGWR进程之间有I/O冲突。它们不能和system,data,index,rbs表空间放在一起。
  • 108. 后台进程并发的I/O3种后台进程访问磁盘中的数据文件,即DBWR,LGWR,ARCH。 DBWR的数量可以在initsid.ora文件中定义,oracle 7.3是db_writers,而oracle 8是dbwr_io_slaves,oracle建议DBWR的数量取n到2n之间,n 是磁盘数。也可以启动多个LGWR和ARCH进程。 在数据的物理设计时,必须减少DBWR,LGWR,ARCH进程的I/0冲突。
  • 109. 物理I/O优化磁盘的分配(理想8块盘) System,control file1 Rbs,用户rbs,control file2 Data_1,control file3 Index_1 Temp,用户temp,user,data_2 tools ,index_2 Redo_1,redo_2,redo_3 Arch file
  • 110. 数据文件的移动SVRMGR> connect internal SVRMGR>shutdown immediate SVRMGR>exit $mv /u01/oradata/wg73/post_ludan.dbf /u02/oradata/wg73/post_ludan.dbf SVRMGR> connect internal SVRMGR> startup mount wg73 SVRMGR> alter database rename file > ‘/u01/oradata/wg73/post_ludan.dbf ' to > ‘/u02/oradata/wg73/post_ludan.dbf‘ SVRMGR> alter database open SVRMGR> exit
  • 111. 联机数据文件的移动方法同数据文件的操作方法。
  • 112. 控制文件的移动SVRMGR> connect internal SVRMGR>shutdown immediate SVRMGR>exit $mv /u1/center/ctrlwg73.ctl /u2/center/ctrlwg73.ctl 编辑config.ora文件 SVRMGR> connect internal SVRMGR>startup SVRMGR>exit
  • 113. 数据文件收缩alter database命令来回收数据文件中未使用的空间,但是如果回收空间的数据文件正在被某个数据对象所使用,则不能改变这个文件的大小。 alter database datafile ‘/u01/center/post_ludan01.dbf’ resize 200Mb 如果系统提示超出范围,将可以看出超出的数据块数,根据系统的db_block_size可以算出超出的容量来。之后重新执行该命令。
  • 114. 第十章、系统日常维护
  • 115. 第十一章、课程总结
  • 116. 附录A:ORACLE 7.3.4 FOR SCO系统安装手册
  • 117. 附录B:相关站点www.oradb.net www.oracle.com www.oracle.com.cn