计算机.docx
《计算机.docx》由会员分享,可在线阅读,更多相关《计算机.docx(21页珍藏版)》请在冰点文库上搜索。
计算机
二、数据库基本技能训练
任务一:
配置数据库开发环境(1-2天)
简称:
setupdbenv
说明:
在Windows环境下安装Sybase公司的Powerdesigner软件,在Linux环境下,安装Oracle数据库系统。
要求:
1)Powerdesigner版本12.0以上,建议版本12.5;
2)安装Oracle10g企业版或Oracle10gXE;
3)提交的任务报告(PPT)中要加入JPG格式的截图(不是每步都截,重要的安装过程、安装成功、运行数据库)
1、检查RAM和交换空间大小:
grepMemTotal/proc/meminfo
grepSwapTotal/proc/meminfo
2、创建Oracle组和用户账号
groupaddoinstall
groupadddba
useradd-m-u500(其他也可以)-goinstall-Gdbaoracle
idoracle
3、修改oracle账号的口令
passwdoracle
4、创建目录
mkdir-p/u01/app/oracle
mkdir-p/archive
chown-Roracle:
oinstall/u01/archive
chmod-R775/u01/archive
5、修改oracle软件目录权限
mkdir-P/soft/oracle
将oracle安装文件复制到/soft/oracle目录下,复制完成后执行下面命令:
chown-Roracle:
oinstall/soft/oracle
6、配置linux内核参数(2147483648为2G)
编辑/etc/sysctl.conf文件,加上如下内容
kernel.shmall=2097152
kernel.shmmax=8589934592
kernel.shmmni=4096
kernel.sem=25032000100128
fs.file-max=65535
net.ipv4.ip_local_port_range=102465000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
运行/sbin/sysctl-p检查参数
7、为了提高oracle用户的shell限制
编辑/etc/security/limits.conf文件,加上下列内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
编辑/etc/profile文件,加上下列内容:
if[$USER="oracle"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
fi
8、配置oracle用户环境变量(用oracle身份登录)
执行su-oracle
编辑/home/oracle/.bash_profile文件,加上下列内容:
exportORACLE_BASE=/u01/app/oracle
exportORACLE_HOME=$ORACLE_BASE/10.2.0/db_1
exportORACLE_SID=orcl
exportPATH=$ORACLE_HOME/bin:
$PATH
9、安装oracle
配置完成后重启服务器,用oracle用户登录,打开终端,进入/soft/oracle/database目录;执行./runInstaller。
目的:
1)熟悉常用数据库相关软件的安装与配置;
2)了解并掌握数据库的相关知识;
3)熟悉Oracle数据库的安装与配置;
4)了解Oracle数据库体系结构、目录结构;
5)了解如何通过客户端远程访问管理数据库;
要点:
Powerdesigner;Oracle;Oracle体系结构;Oracle目录结构;Oracle基本操作;Oracle客户端;ODBC;InnoDB;MyISAM;
问题:
1)什么是Oracle的客户端?
它的作用是什么?
由于oracle数据库比较大,消耗资源,没必要人人都装一个数据库,更多的时候是在服务器上装一个oracle数据库的服务器端软件,这是oracle数据库的主体。
使用者在自己的电脑上安装客户端,用了访问和管理oracle数据库。
oracle的客户端主要有四种:
第一种是最原始的命令行的形式,直接在命令行下输入sqlplus,用户名scott,密码tiger 第二种是oracle提供的叫SQLPlus的工具,感觉和命令行差不多. 第三种是通过浏览器来访问:
http:
//127.0.0.0.1:
5560/isqlplus 第四种是一些专门为oracle公司开发客户端的公司做出来的,比较著名的有Toad和sqldeveloper. 以管理员的身份登录:
sqlplususername/passwordassysdba; 以管理员的身份登录后可以为其他帐户解锁:
alteruserscottaccountunlock;
为数据库用户操作端,由应用、工具、SQL*NET组成,用户操作数据库时,必须连接到一服务器,该数据库称为本地数据库(LocalDB)。
在网络环境下其它服务器上的DB称为远程数据库(RemoteDB)。
用户要存取远程DB上的数据时,必须建立数据库链。
Oracle数据库的体系结构包括物理存储结构和逻辑存储结构。
由于它们是相分离的,所以在管理数据的物理存储结构时并不会影响对逻辑存储结构的存取。
2)如何安装Oracle的客户端?
因为需要编写Linux下Oracle应用程序,必须安装客户端。
查了很多安装的说明,自己试验以后,总结在下面。
本来以为按照Oracle手册就可以安装好,但是发现了手册和实际的不同。
建议安装时参考Oracle文档的安装快速参考手册。
我在Linux虚拟机和纯Linux操作系统下都安装成功。
Linux版本是RedHatEnterpriseLinuxVersion4Update2。
Oracle版本为10g2。
英文语言,没有安装中文
我总结的安装过程如下:
1)客户端安装包(client)解压至某个目录$(installpackdirectory)
2)按照安装手册中的标准安装过程,检查软硬件配置,最重要的是硬盘空间要留得足够(对应不同的客户端安装要求,硬盘空间要求不同),以下是要用到的命令,其中package_name是要根据手册上的要求对应具体的软件包。
用root登录终端。
grepMemTotal/proc/meminfo
grepSwapTotal/proc/meminfo
free
df-k
cat/etc/issue
uname-r
rpm-qpackage_name
3)创建用户名和组名
注意,标准安装手册遗漏了dba用户组
括号内为说明,#为终端提示符
#/usr/sbin/groupaddoinstall
#/usr/sbin/groupadddba
#/usr/sbin/useradd-m-goinstall-Gdbaoracle
#idoracle(检查用户名)
#passwdoracle(设置Oracle用户的密码)
4)创建目录
#mkdir-p/u01/app/oracle
#chown-Roracle:
oinstall/u01/app/oracle
#chmod-R775/u01/app/oracle
/u01/app/oracle为Oracle根目录,可以根据需要改成别的名字,如果不是很熟练,按照步骤照做就不会出错。
5)用oracle用户登录终端
#su-oracle
#vi.bash_profile
在现有文件的下面增加
umask022
ORACLE_BASE=/u01/app/oracle;exportORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/client_1;exportORACLE_HOME
PATH=$ORACLE_HOME/bin:
$PATH;exportPATH
也可以写作
umask022
exportORACLE_BASE=/u01/app/oracle
exportORACLE_HOME=$ORACLE_BASE/product/10.2.0/client_1
exportPATH=$ORACLE_HOME/bin:
$PATH
保存退出
注意,等号左右不能有空格
6)执行刚刚编辑的文件
$../.bash_profile
或者source.bash_profile
7)执行安装
如果进入系统时使用root或其他用户名称,logout改用oracle登录重新进入图形界面,这点非常重要,注意是注销重新登录,不是在终端上改换用户。
$cd$(installpackdirectory)
$./runInstaller
应该出现图形界面,进行安装。
8)安装之后,进行配置服务
$netca
配置服务名称,并测试。
安装时也可能出现配置过程。
如果没有配置好,可以使用此命令。
1.要远程使用oracle,先下载下面三个文件,注意版本最好一致。
oracle-instantclient-basic-10.2.0.4-1.i386.zip
oracle-instantclient-devel-10.2.0.4-1.i386.zip //这个是sdk的,文件名上没有说明,特此说明
oracle-instantclient-sqlplus-10.2.0.4-1.i386.zip
//查看oracle的sql语句,当然你如果无法上去,只能问远程oracle 的管理员了。
select*fromV$version;
不同版本,或者不同操作系统的,请到官方网站下载,里面有详细说明。
2.先创建三个客户端的安装目录,这三个目录可以自定义,但配置环境变量时,需要一致。
mkdir-p/opt/oracle/lib
mkdir-p/opt/oracle/sdk
mkdir-p/opt/oracle/network/admin //配置监听器和网络环境。
3.解压上面下载的三个文件。
unziporacle-instantclient-basic-10.2.0.4-1.i386.zip
unziporacle-instantclient-sqlplus-10.2.0.4-1.i386.zip
其中,这二个文件都解压到当前目录下的同一个目录下面:
instantclient_10_2
cdinstantclient_10_2
把这个目录下的所有文件搬到 /opt/oracle/lib
最后解压oracle-instantclient-devel-10.2.0.4-1.i386.zip 把解压出来的文件/opt/oracle/sdk
4.配置环境变量。
vi/etc/profile //注意,这是针对所有用户的环境变量,如果你想局限某用户,只能配置用户的配置文件了。
加入
exportORACLE_HOME=/opt/oracle
exportLD_LIBRARY_PATH=/opt/oracle/lib
保存并退出。
[root@localhosttmp]#source/etc/profile //使配置文件立刻生效
[root@localhosttmp]#echo$ORACLE_HOME //查看一下配置的环境变量是否成功
/opt/oracle
5.配置监听器和网络环境。
因为本地没有安装oracle数据库,所以需要从安装oracle数据库的目录弄三个文件过来。
[root@localhostadmin]#pwd
/opt/oracle/network/admin
[root@localhostadmin]#ls
listener.ora sqlnet.ora tnsnames.ora //就这三个文件,放到这个目录下
6.编辑三个文件
vitnsnames.ora
BOSSDATA=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.107)(PORT=1521)) //192.168.1.107 IP地址 ,端口号:
1521
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=bossdata) //bossdata 全局数据名
)
)
EXTPROC_CONNECTION_DATA=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))
)
(CONNECT_DATA=
(SID=PLSExtProc)
(PRESENTATION=RO)
)
)
vilistener.ora
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=\opt\oracle) //注意,这个是刚才配置的$ORACLE_HOME
(PROGRAM=extproc)
)
)
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.107)(PORT=1521)) //这个上面有说明
)
)
7.已完成。
测试。
cd\opt\oraclelib
[root@localhostlib]#sqlplus
sqlplus:
errorwhileloadingsharedlibraries:
libsqlplus.so:
cannotopensharedobjectfile:
Nosuchfileordirectory
//如果出现上面的问题,代表你的环境变量没设置好。
请参考:
第四点。
[root@localhostlib]#sqlplussystem/javama@bossdata
SQL*Plus:
Release10.2.0.4.0-ProductiononSunAug112:
20:
082010
Copyright(c)1982,2007,Oracle. AllRightsReserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production
WiththePartitioning,OLAPandDataMiningoptions
SQL>
3)什么是ODBC?
如何用ODBC远程访问数据库?
ODBC开放数据库互连)是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC
一、建立服务名
1、选择“Net8ConfigurationAssistant”,选择“本地网络服务名配置”。
2、选择“添加”。
3、选择“Oracle8i数据库或服务”。
4、输入服务名。
此为远程数据库已经定制好的数据库服务名字,比如“ORCL”。
5、选择网络协议“TCP”。
6、输入主机名和端口名。
比如“DB”和“1521”。
7、选择是否测试。
8、输入本地网络服务名,缺省跟远程一样。
可以输入“HelloDB”等。
二、 配置ODBC
1、 添加一个"OracleODBCdriver"的系统数据源。
2、 输入名字,用户名和服务器。
服务器为刚才所建立的本地网络服务名,例如"HelloDB"。
4)Linux下Oracle安装完毕,其目录结构是什么样的?
/opt/oracle/oradata
/opt/oracle/admin
$ORACLE_HOME目录中的常用子目录如下:
/bin--主要包含用于数据库管理的各种命令等,如impdb,expdp,emctl,emca等
/css--与OracleClusterSynchronization服务有关的文件
/dbs--存放数据库服务器端的参数文件Spfile,如spfileorcl.ora,init.ora,密码文件orapworcl等
/demo--存放数据库实例模式的脚本等如human_resources的相关脚本
/install--用于存储ORACLE安装后的端口号,iSQL*Plus以及EnterpriseManagerDatabaseControl启动并登录的方式等,如该路径下的portlist.ini
/network/admin--有关监听器listener.ora和sqlnet.ora以及tnsnames.ora等
/sysman/config--用于与OracleEnterpriseManagement有关的端口管理等
admin目录
位于$ORACLE_BASE目录下,即$ORACLE_BASE/admin/$ORACLE_SID主要存储的为Oracle后台进程产生的相关文件及数据库管理文件
以下是其下常用的子目录
/adump--存储审计文件的目录(需要首先设置audit_file_dest参数)
/bdump--后台进程跟踪文件(使用backgroud_dump_dest参数进行设置)
/cdump--存储核心堆积文件(使用core_dump_dest参数进行设置)
/create--存储用于创建数据库的脚本。
创建新的数据库时,DBCA将创建数据库的脚本放置在这个目录
/exp--建议存储使用Export使用程序或OracleDataPump创建的数据库导出文件的目录
/pfile--初始化参数文件
/udump--存储用户进程跟踪文件,使用user_dump_dest参数设置
oradata目录
Oracle数据库文件缺省存储该目录下,即$ORACLE_BASE/$ORACLE_SID/oradata,主要包括数据库的控制文件、数据文件、重做日志文件。
dbf文件对应数据库中每个表空间
ctl文件为控制文件
log文件对应重做日志文件组及其成员
flash_recovery_area目录
flash_recovery_area目录存储并管理与备份和恢复有关的文件。
它包含系统中每个数据库的子目录。
该目录可用于存储与恢复有关的文件,如控制文件、联机重做日志副本、归档日志、闪回日志以及Oracle数据库恢复管理器(RMAN)备份等。
5)Oracle的数据服务端口是多少?
一般是TCP/IP的1521端口,主要作用是监听来自客户端的数据库连接请求
附件:
1)Linux下安装OracleXE版本
2)Oracle10gPL/SQL编程
任务二:
分析示例数据库模型(1-2天)
简称:
analyseDB
说明:
分析Powerdesigner安装目录下Examples中project.cdm文档所描述的数据库结构;
要求:
1)阅读《Powerdesigner快速入门》,掌握软件的基本操作;
2)熟练掌握“要点”中所列出的概念;
3)概括描述该数据库的功能;
4)该数据库中的基础数据有哪些?
5)用四句话描述每个表与表之间的关系,继承关系除外。
例如:
一个客户可以签订多个项目,也可以不签任何项目;
一个项目只属于一个客户,并且必须属于一个客户;
6)分析、对比概念模型与物理模型的异同,列出不同之处;
7)分析文档要规范,详见附件中的“project.cdm分析文档范例”
目的:
1)熟悉常用数据模型的相关概念;
2)掌握数据库设计技术;
要点:
概念模型;物理模型;实体;视图;依赖;继承;一对多;多对多;主键;外键;属性;范式;
问题:
1)project.cdm生成到project.pdm后,多了哪些表,少了哪些表?
为什么?
两个实体之间存在关系,在cdm中,是不需要再实体的表中创建单独的字段来存储对方的主键的.在继承关系中,在cdm转化为pdm时字表和父表都会生成对应的表,且父表中的所有的字段都会在字表中存在,且标