Oracle基本认识

Oracle数据库基本认识
Oracle数据库与SQL Server数据库有很多概念上的不同,从Oracle数据库的角度来理解,运行一个数据库需要软件和数据的支持,所谓的数据,就是真正的数据库,将数据库中的内容保存到电脑中的文件中,并且格式固定。这个时候我们可以用二进制文件打开,查看里面的0 1 传,如果我们不怕麻烦直接去分析这些0 1 串最终是肯定可以找到问们想要的数据的。
但是数据库不仅仅是为了保存数据还为了方便的存取操作,为了这些方便,比如我们熟悉的SQL语句,Oracle需要安装一系列的组件来编译理解这些命令,对于一个完整的数据库来书这些组件也是必须的。
数据库还必须提供给我们一个操作的借口,比如用来输入SQL语句的接口,用来操作的界面,这些接口将我们输入的命令,传给相应的组件,再由相应的组件调用相应的命令,查找存放数据的文件,并把查找到的结果返回给用户接口,这样才能组成一个完整的数据库。
最常见的用户操作接口是SQL Plus 他是一个命令行接口,不过却非常的方便强大,毕竟Oracle的出发点就是使用者是专业人士。此外Oracle也有图形界面操作,只要下载相应的软件即可,不过如果为了熟练使用数据库,图形界面操作并不可取。Oracle提供的第三个操作接口,就是OEM Oracle Express Manager 这是一个利用浏览器作为操作接口的界面,由此也可以看出来浏览器的开发日益火热,这个界面可以完成许多SQL Plus 不方便完成的任务,所以也是很重要的。
在我看来 SQL Plus 和 OEM都是很重要且需要掌握的,两者互补更方便。
当我们安装上一个数据库的时候,上面所说的数据库文件,数据库组件,操作接口都已经安装上了,接口默认使用的是SQL Plus 和 OEM。但是为什么我们没有建立任何的数据库也有数据库文件呢,这是因为数据库为我们提供了数据字典,里面有些数据库的信息,这些信息可以通过SQL语句查询但是必须是
DBA。此外数据库会默认提供一个用户叫做 scott 密码是 tiger 该用户下有几张表和一些数据可以供我们学习练习。这样就不用我们建立一个新的表空间了,毕竟我们初学者设计的表空间不必专业人士设计。
当数据库被安装到我们的电脑的时候我们的电脑就是一个数据库服务器了,实际应用中肯定是专门的服务器做数据库服务器,在练习的时候我们的电脑即是服务器又是客户端,我们从客户端登录到服务器就是连接掉数据库了,这个时候数据库必然要监听一个端口才能保证连接上数据库,而监听端口的进程一般会做成一个服务,这样占用资源少反应迅速(WINDOWS下)。接下来就需要说下数据库都安装了那些服务,那些文件,运行那些进程。内存结构等等。
在此之前需要先说一下Oracle下的一些节本概念。
Oracle数据库里面,最小的结构叫做块,就像操作系统的块(4KB)一样,这主要是为了保证操作速度,因为当空间不足需要向操作系统申请一个空间的时候不能按位申请吧(这个很明显,有编程经验的都知道,虽然boolean类型只需要1位表示但是最常见的还是用1字节或4字节表示boolean类型)。对数据库来说它的块一般是操作系统块大小的整数倍,然后申请空间都会按照申请几个块来完成。
多个块组成了一个区,
多个区做成一一个段,现在我一直理解为一个段就是一张表,但是只是为了方便记忆,实际肯定不是吧,因为一张表的大小逐渐增加,肯定最终会超过一个段申请第二个段。
段之上就是表空间了,从字面理解就是多个表的空间,如果有SQLServer的经验,这里的表空间就是SQLServe里面的数据库,我们通常为一个应用软件建立一个数据库,以保证不同应用软件之间的隔离,在Oracle里面这叫做表空间。如果使我们平时用肯定觉得数据库这个概念比较好理解,但是我是这么想的,在实际的应用中一个数据库服务器一般也就是为一个应用服务的,比如一个网站,这个时候把它们组成一个表空间就显得有意义了。
最大的概念就是数据库了,一个数据库相当于是一个安装了一遍Oracle。(当然了你也可以新建立一个数据库,但是你无法只运行一组服务二运行两个数据库)。
Oracle安装的时候我们就已经建立了一个数据库,当时要求我们填一个id 一般都会填orcl 这个id作为一个数据库的标志id。为了运行这个数据库的服务,组件以及程序的命名都是跟这个id有关的。
下面来看一下Oracle的服务:
安装的时候我赋予的id是orcl,所以在我的计算机上有七个Oracle相关的服务他们分别是
OracleVssWriterORCL  OracleDBConsoleorcl  OracleJobSchedulerORCL OracleMTSRecoveryService OracleOraDb11g_home1ClrAgent OracleOraDb11g_home1TNSListener OracleServiceORCL 
注意我这是服务名,而不是显示名,有时候你需要看服务的属性才能看到相同的名称。
在这些服务里有些服务的后缀是ORCL 也就是我赋予的id,这些服务与特定的数据库相关,换句话说如果你新建了一个数据库,必须赋予一个新的id那么会生成一组新的这些服务,并且后缀是新的id 选择启动哪个数据库就会启动哪组服务。我们看看这些服务
OracleVssWriterORCL Oracle 对VSS 服务的支持,VSS也就是影卷 不是必须启动服务
OracleDBConsoleorcl 与Oracle OEM相关的服务,如果想使用OEM则必须启动该服务
OracleJobSchedulerORCL 作业调度,如果没有日期安排则不需要启动,一般为禁用
OracleServiceORCL 服务进程,正常使用Oracle必启动的进程

OracleMTSRecoveryService  该服务针对微软的COM+设计,平时应该保持禁用状态。
OracleOraDb11g_home1ClrAgent 针对微软的服务
OracleOraDb11g_home1TNSListener 端口侦听, 为了正常运行Oracle,该服务也必须启动。


OracleOraDb11g_home1TNSListener  如果不启动该服务,登录的时候会出现TNS错误

当所需要的服务已经正常启动了,就可以使用SQLPlus登录了,默认情况下可以使用 conn / as sysdba  dba在Oracl里面是管理员的意思,sysdba就是系统管理员,也就是不需要提供账号密码直接使用系统管理员登录,也就是使用操作系统认证。

Oracle数据库会自动创建一组环境变量,这些环境变量可能存在于环境中 也就是cmd 里面 set 命令,也可能存在注册表中,我的安装后就是存在注册表中。一般在HKLM/software/ORACLE/KEY_OraDb11g_home2 可以在其中找到数据库的系统定义。

一般练习的情况下会登录scott账户,使用该账户下的表空间,默认密码是taiger(老虎)如果忘了,可以首先使用sysdba登录,然后修改密码
conn / as sysdba
alter user scott identified newpassword account unlock
每个用户默认应该是拥有一个表空间,比如scott就拥有一个自己的表空间,作为练习使用,查看当前表空间的情况可以使用user_tables。
查看一个表的结构 可以使用 desc(description)语句,如 desc user_tables;



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值