Oracle创建数据库
什么是Oracle数据库实例
oarcle数据库服务器主要有两部分组成:物理数据库和数据库管理系统
数据库管理系统是用户和物理数据库之间的一个中间层,是软件层。这个软件层具有一定的结构,这个结构又被称为实例结构。
在启动数据库时,oracle首先要在内存中获取、划分、保留各种用途的区域,运行各种用途的后台进程,即创建一个实例(instance),然后由该实例装载、打开数据库,最后由这个实例来访问和控制数据库的各种物理结构。 数据库至少由一个oracle实例引用,该实例由oracle系统标识符(system identity)唯一标识,用于区别此计算机上的任何其他实例。
在启动数据库并使用数据库的时候,实际上是连接到该数据库的实例,通过实例来连接、使用数据库。所以实例是用户和数据库之间的一个中间层。
实例是由操作系统的内存结构和一系列进程所组成的,可以启动和关闭。
一台计算机上可以创建多个oracle数据库,当同时要使用这些数据库时,就要创建多个实例。为了不使这些实例相互混淆,每个实例都要用称为SID的符号来区分,即创建这些数据库时填写的数据库SID。
数据库实例是用户访问数据库的中间层,是使用数据库的手段,它为用户访问数据库提供了必要的内存空间和多个工作进程,它是动态的、临时的,简单的说,Oracle实例就是由内存空间和工作进程两部分组成。 我们只能通过实例操作数据库,同一时间,一个实例只能打开一个数据库,也就是一个实例只能操作或管理一个数据库,但一个数据库可以被多个是实例打开。实例可以在没有数据文件的情况下单独启动,(startup nomount)但这通常是没有意义的,一个实例在生成期内只能装载(alter database mount)和打开(alter database open)数据库。
打开开始菜单
这样往下去填入数据库名称和账户密码,创建就可以了
但是我们实际上是不用创建Oracle数据库的
Oracle应用程序的体系结构
客户机/服务器模式结构(C/S结构)
当客户机需要服务器的数据时,可以通过连接服务器来获取。客户机向服务器发送SQL数据库请求,服务器接受并执行传送给它的SQL语句,然后把执行结果和产生的消息文本返回给客户机。
基于因特网(B/S)的应用模式结构
在基于B/S的模式中,客户机需要安装WEB浏览器,数据库请求通过应用程序服务器发送到数据库服务器,数据库服务接受并执行发送给它的SQL语句,然后把执行结果和消息文本,通过应用程序服务器返回给客户机。最后数据库操作结果通过浏览器展现给客户机。
Oracle数据库网络配置
什么是数据库实例:
Oracle通过数据库实例来加载和管理数据库,每个运行的Oracle数据库都对应一个Oracle实例(Instance),也可以称为例程。当数据库服务器上的一个数据库启动时,Oracle将分配一块内存空间,叫做系统全局区(SGA),然后启动多个进程。SGA和Oracle进程结合在一起,就是一个Oracle实例。为了区分不同的实例,每个Oracle实例都有一个系统标识符SID,通常SID与数据库同名。
实例启动后,Oracle把它与指定的数据库联系在一起,这个过程叫做“装载数据库”,此时数据库就处于就绪状态,有权限的用户可以访问该数据库,Oracle也可以把多个实例和一个数据库关联起来,服务更多的客户使用数据库的请求,从而提高数据库效率。
监听程序:
客户机与Oracle数据库服务器通信时,网络连接是通过监听程序建立的。监听程序也叫监听器。监听器是运行在服务器端的一个单独的服务进程。其职责是监听网络上客户机对服务器的连接请求,并管理客户机和服务器之间的网络通信。每次客户机请求与服务器进行网络会话时,监听器会立刻接收到该请求,并把该请求传送给服务器。监听器将客户机提供的信息与自己保存的配置文件信息进行比较,如果协议匹配、主机匹配、端口匹配、数据库匹配,监听器就授权客户机连接到服务器,否则拒绝客户机的连接请求。
服务名:
服务名是数据库服务器在客户端的名称,从Oracle 9i版本开始,引入了一个新的概念,即数据库服务名。如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。
Oracle网络连接服务器端配置:
服务器端配置主要是服务器端的监听程序的配置。监听程序的配置信息包括监听的网络协议、端口号、主机名等信息。一般情况下,在安装Oracle11g数据库时会自动地在配置文件listener.ora中配置一个默认监听程序。该监听程序的名称为LISIENER,通信协议为TCP/IP,端口号为1521.但一个服务器可以有多个监听程序,分别监听不同的协议和端口号。如果某个监听程序的配置不再适应实际情况,就需要对其进行重新编辑或配置。以下将在服务器端介绍如何使用Oracle Net Manager来配置监听程序,步骤如下:
执行【开始】→【Oracle-OraDB11g_home1】→【Net Manager】命令。将弹出“Oracle Net Manager”窗口,在窗口进行相应的修改。
Oracle网络连接客户端配置
Oracle 11g安装程序会自动地创建一个默认的tnsnames.ora文件。如果一台计算机上只安装了Oracle 11g客户端软件,则该计算机只能作为客户端,不会产生默认的tnsnames.ora文件。以下讲解客户端如何使用Oracle Net Manager 来配置监听程序,步骤如下:
第一步,进入【Oracle Net Manager】窗口,选中【服务命名】,点击【创建】按钮,将出现如下图【Net服务名向导】窗口,在其中输入需要创建的网络服务名名称,单击【下一步】按钮。
第二步,在出现的Net服务名向导的“协议”窗口中选中“TCP/IP(Internet协议)”选项,如下图,单击【下一步】按钮
第三步,执行以上操作后将出现下图所示,按照向导要求输入主机名、端口号等信息,单击【下一步】按钮。
第四步,执行以上操作后将出现下图所示界面,按照向导要求输入全局数据库名等信息,单击【下一步】按钮。
第五步,执行以上操作如下图界面所示,为了检查新创建的网络服务名是否有效,可以单击图中【测试】按钮进行测试。如果测试成功,将显示测试窗口
解锁登陆权限
Alert user Scott account unlock 这是固定语句,直接执行就好了
第二节:Oracle的体系结构:
Oracle体系结构:
数据块(Data Block)
数据块是最小的数据管理单位,即Oracle中所有的I/O操作都以块为单位。数据块的大小是操作系统块大小的整数倍,常见大小为2KB或4KB
数据区间(Data Extent)
数据区间由物理上连续存放的块所构成,它是Oracle存储分配的最小单位,一个或多个块组成一个数据区间
数据段(Data Segment)
若干个数据区间构成数据段
表空间(Table Space)
顾名思义就是存放表的,其实所有的对象都存放在表空间中,只不过最多的是表,所以就称为表空间。一个数据库可以有多个表空间,但是1个表空间只能属于一个数据库,表空间是数据库的逻辑划分。
为了提高数据库服务器管理和运行的效率,Oracle 11g使用“表空间”这个虚拟的概念来管理逻辑对象,用户可以将不同性质的逻辑对象存放在不同的表空间下 。
在Windows操作系统中,使用文件夹来分类管理各种文件,表空间相当于Oracle数据库的文件夹。
每个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系 。
就好比数据库相当于一个柜子,柜子中的抽屉相当于表空间,抽屉中的文件夹相当于表,文件夹中的纸相当于数据区间,写在纸上的信息相当于数据。
第三节:创建Oracle表空间。
表空间的理解。
Orcale将数据逻辑的存放在表空间里,而物理的存放在数据文件里。表空间只能属于一个数据库,一个数据库一般有多个表空间。每个表空间都是由一个或者是多个操作系统的数据文件组成,但是一个操作系统数据文件只能属于一个表空间。表空间就像是一个空房子,可以理解成一个内存空间。
表空间的分类:永久表空间、临时表空间、UNDO表空间。
创建表空间,必须以dba身份登录。
在Oracle中数据表是按照表空间来进行管理的。也就是说,建表前,需要新建表空间()。
创建表空间语法:
创建表空间示例:
表空间的存放位置
表空间的创建语句
以下创建表空间语句具体解释如下:
表空间名称:例如:“MY_MOBILE”
与表空间关联的数据文件的位置及名称为:“D:/mytablespace/my_mobile.dbf”。
文件初始大小为100MB。
文件大小可自动扩展,每次扩展32MB,允许文件扩展的最大限制为无限制。
Oracle生成表空间中数据库对象的任何创建或更改都需要记入日志。
表空间中的数据区间管理采用本地化管理方式。
表空间中段的管理方式为自动管理方式。
一般用默认的命令即可:
在这里,我们可以通过select * from dba_data_files语句查询文件的位置
修改表空间
Alter tablespace 表名
Add datafile ‘d:/mytablespace/my_modile.dbf’ size 10M
连起来就是修改表空间,添加文件
删除表空间
Drop tablespace 表空间名字 including contents and datafiles;
第四节:创建Oracle用户并授权。
1、创建用户
同一数据库中可以同时有多个用户,每个用户管理自己的数据库对象.比如数据库表、索引、视图等。
Oracle中的CREATE USER命令用于创建新用户。每个用户都有一个默认表空间和一个临时表空间。如果没有指定,Oracle就将SYSTEM设为默认表空间,将TEMP设为临时表空间。
语法:
CREATE USER <用户名>
IDENTIFIED BY <密码>
[DEFAULT TABLESPACE <默认表空间>]
[TEMPORARYTABLESPACE <临时表空间>]
示例:
解锁用户锁定:
更新用户密码:
2、用户权限和角色
只创建用户还不行,必须赋予相应权限才可以连接和访问数据库。权限指的是执行特定类型的SQL命令或访问其他对象的权利。例如:连接数据库、创建表,执行存储过程都需要一些权限。若没有权限,新建的用户将无法登录Oracle数据库。
Oracle用户权限有两种类型:系统权限和对象权限。
系统权限允许用户执行某些数据库操作。例如,创建表空间就是一个系统权限。
对象权限允许用户对某一特定对象(如表、视图、序列等)执行特定的操作。
3、用户角色
角色是具有名称的一组权限的组合,可以使用角色为用户授权。可以把角色理解为日常生活中的职务,一个人获取了某项职务,就自动具有该职务的所有权限,一个人被撤销了某职务,也就不再拥有相应的权限。
Oracle中常用系统预定义角色如下。
CONNECT:临时用户,特别是那些不需要创建表的用户,通常赋予该角色。
RESOURCE:更为可靠和正式的数据库用户可以赋予该角色,可以创建表、触发器、过程等。
DBA:数据库管理员角色,拥有管理数据库的最高权限。可以撤销任何别的用户甚至别的DBA权限。
4、给用户分配权限或角色语法:
GRANT命令用于为用户分配权限或角色,而REVOKE命令用于为用户撤销权限和角色。
语法:
GRANT [<权限> | <角色>] TO <用户>;
REVOKE [<权限> | <角色>] FROM <用户>;
示例:
用sys用户登录授权:
用scott用户登录授权
5、删除用户
DBA用户登录:
删除用户语法:(删除时必须指定级联参数)
Drop user 用户名 cascade
删除表空间语法:
Drop tablespace 表空间名 [ including contents and datafiles];
总结:
创建用户(方案)的步骤:
创建表空间:
create tablespace my_mobile
datafile ‘d:\myspace\my_mobile.dbf’
size 100m;
创建用户:
CREATE USER mm
IDENTIFIED BY oracle
DEFAULT TABLESPACE MY_MOBILE
给用户解锁和授权:
GRANT CONNECT,RESOURCE TO mm;
alter user mm account unlock;
用户登录、操作