oracle命令大全.docx
- 文档编号:7385651
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:39
- 大小:37.93KB
oracle命令大全.docx
《oracle命令大全.docx》由会员分享,可在线阅读,更多相关《oracle命令大全.docx(39页珍藏版)》请在冰豆网上搜索。
oracle命令大全
oracle命令
提示:
因为内容比较多,可先看目录,在用查找Ctrl+F进行查找
ORACLE数据库维护0
1.ORACLE数据库启动与关闭2
1.1打开和关闭数据库(手工)2
1.1.1sqlplus连接2
1.1.2打开数据库2
1.1.3启动oraclelistener2
1.1.4关闭oraclelistener2
1.1.5关闭数据库2
2.数据库备份3
2.1冷备份3
2.2用exp、imp命令做逻辑备份3
2.3用tar命令做物理备份4
2.4备份控制文件4
2.5联机全备份+日志备份5
2.5.1设置5
2.5.2步骤6
2.5.3恢复6
2.5.3.1磁盘全部损坏,仅保存上次联机全备份和每天日志备份6
2.5.3.2丢失某数据文件7
2.5.3.3文件损坏或丢失,又无备份,7
2.5.4注意要点7
3.数据库的扩充8
3.1增加一个表空间8
3.1.1创建表空间8
3.1.2增加某个表空间的大小9
3.2增加oracle的用户,并给用户授权9
3.2.1增加oracle的用户,并给用户授权9
3.2.2增加oracle的角色9
3.2.3中断用户同oracle的连接9
3.3表、视图、索引、约束10
3.3.1表和视图10
3.3.1.1管理表10
3.3.1.1.1建立表10
3.3.1.1.2表的命名规则11
3.3.1.1.3从其它表中建立表11
3.3.1.1.4更改表定义11
3.3.1.2管理视图13
3.3.1.2.1建立视图14
3.3.1.2.2从视图中获得数据14
3.3.1.2.3插入、更新、删除数据15
3.3.1.2.4删除视图15
3.3.2索引15
3.3.2.1B-Tree索引15
3.3.2.2位图索引16
3.3.2.3修改索引16
3.3.2.4重建索引16
3.3.3序列(Sequences)16
3.3.3.1创建序列17
3.3.3.2删除序列17
3.4网络管理17
3.4.1Net8server端配置18
3.4.1.1listener.ora文件的样本:
18
3.4.1.2启动listener19
3.4.2Net8client端配置19
3.4.3sqlnet.ora20
3.4.4网络连通性测试20
3.4.5常见NET8错误21
3.4.5.1服务器端诊断21
3.4.5.2客户端诊断22
3.4.5.3常见错误24
4.ORACLE8i与系统管理有关的新特性28
4.1本地化管理表空间28
4.2FBI索引29
4.3在线索引创建和重建32
4.4使用可传输的表空间实现数据在数据库间的移动32
1.ORACLE数据库启动与关闭
1.1打开和关闭数据库(手工)
1.1.1sqlplus连接
#su-oracle
#sqlplus/nolog
1.1.2打开数据库
sql>connectsys/oracleassysdba;
sql>startup[nomount|mount]
等待十几秒左右,当看到
oracleinstancesstarted,
databasemounted,
databaseopened的时候,oracle数据库打开成功
备注:
打开数据库startup可带三个参数,分别是
SQL>startupnomount仅启动instances
SQL>startupmount启动instances,连上(mount)数据库
SQL>startupnormal启动instances,连上(mount)数据库(推荐)
打开(open)数据库
startup缺省参数是normal
1.1.3启动oraclelistener
#su-oracle
#lsnrctlstart
如果出错检查环境变量是否设好,及lsnrctl文件的内容和执行属性。
1.1.4关闭oraclelistener
#su-oracle
#lsnrctlstop
1.1.5关闭数据库
sql>connectsys/oracleassysdba;
sql>shutdown关闭数据库(推荐)
等待几秒左右,当看到
databaseclosed
databasedismounted
oracleinstancesshutdown的时候,oracle数据库关闭成功
备注:
关闭数据库shutdown可带三个参数,分别是
SQL>shutdownabort非正常立刻关机。
等于忽然停电
SQL>shutdownimmediate做回滚*作,立刻关机。
SQL>shutdownnormal正常关机(推荐)
shutdown缺省参数是normal
2.数据库备份
2.1冷备份
关闭数据库时作的备份称为冷备份。
关闭数据库,将所有和本实例有关的文件,包括datafile,controlfile,redolog,archiv
edredolog,initora.ora等全部备份。
恢复时只要将这些文件放回从前的目录,startup
数据库即可。
数据库处于归档非归档状态均可。
2.2用exp、imp命令做逻辑备份
EXP:
有三种主要的方式(完全、用户、表)
1、完全:
expsystem/managerbuffer=64000file=/backup/full.dmpfull=y
如果要执行完全导出,必须具有角色EXP_FULL_DATABASE。
2、用户模式:
expsystem/managerbuffer=64000file=/backup/bill.dmpowner=bill
这样用户bill的所有对象被输出到文件中。
3、表模式:
expsystem/managerbuffer=64000file=/backup/area.dmpowner=billtables=area
这样用户bill的表area就被导出到文件中。
需要注意的参数是Inctype,这个参数可以取一下三个值:
Complete(全备份):
把数据库中所有数据对象导出到dump文件中,只有具有Exp_fu
ll_database的用户有使用这个参数的权限。
Incremental(增量备份):
把数据库中所有上次备份后修改的表备份出来。
Cumulative(累计备份):
把数据库中所有全备份或者累计备份以后修改的表备份
出来。
IMP:
具有三种模式(完全、用户、表)
1、完全:
impsystem/managerbuffer=64000file=/backup/full.dmpfull=y
如果要执行完全导入,必须具有角色IMP_FULL_DATABASE。
2、用户模式:
impsystem/managerbuffer=64000file=/backup/area.dmpfromuser=bill
touser=billbak
文件中用户bill的所有对象被导入到用户billbakK中。
必须指定fromuser、touser参数
。
3、表模式:
impsystem/managerbuffer=64000file=/backup/area.dmpfromuser=bill
touser=billbaktables=area
文件中用户bill的表area就被导入到用户billbak中。
2.3用tar命令做物理备份
1、#su-oracle
2、%tarcvf/dev/rmt0.
把oracle路径下所有文件备份到磁带机上
3、%tarxvf/dev/rmt0
把备份磁带上所有文件恢复进oracle当前路径
4、%tartvf/dev/rmt/0
查看磁带上有些什么文件
2.4备份控制文件
控制文件是Oracle数据库中非常重要的文件。
它记录着oracle数据库的物理结构信息,
比如数据文件,日值文件的数量和位置等。
在数据库启动过程中,需要读取控制文件。
如果控制文件损坏或丢失,数据库就无法启动。
因此,做好控制文件的备份十分重要。
一般的数据库配置都会有多个控制文件。
这些控制文件是完全相同的,分别存放在不同
的位置(最好在不同的磁盘上),他们之间互为备份。
数据库启动过程中,必须保证所
有控制文件都是一致的,否则数据库不能启动。
在oracle数据库的参数文件(initSid.o
ra)中指定控制文件的位置。
如果部分控制文件损坏,可以在参数文件中去掉相应的控
制文件,即可启动数据库。
每次数据库物理结构发生改变时,必须及时备份控制文件。
$sqlplus
SQL>connectinternal
SQL>alterdatabasebackupcontrolfileto/…/test.ctl;
也可以把控制文件备份成脚本,在必要的时候重建控制文件
SQL>alterdatabasebackupcontrolfiletotrace;
2.5联机全备份+日志备份
2.5.1设置
ORACLE数据库有两种运行方式:
一是归档方式(ARCHIVELOG),归档方式的目的是当数
据库发生故障时最大限度恢复所有已提交的事物;二是不归档方式(NOARCHIVELOG),恢
复数据库到最近的回收点。
这两种方式将对备份方法产生较大的影响。
1.改变不归档方式为为归档方式
2.关闭数据库,备份已有的数据
3.改变数据库的运行方式是对数据库的重要改动,所以要对数据库做备份,对可能出现
的问题作出保护。
4.启动Instance,Mount数据库但不打开数据库,来改变归档方式
#sqlplus
sql>connectinternal
sql>startupmount
sql>alterdatabasearchivelog;
5.使能自动存档
在初始化文件init*.ora(一般放ORACLE根目录的下层目录dbs下)加参数:
log_archive_start=true
6.指定存档的重做登录文件名和存放的位置
同样是在初始化文件init*.ora中加入下面的参数:
log_archive_format=%S.arc
log_archive_dest=/arch12/arch(arch12是日志文件存放的目录)
7.关闭数据库,重新启动数据库,归档方式转换完成。
8.可用archiveloglist查看状态,去除归档日志功能的命令为alterdatabase
noarchivelog。
2.5.2步骤
联机全备份:
数据库处于open状态,依次对各个表空间备份
sqlplus"/assysdba"
SQL>altertablespacesystembeginbackup;
复制此tablespace各个datafile
SQL>altertablespacesystemendbackup;
注意:
beginbackup是对tablespace冻结写入,endbackup是解除冻结,因此复制dataf
ile的过程不宜过长
备份controlfile
SQL>alterdatabasebackupcontrolfileto…….;
日志备份:
sqlplus"/assysdba"
SQL>altersystemarchivelogstop;
移去日志目录下的所有archivedredolog
SQL>altersystemarchivelogstart;
2.5.3恢复
数据库处于shutdown状态
2.5.3.1磁盘全部损坏,仅保存上次联机全备份和每天日志备份
这是最坏情况
解决硬件故障,配置系统软件及环境
oracle用户,将全备份和日志备份转移至相应目录,根据initSid.ora中controlfile的
配置,将备份控制文件复制到响应目录下
sqlplus"/assysdba"
SQL>startupmount
SQL>recoverdatabaseuntilcancelusingbackupcontrolfile;
逐个确认待恢复的archivedredolog,待最后一个完成后,键入cancel,使恢复结束
SQL>alterdatabaseopenresetlogs;
注意:
由于日志已经重置,所以应尽快做一次联机全备份
2.5.3.2丢失某数据文件
只要将此文件从上次联机全备份中复制至其目录,并将自上次联机全备份以来所有日志
备份移至归档目录
sqlplus"/assysdba"
SQL>startupmount
SQL>alterdatabaserecoverdatafilepath/file;或者简单些recoverdatabase;
SQL>alterdatabaseopen;
2.5.3.3文件损坏或丢失,又无备份,
这种情况只能将此文件脱机,将数据exp出来,重建表空间,再imp进去
sqlplus"/assysdba"
SQL>connectinternal
SQL>startupmount
SQL>alterdatabasedatafilepath/fileoffline;
SQL>alterdatabaseopen;
2.5.4注意要点
无论有多少把握,恢复前先做冷备份,此为第一原则。
不这样做,便是无路可退,一旦
失误,后果十分严重。
1.rollback段损坏
这是非常严重的问题,可在initora.ora中写入_corrupted_rollback_segments=(rxx),
启动时避开损坏的rollback段,这只是权宜之计。
如数据库处于archivelog,应从上一
次全备份起利用备份的日志进行恢复;如数据库处于noarchivelog,应尽快将全部数据e
xport出来,重建数据库,再import进去。
所有*作之前,应做冷备份。
2.数据库异常中止处理
通过手工shutdownabort*作中止数据库,不会产生大的问题,通常直接startup无需使
用介质恢复命令
如果由于机器崩溃引起的中止,则情况严重得多,有可能要使用到上面提到的恢复方法
,不过这种现象并不多见。
一般需要显式使用介质恢复命令,如下:
sqlplus"/assysdba"
SQL>startupmount;
SQL>recoverdatabase;
SQL>alterdatabaseopen;
3.数据库的扩充
3.1增加一个表空间
3.1.1创建表空间
命令示例:
SQL>createtablespaceapplicationdatafile
/usr/oracle/dbs/application.dbfsize3M
针对具体情况增加回滚和临时表空间
命令示例:
SQL>createrollbacksegmentrbs8tablespacerbsstorage(initial1mnext4m)
SQL>CREATETABLESPACETEMP
DATAFILE"/usr/oracle/dbs/temp.dbf"SIZE32MREUSE
AUTOEXTENDONNEXT640KMINIMUMEXTENT64K
DEFAULTSTORAGE(
INITIAL64K
NEXT64K
MINEXTENTS1
MAXEXTENTSUNLIMITED
PCTINCREASE0)
TEMPORARY;
回滚和临时表空间用完后,可删除或使它offline
SQL>droptablespacerbs8;
SQL>droptablespacesbilltemp;
SQL>altertablespacerbsoffline;
SQL>altertablespacebilltempoffline;
3.1.2增加某个表空间的大小
当一个表空间的大小不能满足工作需要时,应该扩充表空间。
举例:
SQL>altertablespacesystem
adddatafile/usr/oracle/dbs/sys338.dbfsize3M;
3.2增加oracle的用户,并给用户授权
3.2.1增加oracle的用户,并给用户授权
举例:
SQL>createusernewuseridentifiedbyuserpasswd
defaulttablespaceapplication
temporarytablespacebilltemp;
SQL>grantconnecttonewuser;
SQL>grantresourcetonewuser;
SQL>grantupdateonemptonewuser;
3.2.2增加oracle的角色
oracle的缺省角色有connect、resource、dba。
它是一组可以分配给其它role或用户的
权限总和,connect有8个权限,resource有5个权限,dba有77个权限。
给一般连接用
户赋connect,给一般编程人员赋connect加resource,只有数据库管理员才有dba的权限
。
①创建一个角色
SQL>createrolenewroleidentifiedbyrolepasswd;
②给角色赋权限
SQL>grantselectonalltabletonewrolle;
SQL>grantconnecttonewrolewithadminoption;
3.2.3中断用户同oracle的连接
当oracle数据库要关机或某个用户占有的大量的资源需要被释放时,dba需中断用户同o
racle的连接。
①、SQL>selectsid,serial#,usernamefromv$session;
②、SQL>altersystemkillsessioninterger1,interger2;
interger1,interger2分别对应于sid和serial#
3.3表、视图、索引、约束
Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程
、包、触发器等。
对数据库的*作可以基本归结为对数据对象的*作。
3.3.1表和视图
Oracle中表是数据存储的基本结构。
ORACLE8引入了分区表和对象表,ORACLE8i引入了临
时表,使表的功能更强大。
视图是一个或多个表中数据的逻辑表达式。
本文我们将讨论
怎样创建和管理简单的表和视图。
3.3.1.1管理表
3.3.1.1.1建立表
表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。
用CREATE
TABLE语句建立表,在建立表的同时,必须定义表名,列,以及列的数据类型和大小。
例
如:
CREATETABLEproducts
(PROD_IDNUMBER(4),
PROD_NAMEVAECHAR2(20),
STOCK_QTYNUMBER(5,3)
);
这样我们就建立了一个名为products的表,关键词CREATETABLE后紧跟的表名,然后定
义了三列,同时规定了列的数据类型和大小。
在创建表的同时你可以规定表的完整性约束,也可以规定列的完整性约束,在列上普通
的约束是NOTNULL,关于约束的讨论我们在以后进行。
在建立或更改表时,可以给表一个缺省值。
缺省值是在增加行时,增加的数据行中某一
项值为null时,oracle即认为该值为缺省值。
下列数据字典视图提供表和表的列的信息:
.DBA_TABLES
.DBA_ALL_TABLES
.USER_TABLES
.USER_ALL_TABLES
.ALL_TABLES
.ALL_ALL_TABLES
.DBA_TAB_COLUMNS
.USER_TAB_COLUMNS
.ALL_TAB_COLUMNS
3.3.1.1.2表的命名规则
表名标识一个表,所以应尽可能在表名中描述表,oracle中表名或列名最长可以达30个
字符串。
表名应该以字母开始,可以在表名中包含数字、下划线、#、$等。
3.3.1.1.3从其它表中建立表
可以使用查询从基于一个或多个表中建立表,表的列的数据类型和大小有查询结果决定
。
建立这种形式的表的查询可以选择其他表中所有的列或者只选择部分列。
在CREATE
TABLE语句中使用关键字AS,例如:
SQL>CREATETABLEempASSELECT*FROMemployee
TABLECREATED
SQL>CREATETABLEYASSELECT*FROMXWHEREno=2
需要注意的是如果查询涉及LONG数据类型,那么CREATETABLE....ASSELECT....将不会
工作。
3.3.1.1.4更改表定义
在建立表后,有时候我们可能需要修改表,比如更改列的定义,更改缺省值,增加新列
,删除列等等。
ORACLE使用ALTERTABLE语句来更改表的定义
3.3.1.1.4.1增加列
语法:
ALTERTABLE[schema.]table_nameADDcolumn_definition
例:
ALTERTABLEordersADDorder_dateDATE;
对于已经存在的数据行,新列的值将是NULL.
3.3.1.1.4.2更改列
语法:
ALTERTABLE[schema.]table_nameMODIFYcolumn_namenew_attributes;
例:
ALTERTABLEordersMODITY(quantitynumber(10,3),statusvarchar2(15));
这个例子中我们修改了表orders,将STATUS列的长度增加到15,将QUANTITY列减小到10,3
;
修改列的规则如下:
可以增加字符串数据类型的列的长度,数字数据类型列的精度。
减少列的长度时,该列应该不包含任何值,所有数据行都为NULL
改变数据类型时,该列的值必须是NULL.
对于十进制数字,可以增加或减少但不能降低他的精度。
3.3.1.1.4.3删除数据列
优化ORAC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 命令 大全