oracle学习笔记(一)之逻辑结构和连接

1.oracle的逻辑数据结构

数据库中的一组理想的逻辑对象称为一个模式(schema)。

oracle数据库对象——如表、索引和封装的SQL代码等——实际上都是逻辑实体。

把数据库对象与各种模式区分开来易于方便管理并提高了安全性。

2.oracle的逻辑部件

数据块(data_block):数据块是oracle数据库的存储基础,它由磁盘空间上的若干字节组成。

区(extent):一个区是两个或多个相邻的数据块,它是空间分配的单元。

段(segment):一个段是分配给一个逻辑结构(如一个表、一个索引或其他对象)的一组区。

表空间(tablespace):表空间是一组数据文件(一个或多个文件),通常由相关的段组成。数据文件包含表空间中的所有逻辑结构的数据,如表和索引的数据。

3.oracle的块尺寸应该定义多大

必须确定oracle块的大小并设置oracle初始化文件(init.ora文件)中的DB_BLOCK_SIZE参数,块尺寸是处理oracle的更新、选择、或插入数据事务的最小单位,当用户从表中选择数据时,选择操作将从数据库文件中以块为单位“读取”或提取数据。

在理想情况下,oracle块尺寸应该为磁盘块尺寸的倍数,否则在每个I/O中伟只使用部分数据可能会浪费时间去读写全体磁盘块。

如果将oracle块尺寸定义为操作系统块尺寸的倍数,会使性能提高5%。

如果行比较小且访问和随机,则选择较小的块尺寸。

如果行比较小且访问主要是连续的(或者是随机且连续的),或者如果有较大的行,则选择较大的块尺寸标准。

多个oracle数据块尺寸:

DB_BLOCK_SIZE初始化参数决定Oracle数据库的标准块尺寸,其取值范围可以从2KB~~32KB。Oracle总是依据标准块尺寸创建系统表空间的,并且oracle可指定最多4个额外的非标准的块尺寸。

在同一个数据库中,可以定义2KB、4KB、8KB、16KB、32KB的块尺寸。

如果选择配置多个oracle块尺寸,还必须配置SGA(系统全局区)的缓冲区高速缓存中相应的高速缓存,而SGA是oracle的内存配置。

多个数据块尺寸主要应用于在具有不同数据库块尺寸的数据库之间传送表空间。

4. 数据块的内部结构

所有的数据块都可以分为2个主要部分:行数据部分和可用空间部分。

数据块的行数据部分包括存储在表或索引中的数据。

可用空间(free space)部分是oracle块留下的空间,为的是给将要插入的新数据或是扩充已有行留出空间。

一、oracle连接知识

1.1数据库的实例名:

a.oracle的实例由SGA和一组oracle进程组成。

b.oracleSID就是指的oracle实例。

c.数据库的实例名是在初始化文件init.ora中作为instance_name给出

 

# First instance specific parameters

clustdb1.thread=1

clustdb1.instance_name=clustdb1

......

# Second instance specific parameters

clustdb2.thread=2

clustdb2.instance_name = clustdb2

1.2全局数据库名

a.全局数据库名唯一的标识一个oracle数据库,其格式为:database_name.database_domain,如:

sales.us.acme.com,sales为数据库名,us.acme.com为数据库域。在同一个域中的数据库不会有相同的数据库名,所以每个数据库名都是唯一的。

1.3数据库服务名

a.对于客户机,数据库在逻辑上简单地表现为一个服务。

b.在服务和数据库之间存在一个多对多的关系。(这里的数据库指的是数据库实例,服务指的是每个数据库实例对应的服务)

c.我们用SERVICE_NAMES来指定数据库的服务名。服务名参数值默认为全局数据库名。

d.一个数据库可由多个服务名来访问。因为在一个数据库内可以建立多个数据库实例。

1.4数据库连接描述符

a.连接到任何一台数据库服务,必备的两个信息:数据库服务名和地址。

  地址包含三个部分:连接使用的通信协议、主机名和端口号。

ADDRESS = (PROTOCOL =TCP)(HOST = 127.0.0.1)(PORT = 1521)

b.UNIX服务器上的端口号默认为1521或1526,WINDOWS上默认为1521.

c.任何主机上的数据库具有唯一的服务名,所以一个oracle数据库服务名和一个主机名将唯一地标识任何数据库。

1.5连接标识符

连接标识符与连接描述符紧密关联,可把连接描述符作为连接标识符,或者可简单的映射一个数据库服务名为一个连接描述符。

1.6连接串

使用连接串连接到数据库,连接串包含用户名/密码组合及一个连接标识符。

TY_127.0.0.1                                               =连接串

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521))

                                                        协议            主机          端口号   

)

(CONNECT_DATA=

  (SERVICE_NAME)   全局数据库名(默认为DB_NAME+DB_DOMAIN)

      (SID = ty)                     实例名

      (SERVER = DEDICATED)

    )

  )

1.7建立连接

a.保证安装了数据库服务器且oracle实例正在运行

b.保证在客户机上安装了oracle客户机软件

c.确认数据库服务器和客户机运行在同一个网络上,可以使用ping命令测试:

d.必须在服务器和客户机上安装TCP/IP协议。(会自动被安装)

e.保证oracle监听正在服务器上运行,并且正在合适的端口进行监听连接请求。

f.配置客户机以连接到数据库。四种方法(本地命名、简易连接命名、目录命名和外部命名)

g.用SQL*PLUS或第三方工具连接到数据库。

命令窗口:sqlplus system/tiger@orcl

1.8oracle客户机的安装

a.光盘安装或者文件安装

b.选择Install/Deinstall Products选项卡,并单击Next按钮

c.…….

1.9监听器和连接

Oracle监听器是一个只运行在服务器上的并监听连接请求的服务。Oracle提供了lsnrctl程序来管理监听器进程。

Oracle监听器是一个只运行在服务器上的并监听连接请求的服务。Oracle提供了lsnrctl程序来管理监听器进程

a.数据库用监听器记录关于服务、实例及服务处理器的信息。

b.客户机与监听器进行初步的连接。

c.监听器接收和验证客户机连接请求并把此请求交给数据库服务的服务处理器。一旦交付了客户机请求,监听器在该连接中不再起作用。

--------------------------------------------------------------------

a.同一个服务器上可以运行多个监听器服务,但是一般是在使用OracleRAC(Real Application Clusters)时才这样做。
b.在面对大量连接请求的时候,为了保证监听器不失败,需要配置一个监听器的队列,在listener.ora文件中配置
LISTENERSUPERBEE =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = www-1fa60e712fc)(PORT =1521)(QUEUESIZE=10))
    )
  )
c.为监听器设置密码:如果lsnrctl应用程序没有设置密码,任何进入操作系统的用户都可以在命令提示符下输入lsnrctl stop停止监听和阻止客户机的连接。
命令行下执行:
lsnrctl
set password
xxxxxxxx
change_password
...
...
...
save_config
配置完成后打开listener.ora文件可以看到增加了一条密码项信息
注意:如果在配置过程中出现问题:显示如下:
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-1fa60e712fc)(PORT=1521)
))
TNS-12545: 因目标主机或对象不存在, 连接失败
 TNS-12560: TNS: 协议适配器错误
  TNS-00515: 因目标主机或对象不存在, 连接失败
   32-bit Windows Error: 1001: Unknown error

则证明listener.ora的主机配置和tnsname.ora配置的不一致,或者至少有一个地方配置错误,一般为listener.ora配置错误。
该监听密码只针对于停止监听有效。对启动无效。
停止带密码的监听:
$ lsnrctl stop
$ lsnrctl set password
PASSWORD:  xxxx
$ stop

1.10oracle连接相关命令小笔记

1.在命令行窗口下连接oracle
先执行setoracle_SID  查看当前的要连接的数据库
通过set oracle_SID=xxxx更改所要连接的数据库
执行sqlplusscott/tiger@SID进行连接---@SID不写的话会默认连接刚才设置的
该命令也可以分开执行sqlplus---->会提示输入用户名----->会提示输入密码
这样也是连接刚才设置的数据库实例
2.在与数据库建立连接前,要保证数据库的客户端和服务器在同一个网络内
ping prod1
3.要查看oracle客户机的版本:执行sqlplus
4.使用lsnrctlstatus查看监听器的状态----也可以使用OEM的Net Services Adminstration页面查看
5.如果对lsnrctl.ora文件做了更改,要使更改生效,可重启监听器或者重新加载监听器lsnrctl reload



上一篇:svn服务端的安装与使用方式简介(二)


下一篇:SSH整合学习笔记之spring与hibernate简单整合.doc