Oracle SQLPLUS基础及命令Word文档下载推荐.docx
《Oracle SQLPLUS基础及命令Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Oracle SQLPLUS基础及命令Word文档下载推荐.docx(68页珍藏版)》请在冰豆网上搜索。
3、在双机环境下要想启动或关闭ORACLE系统必须首先切换到root用户
su-root
hareg-yoracle
hareg-noracle
4、Oracle数据库有哪几种启动方式
说明:
有以下几种启动方式:
1、startupnomount
非安装启动,
这种方式启动下可执行:
重建控制文件、重建数据库,读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
2、startupmountdbname
安装启动,
数据库日志归档、数据库介质恢复、使数据文件联机或脱机,重新定位数据文件、重做日志文件。
执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查。
3、startupopendbname
先执行“nomount”,然后执行“mount”,再打开包括Redolog文件在内的所有数据库文件,这种方式下可访问数据库中的数据。
4、startup,等于以下三个命令
startupnomount
alterdatabasemount
alterdatabaseopen
5、startuprestrict
约束方式启动
这种方式能够启动数据库,但只允许具有一定特权的用户访问;
非特权用户访问时,会出现以下提示:
ERROR:
ORA-01035:
ORACLE只允许具有RESTRICTEDSESSION权限的用户使用
6、startupforce
强制启动方式
当不能关闭数据库时,可以用startupforce来完成数据库的关闭
先关闭数据库,再执行正常启动数据库命令
7、startuppfile=参数文件名
带初始化参数文件的启动方式
先读取参数文件,再按参数文件中的设置启动数据库
例:
startuppfile=E:
Oracleadminoradbpfileinit.ora
8、startupEXCLUSIVE
二、SQL*PLUS使用
a、近入SQL*Plus
$sqlplus用户名/密码
退出SQL*Plus
b、在sqlplus下得到帮助信息
列出全部SQL命令和SQL*Plus命令
help
列出某个特定的命令的信息
help命令名
c、显示表结构命令DESCRIBE
DESC表名
d、SQL*Plus中的编辑命令
显示SQL缓冲区命令
L
修改SQL命令
首先要将待改正行变为当前行
n
用CHANGE命令修改内容
c/旧/新
重新确认是否已正确
使用INPUT命令可以在SQL缓冲区中增加一行或多行
i
输入内容
e、调用外部系统编辑器
edit文件名
可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行
DEFINE_EDITOR=vi
f、运行命令文件
STARTtest
@test
常用SQL*Plus语句
a、表的创建、修改、删除
创建表的命令格式如下:
createtable表名(列说明列表);
为基表增加新列命令如下:
ALTERTABLE表名ADD(列说明列表)
为test表增加一列Age,用来存放年龄
sql>
altertabletest
add(Agenumber(3));
修改基表列定义命令如下:
ALTERTABLE表名
MODIFY(列名数据类型)
将test表中的Count列宽度加长为10个字符
alteratbletest
modify(Countychar(10));
b、将一张表删除语句的格式如下:
DORPTABLE表名;
表删除将同时删除表的数据和表的定义
droptabletest
c、表空间的创建、删除
三、ORACLE基础
1、数据库服务器分两个版本:
服务器端,客户端
2、服务器端安装类型:
企业版,标准版,个人版,自定义
3、客户端安装类型:
管理员,运行,自定义
4、安装的数据库类型:
通用型,事务处理,数据仓库,自定义
5、事务处理:
并行操作多,但每个操作的数据量比较小,sql语句比较简单。
6、数据处理:
并行操作少,但每个操作的数据量比较大,sql语句比较复杂。
7、OMS:
OracleManagementServer
8、服务:
主机名:
1521:
数据库名
9、第一次登陆OMS的用户名为:
sysman密码为oem_temp
10、扩大数据库的三种方式:
增加数据文件到表空间增加新的表空间扩大数据文件的大小
显示数据文件名:
selectfile_name,bytes,bytes/(1024*1024)fromdba_data_files;
Autoextensible表明该数据文件是否自动增长
增加数据文件2中方法:
1)为这个表空间增加一个数据文件
altertablespace表空间名adddatafile‘’size50m;
2)重新调整数据文件的大小
altertablespace表空间名adddatafile‘’resize50m;
3)添加新的表空间
Createtablespacexxx[datafiles‘…….’][sizexxx][extentmanagementlocal/dictionary][defaultstorage(xxx)]
11、方案:
数据库在创建的时候,建立了一级方案,每个方案对应一个角色,建表时选择方案是将表的所有权给了这一角色,以后应用表的时候,要以有这一角色或者有与这个角色权力相对的用户身份登录。
12、物理存贮结构:
数据文件记录文件(日志文件)参数文件控制文件
1)数据文件:
v$datafile用于存放所有的数据库数据信息。
ORACLE数据库由一个或多个表空间组成,数据文件结合在一起形成表空间。
它可以脱机使用,这对备份很有用。
将数据文件存放在不同的磁盘上,这样可以提高数据的存取速度。
2)记录文件:
v$log也叫日志文件、重做日志、事务日志。
Oracle在日志文件中记录针对数据库进行的修改操作或事务。
因此可以通过日志文件对数据库进行恢复操作(在数据库出现错误的时候),日志文件以循环方式工作。
日志归档文件名格式:
%t_%s.dbf:
归档模式Archivelog非归档模式Noarchivelog
3)参数文件:
在数据库启动时,在追寻实例或读取控制文件之前,先读取init.ora文件。
对参数文件进行修改之后,要将数据库关闭并重新启动。
Init.ora
Config.ora
Alert.ora文件含有数据库的诊断和错误消息。
每当数据库启动、停止、修改或出现问题时则写这个文件。
每当报告出现数据库问题时,首先应该检查这个文件参数。
Oratab包含每个数据库的名字、数据库的版本以及一个指明机器重新引导以后数据库是否会自动重启的标志Y或N。
Tnsnames.ora客户端文件,oracle应用程序读这个文件以得到数据库连接的信息。
Listener.oraoracle接受进程的配置文件,包含数据库的名字和服务器的各种连接参数。
Sqlnet.ora
4)控制文件:
v$controlfile在Oracle创建数据库的过程中,会同时根据参数文件的信息创建控制文件。
记录数据库物理信息。
13、逻辑存储结构:
表空间数据段、数据区、数据块视图序列触发器
1)表空间:
表空间是Oracle数据库山谷间数据的逻辑组织结构,对应于磁盘上一个或多个物理数据文件。
2)数据段:
一个Oracle数据库包含多种类型段。
数据段是存储在数据库中的用户建立的段。
在一定程度上,我们可以认为数据段包括组成模式的数据(表)和索引,此外还有三种段被称为系统段或管理员段(回滚段,临时段,Cash段);
(1)表:
表是存储数据的数据段。
每个表是由一个或者多个列组成的,每个列都有自己的名字和数据类型。
(2)索引:
是指为了加速对特定表数据的访问而创建的数据段。
索引的工作原理:
当Oracle服务器需要在表中查询某个指定的行时,它在索引中查找ROWID,然后直接从表中提取数据。
创建索引的原则:
经常修改的表:
创建较少的索引。
不经常修改的表:
创建相对较多的索引。
(3)系统段:
除了用户创建的数据和索引段之外,通还有三种类型的段被称为系统段或管理员创建段。
它们是回滚段,临时段,Cash段
(4)回滚段:
一个作业在完成之前,都在回滚优中操作,当这些操作完成之后,统一提交,提交之后才生效。
在作业期间(提交之前),外界是看不到信息变化的。
(5)Cash段:
用户不能修改,也用不到。
Cash段在Oracle内部被特定任务位于system表空间中
3)视图(view):
通过创建表的视图来表现数据的逻辑子集或数据的组合,用于隐蔽信息,简化查询。
视图中存储的是能够被查询的SQL语句,视图并不包含它自己的数据,它像一个窗口,通过该窗口可以查看或改变表中的数据。
视图基于其上的表称为基表。
视图是基于表或另一个视图的逻辑表
(1)视图的优越性
视图限制数据的访问,因为视图能够选择性的显示表中的列。
视图可以用来构成简单的查询以取回复杂查询的结果。
例如,视图能用于从多表中查询信息,而用户不必知道怎样写连接语句。
视图对特别的用户和应用程序提供数据独立性,一个视图可以从几个表中取回数据。
视图提供用户组按照他们的特殊标准访问数据。
(2)视图分两种:
简单和复杂,基本区别涉及DML(INSERT、UPDATE和DELETE)操作。
4)序列:
序列是用于产生唯一序号的数据库对象。
在创建时带有初始值、增(减)量值,以及最(大小)值。
序列可以生成增加形式的序号,也可以生成递减形式的序号。
每个序列产生的数字可达38位长度。
序列可以被多个用户共享以产生唯一的整数作为表主键列的代用品。
5)触发器(trigger):
触发器是存储过程,当针对一个表发生特定的动作时,就会激活它。
其用途:
增强数据库的安全性,阻止非法事务,增强商务规范。
对数据库操作进行强制跟踪。
14、数据字典:
Oracle数据库一个重要的部分。
它是只读类型的表的集合,提供数据库的信息。
15、数据字典表:
在数据库创建的时候将创建这些数据字典表。
其表名后面大多都带有“$”
16、数据字典视图:
数据字典视图的名称由两部分构成,前缀和后缀如Select*fromall_users
通常情况下,用户没有查看V$视图和属于SYS的DBA视图,用户必须首先被授予对这些视图的SELECT权限,这样才可以查看。
17、Oracle服务器由一个OracleDB和一个Oracle实例组成。
1)Oracle例程:
Oracle例程是后台进程和内存结构的组合。
•是一种访问Oracle数据库的方式
•始终打开一个,并且只打开一个数据库。
(1)内存结构
Oracle的内存结构由两个内存区组成,分别是:
•系统全局区(SGA):
在例程启动时分配,是Oracle例程的基本组件
•程序全局区(PGA):
在服务器进程启动时分配。
为连接到Oracle数据库的每个用户进程保留的内存。
与由若干个进程共享的SGA相比,PGA是仅供一个进程使用的区。
Oracle内存结构:
SHOWSGA:
存储已从数据文件中
检索到的数据块的副本
记录对数据库数据块
所做的全部更改
可选内存区
存储Java命令的
服务分析要求
数据库中最近使用
的定义的集合
最近执行的SQL语句
最近使用的数据定义
存储有关最近使用
的SQL和PL/SQL
语句的信息
(2)Oracle进程:
包括服务器进程和后台进程
1、服务器进程
在用户进程和oracle存储器结构之间起作用。
例如:
当用户进程要求数据时,服务器进程扫描数据库缓冲区高速缓存以找到数据,如果数据不在高速缓存中,那么服务器进程就把数据从存储器读进缓冲区高速缓存中来。
2、后台进程
把数据从存储器写到磁盘中。
#ps–ef|greporacle显示结果
#ps–ef|grep-Idatabase_sid显示结果
系统监控进程smon
进程监控进程pmon:
通过检查pmon来核实数据库是上行还是下行。
通常使用#ps–ef|grep-Ipmon来核实数据库是否在运行。
数据库写进程DBWn
写日志进程LGWR
检查点进程CKPT
归档进程ARCn
恢复进程RECO
作业队列进程SNPnn
队列监控进程QMNnn
调度程序进程Dnnn共享服务器进程Snnn
连接到Oracle例程包括:
•建立用户连接
•创建会话
修改用户连接数:
查看连接数:
showparameterprocesses
Showparametersessions
修改系统连接数:
altersystemsetprocesses=1000scope=spfile
重启数据库服务或者数据库
2)Oracle数据库:
Oracle数据库包含操作系统文件(也称为数据库文件),这些文件为数据库信息提供了实际的物理存储。
18、OPEN:
使用户能够访问数据库
MOUNT:
为某些DBA活动加载数据库,但不允许用户访问数据库
NOMOUNT:
创建SGA并启动后台进程,但不允许访问数据库
19、home\admin\orcl中几个文件的简介
Adump包含数据库为审核目的创建的跟踪文件,每当用户与数据库进行内部连接时,这时间都会被记录下来并创建一个唯一的小跟踪文件。
bdump包含数据库诊断和出错信息,每当打开或者关闭数据库时,信息和参数就会写入文件中。
当oracle处理进程遇到意外的问题时,就生成后台bdump转储文件。
cdump当遇到意外的问题时,会生成核心转储文件。
四、用户如何有效地利用数据字典
ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生,随着数据库的变化而变化,体现为sys用户下的一些表和视图。
数据字典名称是大写的英文字符。
数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。
我们不能手工修改数据字典里的信息。
很多时候,一般的ORACLE用户不知道如何有效地利用它。
dictionary 全部数据字典表的名称和解释,它有一个同义词dict
dict_columns 全部数据字典表里字段名称和解释
如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句:
select*fromdictionarywhereinstr(comments,'
index'
)>
0;
如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:
selectcolumn_name,commentsfromdict_columnswheretable_name='
USER_INDEXES'
;
依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。
下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。
1、用户
在某个用户下创建一个新表
Createtableyonghuming.tablenameasselect*fromdual;
查看当前用户的缺省表空间
selectusername,default_tablespacefromuser_users;
如何显示当前连接用户?
SHOWUSER
查看所有用户
select
*
from
all_users;
dba_users;
查看当前用户的角色
select*fromuser_role_privs;
查询当前用户对象?
SELECT*FROMUSER_OBJECTS;
SELECT*FROMDBA_SEGMENTS;
怎样查看哪些用户拥有SYSDBA、SYSOPER权限?
connsys/change_on_install
select*fromV_$PWFILE_USERS;
查看当前用户的系统权限和表级权限
select*fromuser_sys_privs;
select*fromuser_tab_privs;
何查询每个用户的权限?
SELECT*FROMDBA_SYS_PRIVS;
怎么获取有哪些用户在使用数据库
selectusernamefromv$session;
如何分辨某个用户是从哪台机器登陆ORACLE的?
SELECTmachine,terminalFROMV$SESSION;
如何获取用户错误信息?
SELECT*FROMUSER_ERRORS;
1.1修改system用户的缺省和临时表空间
在创建数据库时,用户SYSTEM与SYSTEM表空间一起创建,SYSTEM表空间作为SYSTEM用户的缺省表空间和临时表空间(用于创建监时段)。
除了存放和维护用户SYS拥有的数据字典对象外,SYSTEM表空间不应该用于其他用途。
将SYSTEM表空间用于其他用途可能会使数据字典破碎或毁坏。
Alterusersystemdefaulttablespacetools
Alterusersystemtemporarytablespacetemp
SYSTEM表空间是数据库中唯一最重要的表空间。
它包含存储Oracle维护数据库所需的信息的数据字典。
如果由于某种原因使SYSTEM表空间对Oracle无效,Oracle实例将会中断。
由于这个原因,SYSTEM表空间不能象常规的表空间那样,它永远不能脱机。
如果属于SYSTEM表空间的数据文件遭破坏,就不能执行打开的数据库、脱机表空间方式的恢复。
恢复SYSTEM表空间的唯一途径是执行一个关闭数据库的恢复,此时整个数据库关闭并对用户无效。
1.在冗余磁盘上创建SYSTEM表空间
SYSTEM表空间有可能成为一个致命的弱点。
但是,与控制文件和联机重做日志不同,
SYSTEM表空间没有软件复用特性。
所以,必须使用基于硬件的冗余技术(如磁盘镜像)来保护它。
2.确认没有用户将SYSTEM作为缺省表空间
只有SYS用户可以把SYSTEM表空间作为缺省表空间。
其它所有用户,包括SYSTEM用户,都应把其它表空间作为缺省表空间。
已经由用户创建的对象将建立在该用户的缺省表空间中(除非在CREATE语句中明确指定另外一个表空间)。
使用以下查询能检查用户是否将SYSTEM表空间作为缺省表空间。
L4-3SELECTUSERNAME,DEFAULT_TABLESPACEFROMDBA_USERSWHERE
DEFAULT_TABLESPACE='
SYSTEM'
3.确认没有用户将SYSTEM作为临时表空间
在数据存储过程中,临时表空间用来存储瞬时的、临时的对象。
这些临时对象应该建立在通常称为TEMP的单独表空间中。
缺省情况,如果用户在创建时把SYSTEM表空间作为临时表空间。
如果临时段写入SYSTEM表空间,该数据库的数据字典会变成碎片。
因此,所有的用户,包括SYS和SYSTEM用户,都应把TEMP表空间指定为它们的临时表空间。
L4-4ALTERUSER<
user_name>
TEMPORARYTABLESPACETEMP;
通过运行以下查询检查是否有用户把SYSTEM表空间作为临时表空间。
L4-5SELECTUSERNAME,TEMPORARY_TABLESPACEFROMDBA_USERSWHERE
TEMPORARY_TABLESPACE='
1.2更改sys和system的缺省口令
数据库创建的同时,用户SYS和SYSTEM的缺省口令也一起被创建。
SYS和SYSTEM的这个缺省口令分别为CHANGE_ON_INSTALL和MANAGER。
在对用户开放数据库前应该修改这两个口令以保证数据库的安全。
可以利用ALTERUSER命令做如下修改:
Alterusersysidentifiedbynew_password
Alterusersystemidentifiedbynew_password
2、表及表空间
查看用户下所有的表SQL>
select*fromuser_tables;
查看某表的创建时