Oracle数据库的日常使用命令

上传人:jin****ng 文档编号:110347355 上传时间:2022-06-18 格式:DOC 页数:15 大小:124KB
返回 下载 相关 举报
Oracle数据库的日常使用命令_第1页
第1页 / 共15页
Oracle数据库的日常使用命令_第2页
第2页 / 共15页
Oracle数据库的日常使用命令_第3页
第3页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Oracle 数据库的日常使用命令1. 启动和关闭数据库 22. 控制监听 23. 数据库用户管理 24. Oracle 的权限管理35. 更改字符集为中文 36. 查询语句 47. 表空间管理 58. 数据文件被误删后的处理 69. 查询当前系统的配置参数 610. 显示当前用户 611. Oracle 排错处理612. 查看表结构 713. 查看数据库文件 714. 将 select 查询出的结果保存至一个文件 815. 存储过程 816. 数据库的备份与恢复 9Export 转入程序 9Import 恢复程序 12增量卸出/装入 131. 启动和关闭数据库sqlplus /nolog;SQL conn / as sysdba;SQL startup(若启动文件名不是ORACLE缺省的文件名,则启动时应带启动目录与文件名)SQLstartup pfile=停止:SQLshutdown immediate2. 控制监听1启动监听lsnrctl start2停止监听lsnrctl stop3查看监听状态lsnrctl status3. 数据库用户管理1创建用户如:create user imuse203identified by imuse203default tablespace IMUSE01temporary tablespace IMUSE01_TMP2修改用户将 imuse203 的口令改为 hello:alter user imuse203 identified by hello;将 imuse203 的缺省表空间改为 IMUSE02:alter user imuse203 default tablespace IMUSE02;将 imuse203 的临时表空间改为 IMUSE02_TMP:alter user imuse203 tempory tablespace IMUSE02_TMP;3删除用户删除用户的命令为:DROP USER 用户名 CASCADE若不使用 CASCADE 选项,则必须在该用户的所有实体都删除之后,才能删除该用 户。使用CASCADE后,则不论用户实体有多大,都一并删除。4. Oracle 的权限管理1系统权限ORACLE7提供了 80多种系统权限,每种系统权限允许用户执行特定的数据库操作。 系统权限的授予命令为GRANT,例如把创建任何表视图的权限授予imuseOl用户:GRANT create any view TO imuse01;系统权限的回收命令为REVOKE,例如将create any view权限从imuseOl用户手中收回: REVOKE create any view FROM imuse0l;2实体权限每种类型的实体有与之相关的实体权限。授予实体权限的命令举例(将basetab表上的Select和Insert权限授给imuse01):GRANT select, insert ON basetab TO imuseOl;回收实体权限的命令举例(将basetab表上的Select权限从imuse01手中回收): REVOKE select ON basetab FROM imuseO1;3管理角色角色是许多权限和角色的组合。它极大地方便了 ORACLE的权限管理。创建角色,如创建一个名为dept1的角色,口令为hello:CREATE ROLE ROLEiMUSEO1 IDENTIFIED BY hello; 使用角色,可以通过修改用户的缺省角色来使用角色,或通过授权的方法来将角色授 予其它角色或用户。如将imuse01用户的缺省角色修改为RoleTmp:ALTER USER imuseO1 DEFAULT ROLE RoleTmp;将角色 RoleTmp 角色授予 imuseO1:GRANT RoleTmpTO imuseO1;使角色生效或失效,DBA可以通过控制角色的生效或失效,来暂时回收用户的一部分 权限。如使RoleTmp角色失效:SET ROLE RoleTmp DISABLE;删除角色,这将会影响到拥有该角色的用户和其它角色的权限。用DROP ROLE命令 删除角色,如:DROP ROLE RoleTmp;5. 更改字符集为中文sqlplus /nolog;SQLconn / as sysdba;SQL SHUTDOWN IMMEDIATE;SQL STARTUP MOUNT;SQL ALTER SYSTEM ENABLE RESTRICTED SESSION;SQL ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL ALTER DATABASE OPEN;SQL ALTER DATABASE CHARACTER SET ZHS16GBK;(这一步一般会出错,所以需要重复执行上面从SHUTDOWN IMMEDIATE开始的所有语句)SQL SHUTDOWN IMMEDIATE;SQL STARTUP;6. 查询语句当前存在哪些表空间Select * from v$tablespace;表空间有多大Select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; 表空间还剩多少空闲空间Select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name; 查询 imuse01 用户所使用的缺省表空间select default_tablespace from dba_users where username=imuse01;查询imuseOl用户所使用的临时表空间select temporary_tablespace from dba_users where username=imuse01;查询当前用户所拥有的角色select * from session_roles;查看违反唯一索引的表及列:如果插入数据时系统提示:unique constraint (IMUSE01.SYS_C004960) violated.则说明在为IMUSE01用户插入数据时违反了唯一索引SYS_C004960。查看违反唯一索引的表:select table_name from user_indexes where index_name= SYS_COO496O; 查看违反唯一索引的列:select column_name from user_ind_columns where index_name= SYS_COO496O;查看编译无效的存储过程:select object_name from user_objects where status=INVALID and object_type=PROCEDURE;查看当前运行的实例名:select instance_name from v$instance;查看使用过的SQL语句:select * from v$sqltextselect contentid,createtime from po_p_contentinfo twhere t.contentid in(4028c78b0ef3c014010ef3c1b5b50003,4028c78b0eef8fdd010ef0e8b121090f,4028c78b0eef8fdd010ef0deeac608c6,4028c78b0eef8fdd010ef0b0f101078e,4028c78b0ee63714010ee68eafc2027a,4028c78b0ee63714010ee9ca3dd017e0,4028c78b0ee58f16010ee59e7d88005e,4028c78b0ee63714010ee6813f3f01ed,4028c78b0ee63714010ee681b4a00202,4028c78b0ee5a73c010ee5cee35500fd) order by createtime asc7. 表空间管理1创建表空间create tablespace IMUSE01datafile /export/home/oracle/oradata/mdspdata/imuse01_dat1size 100M;2增加表空间的大小如将表空间 IMUSE01 增加 100M:alter tablespace IMUSE01add datafile /export/home/oracle/oradata/mdspdata/imuse01_dat2size 100M;3修改表空间的大小如将表空间 IMUSE01 改为 1000M:alter databasedatafile /export/home/oracle/oradata/mdspdata/imuse01_dat1resize 1000M;4 、删除表空间 drop tablespace imuse01 including contents;DROP TABLESPACE portal36 INCLUDING CONTENTS andDATAFILES8. 数据文件被误删后的处理如果不小心物理上删除了一 Oracle 的数据文件,比如说,某应用表空间所对应数据文 件”adc.dbf”,Oracle读控制文件时,和打开数据库时所面对的参数不一致,Oracle数据库将 启动不了,解决这种问题的方法是把该文件对应的表空间先卸下,再删除,以保证控制文件 描述和物理上存在文件一致。以 sys 用户登录并进入 Sql*Plus:SQL startup mountSQL alter database datafile /directory/abc.dbf offline drop;SQL alter database open;SQL drop tablespace abc;9. 查询当前系统的配置参数有三种查询方法:1. 静态查询:即直接查询initXXXX.ora文件(XXXX为O RACLE的SID)。因为有很多系统参数使用的是缺省值,并未在该文件中给出,所以该方法不能看到所有参数及其含义。2. 在 SQL*PLUS 中用命令查询1) 显示所有数据库参数值SQLshow parameters;2)显示含有“sort”的参数的值SQLshow parameter sort;3. 在 SQL*PLUS 中用 SQL 语句查询SQL select name,type,value from v$parameter where name=db_block_buffers;10. 显示当前用户sqlshow user;11. Oracle 排错处理1错误说明ORACLE中出现的错误的格式为:错误类型-错误代码:错误信息,例如:“ORA-1652: unable to extend temp segment by 128 in tablespace TEMP”一般来说,这种错误信息比较简单,但是可以根据这个信息用oerr命令得到更详细的信息。2查看错误详细说明oerr是ORACLE提供的一个在服务器端使用的错误信息帮助命令。使用该命令前,必须先 用O RACLE用户登录到服务器上,命令格式为:oerr 错误类型 错误代码 返回信息格式为: 错误代码, “通用错误信息”/*错误原因 /*应采取的动作如对上面的错误可用如下命令:oerr ora 16523. alert_XXXX.ora(XXXX为0RALE的SID)文件的说明alert_XXXX.ora是ORACLE中一个十分有用的的文件,该文件在服务器的具体位置由 initXXXX.ora中的参数“background_dump_dest的值决定。该文件中的信息有:数据库每次 STARTUP、SHUTDOWN的具体信息;在数据库中进行的各种DML操作;数据库中出现的 各种错误的信息等等,内容十分详细,并且有各种信息发生的具体时间。如果遇到问题,可 以仔细浏览该文件,根据问题发生的时间来寻找相应的信息。12. 查看表结构SQLdesc 表名13. 查看数据库文件共有三种数据库文件:控制文件、数据文件、日志文件1. 查看控制文件select * from v$controlfile;2查看数据文件select status,bytes,name from v$datafile;3查看日志文件select name from v$logfile;14. 将 select 查询出的结果保存至一个文件SQLspool /result.txtSQLselect * from basetab;SQLspool off则从 basetab 查询出的结果都被保存到当前路径下的 result.txt 文件中15. 存储过程1. 存储过程的写法:create or replace procedure proc_name(ifield1 in number, sfield2 out varchar)asv_err_code int;v_err_msg varchar2(2048);beginselect field2 into sfield2 from tabSp where field1 = ifield1; DBMS_OUTPUT.PUT_LINE(sfield2);exceptionwhen others thenbeginv_err_code :=sqlcode;v_err_msg :=sqlerrm;DBMS_OUTPUT .PUT_LINE(v_err_code| |v_err_msg); rollback;end;end proc_name;注意:1) 存储过程的输入输出参数以逗号间隔,局部变量部分以分号间隔;2) 存储过程的输入输出参数部分:最后一个参数后没有逗号;3) 存储过程的局部变量部分:最后一个变量后有分号;4) 可把多个存储过程保存到一个文件中,文件名必须用.sql后缀;5) 每个存储过程结束后,要用“/”作为提交;2. 存储过程的创建:sqlplus 用户名/密码数据库标识 存储过程文件名(这里的存储过程文件名可以省略.sql后缀,因为文件后缀缺省是.sql)3. 存储过程的执行sqlexecute 存储过程名字(参数)1如果执行存储过程时提示:必须说明标识符存储过程名,则表明该存储过程不存在或 编译未成功。可用如下命令重新编译该存储过程:SQLalter procedure 存储过程名 compile;2如果执行存储过程时提示:未找到数据在im use01.test_adduser,有可能是在该存储过程 中存在类似select col _name into tmp from table_name where ”这样的语句,而查询出的结 果为空的缘故。3.如果执行存储过程时提示:SQL缓冲区中无可执行的程序,说明此时缓冲区是空的。如 在执行上面找不到相应记录的脚本后会提示该错误。4如果执行存储过程时提示:输入被截为1个字符,表明某个”/”之后少一个回车符。5. 如果执行存储过程时提示:创建的过程带有编译错误,可能是某个存储过程结束处少一 个”/”。6. 如果执行存储过程时提示:缺少表达式,有可能是某个变量没被赋值。16. 数据库的备份与恢复ORACLE系统提供的Export/转入(备份)、Import/转出(恢复)应用程序实现备份与恢复功 能。Export 是在数据库打开并能使用的情况下备份数据库数据的实用程序。用 Export 将数据库 中的数据写到以二进制形式表示的操作系统文件中(ORACLE),该文件叫卸出文件。用 Export可实现应用程序失败时的恢复,例如可把某个表或某些表恢复到执行该Export时的 状态。由于卸出文件的特殊格式,所以只能用Import实用程序将其读入数据库中。Export 转入程序ORACLE 数据库有两类备份方法,第一类为物理备份,该方法实现数据库的完整恢复,但 数据库必须运行在归档模式下,且需要极大的外部存储设备,例如磁带机;第二类备份方式 为逻辑备份,客户服务中心业务数据库就是采用这种方式,这种方法不需要数据库运行在归 档模式下,不但备份简单,而且可以不需要外部存储设备。逻辑备份又分为三种模式。表模式(T):这种模式可以卸出当前用户数据库模式下的表,甚至是所有的表。具有特权 的用户可根据所指定的数据库模式来(限制表)卸出他们所包含的表。缺省情况是卸出属于 当前正在进行卸出的用户的所有表。用户模式(U):这种模式可以卸出当前用户数据库模式下的所有实体(表、数据和索引)。 全数据库模式(F):只有具有EXP_FULL_DATABASE角色的用户才可能以这种模式卸出。 以这种模式进行卸出的用户,除 SYS 模式下的内容之外,数据库中所有实体都可以卸出。下 面列出给用户赋予EXP_FULL_DATABASE角色的方法。要选择表、用户或全数据库方式,可相应指定TABLES=tablelist、OWNER=userlist或FULL =y。1. 表模式EXP imuseOl/ imuseOl BUFFER=8192(或 64000)FILE=imuse01.dmp 或(磁带设备/dev/rmt0)TABLES=imuse01.basetab(或 imuse01.basetab, imuse01.serviceinfo )ROWS=YCOMPRESS=NLOG= EXP_IMUSE01 _SERVICEINFO.LOG参数说明:BUFFER缓冲区大小FILE由Export创建的输出文件的名字TABLES将要卸出的表名列表ROWS指明是否卸出表中数据的行数,缺省为“Y” rows=n时只 导出表结构COMPRESS指明在装入期间是否将表中数据压缩到一个区域中。如果 在卸出数据时,指定参数COMPRESS=Y,那么装入时, 就会将数据压缩到一个初始区域中。这种选择可以保持初 始化区域的原始大小。缺省为“Y”LOG指定一个接收有用信息和错误信息的文件主题:如何把数据库的创始脚本导出1、先用exp mdspcnc/mdspcnc file=a.dmp rows=n 把一个空的表结构导出来,rows=n表示不 导出实际数据2、再用st rings a.dmp a.txt 把a.dmp中的内容导到一个文本中就行了10.168.48.158 上 exp lyq/lyq buffer=8192 file=lyq.dmp full=Y rows=Y compress=N log=exp_lyq_db.log然后将lyq.dmp通过ftp传到,执行下面命令,用portal用户导入数据库失败imp portal/portal full=Y file=lyq.dmp log=imp_lyq_db.log rows=Y commit=Y buffer=8192 IGNORE=YIMP-00003: ORACLE error 1918 encountered ORA-01918: user PORTALSDV1 does not existIMP-00017: following statement failed with ORACLE error 1918: ALTER USER PORTALSDV2 DEFAULT ROLE ALLIMP-00003: ORACLE error 1918 encountered ORA-01918: user PORTALSDV2 does not exist . importing OLAPSYSs objects into OLAPSYS . importing WKSYSs objects into WKSYS . importing WK_TESTs objects into WK_TEST . importing SYSMANs objects into SYSMAN . importing FLOWS_030000s objects into FLOWS_030000 . importing SYSDBs objects into SYSDBALTER SESSION SET CURRENT_SCHEMA= SYSDB IMP-00003: ORACLE error 1435 encounteredORA-01435: user does not existIMP-00000: Import terminated unsuccessfully2. 用户模式EXP imuseOl/ imuseOl OWNER= imuseOl BUFFER=8192 (或 64000) FILE= imuseOl.dmp 或(磁带设备/dev/rmtO)ROWS=YCOMPRESS=NLOG= EXP_IMUSE0l .LOG参数说明:OWNER将要卸出的用户名列表BUFFER、FILE、ROWS、COMPRESS、LOG同上3. 全数据库模式EXP imuse01/ imuse01 BUFFER=8192(或 64000)FILE=EXP_IMUSE01.dmp (或磁带设备/dev/rmt0)FULL=Y ROWS=Y COMPRESS=NLOG= EXP_IMUSE01_DB.LOG对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据 增量备份命令:EXP ICDMAIN/ICD BUFFER=8192 (或 64000)FILE=EXP_ICDMAIN_DB.DMP (或磁带设备/dev/rmt0)FULL=Y INCTYPE= incremental ROWS=Y COMPRESS=NLOG=EXP_ICDMAIN_DB.LOG参数说明:BUFFER、FILE、ROWS、COMPRESS、LOG同上FULL指明是否卸出完整的数据库。如果 FULL=Y,将以全数据库模式进行 卸出。INCTYPE增加卸出的类型,有效值有 complete (完全)、comulative (固 定)和 incremental (增量)。complete输出所有表comulative将输入第一次完全输出后修改过的 表incremental将输出前一次输出后修改过的表说明:关于增量备份必须满足下列条件:只对 数据 库备 份有 效,且 第一 次需 要 FULL=Y 参 数, 以后 需要INCTYPE=INCREMENTAL 参数。用户必须有EXP_FULL_DATABASE权限。Import 恢复程序Import和Export是两个相配套的实用程序,Export把数据库中的数据卸出到操作系统文件 中,而Import实用程序则把Export卸出的数据恢复到数据库中。按备份方案确定恢复方案,例如:采用表逻辑备份方案,则恢复方案也采用恢复到表的方式 (不应恢复到用户)。要使用Import,必须具有CREATE SESSION特权,以便能注册到ORACLE RDBMS中去。 这一特权属于在数据库创建时所建立的CONNECT角色。如果卸出文件是由某用户利用EXP_FULL_DATABASE角色创建的全数据库卸出,那么只有 具有IMP_FULL_DATABASE角色的用户才能装入这样的文件。数据库的逻辑恢复分为表、用户、数据库三种模式。1. 表模式恢复方法为:IMP imuseOl/imuseOl FILE=文件名 LOG=LOG 文件名ROWS=Y COMMIT=Y BUFFER=Y IGNORE=YTABLES=(表名1,表名2,表名3,表名4,.)参数说明:BUFFER缓冲区大小FILE用于装入的卸出文件名字TABLES将要装入的表名列表ROWS指明是否装入表数据的行数,缺省为“Y”。IGNORE指明如何处理实体创建错误。指定IGNORE-Y,当试图创建 数据库实体时,忽略实体存在错误。对除了表之外的其他实 体,指定IGNORE=Y,Import不报告错误,继续执行。而指 定IGNORE=N时,Import在继续执行前报告实体创建错误。COMMIT指明在母个矩阵插入之后是否提父。缺省时,Import在装入 每个实体之后提交。指定COMMIT=N时,如有错误产生, Import在记录装入下一个实体之前,完成一个回退。指定 COMMIT=Y时,可以抑制回滚字段无限制增大,并改善大量 装入时的性能,表具有唯一约束时,这种选择比较好。如果 再次开始装入,将拒绝装入已经装入的任何行,原因是非致 命性错误。表具有非唯一约束时,指定COMMIT=N可能是 比较好的选择。因为重新装入可能会产生重复行。LOG指定一个接收有用信息和错误信息的文件2. 用户模式如果备份方式为用户模式,采用下列恢复方法:IMP system/manager FROMUSER=imuse01 TOUSER= imuse01FILE=文件名 LOG=LOG 文件名 ROWS=Y COMMIT=YBUFFER=Y IGNORE=Y参数说明同上。exp_lyq_db.log3. 数据库模式如果备份方式为数据库模式,采用下列恢复方法:IMP system/manager FULL=YFILE=文件名 LOG=LOG 文件名 ROWS=Y COMMIT=YBUFFER=Y IGNORE=Y字符集转换对于单字节字符集(例如 US7ASCII),恢复时,数据库自动转换为该会话的字符集 (NLA_LANG参数);对于多字节字符集(例如ZHS168CGB),恢复时,应尽量使字符集 相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。增量卸出/装入下面介绍利用 Export/Import 实用程序对 ORACLE 数据库进行备份、恢复的方法:增量卸出 /装入。增量卸出是一种常用的数据备份方法,包括3 个子类:(1) “完全”增量卸出就是对整个ORACLE数据库进行完全卸出。如:$ exp system/口令 inctype=complete full=y file=today.dmp(1) “增量型”增量卸出 即从 ORACLE 数据库中卸出上次卸出操作之后所有数据库的变化信息。如:$exp system/口令 inctype=incremental file=today.dmp 增量型卸出文件的大小,可能只是完全卸出文件大小的1%,具体要看“新信息或更新过的 信息”的总量而定。(2) “累积型”增量卸出 累积型卸出方式只是卸出自上次“完全” 卸出之后数据库中变化了的信息。用法如下:$exp system/口令 inctype=cumulative file=today.dmpDBA 可以排定一个备份日程表,用数据卸出的三个不同方式合理高效地完成数据库的备份 任务。比如DBA作如下安排:星期一:完全卸出(F1)星期二:增量卸出(I1)星期三:增量卸出( 星期四:累积卸出(C1) 星期五:增量卸出(I3) 星期六:增量卸出(I4) 如果在星期日,数据库遭到意外破坏,DBA可按以下步骤来恢复数据库: 用命令CREATE DATABASE重新生成你的数据库结构;. 最近增量装入 I4: $imp system/ 口令 inctype=system full=y file=I4 完全增量装入 F1: $imp system/口令 inctype=restore full=y file=F1 累积增量装入 C1: $imp system/口令 inctype=restore full=y file=C1 对于由累积装入或完全装入尚未能装入的信息,作增量装入:$imp system/ 口令 inctype=restore full=y file=I3$imp system/ 口令 inctype=restore full=y file=I4A注意:在I1和I2中的信息已包括在C1中了。17. sqlplus /nologoraclePortalONEA:/product/9.2/network/admin sqlplus /nolog SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 11 月 20 20:08:13 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL conn sys/huawei as sysdbaConnected.在Oracle上使用18可以査到收集统计时间内,对数据库进行了哪些操作(执行了哪些SQL语句),各条语句所花的时间 原因: 两个收集点之间生成一个性能报告。收集统计点:SQL connect perfstat/perfstatSQL execute statspack.snap;多次收集统计点之后 可以用SQL connect perfstat/perfstatSQL ?/rdbms/admin/spreport这时会问你要在哪两个点之间生成报告,选择两个统计点,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!