1、第第4 4章章 OracleOracle数据库介绍及使用数据库介绍及使用Oracle数据库数据库1安装安装Oracle数据库的软硬件需求数据库的软硬件需求2Oracle数据库的安装数据库的安装3Oracle的服务和环境变量的服务和环境变量4Oracle数据库常用工具数据库常用工具5n Oracle Overviewl世界上最大的软件企业公司,全球世界上最大的软件企业公司,全球500强强l向向145个国家和地区提供数据库、应用服务器、工具个国家和地区提供数据库、应用服务器、工具和应用软件以及相关的咨询、培训和支持服务。全和应用软件以及相关的咨询、培训和支持服务。全球球20多万用户,亚太区超过多万
2、用户,亚太区超过2万万l全球员工全球员工43,000名(名(2019年,甲骨文在中国裁员年,甲骨文在中国裁员1600人占研发人员人占研发人员56%,全球裁员总数达到数千人),全球裁员总数达到数千人)lWorlds Database:4.1 4.1 Oracle数据库数据库n OracleOracle技术发展技术发展简单的简单的OLTP,特殊的特殊的 SQL查询查询客户客户/服务器服务器方式的方式的OLTP数据仓库和数据仓库和高端的高端的OLTPWeb方式的方式的应用应用早期早期关系型关系型客户客户/服务器服务器方式的关系型方式的关系型企业级企业级关系型关系型Internet数据库数据库扩展的扩
3、展的关系型关系型80年代早期年代早期80年代后期年代后期90年代早期年代早期90年代后期年代后期20002003n 计划的数据库发布和支持时间表计划的数据库发布和支持时间表80年代早期年代早期80年代后期年代后期90年代早期年代早期90年代后期年代后期20002003n OracleOracle产品发展产品发展l19781978年,年,Oracle1Oracle1,使用汇编语言开发成功,但是并没,使用汇编语言开发成功,但是并没有引起太多的关注有引起太多的关注l19831983年,年,Oracle3Oracle3是第一个能够运行在大型和小型机上是第一个能够运行在大型和小型机上的关系型数据库,使用
4、的关系型数据库,使用C C语言编写,这种跨平台的代码语言编写,这种跨平台的代码移植能力使得移植能力使得oracleoracle在竞争中取得了较大的优势在竞争中取得了较大的优势l19931993年,年,oracleoracle公司推出了基于公司推出了基于UNIXUNIX版本的版本的oracle7oracle7,使得使得oracleoracle正式向正式向UNIXUNIX操作系统进军操作系统进军l19971997年,推出了基于年,推出了基于JavaJava语言的语言的Oracle8Oracle8l19991999年,推出了年,推出了InternetInternet平台的平台的oracle8iora
5、cle8i,添加了大,添加了大量为支持量为支持InternetInternet而设计的特性,并为数据库用户提而设计的特性,并为数据库用户提供全方位的供全方位的JavaJava支持支持l20012001年,年,Oracle9iOracle9i,更易于管理,更易于管理l20032003年,年,Oracle10g(Oracle10g(支持网格支持网格GridGrid,自动管理,自动管理Automatic ManagementAutomatic Management等等)l20072007年,年,Oracle11g(Oracle11g(扩展了网格计算优势的功能,降扩展了网格计算优势的功能,降低了数据库
6、升级的成本,利用管理自动化提高低了数据库升级的成本,利用管理自动化提高DBADBA效率效率等等)l20132013年,年,Oracle12c(Oracle12c(扩展了多租户云端架构等)扩展了多租户云端架构等)l20182018年,年,Oracle 18cOracle 18c。秉承。秉承 Oracle Oracle 的的 Cloud first Cloud first 理念,一款自治性的数据库,可减少很多理念,一款自治性的数据库,可减少很多DBADBA的工作的工作l20192019年,年,Oracle 19cOracle 19c,为,为12c12c和和18c18c的最终版本,以稳的最终版本,以
7、稳定性作为此版本的核心目标,为客户提供定性作为此版本的核心目标,为客户提供4 4年的高级支年的高级支持和至少持和至少3 3年的延长支持年的延长支持l20212021年,年,Oracle 21cOracle 21c,进一步强化融合数据库理念,进一步强化融合数据库理念,强调强调3M3M多模、多工作负载、多租户多模、多工作负载、多租户n Oracle版本类型版本类型lOracle Database 标准版标准版One最基本的商业版本,包括基本的数据库功能。lOracle Database 标准版标准版包括上面那个版本的功能和RAC(real application clusters),只有在10g的
8、标准版中才开始包含RAC。lOracle Database 企业版企业版最强劲的版本,很多东西是要额外付费的。lOracle Database 个人版个人版除了不支持RAC之外包含企业版的所有功能,但是注意的是,只有Windows平台上才提供个人版。l企业版功能齐全,提供更高可靠性和性能,但也意味企业版功能齐全,提供更高可靠性和性能,但也意味着更多的软件费用和硬件开销。建议用户根据实际需着更多的软件费用和硬件开销。建议用户根据实际需求确定版本,最合适即最好。求确定版本,最合适即最好。n 硬件需求硬件需求4.2 4.2 安装安装Oracle数据库的软硬件需求数据库的软硬件需求硬件硬件说明说明服务
9、器显示卡服务器显示卡至少至少1024x768显示分辨率,这是显示分辨率,这是Oracle通用安装程序通用安装程序需要的。需要的。硬盘空间硬盘空间Oracle 19c企业版的需要企业版的需要6.4G大小的磁盘空间,标准版大小的磁盘空间,标准版需要需要6.1G大小的磁盘空间。大小的磁盘空间。/tmp需要至少需要至少1G的大小。的大小。物理内存物理内存用于用于Oracle数据库安装的至少数据库安装的至少1GB RAM,推荐,推荐2GB内内存,用于存,用于Oracle Grid基础设施安装的至少基础设施安装的至少8GB RAM。虚拟内存虚拟内存物理内存的两倍物理内存的两倍分配给分配给/tmp目录目录/
10、tmp目录中至少有目录中至少有1GB的空间的空间相对于相对于RAM(Oracle数数据库据库)的交换空间分配的交换空间分配在在1GB到到2GB之间:是之间:是RAM大小的大小的1.5倍;在倍;在2GB到到16GB之间:等于之间:等于RAM的大小;超过的大小;超过16GB:16GB。n 软件需求软件需求项目项目说明说明系统体系系统体系结构结构支持的支持的CPU包括包括Inter(x86)、AMD64或或Intel EM64T。在。在Windows操作系统下,操作系统下,Oracle 19c提提供供64位的数据库版本位的数据库版本操作系统操作系统包括包括Windows、Linux和和Unix在内的
11、所有在内的所有Oracle支持的操作系统上使用支持的操作系统上使用n 下载下载l官方地址:官方地址:http:/http:/l选择相应版本的选择相应版本的OracleOraclen 19c19c版本的安装版本的安装l1 1、解压缩文件、解压缩文件l2 2、在解压文件夹里找到可执行安装文件、在解压文件夹里找到可执行安装文件setup.exesetup.exe双击安装双击安装4.3 4.3 Oracle数据库的安装数据库的安装l3 3、安装第一步:、安装第一步:l4 4、安装第二步:、安装第二步:l5 5、安装第三步:、安装第三步:l6 6、安装第四步:、安装第四步:l7 7、安装第五步:、安装第
12、五步:l8 8、安装第六步:、安装第六步:这一步耗时比较长这一步耗时比较长l9 9、安装完毕、安装完毕l1010、测试数据库安装是否成功、测试数据库安装是否成功n 卸载过程:卸载过程:l1 1、在控制面板中停止所有、在控制面板中停止所有OracleOracle服务服务l2 2、点击开始、点击开始-程序程序-Oracle Universal Installer-Oracle Universal Installer,卸载所有,卸载所有OracleOracle产品产品l3 3、在注册表中选择、在注册表中选择HKEY_LOCAL_MACHINESOFTWAREORACLEHKEY_LOCAL_MACH
13、INESOFTWAREORACLE进行删除进行删除l4 4、在注册表中选择、在注册表中选择HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceservices进行删除进行删除l5 5、在注册表中选择、在注册表中选择HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationervicesEventlogAppl
14、ication进行删除进行删除卸载卸载Oracle数据库数据库l6 6、删除环境变量、删除环境变量CLASSPATHCLASSPATH和和PATHPATH中与中与OracleOracle有关有关的设置的设置l7 7、在桌面、程序菜单中删除与、在桌面、程序菜单中删除与OracleOracle有关的选项有关的选项l8 8、在资源管理器中删除、在资源管理器中删除OracleOracle的安装目录的安装目录l9 9、重启计算机、重启计算机4.4 Oracle4.4 Oracle数据库的服务和环境变量数据库的服务和环境变量n WindowsWindows下下OracleOracle数据库服务的启动数据库
15、服务的启动/关闭关闭l在在WindowsWindows下部署下部署OracleOracle数据库系统,将会起动过程数据库系统,将会起动过程写入到操作系统的服务列表中,一些主要的服务会写入到操作系统的服务列表中,一些主要的服务会被设置为自动启动。被设置为自动启动。n 了解主要的了解主要的OracleOracle数据库服务数据库服务lOracleJobSchedulerXEOracleJobSchedulerXEOracleOracle作业调度服务,非必须启动作业调度服务,非必须启动lOracleServiceORCLOracleServiceORCL数据库实例数据库实例lOracleDB19Ho
16、me1TNSListenerOracleDB19Home1TNSListener监听器服务,非必须启动监听器服务,非必须启动lOracleDB19Home1MTSRecoveryServiceOracleDB19Home1MTSRecoveryService数据库服务端控制服务程序,非必须启动数据库服务端控制服务程序,非必须启动lOracleVssWriterXEOracleVssWriterXEOracleOracle对对VSSVSS的支持服务,非必须启动的支持服务,非必须启动lDBADBA必须了解这些服务的作用及相互关系。有时为了必须了解这些服务的作用及相互关系。有时为了维护,需要通过启动
17、维护,需要通过启动/停止这些服务来管理数据库。停止这些服务来管理数据库。l各种服务之间的关系各种服务之间的关系OracleOracle各种服务之间关系复杂,有严格的相互依存关系。各种服务之间关系复杂,有严格的相互依存关系。当启动当启动/关闭某个服务时需按照一定的顺序。关闭某个服务时需按照一定的顺序。一般情况下,只有先启动一般情况下,只有先启动OracleDB19home1TNSListener(OracleDB19home1TNSListener(监监听程序听程序)服务,才可打开启动服务。若没有监听服务,而打服务,才可打开启动服务。若没有监听服务,而打开其他数据库服务,系统会提示错误信息。也即
18、是,若监开其他数据库服务,系统会提示错误信息。也即是,若监听程序服务没有打开,企业管理器服务就无法启动。同样听程序服务没有打开,企业管理器服务就无法启动。同样,若使用企业管理器服务,必须先启动数据库例程服务。,若使用企业管理器服务,必须先启动数据库例程服务。关闭服务也是如此。不过操作会在关闭服务的时候去自动关闭服务也是如此。不过操作会在关闭服务的时候去自动检测是否存在相关的依存服务。若存在,会先自动关闭其检测是否存在相关的依存服务。若存在,会先自动关闭其它的服务,然后再关闭这个服务。它的服务,然后再关闭这个服务。因此,服务在启动时,若服务之间存在依存关系,操作系因此,服务在启动时,若服务之间存
19、在依存关系,操作系统不会自动启动,而是抛出异常信息。但在关闭服务时,统不会自动启动,而是抛出异常信息。但在关闭服务时,若遇到相互依存的服务,操作系统会自动关闭相互依存的若遇到相互依存的服务,操作系统会自动关闭相互依存的服务。服务。在关闭服务时,在关闭服务时,DBADBA应防止为了关闭某个服务,而同时关闭应防止为了关闭某个服务,而同时关闭其它正在使用的服务,此时可能会给用户造成不必要的损其它正在使用的服务,此时可能会给用户造成不必要的损失。失。n OracleOracle数据库的环境变量数据库的环境变量l环境变量环境变量分配给操作系统中某一名称的值,软件可以使用名称来调分配给操作系统中某一名称的
20、值,软件可以使用名称来调用变量的值用变量的值l环境变量存储的方式有两种:环境变量存储的方式有两种:一种是存储在注册表中,如一种是存储在注册表中,如NLS_LANGNLS_LANG、ORACLE_BASEORACLE_BASE、ORACLE_SIDORACLE_SID等变量等变量环境变量名环境变量名说明说明位置位置NLS_LANG使用的语言SIMPLIFIED CHINESE_CHINA.ZHS16GBKORACLE_BASE安装Oracle服务器的顶层目录c:oraclesoftoracle19cORACLE_HOME安装Oracle软件的目录同上ORACLE_SID默认创建的Oracle数据
21、库实例同上PATHOracle可执行文件的路径系统环境变量另一种是以环境变量的方式存储,如另一种是以环境变量的方式存储,如PATHPATH等等n SQL SQL*PlusPlusn 数据库配置助手数据库配置助手DBCADBCAn SQL DeveloperSQL Developer4.5 4.5 Oracle数据库常用工具数据库常用工具n SQL SQL*PlusPlus是是OracleOracle数据库的一个基本工具数据库的一个基本工具l允许用户使用允许用户使用SQLSQL命令交互式地访问数据库,使用命令交互式地访问数据库,使用SQLSQL*PlusPlus命令格式化输出数据。命令格式化输出
22、数据。n 可以完成以下工作:可以完成以下工作:l启动启动/停止数据库停止数据库l创建创建/运行查询运行查询l更新数据更新数据l格式化输出数据报表格式化输出数据报表l运行运行SQLSQL脚本文件等操作脚本文件等操作n 是是DBADBA和开发人员必须掌握的一个工具和开发人员必须掌握的一个工具SQL SQL*PlusPlusn 1.1.SQL SQL*PlusPlus的启动的启动l方法方法1 1:从【开始】菜单启动:从【开始】菜单启动SQL SQL*PlusPlus分别输入:用户名、口令、主机字符串分别输入:用户名、口令、主机字符串在用户名处输入:用户名在用户名处输入:用户名/口令口令 主机字符串主
23、机字符串l方法方法2 2:从命令行启动:从命令行启动SQLSQL*PlusPlus在命令行下输入如下命令:在命令行下输入如下命令:sqlplus sqlplus 用户名用户名/口令口令 主机字符串主机字符串 filename.sql parameter.filename.sql parameter.一般用于启动字符界面的一般用于启动字符界面的SQLSQL*PlusPlus还可被安装程序所调用,执行相关脚本文件还可被安装程序所调用,执行相关脚本文件l启动后显示的提示信息:启动后显示的提示信息:数据库版本、数据库选件等数据库版本、数据库选件等n 2.SQL2.SQL*PlusPlus的退出的退出l
24、方法方法1 1:点击:点击SQLSQL*PlusPlus主窗口标题栏的主窗口标题栏的 关闭关闭 按钮按钮不是正常退出,可能会导致未提交事务的自动回滚不是正常退出,可能会导致未提交事务的自动回滚l方法方法2 2:在:在SQL SQL*PlusPlus命令行执行命令行执行exit/quitexit/quit命令命令会执行提交操作从而使最后执行的操作生效会执行提交操作从而使最后执行的操作生效应使用该方法退出应使用该方法退出SQL SQL*PlusPlusn 3.SQL3.SQL*PlusPlus常用命令常用命令SQLSQL*PlusPlus可以处理两种命令:可以处理两种命令:lSQLSQL命令命令用
25、于对数据库进行操作用于对数据库进行操作不分大小写,不可简写,以不分大小写,不可简写,以“;”结束,以回车开始运行结束,以回车开始运行存放于存放于SQLSQL缓冲区中,可调出进行编辑,可被反复运行缓冲区中,可调出进行编辑,可被反复运行lSQL SQL*PlusPlus命令命令主要用来设置查询结果的显示格式,设置环境选项和提供主要用来设置查询结果的显示格式,设置环境选项和提供帮助信息等帮助信息等不分大小写,可简写,不必输入不分大小写,可简写,不必输入“;”表示结束,以回车表示结束,以回车开始运行开始运行不被保存在不被保存在SQLSQL缓冲区中缓冲区中l连接数据库命令连接数据库命令命令格式为:命令格
26、式为:CONNECT CONNECT 用户名用户名/口令口令 主机字符串主机字符串CONNECTCONNECT可简写为可简写为CONNCONN若以系统管理员用户登录,则应为:若以系统管理员用户登录,则应为:SQLSQLCONNECT system/sysorclCONNECT system/sysorcl若以若以SYSDBASYSDBA身份连接的用户,都被视为身份连接的用户,都被视为SYSSYS用户登录用户登录SQLSQLCONNECT scott/tigerorcl CONNECT scott/tigerorcl as sysdbaas sysdbal断开数据库连接命令断开数据库连接命令命令
27、格式为:命令格式为:SQL SQLDISCONNECTDISCONNECTDISCONNECTDISCONNECT可简写为可简写为DISCDISCl查看表结构命令查看表结构命令命令格式为:命令格式为:DESCRIBE DESCRIBE 表名表名DESCRIBEDESCRIBE可简写为可简写为DESC DESC SQLSQLCONN scott/tigerorclCONN scott/tigerorcl SQL SQLSELECT SELECT*FROM dept;FROM dept;SQLSQLDESC deptDESC deptl会话环境设置命令会话环境设置命令命令格式为:命令格式为:SET
28、 SET 环境变量名环境变量名 值值环境变量有:环境变量有:w arraysizearraysize一次提取的行数目一次提取的行数目w linesizelinesize行的宽度行的宽度w pagesizepagesize一页的记录数一页的记录数w pausepause控制屏幕显示控制屏幕显示w autocommitautocommit自动自动/立即提交立即提交例如:例如:SQL SQLCONN scott/tigerorclCONN scott/tigerorcl SQLSQLSET SPACE 2SET SPACE 2 SQLSQLSET pagesize 5SET pagesize 5 S
29、QLSQLSELECT SELECT*FROM emp;FROM emp;l编辑命令编辑命令常用编辑命令及格式:常用编辑命令及格式:CHANGE/CHANGE/被替换的子串被替换的子串/替换后的新子串替换后的新子串LIST nLIST n:用于显示用于显示SQLSQL缓冲区的内容缓冲区的内容APPEND textAPPEND text:在当前行增加在当前行增加texttext指定的字符指定的字符EDITEDIT:调用文本编辑器编辑调用文本编辑器编辑SQLSQL缓冲区中的内容缓冲区中的内容l执行执行SQLSQL缓冲区中语句命令缓冲区中语句命令SQLSQL语句在执行完后仍保留在语句在执行完后仍保留
30、在SQLSQL缓冲区,可被反复执行缓冲区,可被反复执行命令格式命令格式1 1:/命令格式命令格式2 2:runrunl装入并执行装入并执行SQLSQL脚本文件命令脚本文件命令命令格式命令格式1 1:START START 文件名文件名命令格式命令格式2 2:文件名文件名若在若在SQLSQL脚本文件中需调用其他脚本文件中需调用其他SQLSQL脚本文件,则用脚本文件,则用文件文件名名当开发项目时,应将项目相关的当开发项目时,应将项目相关的SQLSQL语句语句(创建用户及创建用户及方案对象、插入初始数据等方案对象、插入初始数据等)保存到脚本文件中,在使保存到脚本文件中,在使用时只需直接导入并执行即可
31、。用时只需直接导入并执行即可。l执行存储过程命令执行存储过程命令命令格式:命令格式:EXECUTE EXECUTE 存储过程名存储过程名l设置列显示属性设置列显示属性命令格式:命令格式:COLUMN column|expr option COLUMN column|expr option lSHOWSHOW查看例程参数、系统变量、编译错误等查看例程参数、系统变量、编译错误等l显示命令帮助信息显示命令帮助信息命令格式:命令格式:HELP HELP 命令名命令名 数据库配置助手数据库配置助手DBCADBCAn OracleOracle数据库配置助手(数据库配置助手(Database Databas
32、e Configuration AssistantConfiguration Assistant,DBCADBCA)l一个图形界面的数据库实例配置工具一个图形界面的数据库实例配置工具l可以创建、删除和修改数据库实例可以创建、删除和修改数据库实例SQL DeveloperSQL Developern 免费的图形化数据库开发工具免费的图形化数据库开发工具n 由由JAVAJAVA编写而成,可以跨系统运行编写而成,可以跨系统运行n 可以浏览数据库对象、运行可以浏览数据库对象、运行SQLSQL语句和语句和SQLSQL脚本脚本,还可以编辑和调试,还可以编辑和调试PL/SQLPL/SQL语句等语句等n 举例
33、:淘宝l2003年4月7日,马云安排杭州阿里巴巴的10名员工要求他们在一个月左右的时间内做出一个C2C网站结果是直接买一个老美开发的拍卖网站(PHP),再做修改2003年底,淘宝注册用户23万,半年成交额3371万MySQL的默认存储引擎存在缺陷:读写锁等待时间过长等l使用Oracle替代MySQL并发性访问设计连接池但是PHP当时并没有官方提供支持语言连接池特性用Google搜到了一个开源的SQL Relay解决了数据库软件问题l硬件容量不够换了EMC的SANl推出支付宝、旺旺lSQL Relay频繁死锁,导致不得不定期重启服务l2004年用Java重写网站请Sun工程师做Java架构使用框
34、架数据存储改用IBM2004年底,淘宝注册用户400万,网成交额10个亿lOracle当数量级到亿时,进行分布式数据库2005年底,淘宝注册用户1390万l2006年搭建低耗能CDN网络,改善性能2006年底,淘宝注册用户3000万,商品数目5000万,网成交额169亿元l2007年,淘宝开发了自己的文件系统TFS2007年底,淘宝注册用户5000万,商品数目1个亿,全网成交额433亿元l2008年,系统拆分,产生中间件,数据库的数量增多,成本增加,开始从Oracle向MySQL迁移l2009年,拆分核心数据库(商品数据库、交易数据库、用户数据库),实现Oracle切入到PC server+MySQL的架构l2010年,开始自研OceanBase分布式关系型数据库l2017年,支付宝账务库核心数据链路迁移到OceanBasel2020年3月,正式向全球开放,国内多个银行移动公司开始使用lOceanBase的特点:更适合处理互联网业务,高可用、负载均衡、分布式架构弹性扩容缩容;非开源,对MySQL大部分兼容,对Oracle部分兼容,对机器配置要求高本章小结本章小结n Oracle数据库的发展数据库的发展n 安装与卸载安装与卸载Oraclen Oracle数据库的服务与环境变量数据库的服务与环境变量n 学习使用学习使用Oracle的常用工具的常用工具