进入create目录阅读crdbtest.sql及crdb2test.sql这两个数据库ORA的创建脚本,进而知
道创建数据库的过程命令。 效防test下的目录结构,创建一名为tst的目录,拷贝test/pfile及test/create下的所有
文件到对应目录。
Cd /oracle/app/oracle/admin Mkdir tst Cd tst
Mkdir bdump Mkdir udump Mkdir cdump Mkdir pfile Mkdir create Mkdir sql
Cp ../test/pfile/* pfile Cp ../test/create/* create
进入tst/pfile目录,启动vi编辑器编辑configora.ora文件: 将所有与原来test目录有关的目录全以tst替换test. 如:原来的control_files参数中
把/oracle/ctl1/oradata/test/control01.ctl,改为 /oracle/ctl1/oradata/tst/control01.ctl, 需要改的地方还有:core_dump_dest user_dump_dest db_name 参数行
把文件configtest.ora改名为configtst.ora inittest.ora 改名为inittst.ora inittest_0.ora 改名为inittst_0.ora
编辑inittst.ora及inittst_0.ora文件,把它们中的前面的ifile指 定文件原来为:
ifile = /oracle/app/oracle/admin/test/pfile/configtest.ora 改为:
ifile = /oracle/app/oracle/admin/tst/pfile/configtst.ora
进入tst/create目录
把crdbtest.sql及crdb2test.sql改名为crdbtst.sql及crdb2tst.sql 编辑crdbtst.sql文件,修改以下行(将test改为tst):
spool /oracle/app/oracle/admin/test/create/crdbtest.lst startup nomount pfile= ?
create database \改为create database “tst”
将create database语句的用的character set改为ZHS16CGB231280, 原先为US7ASCII。ZHS16CGB231280为Oracle中支持中文国标的字符集名。
编辑crdb2tst.sql文件,将其做类似以上的修改(将创建命令中所用到的有关原来 test目录改为tst目录,并可以适当调节你所要建立数据库的相关数据文件大小。 修改ORACLE_SID环境变量值为新的SID名,此SID告诉oracle欲启动的实例名。 ORACLE_SID=tst;exprot ORACLE_SID
进入tst/create目录,启动服务器管理器(svrmgrl)执行crdbtst.sql脚本: cd /oracle/app/oracle/admin/tst/create svrmgrl @crdbtst.sql
执行后在svrmgrl状态下再执行crdb2tst.sql脚本。 Svrmgrl> start crdb2tst.sql
创建过程需要数分钟,请耐心等待 ?
等上以脚本执行完毕,新的数据库已建立。此时,可以退出svrmgrl。 拷贝tst/pfile/inittst.ora文件至$ORACLE_HOME/dbs目录,省得每次启动svrmg rl还要指定init.ora文件位置。在启动svrmgrl时,若没有特别指定init.ora的文件,ORA
CLE将在$ORACLE_HOME/dbs找init
ID环境变量值。
再次启动svrmgrl(注意:ORACLE_SID值必须已改为新的SID值。) svrmgrl
svrmgrl>connect internal;
svrmgrl>startup (启动数据库) svrmgrl>start $ORACLE_HOME\\dbs\\catproc.sql
catproc.sql脚本安装Procedural Option所必需的脚本或PL/SQL对象及其支持的数据库结 构。
至此,我们已成功创建了一个新的数据库tst,并且我们也用实例tst来装配启动它。 为了能够让用户从远程访问此数据库,我们还必须配置Oracle的TNS(Transparent Netwo rk Service),配置这一服务只要改变一下其配置文件listener.ora即可,最简单的办法 是拷贝一个副本备份,然后直接编辑它,把原来的实例名更换为新的实例名即可。更名后 ,重新启动tnslistener进程即生效。
$lsnrctl stop (在操作系统状态下执行) $lsnrctl start
更改SYS及SYSTEM用户的默让密码。
grant connect to sys(或system) identified by
以上命令可以在服务器管理器状态下执行,也可以在Sqlplus下执行。
二、考察数据库及实例结构
启动sqlplus用SYS或SYSTEM用户连接。 或启动svrmgrl,connect internal 1. 查询实例启动时间。
select to_char(a.value,’J’)+b.value/86400, ’HH24:MI:SS DD-MON-RR’) start_time from v$instance a,v$instance b
where a.key=’STARTUP TIME –JULIAN’ AND b.key=’STARTUP TIME –SECONDS’;
观看实例存储器分配信息
SELECT name,bytes from v$sgastat
Where name in (‘free memory’,’fixed_sga’,’db_block_buffers’, ‘log_buffer’,’dictionary cache’,’library cache’, ‘sql area’); 查看进程实例进程
select spid,name from v$process, v$bgprocess where addr =paddr; 查看数据库用户
select username from dba_users; 查看活动的控制文件
select * from v$controlfile 查看回滚段信息
select a.segment_name,b.bytes,b.extents,a.tablespace_name, c.shrinks,c.extends,c.hwmsize
from dba_rollback_segs a,dba_segments b,v$rollstat c
where a.segment_id=c.usn and a.segment_name=b.segment_name;
查看重做日志信息
select member,bytes,members,a.status from v$log, V$logfile b where a.group# = b.group# order by member; 查看数据库链接
select spid,mame from v$sysstatprocess,v$sysstatbgprocess where paddr(+)=addr; 查看多线程服务器进程
select * from v$dispatcher; select * from v$shared_server;
第四章:SQL
(本次课在机房,结合上机讲授)
本章介绍SQL的基础知识。理解了SQL就理解了关系数据库。Oracle与数据库的所有交互都
使用SQL(Structured Query Language)。SQL*Plus是基于SQL但又具有Oracle特定功能的一
种工具,它可用来生成报表、控制屏幕显示和打印输出格式。 术语
下面介绍本章使用的一引技术术语:
■ DDL(Data Definition Language) 数据定义语言是SQL中定义数据库中数据的结构的 语言。定义数据时,将在Oracle的数据字典中生成数据项。常见的DDL关键字是create、r
evoke、grant和alter DML(Data Manipulation Language) 数据操纵语言为SQL结构,用来操纵数据库中数据(而 非定义数据,定义数据由DDL完成)。常见的DML关键字为select、insert、update和dele te。
在Oracle中,我们使用commit(提交)语句表示已经将修改后的数据保存到数据库。每次用 户保存结果时,Oracle将引用用户的提交操作。
约束(constraint) 是一种保证一个Oracle表的数据间关系或两不同表中数据间的一致性的
机制。
Oracle8数据库中一个对象(object)是一个有意义的事物,可在其内部存放信息。我们常谈 的对象类型——表和视图是两种最常见的。
利用如SQL*Plus这样的程序将信息从Oracle数据库中提取出来的操作称为查询(query)。 ■ 回滚(Rollback)为当某个对话更改了数据库中的数据后,由于某种原因不想提交些更 改时Oracle所采取的操作。这是一个把信息恢复到用户update前状态的操作。 SQL语句有两大类:DDL和DML。下面我们进一步来看看二者的差异: 二.DDL
DDL数据定义语言是一组SQL命令,用于创建和定义数据库对象,并且将其保存在数据字典 中。
数据定义语言使用户能完成下列任务: 创建(create)数据库对象 删除(drop)数据库对象 更改(alter)数据库对象 为数据库对象授权(grant)
回收已授给数据库对象的权限(revoke)
当发布一条DDL SQL语句时,在每一条DDL语句执行前后,Oracle都将提交当前的事务,理
解这一上点很重要。因此如果用户插入(insert)记录到数据库中并且发布了一条DDL语句 ,如create table,此时来自insert命令的数据将提交到数据库。
属于DDL的语句是自动提交的,这意味着当Oracle8通知用户比如“Revoke succeeded”, 此时命令已完成不能回滚了。 DDL语句部分列表:
alter procedure 重编译存贮过程
alter table 增加表列、修改表列、更改存贮分配
analyze 收集数据库对象的性能统计值并送入代价的优化器 alter table add constraint 在已有的表上增加约束 create table 创建表 create index 创建索引 drop index 删除索引 drop table 删除表
相关推荐: