Oracle数据库 图书管理系统实验报告
Oracle数据库 图书管理系统实验报告(精选8篇)
Oracle数据库 图书管理系统实验报告 第1篇
表空间和数据文件的管理实验
试验目的:全面掌握表空间和数据文件的创建、管理过程 试验内容:
1、创建表空间、增加数据文件
2、管理表空间和数据文件的的各种操作 试验步骤:
1、掌握表空间和数据文件相关的概念
1)oracle默认的表空间
系统默认的表空间:SYSTEM、SYSAUX、UNDOTBS1、EMP、EXAMPLE、USERS 2)系统表空间
SYSTEM、SYSAUX是系统表空间,SYSTEM用于存放oracle数据字典的结构和内部元数据。
SYSAUX是SYSTEM的辅助表空间用于存放个模式(用户)的对象元数据。
3)非系统表空间
由DBA根据需要创建,存放用户自己的数据,也可以包含临时数据以及UNDO数据。
2、创建表空间
1)创建表空间的语法
CREATE [smallfile|bigfile] TABLESPACE tablespace_name DATAFILE ‘/path/filename’ SIZE [k|m] REUSE
[‘/path/filename’ SIZE [k|m] REUSE]
[AUTOEXTEND [ON|OFF] NEXT [k|m] MAXSIZE [UNLIMITED|[K|M]]] [ONLINE|OFFLINE] [LOGGING|NOLOGGING] [PERMANENT|TEMPORARY] [DICTIONARY|LOCAL]
2)定义表空间名字及属性
创建两个表空间ts_test1、ts_test2,本地化管理(Local,默认)、永久表空间(permantent,默认)
3)定义数据文件名字、路径、初始大小、自动扩展等属性
数据文件data_test1、data_test2 路径:c:disk1data_test1.dbf c:disk2data_test2
4)创建脚本:
a、创建本地永久表空间
//创建本地永久表空间ts_test1和ts_test2,默认为永久和本地
SQL>create tablespace ts_test1 datafile ‘c:disk1data_file1.dbf’ size=50m reuse autoextend on next 10m;
SQL>create tablespace ts_test2 datafile ‘c:disk2data_file2.dbf’ size=50m reuse autoextend on next 10m maxsize unlimited;查看一下创建完成的结果
//查看dba_tablespaces结构
SQL>desc dba_tablespaces;
//查看字典中的所有表空间情况,extent_management值为local时为本地表空间 SQL>select tablespace_name,status,extent_management,content from dba_tablespaces;//查看创建表空间时创建的数据文件,首先查看dba_data_files字典结构 SQL>desc dba_data_files;//查看数据文件情况 SQL>set linesize 120 SQL>col file_name for a20 SQL>col file_id for a20 SQL>col tablespace_name a30 SQL>col online_status for a20 SQL>select file_name,file_id,tablespace_name,online_status from dba_data_files;
b、创建还原表空间和临时表空间
//创建还原表空间
SQL>create undo tablespace test_undo datafile ‘c:disk3test_undo’ size 20m;
//查看创建结果,contents为表空间内容类型,如undo
SQL>select tablespace_name,contents from dba_tablespaces;
c、创建临时表空间
//创建临时表空间
SQL>create temporary tablespace test_temp
tempfile ‘c:disk4test_temp.dbf’ size 20m extent management local;
//查询创建结果
SQL>select tablespace_name,extent_management,contents from dba_tablespaces;d、增加数据文件
//增加数据文件
SQL>alter tablespace ts_test1 add datafile ‘c:disk1ts_test11.dbf’ size 10m;
//查看增加数据文件的结果
SQL>col file_name for a30
SQL>col tablespace_name for a30 SQL>select file_name,tablespace_name from dba_data_files;
3、管理表空间的各种操作
1)改变表空间的读写状态
//将表空间设为只读
//这时表空间应为online状态,表空间不能包含回滚段,不能是归档模式
//查看数据库日志模式
SQL>archive log list;//查看表空间contents
SQL>select tablespace_name,contents from dba_tablespaces where tablespace_name like‘TS_%’;
//修改为只读
SQL>alter tablespace ts_test1 read only;2)表空间脱机离线、在线连接
SQL>alter tablespace ts_test1 offline;
SQL>alter tablespace ts_test1 online;
//查看表空间状态
SQL>select tablespace_name,status from dba_tablespaces;3)修改表空间名称 //查询当前表空间名称和所包含的数据文件
SQL>select file_name,tablespace_name from dba_data_files;//确认表空间处在online状态
SQL>select tablespace_name,status from dba_tablespaces;//表空间改名
SQL>alter tablespace ts_test2 rename to ts_test22;//查询修改结果
SQL>Col file_name for a30;SQL>col tablespace_name for a30;SQL>select file_name,tablespace_name from dba_data_files;4)设置默认表空间
SQL>alter database default tablespace users //设置默认临时表空间
SQL>alter database default temporary tablespace temp;5)删除表空间
SQL>drop tablespace ts_test2;//仅删除表空间信息不删除表空间数据文件 SQL>drop tablespace ts_test2 includng contents;//包括数据文件全部删除 查看删除后的结果情况
SQL>select file_name,tablespace_name from dba_data_files;6)切换undo表空间
SQL>alter system set undo_tablespace =undotbs02;7)删除undo表空间
要删除正在使用的undo表空间,首先切换undo表空间后在进行删除 例如删除undost01 SQL>alter system set undo_tablespace=undost02;SQL>drop tablespace undost01;8)查询undo表空间信息
SQL>show parameter undo_tablespace;
4、管理数据文件的各种操作 1)在表空间中新增一个数据文件
SQL>alter tablespace ts_test1 add datafile ‘c:dsk1ta_test111.dbf’ size 50m;2)删除表空间中无数据的数据文件 第一种语法
SQL>alter database datafile ‘c:disk1ts_test1.dbf’ offline;//数据文件脱机 SQL>alter tablespace ts_test1 drop datafile ‘c:disk1ts_test111.dbf’;第二种语法:
SQL>alter database datafile ‘mytb.dbf’ offline drop;3)数据文件自动扩展设置
SQL>alter tablespace ts_test1 datafile ‘c:disk1ts_test1.dbf’ autoextend on next 10m maxsize 500m;4)重置数据文件大小,收回或扩数据文件空间
SQL>alter tablespace ts_test1 datafile ‘c:disk1ts_test1.dbf’ resize 45m;
查询重置数据文件大小后的结果
SQL>col file_name for a30;
SQL>col tablespace_name for a30;
SQL>select file_name,tablespace_name,bytes/(1024*1024)from dba_data_files;5)移动数据文件
有两条语句可以实现对数据文件的移动:
a、alter tablespace tablespace_name rename datafile ‘/path/file_name1’
to ‘/path/file_name_new’;
a这条语句主要适合用户表空间,在执行这条语句时表空间必须脱机才能执行。SQL>alter tablesapace ts_test2 offline;//使表空间ts_test2脱机
SQL>host copy c:disk2ts_test2.dbf c:disk1 //将数据文件拷贝到新的位置
SQL>alter tablespace rename datafile ‘c:disk2ts_test2.dbf’ to ‘c:disk1ts_test1.dbf’;b、alter database db_name rename file ‘/path/file_name1’ to ‘/path/file_name_new’;
这条语句使用于系统表空间及不能置为脱机的表空间中的数据文件。在使用该语句时,数据库必须在加载(mount)的状态且目标数据文件必须存在,因为该语句只是修改文件中指向数据文件的指针(地址)。SQL>shutdown immediate;SQL>host copy c:oracleproduct10.2.0oradatasystem01.dbf c:disk1 SQL>startup mount;SQL>alter database rename file ‘c:oracleproduct10.2.0oradataorclsystem01.dbf’ to ‘c:disk1system01.dbf’;SQL>alter database open;查询移动后的结果
SQL>select file_name,tablespace_name from dba_data_files;
Oracle数据库 图书管理系统实验报告 第2篇
授课学期:2015年度第二学期 课程名称:数据库编程课时安排:专
业:计算机科学与技术班
级:年
级:任课教师:陆汝华
实验 16课时
1班 2013级 实验一 Oracle安装配置与基本操作实验
教学目的要求:
1.掌握Oracle数据库的安装,包括服务器端数据库管理系统安装和客户端工具的安装。2.掌握Oracle数据库的登录、启动和关闭 重点:
Oracle 11g数据库的安装 难点:
服务端和客户端的安装 课时安排:实验2课时
预备知识:
一、安装:
1、选择安装方法:默认为基本安装,一般选择高级安装
2、选择安装类型:企业版 标准版 个人版
一般选择企业版
3、安装位置:即ORACLE基目录和主目录设置
4、先决条件检查
5、选择配置选项:创建数据库
6、选择数据库配置:一般用途/事务处理
7、输入全局数据库名和SID
8、数据库存储选项:数据文件存储位置
9、备份和恢复选项
10、口令
11、概要
点击安装按钮开始安装,直到出现安装结束界面。
二、操作:
1、程序组,系统服务,文件夹目录等的变化
2、从开始进入SQL Plus进行登录操作 用户名:sys as sysdba
3、进入控制台进行操作 https://localhost:1158/em
三、当oracle11g计算机名修改后需要重新配置 1 监听程序配置 本地NET服务名配置 3 控制台重新配置
(1)cmd
(2)emctl start dbconsole 提示:Environment variable ORACLE_SID not defined.Please define it.(3)set oracle_sid=orcl
(4)emctl start dbconsole 提示:OC4J Configuration issue.c:appAdministratorproduct11.1.0db_1/oc4j/j2ee/OC4 J_DBConsole_j1390_orcl not found.(5)复制上述文件改名为:OC4J_DBConsole_j1390_orcl
(6)emctl start dbconsole 提示:EM Configuration issue.c:appAdministratorproduct11.1.0db_1/j1390_orcl not found.(7)emctl start dbconsole 服务已经启动成功。还可以通过修改资料档案库或新建数据库来完成。
实验内容:
1、Oracle服务端软件的安装;
2、Oracle数据库的安装;
3、Oracle数据库客户端的安装;
4、Oracle数据库的登录、启动和关闭等基本操作。实验二 Oracle网络结构与管理实验
教学目的要求:
1.理解Oracle网络服务组成及Oracle NET、监听程序、管理连接器和网络工具的功能和作用;
2.理解服务名、连接描述符、连接标识符等基本概念; 3.掌握Oracle网络在服务器端和客户端的配置方法。重点:
Oracle 服务器端监听程序和网络服务名的配置 难点:
Oracle 服务器端监听程序的配置 课时安排:实验2课时
预备知识:
一、监听程序的配置
1、监听程序配置文件内容
默认路径为%Oracle-Home%networkadmin,存在文件名为listener.ora的配置文件,包含内容:配置监听程序所监听的一个或多个协议地址。配置监听程序所支持的数据库服务信息。设置控制监听程序运行的参数。
2、监听程序配置方法
使用ONCA或Oracle net manager修改配置文件listener.ora的内容,可以配置多个监听程序,ONCA配置方法步骤如下。
(1)欢迎使用(2)监听程序
(3)输入监听程序名称(4)选择协议(5)选择端口(6)配置完成
3、监听程序管理
在Windows环境下,可用命令行程序LSNRCTL(listener control 监听控制)启动、关闭和管理监听程序。
二、命名方法的配置
1、选择命名方法的配置
选择的命名方法记录在sqlnet.ora的文件中,该文件默认路径为networkadmin,默认内容为:
# sqlnet.ora Network Configuration File: D:appAdministratorproduct11.1.0db_1networkadminsqlnet.ora # Generated by Oracle configuration tools.# This file is actually generated by netca.But if customers choose to # install “Software Only”, this file wont exist and without the native # authentication, they will not be able to connect to the database on NT.SQLNET.AUTHENTICATION_SERVICES=(NTS)NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)
2、配置本地命名方法 本地命名方法将连接标识符到连接描述符的映射关系保存在名称为tnsnames.ora文件中,默认内容为:
# tnsnames.ora Network Configuration File: D:appAdministratorproduct11.1.0db_1networkadmintnsnames.ora # Generated by Oracle configuration tools.ORCL =
(DESCRIPTION =
(ADDRESS =(PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)))也可通过ONCA进行配置:
(1)选择“本地Net服务名配置”(2)服务名配置(3)服务名(4)选择协议(5)主机名(6)测试
(7)测试成功,可编辑网络服务名
实验内容:
1、对Oracle 服务器端进行监听程序和网络服务名等配置,并查看listener.ora、sqlnet.ora、tnsnames.ora等相关文件和Net Manager等相关界面的数据信息;
2、修改服务端的计算机名,对Oracle进行重新配置,使其能正常工作,同时查看上述相关数据并与之比较变化;
3、使用命令对监听程序进行操作管理。
实验三 Oracle数据库管理实验
教学目的要求:
1.掌握数据库的建立方法。
2.了解手动建立数据库的基本步骤。3.掌握数据库启动、关闭和删除的方法 重点:
数据库启动、关闭和删除的方法 难点:
手动建立数据库 课时安排:实验2课时
预备知识:
一、数据库的建立
(1)DBCA建立数据库
点击:OracleHome、Configuration And Migration Tools、Database Configuration Assistant进入DBCA界面。
(2)SQL命令建立数据库
1、确定数据库名和实例名SID SQL>setenv Oracle_SID=student
2、确定环境变量设置正确
在启动SQL Plus之前,必须正确设置环境变量。如Oracle_sid,Oracle_hom,PATH等。
3、确定DBA认证方式
新建数据库,必须以DBA身份连接,并具有相应的系统权限。
4、创建初始化参数文件
可复制样本初始化参数文件,也可复制其它数据库的初始化 参数文件。
5、创建实例
C:>oradim –NEW –SID student –STARTMODE MANUAL-PFILE=„„INIT.ORA
6、连接到实例
SQL>CONNECT SYS AS SYSDBA;连接正确,则提示connected to an idle instance.7、建立服务器参数文件
SQL>CREATE SPFILE FROM PFILE;
8、启动实例
SQL>STARTUP NOMOUNT;以非加载方式启动实例
9、执行CREATE DATABASE命令
二、数据库的操作(1)数据库的启动
1、启动实例但不加载数据库(NOMOUNT状态)SQL>STARTUP NOMOUNT;SQL>STARTUP NOMOUNT PFILE=„.init.ora;
2、启动实例并加载数据库(MOUNT状态)SQL>STARTUP MOUNT;SQL>STARTUP MOUNT PFILE=„.init.ora;
3、启动实例并加载、打开数据库(OPEN状态)SQL>STARTUP OPEN;SQL>STARTUP;SQL>STARTUP MOUNT PFILE=„.init.ora;SQL>STARTUP PFILE=„.init.ora;
4、数据库启动模式之间的转换
从NOMOUNT状态到MOUNT状态: SQL>ALTER DATABASE MOUNT; 从MOUNT状态到OPEN状态: SQL>ALTER DATABASE OPEN; 只读模式
SQL>ALTER DATABASE OPEN READ ONLY; 读写模式
SQL>ALTER DATABASE OPEN READ WRITE;(2)数据库的关闭
1、正常关闭方式(NORMAL)SQL>SHUTDOWN NORMAL;
2、立即关闭方式(IMMEDIATE)SQL>SHUTDOWN IMMEDIATE;
3、事务关闭方式(TRANSACTIONAL)SQL>SHUTDOWN TRANSACTIONAL;
4、终止关闭方式(ABORT)SQL>SHUTDOWN ABORT;
三、数据库的删除
启动DBCA,选择删除数据库。单击“下一步”,将显示所有可以被删除的数据库例程。
实验内容:
1、使用DBCA建立数据库;
2、使用命令建立数据库;
3、使用DBCA和命令对所建立的数据库进行修改、删除等操作;
4、练习数据库的启动和关闭等操作,重点练习三种启动模式和三种关闭方式,并了解数据库处于各种打开或关闭状态下所能进行和不能进行的基本操作。实验四 Oracle数据库对象管理实验
教学目的要求:
1.了解各类数据库对象的作用。
2.掌握表、视图、索引、序列、同义词等数据库对象的建立、删除、修改和查询等方法。3.掌握表内容的插入、删除、更新和查询等方法。4.掌握表的约束的使用方法 重点:
表内容的插入、删除、更新和查询等方法 难点:
手动建立表、视图、索引、序列等数据库对象 课时安排:实验4课时 实验内容:
1、使用SQL语句创建表(至少包含三种不同类型的字段),使用SQL语句向表中插入数据、修改表中数据、删除表中数据和查询数据。
2、使用SQL语句创建索引、视图。
3、创建序列,并在插入语句中使用序列。实验五Oracle数据库安全管理实验
教学目的要求:
1.了解数据库用户、权限、事务、概要文件、并发和会话等基本概念。2.掌握建立、删除和修改、查询用户等的方法。3.掌握用户授予和回收权限或角色的方法。4.掌握整个数据库安全的综合管理 重点:
用户授予和回收权限或角色 难点:
用户授予和回收权限或角色 课时安排:实验4课时 实验内容:
1、使用命令创建数据库认证用户。
2、为用户授予和回收权限或角色操作。
Oracle数据库 图书管理系统实验报告 第3篇
随着计算机和网络技术的高速发展,数字化图书馆得到了极快的发展。图书的数字化、图书借阅的自动化管理、没有空间和时间限制的阅读都大大方便了人们的阅读。相信未来图书馆会变得更加数字化,阅读和学习也将变得更加便捷,智能移动设备和移动互联网的发展为图书馆带来了新的机遇。
1 图书馆管理系统和 Oracle 数据库
图书馆管理系统包括以下几个子系统:采购子系统、编目子系统、打印子系统、检索统计子系统、流通信息子系统、系统维护子系统。这些子系统囊括了图书馆的主要业务,能够实现图书馆的采购、编目、检索、统计和流通等业务的计算机管理。系统采用图形界面,更加智能化、规范化、简便化,大大提高了图书馆的管理效率和服务质量。
Oracle数据库是甲骨文公司的主要数据库产品,是一款强大的关系数据库产品,在全球数据库市场占有主要地位,是世界上使用最广泛的数据库系统。采用B/S(客户端/服务器)架构。目前最新版本是Oracle Database 12c,这是一款面向云端的数据库产品。而传统Oracle数据库的最终版本是Oracle 11g。
图书馆管理系统强大的自动化管理功能都要依靠Oracle数据库的后台支撑。因此,在技术日新月异的今天,旧的数据库系统已经不能满足现代化图书馆发展的需要,不能充分发挥软硬件系统的优越性,考虑到今后系统软件的可用性和兼容性,有必要对Oracle数据库平台进行升级。本文以从Oracle 8g升级到Oracle 11g为例。
2 升级前的准备工作
2.1 软硬件环境的准备
目前,64位系统已经得到了广泛的普及,不管是64位的软件还是硬件都得到了越来越多的支持。Oracle 11g也是64位系统。所以,在选择硬件的时候,应该选择64的服务器,操作系统也应该选择64位的操作系统。目前,市场上可以选择的操作系统有Linux类操作系统和Windows Server操作系统。综合考虑价格和稳定性等因素,可以选择价格和配件都比较便宜的Windows Server64位操作系统。目前Windows Server最新版本是Windows Server 2012 R2。从32位系统升级到64位系统将大大提高图书馆管理系统的性能和效率。
2.2 Oracle 数据库升级方法的选择
在实践中,Oracle数据库升级方法有多种。常用的升级方法有三种:逻辑导入导出类、DBUA类和高可用类。逻辑导入导出类常用的工具是EXP/IMP和数据泵;DBUA是甲骨文官方推荐的升级方法;高可用类是通过使用Data Guard或OracleStreams等工具实现。
各种升级方法都有优缺点。如下表1所示。本文叙述从Oracle 8g升级到Oracle 11g,综合考虑各种方法的优缺点,最后选择使用数据库导入/导出(EXP/IMP)方法。这种方法是最为传统的升级方法,对平台和版本的要求最低,在数据重新导入的过程中,可以重新分配数据库存储空间,压缩段空间和表空间的使用,提高数据库访问效率。
Oracle数据库升级时间取决于数据库的大小,EXP/IMP方法升级时间主要字导入上,导入数据的时间大约是导出时间的2.5倍。在使用该方法时,导出和导入都要使用与源数据库版本相同的EXP/IMP工具。
EXP/IMP方法升级数据库时主要的操作包括创建数据库、创建表空间、创建用户、导出数据、导入数据、检查无效对象等。
2.3 数据库备份
数据库备份无论是在数据库升级期间还是数据库正常运行期间都是十分重要的工作。DBA日常最重要的工作就是数据库备份。无论操作有多么正确无误,数据库备份都是必须做的工作。严禁在未备份数据库的情况下就对数据库进行升级和维护操作。备份数据库的原则是:如果数据库未能成功升级,备份应该能够将数据库完整恢复到备份前的状态。Oracle数据库提供了3种备份方法:脱机备份、联机备份、逻辑备份。可以根据图书馆的实际情况,采用合适的备份方法。
2.4 系统测试
为了保证数据库升级的安全性和成功率。要对系统进行压力测试,测试图书馆管理系统在新的软硬件环境下各个系统功能是否正常。专门的技术人员针对每个模块进行测试,在不同的系统环境下测试得到的结果也不太一样。测试人员应该认真负责,做好系统测试工作。保证数据库升级的成功率。
2.5 升级客户端
当Oracle数据库从Oracle 8g升级到Oracle 11g之后,原有运行在Oracle 8g下的客户端软件就不能再运行,所以,需要将所有客户端软件都进行升级,使其能够在Oracle 11g下运行。要对图书馆每个终端都进行客户端的升级工作,这项工作可以提前完成。保证切换服务器能够顺利完成。
2.6 模拟演练
在进行实际的数据库升级之前,为了保证升级的成功、缩短系统停机时间,可以进行多次模拟升级演练。针对模拟演练中出现的问题,提出解决方案,直到能够成功达到预期效果。模拟演练的步骤可以按照如下:创建数据库、导出现有数据库、将数据导入新的数据库、删除测试数据库。重复这些步骤,确保准备工作就绪。
3 Oracle 数据库平台升级步骤
为了保证数据库升级不影响图书馆的正常使用,确定将升级时间定在凌晨图书馆使用较少的时候。根据前期的准备工作确定如下升级步骤:
(1)在新的64位数据库服务器上安装最新的Oracle 11g,并打上最新的系统补丁。按照要求为图书馆管理系统创建数据库、建立表空间,使用CREATE USER命令或者EnterpriseManager来创建和管理用户账户,为这些账户分配权限、创建默认表空间、临时表空间、定额和配置文件。
(2)检查Oracle数据库会话,确保所有客户端的连接都已断开。随后使用Oracle 8g的EXP导出工具导出原有数据库服务器上的数据库文件。
(3)使用Oracle 11g的IMP导入工具将导出的数据库文件导入新的数据库服务器中。
(4)安装Oracle 11g客户端软件和图书馆管理系统。并测试图书馆管理系统和数据库服务器的连接是否正常,各项操作是否能够成功。
(5)配置Oracle 11g数据库的各项配置参数。包括数据库自动启动脚本,数据库备份脚本。
(6)为数据库服务器配置IP地址,重新启动数据库,数据库升级完成。
4 升级后的完善工作
为了保证在数据库出现故障的时候数据能够及时恢复和备份,数据库必须设置成自动归档的方式。
数据库一般不使用默认的配置,根据图书馆实际的使用情况,对数据库进行适当的优化调整。适当增加联机重做日志组的配置,为每个联机重做日志组配置多个成员,并存放在不同的物理磁盘上,这样可以保证联机重做日志的安全性。
在数据库升级的过程中,数据库导入的对象有先后顺序的差异,有些存储过程的状态会变为无效,如果检查出无效存储过程,应该进行重新编译,使其变为有效。
数据库更新之后,其物理结构会产生一定的变化。因此,旧的备份和恢复脚本也应该进行相应的调整,并在调整之后进行多次测试,检查备份和恢复是否有误。如果发现错误,应该及时找出并修改。
5 结束语
Oracle数据库 图书管理系统实验报告 第4篇
关键词:信息系统;Oracle数据库;性能优化
中图分类号:TP392
从我国实况来看信息系统还存在各种不足,比如怎样充分发挥计算机系统资源,怎样确保用户的服务质量及响应速度等。因此,研究优化Oracle数据库的性能具有适用价值。
1 信息系统Oracle数据库性能优化
笔者就从Oracle数据库系统中选择I/O、内存、SQL语句以及网络性能方面入手,分析这些组成部分在运行中性能发送的一些问题,并且针对这些问题提出合理的优化措施。
1.1 对内存进行优化
优化内存比较常用方法就是调整系统的全局区(SGA)。具体操作就是调整内存中各种组件,包含JAVA池、缓冲区高速缓存等,对内存结构进行调整时需要加大SGA大小,但是必须要确保SGAS长度一定在实际所用内存范围之中。
1.2 调整共享池
共享池主要有两个部分组成,即高速缓存和数据字典缓存。其参数就确定了共享池的大小。而在高速缓存模块中又是由SQL语句文本,执行计划以及PL/SQL块、JAVA类共同组成。将“select namespace,gethitratio from v$librarycache”输送到执行栏目中,就能够从数据库中获取到缓存的统计信息。在该执行语句中gethitratio主要是实现查询对象的句柄标识名字和次数之间比率。在该数据库中,如果该比率低于了95%,就要进行调整。其查询语句是“select sum(pins-reloads)/sum(pins)*100 from v$librarycache”,通过执行该局于就可以得到高速缓存命中率。数据字典的缓存就是把数据字典中所含的各种信息存储进去。SQL语句查询对象信息时是通过数据字典进行高速存取,降低了不缓存之时从数据字典中查询的次数,通过这种查询方式就能够提升其性能。而且对v$rowcache动态性能视图进行查询,可以得到数据字典中缓存相关信息,输入执行语句“select(sum(gets-getmisses))/sum(gets) from v$rowcache”,通过执行后就可以得到数据字典中的缓存命中率。一旦最终结果值低于85%,必然要增大共享池容量才可以。
1.3 调整缓冲区的高速缓存
在SGA中,高速缓存是重要的组件之一,在执行保持之时高速缓存区就是负责对磁盘中相关数据进行读取、拷贝,保持服务器就能够对所有拷贝块进行共享。假如该服务器要得到数据块,就会先到高速缓存之中去查询所需数据,如果需要的数据在这个缓冲区之中,那么该进程就可以从高速缓冲区之中直接读取所需数据,如果数据并未在这个高速缓存之中,必然会从磁盘中相关数据文件进行读取,同时还将所读取数据存储进高速缓存之中,之后这些存储的数据就能够被服务器的进程使用。因此要尽可能让进程读取缓冲区的高速缓存中数据,并且经过相关的查询语句就可以执行,还能够通过查询得到使用高速缓存各种情况。
1.4 调整重做日志缓冲区
重做日志的缓冲区,也就要在内存中对高速缓存进行重做。一般情况下,该缓冲区的容量有1MB就可以的。但是该缓冲区一旦占据的空间三分之一,就会发出“rollback”和“commit”的命令,或者将DBWn进程写进到LGWR之中,通过这种方式就可以重做日志的缓冲区,将磁盘中重新写入内容。如果要想恢复数据库,必须要通过重做日志的缓冲区之中各种项目,这一种操作非常重要。要查询重做日志缓冲区中效率,输入相关的查询语句就能够查询结果,最终查询结果值只有接近0才正常,假如这个值不断的增大,就要适当增大log_buffer大小。
1.5 优化I/O
事实上,影响Oracle数据库性能一种主要原因就是磁盘I/O,一旦解决好了I/O,就能够有效提升数据库性能,配置数据库性能准则即为尽可能的降低磁盘I/O及平衡多个磁盘的驱动器,并且还要尽可能使用本地管理的空间,对动态视图进行查询就可以得到数据文件中的I/O 性能。在平衡I/O,能够采用的策略主要有如下几种:
(1)把访问次数比较多的数据文件促进独立的磁盘上。
(2)给用户数据创建出单独的表空间,并且把这个表空间单独放到system表中。
(3)有几个数据文件存在于同样表空间之中,就要存放到不同的磁盘之中。
(4)索引应该处于独立表空间中,还应该把索引以及表的数据存放至不同磁盘之中。
(5)构建出临时的表空间,用来实现排序操作,这样就能够有效阻止数据库中碎片进入表空间中,同时创建独立表空间给回滚段。
(6)尽可能做大日志文件,避免切换日志过于频繁;同时重做日志文件不要和数据库文件放进同一个磁盘中,降低磁盘之间的竞争。
1.6 优化CPU
当数据库中的I/O操作到了最低的程度,同时也分配了足够的内存,但是应用软件依然遭到CPU约束。优化CPU目标就要让CPU尽可能滿足用户所需,同时尽可能减小等待以及额外的开销影响到CPU,并且服务器能不能够正常的工作直接关系着CPU,当工作高峰CPU使用率处于90%标识着服务器具有良好工作状态。但是假如空闲之时CPU的使用率超过了90%,说明服务器中的CPU资源不足。如果出于工作的高峰,CPU的使用率依然比较低,这就说明服务器中的CPU资源比较充足。
在运行中,管理数据库人员只要查询数据字典中相关统计项,就可以查询Oracle 数据库使用CPU所占据时间,同时将相关查询语句输入到执行程序中,就可以获取到该操作系统使用了CPU所占据的时间,当然操作系统使用时间也就是用户态+系统态的时间总和。数据库占据了时间超过了总时间90%,这就说明服务器之中CPU几乎都让Oracle数据库占据了,表明运行良好;如果其他各种程序将CPU资源全部占有,Oracle数据库必然无法活儿更多的CPU资源及时间。查询v$sesstat数据字典就能够知道目前所连接的Oracle 数据库中每一个回话所占用CPU时间,就能够知道会话所占用服务器CPU的时间情况,以及导致CPU资源缺乏根源,事实上重解析SQL语句,锁冲突等均可能造成CPU资源严重不足。管理人员将相关查询语句输入,该语句能够查询解析SQL语句的情况,执行语句中的parse time cpu就表示出系统所用时间,执行语句中的parse time elapsed为响应时间,而用户等待的时间采用公式可获取。而且从该公式之中还能够得到解析SQL语句中平均等待的时间,如果这个平均值靠近0,就表明系统正常,一旦等待解析的平均时间较长,就要从中查询解析效率比较低,应该优化相关的语句,同时还应该改变Oracle中的参数,通过参数来增加高速缓存的光标数值。当然,数据库的管理人员还能够采取查询语言(select buffer_gets, executions, sql_textfrom v$sqlarea),而且该查询语句还能够对低效率的SQL语句进行查询,对该语句进行优化同样能够提升CPU利用效率。
1.7 优化网络性能
数据库的应用不断增加,自然网络这个承载数据库服务器的平台至关重要,直接影响着用户发送数据。因此,调整网络性能也是必然趋势,而优化网络就需要尽可能降低网络中数据流量,从而降低了网络资源的使用。
1.7.1 Oracle 网络协议
Oracle数据库比较常用的网络协议为SQL*Net或者Net 8,该协议处于七层开放式的回话层中,将透明连通性提供给Oracle服务器与客户端。透明连通性就是通过接口层SQL*Net/Net 8接收来自Oracle应用的SQL语句。而且按照相关的标准格式打成包,同时把该包传送至数据库。SQL*Net/Net 8主要是用来负责构建及维护客户和服务器间的网络会话。
1.7.2 检测网络性能的方法。数据通过了网络程序之后必然会出现延迟,因此就需要优化其性能,才能够有效保障网络的吞吐量,才能够降低网络的流量。从使用现状分析可知,要想非常精确的确定出网络的延迟十分困难。但是在Oracle数据库中设计了三个动态性能表,这些表就能够用来测量出网络延迟,这些表分别是v$session_event,v$session_wait与v$sesstat。
(1)v$session_even,该操作主要是操作时Oracle的等待时间,该值就可以多网络效率进行有效评估。
(2)v$session_event;将目前正在运行的会话(等待事件)全部列出来,所谓等待事件就是说明共享或者前台进程中正处于等待的消息。只要存在等待事件,一定要查询等待事件是不是被Oracle接收或者被客户端发送,而且还能够查该表是不是意外被中止,只要客户端发出消息就能够确定出Oracle是否已经作出回应或者依然在等待。
(3)通过v$sesstat查看已经接收或者发送到客户端的字节数,还能够查询到客户端传递过来的请求数目。
2 结束语
笔者依据自身经验,做了如上Oracle数据库相关优化探讨。但是该分析属于一项比较复杂工作,涉及到多个方面,不但要具备扎实数据库技术,还要非常熟悉操作系统、硬件设备以及机器结构等各个方面。笔者全面了解了Oracle体系结构,并且探讨了对该体系结构的优化,包含了优化I/O、优化内存等等,从而更确保了房产信息系统的实时监控。
参考文献:
[1]翟岩龙,宿红毅,战守义.数据库性能监控体系的研究与应用[J].计算机科学,2009(11).
[2]王娜,宿红毅,白琳等.数据库性能监控分析系统的设计与实现[J].计算机工程,2010(24).
[3]滕永昌.Oracle10g数据库管理系统[M].北京:机械工业出版社,2012.
[4]杨华千,刘勇国,杨德刚,廖晓峰.Oracle的存儲体系结构及其对象空间分配研究[J].计算机科学,2013(09).
作者简介:冯育栋(1982.09-),男,江苏靖江人,科员,本科,研究方向:信息系统管理维护。
Oracle数据库 图书管理系统实验报告 第5篇
学生姓名:学号:班级:实验日期:
实验名称:
实验目的:
实验内容:
Oracle数据库 图书管理系统实验报告 第6篇
--图书馆信息管理系统
班级: 姓名: 学号:
一. 需求分析:
分析系统需求后可绘出图书馆信息管理系统的数据流图:
读者借阅续借归还挂失退卡申请归还或挂失借阅或续借图书信息退卡丢失信息归还信息退卡信息借阅续借信息租金罚款数据库借阅数据库图书数据库读者数据库查询信息罚款租金信息增删改设置查询统计查询统计申请管理查询结果管理员金额管理管理信息
二. 数据字典:
1.数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,逻辑关系} {图书编号,图书入库编号,BOOKNO,INTEGER,8,,主键} {图书名称,图书名称,BookName,VARCHAR,不限,不限,依赖于图书编号 } {作者,图书的作者名,BAuthor,CHAR,, , 依赖于图书编号} {分类,中图分类号,BookID,VARCHAR,不限,不限,依赖于图书编号} {出版社,图书的出版社,BPress,VARCHAR,不限,不限,依赖于图书编号} {图书状态,描述图书状态,BStatic,Integer,1,0-3,0为在架上1为节约中2为已挂失3为已注销,无} {读者编号,读者持有的借书卡编号,RNO,INTEGER,4,主键} {读者姓名,读者的名字,ReaderName,CHAR,不限,依赖于读者编号} {读者性别,读者的性别,RSex,CHAR,1,{男,女},依赖于读者编号} {读者类型,读者分类,RType,VARCHAR,不限,{学生,教师,外来人员},依赖于读者编号} {读者部门,读者所在院系单位,RFrom,VARCHAR,不限,不限,依赖于读者编号} {借阅日期,BTime,Date,不限,不限,无} {归还挂失日期,归还或挂失图书发生的时间,BackTime,Date,不限,不限无} {租借时间,某部图书的租借时间,RentLong,Date,管理员设定,管理员设定,不同图书的租借时间,无} {借阅时限,允许借阅的时间,RentLong,Integer,管理员设定,管理员设定,无} {租金,租借费用,BFare,Float,管理员设定,管理员设定,无} {罚款,超期罚款,Fines,Float,管理员设定,管理员设定,无}
2.数据结构描述={数据结构名,含义说明,组成} {图书信息,图书的描述,组成:图书编号,图书名称,作者,分类,出版}} {读者信息,读者的相关信息,组成:读者编号,读者姓名,读者性别,读者类型,读者部门} {借阅信息,读者借阅图书相关信息,组成:读者信息,图书信息,借或租借时刻} {归还信息,读者归还图书相关信息,组成:读者信息,图书信息,归还时刻} {挂失申请,丢失图书后的挂失信息,组成:读者信息,图书信息} {退卡申请,退卡读者信息,组成:读者信息} {租借归还信息,租借和超期未归信息,组成:读者信息,图书信息,租借时间,超期未还时间} {罚款租金信息,租借和超期产生的费用信息,组成:读者信息,图书信息,租金,罚款}
3.数据流描述={数据名,说明,数据流来源,数据流去向,组成:数据结构,平均流量,高峰期流量} {借阅续借申请流,读者借书的申请,读者,“借阅续借”操作,组成:{借或续借申请},500条/天,1000条/天} {归还登记流,读者归还登记信息,读者,“书籍归还”操作,组成:{归还登记信息},400条/天,800条/天} {图书挂失流,读者申请图书的挂失,读者,“读者挂失”操作,组成:{挂失申请}},10条/
天,50条/天} {退卡申请流,读者退卡申请信息,读者,“读者退卡”操作,组成:{退卡申请},1条/天,5条/天} {图书信息流,传输图书相关信息,书籍资料,“借阅续借”操作,组成:图书信息},500条/天,1000条/天} {借阅续借信息流,传输借阅信息,“借阅续借”操作,借阅续借归还书籍登记,组成:{借或续借申请,图书信息},500条/天,1000条/天} {归还信息流,传输图书归还信息,“书籍归还”操作,借阅续借归还书籍登记,组成:{归还登记信息},400条/天,800条/天} {丢失信息流,传输图书丢失信息,“读者挂失”操作,丢失罚款续借租金登记,组成:{挂失申请},10条/天,50条/天} {退卡信息流,传输退卡相关信息,“读者退卡”操作,读者资料,组成:{退卡申请},5条/天,10条/天} {查询分析信息流,传输管理员所需查询统计信息,{书籍资料,借阅续借归还书籍登记,丢失罚款续借租金登记,读者资料},“查询统计分析”操作,组成:{图书信息,借或续借申请,租借归还信息,罚款租金信息,读者信息},50条/天,100条/天} {罚款租金信息流,传输包含某读者罚款租金的信息,“归还期限租金罚款设置”操作,丢失罚款续借租金登记,组成:{罚款租金信息},200条/天,400条/天} {金额管理流,传输金额管理信息,管理员,“归还期限租金罚款设置”操作,组成:{罚款租金信息},50条/天,100条/天}
4.数据存储描述={数据存储名,说明,流入的数据流,流出的数据流,组成:数据量,存取方式} {书籍资料,包含入库全部书籍信息,1,图书信息流2,{查询分析信息流,图书信息流1},组成:{图书信息},1000个/天,读写} {借阅续借归还书籍登记,包含各读者借阅续借信息与相应归还期限信息,2,{借阅续借信息流,归还信息流},{查询分析信息流,租借、归还信息流},组成:{借或租借信息流,归还登记信息流},1000个/天,读写} {丢失罚款续借租金登记,包含各读者丢失罚款和租金的}记录信息,3,{丢失信息流,罚款租金信息流},{查询分析信息流},组成:{罚款租金信息},1000个/天,读写} {读者资料,包含所有注册读者的资料信息,4,{退卡信息流,读者信息流},{查询分析信息流},组成:{读者信息},1000个/天,读写}
5.处理过程描述={处理过程名,说明,输入:数据流,输出:数据流,处理:} {借阅、续借,读者借阅请求,输入:{借阅续借申请,图书信息},输出:借阅续借信息,{归还或挂失,读者归还挂失申请,归还登记、图书挂失,归还信息、丢失信息} {退卡,退卡信息流,处理:退卡申请信息存入“读者资料”中} {管理,处理书籍的新增注销和设置,输入:{书籍管理流},输出:{图书信息流},处理:{将书籍更新信息存入“书籍资料”中}} {查询,在收到查询统计申请后执行相查询统计操作并返回给管理员,输入:{查询统计申请流,查询分析信息流},输出:{查询统计结果流},处理:{将查询统计信息反馈给管理员}} {归还期限租金罚款设置,处理读者罚款租金的设置,输入:{金额管理流,租借、归还信息 流},输出:{罚款租金信息流},处理:{将管理员的设置信息及读者罚款租金信息存入“丢失罚款续借租金登记”中}}
三. 概念结构设计:
读者编号读者姓名读者性别读者部门借阅时间读者mm租金管理新增注销设置罚款借阅借、续、归还到期时间归还时间图书编号n图书图书名称作者分类出版社mnn管理权限管理员理管销设注增新置管理员账号管理员权限
四. 逻辑结构设计:
1.将概念设计阶段形成的E-R图转换为与选用DBMS所支持的数据模型相符合且满足3NF要求的逻辑结构:
2.关系模式描述:
管理员信息(管理员账号,管理权限)Admin(AdminId, Authority)读者信息(读者编号,读者姓名,读者部门,读者性别,读者类型)Readers(RNO,ReaderName,RFrom,RSex,RType)图书信息(图书编号,作者,分类号,出版社,图书名称,图书状态)Books(BookNO,BAuthor,BookID,BPress,BookName,BStatic)借阅续借信息(读者编号,图书编号,借阅时间,到期时间,归还或挂失时间)Rent(RNO,BookNO, DateCheckout, DateDue, DateReturned)租金罚款信息(读者编号,图书编号,借阅时间,罚款金额,租借金额)Rent(RNO,BookNO, DateCheckout, FineAmount, RentAmount)租金罚款设定(每日租金,每日罚款)FareSet(Rent,Fines)租期设定(租期)Rentday(Day)
五. 物理实现:
下面给出了系统的实现及查询:
1.书籍资料查询
2.读者资料查询
3.书籍借阅、归还查询
4.超期未还查询
5.图书分类统计(以出版社为例)
6.读者分类统计(以读者单位为例)
7.书籍借阅排行榜
8.读者借阅排行榜
六. 实验小结
Oracle数据库 图书管理系统实验报告 第7篇
学习完oracle数据库后,我们进行了一次大实习,实习是分组进行的,我们组根据老师的安排,采用Oracle数据库技术建立员工工资及其个人所得税管理系统。小组成员主要是xx,xx和xxx。xx:整体设计,数据展现层操作,代码整合;xxx:数据库概念结构、逻辑结构、物理结构设计,增删改查sql语句的编写;xx:税值计算函数编写,系统测试,调试,相关文档的整理及编写。
通过对需要完成任务的整体分析,我得出需要做的工作包括这么几条:
1.根据需要创建自己的用户(注意起名规范,参见下述要求:对象含义_姓名首字母_学号后三位)和相关数据库表(比如类似在Hr Schema中的employees及departments表等)
2.编写一个函数(函数名需带姓名首字母及学号后三位),查出给定员工号的员工工资及佣金的每月应纳税额:注:个人所得税算法如下:扣除标准:工薪所得扣除标准提高到3500元,计算个人所得税税率表 :工资、薪金所得适用。
3.用Java作一个界面C/S,通过JDBC/ODAC/ADO调用oracle数据库对象,采用友好易用的用户界面:
实现员工基本信息(含工资、奖金等)的增删改查;要求员工表主键是自增
长字段,使用sequence和触发器或存储过程实现自增长。
实现员工工资及奖金和需缴纳的个人所得税等员工工资条信息的查询与(可
选的)Excel输出;
通过调用存储过程实现各部门员工工资及其年收入的分析报表(具体分析需
求自定,如分析一下各部门员工中比本部门员工平均年收入高出30%的员工(可简称“高薪员工”)姓名、所在部门名和年收入金额、个人所得税等;)。接着我们的工作开始了。在开始的时候我们各做各的去了,很多意见和想法没有去及时沟通,所以各自盲目地做着,有些时候做不下去了也不知道去沟通,而是一个人呆着苦闷或是干脆不做了。所以在开始的时候大家对于怎么合作完成一个实习任务是不清楚的。因为每一个环节都不可能是孤立的,我们在每一步都需要去了解互相的进展和需要,比如李杨负责数据库的与平台的链接,我负责数据库的操作和结构设计,如果不去及时沟通,总不能知道我做成什么样让他能更好地操作,甚至我做好了数据库,他还不清楚,这时候其实是可以提前拿过去测试一下的。正如这种例子经常在我们前期工作的时候出现。经过我们前两天的工作,我们后来一起讨论了下下一步怎么配合。所以在后期我们都能很好地合作,顺利地完成了任务。
本学期oracle数据库的学习对于我了解数据库又有了进一步的理解和进一步加强了数据库的操作能力。对数据的更删改查更熟悉了,对用户的创建和管理有了进步。Oracle的学习,开始是在自己电脑上安装了软件,然后对软件的操作有了了解。在老师的讲解和学习中,学会了数据库的各种操作,创建了自己的永华和数据表,使用了oracle内置函数、调用存储过程和函数。学会使用PL/SQL的顺序、循环和分值结构。前面学习过数据库原理,通过这学期Oracle的课程觉得Oracle在用户的划分上要比SQL Server好很多,划分了多种用户级别,数据库也是以用户划分,这对于管理员和用户都是很有用的。Oracle的学习对于以后各种数据处理工作有很大的帮助,相信以后的学习中也会经常运用到oracle,我也将会不断加深对oracle的理解。
Oracle数据库 图书管理系统实验报告 第8篇
近年来,网络应用和图书馆业务不断发展,给图书馆管理系统带来了新的挑战:①读者访问量增大。②图书数据量不断增加,以某高校图书馆为例,馆藏图书种类从10万种增加到50万种,图书数量从100万册向200万册迈进。③业务功能扩展,从单一的OPAC公共查索系统升级为基于服务的LIB2.0系统。④历史日志数据不断增长,数据统计和分析对系统资源需求增大。
随着图书馆管理系统数据库规模及应用功能的不断扩大,图书馆管理系统性能问题越来越突出。在现有的计算机系统环境下,我们需要考虑如何让系统更高效地服务,提高响应速度和服务质量,从而保证图书馆工作人员的高效工作,保障图书馆管理系统平稳高效地运行。
经过近10年的发展,Oracle已经成为世界上最专业的数据库之一。Oracle数据库在图书馆行业的应用越来越广泛,很多图书馆管理系统采用它作为后台数据库。
因此,对基于Oracle数据库的图书馆管理系统性能优化技术方法的探索具有非常重要的意义。
2 图书馆业务需求及调优技术思路
影响图书馆管理系统性能的因素很多,图书馆系统管理员应结合图书馆业务对系统性能的要求,优化图书馆管理系统。
2.1 图书馆管理系统性能需求分析
图书馆管理系统中,对其性能要求较高的几个功能模块有书目查询、新书推送、历史借阅查询、书目查重、统计分析。这些功能模块需要频繁地访问以下数据表:主书目表、书目表、流通日志表、入馆日志表。其中,主书目表、书目表、流通日志表及入馆日志表保存的数据量较大。主书目表保存图书的基本数据,以种类为单位;书目表保存图书馆目前的馆藏量,以册为单位;流通日志表保存图书流通日志;入馆日志表保存读者进入馆舍内各点的登记日志。其他数据表主要指读者表、读者类型表、新书目录表等。图书馆管理系统业务功能与数据表的关系如图1所示。
书目查询功能需要访问主书目表、书目表,数据量大,要求系统响应速度快。
新书推送功能需要访问其他数据表中的新书目录表、读者表、读者类型表,这几个数据表的关联性强,要求系统处理性能高。
历史借阅查询需要访问流通日志表,数据量大,要求系统响应速度快。
书目查重需要访问其他数据表中的新书目录表、主书目表,条件匹配,要求系统处理性能高。
统计分析涉及的数据表众多且数据量大,统计分析时要求系统响应速度快。
存储过程是存储已经编译好并经过优化的放置于数据库服务器端的SQL语句,这些语句可供应用程序直接调用。图1中,存储过程是为各功能模块提供高性能的数据访问接口。
以某省高校图书馆的图书馆管理系统为例:主书目表中的数据约有40万条记录;书目表中的数据约有220万条记录;流通日志表和入馆日志表一般以5年为一个保存周期,数据表的记录分别以约25万/月、28万/月的速度递增。
数据量的不断增加对系统的响应速度和处理能力造成了较大影响,但读者和图书馆工作人员又对系统响应速度的要求越来越高,因此,有必要对现有的图书馆管理系统进行性能优化。
2.2 图书馆管理系统性能优化技术方法
评价基于Oracle数据库的图书馆管理系统性能主要有系统吞吐量、系统用户响应时间2项指标。系统用户响应时间包括系统服务时间和用户等待时间,即:系统用户响应时间=系统服务时间+用户等待时间。
获得满意的用户响应时间有2个途径:一是减少系统服务时间,即提高系统数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。
基于以上2点,对图书馆管理系统性能的优化包括以下几个方面:
(1)调整硬盘I/O,提高磁盘的I/O处理能力,分散磁盘的I/O。
(2)分割表数据,建立分区表与分区索引。
(3)阶段性地对索引维护,重建索引,提高其性能。
(4)调整数据库内存分配。
(5)调整操作系统参数。
3 调优实现方案
3.1 调整硬盘I/O,提高磁盘的I/O处理能力,分散磁盘的I/O
如何调整硬盘I/O,比较好的方法是使用具有MetaLun技术的磁盘阵列。MetaLun是将多个Lun捆绑,组成一个新的磁盘,从host看只有一个盘[1]。显然,如果把图书馆管理系统中主书目表、书目表、流通日志表等数据库文件放到配置好的MetaLun中,MetaLun技术就会把I/O分散到每一个磁盘,提高系统的处理能力。MetaLun的分散示意图如图2所示。
某图书馆管理系统后台数据库文件采用MetaLun技术将I/O分布到15个硬盘上,以提高I/O性能。采用MetaLun技术可以从Lun1、Lun2、Lun3分区割出一块空间组成一个新的Lun,供数据库文件使用,其中Lun1、Lun2、Lun3分别以5个磁盘为一组,这样数据库文件所处的新Lun空间就会从15块磁盘中提取。
3.2 分割表数据,建立分区表与分区索引
分区表是指按照特定逻辑划分大表,最终将其数据布置到几个相对较小的分区段中[2]。分区表的数据分布于一个数据库中的多个文件组单元中,数据是按水平方式分区;一个表的某些行映射到某个分区,而另外一些行映射到另外某个分区,以此类推。当对数据进行查询或更新时,表将被视为单个逻辑实体,因此在数据访问层你会感觉和访问普通表一样。其好处就在于系统可以直接查询想要的某个分区,而不必扫描整个表。
分区索引是指将索引数据存放到几个分区段中。分区索引基于分区表建立,不适用于普通表的建立。
图书馆管理系统可以充分利用分区表与分区索引的优势,把数据量大的主书目表、书目表、流通日志表、入馆日志表分别进行数据分区。
以主书目表为例,通过图书出版日期把一张具有约200万条记录的表,分解成以年度为单位的N张小表,分解后的每张表中约有8万条记录,每张小表单独生成一个数据库文件,避免以年度为单位的查询或统计形成的全表扫描情况。对大表进行分区后形成的结果如图3所示。
创建分区表、分区索引语句如下:
其他表的分区表、分区索引创建类似。
3.3 阶段性地对索引维护,重建索引,提高性能
图书馆系统管理员必须阶段性地对索引进行维护,提高其性能。进行维护的主要原因有:
(1)随着表记录的增加,相应地索引也要增加。如果一个索引的next extent值设置不合理(太小),索引段的扩展就会变得很频繁。索引的extent太多,检索的速度和效率就会降低。
(2)记录从表中删除时,相应地也从表的索引中删除。表释放的空间可以再使用,而索引释放的空间却不能再使用。频繁进行删除操作的被索引的表,应当阶段性地重建索引,以避免在索引过程中造成空间碎片,影响性能。
图书馆的新书采购、新书编目、图书借阅等业务工作通常是在正常上班时间进行的,系统管理员应当结合本馆的实际情况,利用假期周期性地对主书表、图书书目表等相关数据表进行索引维护。
重建索引语句如下:
3.4 调整数据库内存分配
Oracle数据库的内存从共享和私有的角度可以分为系统全局区和程序全局区(SGA和PGA)[3]。SGA的使用效率如何,会大大影响数据库系统的性能。SGA由共享池、数据块缓冲区、重做日志缓冲区、大池组成。
以共享池为例,共享池存放库缓存(存储共享SQL和PI/SQL区)、数据字典缓存(数据库对象信息)及会话期间信息(对于MTs)。由于这些信息是图书馆管理系统需要经常访问的,因此这些信息需要保持高的命中率。可以通过以下语句来确认共享池数据的命中率。
库缓存:
数据字典缓存:
由于开发人员的业务水平参差不齐,可能存在大的匿名块,这会导致SQL不能重用,因此需要找出大的匿名块以转换为存储过程达到重用:
对于图书馆管理系统频繁使用的一些SQL对象,如存储过程、函数、包等,可以通过钉在内存中的方式来防止由于共享池太小而被移出:
exec dbms_shared_pool.keep (对象名)[5]
3.5 调整操作系统参数
内存交换(swapping)可能会造成较大的内存开销,应将它最小化。运行在Solaris Unix操作系统上的Oracle数据库,可利用vmstat命令来检查交换,查看系统级内存和硬盘I/0的使用情况,调整Unix数据缓冲池的大小和每个进程所能使用的内存大小等参数。若系统内存交换较多,且需要节省内存,可采用以下措施:
(1)避免运行不必要的系统daemon进程或应用程序。
(2)在对数据块命中率影响不明显的前提下,减少数据库缓冲区的数量,以释放一些内存。
(3)减少Unix文件缓冲区的数量(特别是在使用裸设备时)。
4 应用效果
MELINETSII作为现代电子化图书馆信息网络系统,其业务功能模块包括OPAC WEB 2.0、流通子系统、编目子系统、采访子系统等。
以某高校图书馆为例,该馆采用基于Oracle数据下的MELINETSⅡ作为图书馆管理系统,该系统中数据量较大的表主要是主书目表(MAIN_BIBLI)、图书书目表(CT_1_A、CT_2_A)、流通日志表(CIRCULOG_A)、入馆日志表(READINGROOMLOG_A),系统服务中的查询与统计分析都要使用到这些表。
测试环境:服务器为4个双线程CPU,16 GB内存的SUN V490;操作系统为Solaris 9;磁盘阵列为联想SureFibre 620;数据库为Oracle 10g。
因SureFibre 620无MetalLun技术,所以系统调优主要通过如下步骤:①以出版日期分割主书目表(MAIN_BIBLI)、图书书目表(CT_1_A、CT_2_A)数据,实现分区管理,以日志产生日期分割流通日志表(CIRCULOG_A)、入馆日志表(READINGROOMLOG_A)数据,实现分区管理。②对分区表建立分区索引;根据运行跟踪,调整Oracle 10 g部分SGA参数;把查询、统计分析中频繁调用的存储过程钉在共享池内;调整操作系统参数,把操作系统中不要的进程和应用程序关闭掉。
完成上述步骤调优后,我们再次测试OPAC WEB 2.0中书目查询功能、流通子模块中日志通计统功能、采访子系统中新书查重功能。测试证明,它们的响应速度得到明显提高。
通过上述的调优,数据库吞吐能力得到明显改善:以时间来实行分区表管理,避免了全表扫描;通过修整操作系统与数据库系统的内存参数,提高内存的利用率,减少了资源竞争发生的概率,大大提升了系统综合性能。
5 结论
图书馆管理系统的性能调优相当重要,但难度也较大。系统管理员需要全面了解图书馆业务工作,掌握系统各功能模块需应用的数据表及表的数据量,评估、分析业务工作对系统性能的要求。
性能调优时应综合运用本文介绍的方法:①在系统建立时,配置合理的硬件设备,购置具有高I/O吞吐量的磁盘阵列。②与系统开发人员共同研究,设计好分区表、分区索引。③定时监控数据库及服务器运行情况,动态调整数据库内存参数和操作系统内存参数,优化系统需要的各种资源。④跟踪业务工作需求,对响应速度达不到要求的功能模块应及时反馈给系统开发人员,让开发人员调整SQL语句性能。⑤周期性维护系统,合理安排重建索引,提高效率。
图书馆管理系统的性能调优是一个系统工程,涉及的方面很多,需要系统使用者、系统管理员、系统开发者经过反复的沟通、测试,才能达到实效。
参考文献
[1]DuEL.What is MetaLUN[EB/OL].http://sanduel.com/SAN-Storage -FAQs/What-is-MetaLUN.html,2009-03-12.
[2]王海亮,于三禄,王海凤,等.精通Oracle 10g系统管理[M].北京:中国水利水电出版社,2005.
[3]王丹,于印,冯雪平.浅析Oracle数据库内存优化[J].现代电子工程,2009(3).
[4]袁宠杰,褚蓓蓓.Oracle数据库性能优化技术在邮政系统中的应用[J].计算机与现代化,2009(7).
[5]江波.Oracle数据库系统的优化与应用研究[J].中国科技博览, 2009(18).
Oracle数据库 图书管理系统实验报告
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


