《oracle操作手册.doc》由会员分享,可在线阅读,更多相关《oracle操作手册.doc(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、前 言31.数据库的创立41.1.以下为ORACLE启动初始文件41.2.以下是建库脚本52.数据库根本操作92.1.数据库的正常启动92.2.安装启动与非安装启动102.3.独占和共享启动102.4.约束启动102.5.强制启动112.6.数据库关闭112.7.PL/SQL根本程序的编写112.7.1.SQL语言简介122.7.2.PL/SQL简介163.解决RDBMS问题223.1.性能优化223.1.1.优化内存233.1.2.优化输入/输出253.1.3.优化排序273.1.4.优化索引建立273.2.备份和恢复273.2.1.备份提示283.3.Oracle 8 Server诊断特性
2、293.3.1.Oracle跟踪文件303.3.2.设置跟踪事件313.3.3.V$监视视图343.3.4.锁实用程序363.4.Oracle错误分析和解决方案373.4.1.常见Oracle错误373.4.2.ORACLE内部错误453.4.3.优先权1/优先权2问题分类和诊断操作463.5.常见问题48数据库的创立以下仅为数据库创立的样例脚本,在实际系统中应根据数据库设计要与系统实际配置而改变参数:1.1.#this sampale init file writen by wzy 2002/11/15 db_name = jfinstance_name = ora8#service_nam
3、es = ora#db_files = 1024control_files = (/home/oracle/OraCtl/control01.ctl, /home/oracle/OraCtl/control02.ctl, /home/oracle/OraCtl/control03.ctl)open_cursors = 100max_enabled_roles = 50db_file_multiblock_read_count = 8db_block_buffers = 4096shared_pool_size = 52428800large_pool_size = 78643200java_p
4、ool_size = 20971520log_checkpoint_interval = 10000log_checkpoint_timeout = 1800processes = 115parallel_max_servers = 5log_buffer = 32768max_dump_file_size = 10240global_names = true#oracle_trace_collection_name = db_block_size = 16384#remote_login_passwordfile = exclusive#os_authent_prefix = job_que
5、ue_processes = 4job_queue_interval = 60open_links = 10#large_pool_size = 614400java_pool_size = 20971520distributed_transactions = 10mts_dispatchers = (PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)mts_dispatchers = (protocol=TCP)#compatible = sort_area_size = 65536sort_area_retained_size = 655
6、36# log_archive_start = true1.2. 以下是建库脚本#!/bin/shORACLE_SID=ora8export ORACLE_SIDsvrmgrlconnect internalstartup nomount pfile = $ORACLE_HOME/dbs/CREATE DATABASE app1 controlfile reuse maxdatafiles 500 maxinstances 8 maxlogfiles 32 character set ZHS16GBK national character set ZHS16GBKDATAFILE /orada
7、ta/app1/system01.dbf SIZE 200Mlogfile group 1 (/opt/oracle/oradata/app1/app1_redo01.log, /oradata/app1/app1_redo01.log) SIZE 20M, group 2 (/opt/oracle/oradata/app1/app1_redo02.log, /oradata/app1/app1_redo02.log) SIZE 20M, group 3 (/opt/oracle/oradata/app1/app1_redo03.log, /oradata/app1/app1_redo03.l
8、og) SIZE 20M;/opt/oracle/product/rdbms/admin/catalog.sql;CREATE ROLLBACK SEGMENT r0 TABLESPACE SYSTEMSTORAGE (INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS 20);ALTER ROLLBACK SEGMENT r0 ONLINE;REM * TABLESPACE FOR OEM_REPOSITORY *CREATE TABLESPACE OEM_REPOSITORY DATAFILE /oradata/app1/oemrep01.dbf
9、SIZE 5M REUSE AUTOEXTEND ON NEXT 25M MAXSIZE 80MMINIMUM EXTENT 128kDEFAULT STORAGE ( INITIAL 128k NEXT 128k MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0); REM * TABLESPACE FOR ROLLBACK *CREATE TABLESPACE RBS DATAFILE /oradata/app1/rbs01.dbf SIZE 200M REUSE DEFAULT STORAGE ( INITIAL 128k NEXT 128k
10、 MINEXTENTS 2 MAXEXTENTS UNLIMITED PCTINCREASE 0);REM * TABLESPACE FOR TEMPORARY *CREATE TABLESPACE TEMP DATAFILE /oradata/app1/temp01.dbf SIZE 200M REUSE DEFAULT STORAGE ( INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY;REM * TABLESPACE FOR USER *CREATE TABLESPACE
11、USERS DATAFILE /oradata/app1/users01.dbf SIZE 50M REUSE DEFAULT STORAGE ( INITIAL 128k NEXT 128k MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0);REM * TABLESPACE FOR INDEX *CREATE TABLESPACE INDX DATAFILE /oradata/app1/indx01.dbf SIZE 50M REUSE DEFAULT STORAGE ( INITIAL 128k NEXT 128k MINEXTENTS 1
12、MAXEXTENTS UNLIMITED PCTINCREASE 0);REM * Creating four rollback segments *add rollback segment to 20*CREATE ROLLBACK SEGMENT r01 TABLESPACE RBS STORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r02 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MI
13、NEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r03 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r04 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE RO
14、LLBACK SEGMENT r05 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r06 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r07 TABLESPACE RBSSTORAGE(INITIAL 128k NE
15、XT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r08 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r09 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K)
16、;CREATE ROLLBACK SEGMENT r10 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r11 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r12 TABLESPACE RBSSTORAGE(INITI
17、AL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r13 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r14 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED opti
18、mal 4096K);CREATE ROLLBACK SEGMENT r15 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r16 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r17 TABLESPACE RBSSTO
19、RAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r18 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);CREATE ROLLBACK SEGMENT r19 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLI
20、MITED optimal 4096K);CREATE ROLLBACK SEGMENT r20 TABLESPACE RBSSTORAGE(INITIAL 128k NEXT 128k MINEXTENTS 2 MAXEXTENTS UNLIMITED optimal 4096K);ALTER ROLLBACK SEGMENT r01 ONLINE;ALTER ROLLBACK SEGMENT r02 ONLINE;ALTER ROLLBACK SEGMENT r03 ONLINE;ALTER ROLLBACK SEGMENT r04 ONLINE;ALTER ROLLBACK SEGMEN
21、T r05 ONLINE;ALTER ROLLBACK SEGMENT r06 ONLINE;ALTER ROLLBACK SEGMENT r07 ONLINE;ALTER ROLLBACK SEGMENT r08 ONLINE;ALTER ROLLBACK SEGMENT r09 ONLINE;ALTER ROLLBACK SEGMENT r10 ONLINE;ALTER ROLLBACK SEGMENT r11 ONLINE;ALTER ROLLBACK SEGMENT r12 ONLINE;ALTER ROLLBACK SEGMENT r13 ONLINE;ALTER ROLLBACK
22、SEGMENT r14 ONLINE;ALTER ROLLBACK SEGMENT r15 ONLINE;ALTER ROLLBACK SEGMENT r16 ONLINE;ALTER ROLLBACK SEGMENT r17 ONLINE;ALTER ROLLBACK SEGMENT r18 ONLINE;ALTER ROLLBACK SEGMENT r19 ONLINE;ALTER ROLLBACK SEGMENT r20 ONLINE;ALTER ROLLBACK SEGMENT r0 OFFLINE;REM * SYS and SYSTEM users *alter user sys
23、temporary tablespace TEMP;alter user system temporary tablespace TEMP;/opt/oracle/product/rdbms/admin/catproc.sql;/opt/oracle/product/rdbms/admin/caths.sql;/opt/oracle/product/rdbms/admin/otrcsvr.sql;/opt/oracle/product/rdbms/admin/catexp.sql;/opt/oracle/product/rdbms/admin/catdbsyn.sql; /opt/oracle
24、/product/rdbms/admin/catdefer.sql;/opt/oracle/product/rdbms/admin/catrep.sql;/opt/oracle/product/rdbms/admin/dbmspool.sql; /opt/oracle/product/rdbms/admin/catparr.sql; /opt/oracle/product/rdbms/admin/catblock.sql; connect system/manager/opt/oracle/product/sqlplus/admin/pupbld.sql;-create the product
25、_profile and user_profile -CATALOG.SQL, -加载数据库本身的数据字典视图-CATPROC.SQL, -加载PL/SQL使用的PACKAGE-CATEXP.SQL -加载EXPORT/IMPORT工具使用的数据字典disconnectspool offexit在数据库建立完后,可用以下语句也可以在建库脚本中直接增加对对tablespace增加数据文件:ALTERTABLESPACE tablespace_name ADD DATAFILE data_file_path/data_file_name SIZE 2. 数据库根本操作2.1. 数据库的正常启动正常
26、启动数据库的选项是normal,这也是数据启动的缺省选项。如果以这种方式启动那么将翻开一个现场现场:现场为一逻辑概念,是系统为数据库翻开提供的一系列的必需资源,并把数据库装入,然后翻开数据库供用户使用。具体操作如下:1 先进入SVRMGR管理器$svrmgrlSVRMGR2 再联入inernal用户$connect internal3 在用startup命令启动假设不在启动文件所在目录进入的SVRMGR或启动文件名不是ORACLE缺省的文件名,那么启动时应带启动目录与文件名SVRMGRstartup pfile=2.2. 安装启动与非安装启动安装启动的选项是mount,表示只将数据库装入现场而
27、不翻开数据库;非安装启动的选项是nomount,表示只建立数据库现场而不装入数据库,当然也不翻开数据库。1 安装启动SVRMGRstartup pfile= mount该方式启动数据库的的用途一般为: 为数据文件更名; 增加、删除或改名事物日志文件; 使事物日志归档模式选项有效或失效; 进行完整数据库的恢复操作2 非安装启动SVRMGR startup pfile= nomount该方式启动数据库的用途一般为: 创立一新的数据库2.3. 独占和共享启动独占启动选项是exclusive,表示只允许一个例程使用该数据库;共享启动的参数是shared,表示允许多个例程并行使用该数据库,即将数据库装入
28、多个现场。1 共享启动SVRMGRstartup pfile= exclusive2 独占启动SVRMGR startup pfile= shared2.4. 约束启动这种方式的选项是restrict,它启动数据库时装入并翻开它,但此时的数据库只能为有特殊权限的数据库管理员使用,一般用户不能联入数据库。1 约束启动SVRMGR startup pfile= restrict一般来说当用户有create session权限十可联入数据库,但对于restrict方式启动的数据库只有restricted session系统权限用户才允许联入。假设在restrict方式下改变数据库运行方式,那么可用a
29、lter system命令,如下:SVRMGRalter system disable restricted session;2.5. 强制启动在一些非正常情况下有可能在正常方式下启动数据库遇到麻烦,或在上次因不能正常关闭数据库如:用了参数abort而导致不能正常启动数据库,那么可考虑使用强制启动数据库,其参数为:force.1 强制启动SVRMGR startup pfile= force;此时,除非数据库有重大系统错误,一般情况下数据库可以起来。在应注意的是用此方式启动的数据库会上次非正常关闭数据导致的非正常数据丢掉,数据库启动后应及时的查看数据库的日志文件。2.6. 数据库关闭1 正常关
30、闭SVRMGRshutdown normal;这种方式下关闭数据库在关闭前检查所有的连接,并且发出命令后不允许再有新的连接,在等所有用户断开连接后关闭数据库。在此方式下关闭的数据库下次启动时不需要任何恢复过程。2 立即关闭SVRMGRshutdown immediate;这种方式下关闭数据库并不等待用户断开连接,而是由系统断开与用户的连接,然后关闭数据库。3 异常关闭SVRMGRshutdown abort;这种方式下关闭数据库系统不做任何的检查与回退操作而直接将数据库现场撤消。 2.7. PL/SQL根本程序的编写ORACLE提供功能了功能强大的第三代编程语言PL/SQL。在本小节主要介绍根
31、本的存储过程、存储函数及触发器的编写。2.7.1. SQL语言简介2.7.1.1. SQL概述SQL是一种面向数据库的通用数据处理语言标准,能完成以下几类功能:提取查询数据,插入修改删除数据,生成修改和删除数据库对象,数据库平安控制,数据库完整性及数据保护控制。数据库对象包括表、视图、索引、同义词、簇、触发器、函数、过程、包、数据库链、快照等表空间、回滚段、角色、用户。数据库通过对表的操作来管理存储在其中的数据。2.7.1.1.1. SQL*PLUS界面登录:输入SQLPLUS回车;输入正确的ORACLE用户名并回车;输入用户口令并回车,显示提示符:SQL退出:输入EXIT即可。2.7.1.1
32、.2. 命令的编辑与运行 在命令提示符后输入SQL命令并运行,以分号结束输入;以斜杠结束输入;以空行结束输入; 利用SQL缓冲区进行PL/SQL块的编辑和运行; 利用命令文件进行PL/SQL块的编辑和运行。2.7.1.2. 数据库查询2.7.1.2.1. 用SELECT语句从表中提取查询数据SELECT 的语法为:SELECT DISTINCT column1,column2, FROM tablename WHERE conditions GROUP BY conditions ORDER BY expressions ASC/DESC;说明:SELECT子句用于指定检索数据库的中哪些列,F
33、ROM子句用于指定从哪一个表或视图中检索数据。2.7.1.2.2. SELECT中的操作符及多表查询WHERE子句WHERE子句中的条件可以是一个包含等号或不等号的条件表达式,也可以是一个含有IN、NOT IN、BETWEEN、LIKE、IS NOT NULL等比拟运算符的条件式,还可以是由单一的条件表达通过逻辑运算符组合成复合条件。2.7.1.2.3. ORDER BY 子句ORDER BY 子句使得SQL在显示查询结果时将各返回行按顺序排列,返回行的排列顺序由ORDER BY 子句指定的表达式的值确定。2.7.1.2.4. 连接查询利用SELECT语句进行数据库查询时,可以把多个表、视图的
34、数据结合起来,使得查询结果的每一行中包含来自多个表达式或视图的数据,这种操作被称为连接查询。连接查询的方法是在SELECT命令的FROM子句中指定两个或多个将被连接查询的表或视图,并且在WHERE子句告诉ORACLE如何把多个表的数据进行合并。根据WHERE子句中的条件表达式是等还是不等式,可以把连接查询分为等式连接和不等式连接。2.7.1.2.5. 子查询如果某一个SELECT命令查询1出现在另一个SQL命令查询2的一个子句中,那么称查询1是查询2的子查询。2.7.1.3. 根本数据类型ORACEL支持以下内部数据类型: VARCHAR2 变长字符串,最长为2000字符。 NUMBER 数值
35、型。 LONG 变长字符数据,最长为2G字节。 DATE 日期型。 RAW 二进制数据,最长为255字节。 LONG RAW 变长二进制数据,最长为2G字节。 ROWID 二六进制串,表示表的行的唯一地址。 CHAR 定长字符数据,最长为255。2.7.1.4. 常用函数一个函数类似于一个算符,它操作数据项,返回一个结果。函数在格式上不同于算符,它个具有变元,可操作0个、一个、二个或多个变元,形式为:函数名变元,变元,函数具有以下一般类形: 单行函数 分组函数1 单行函数对查询的表或视图的每一行返回一个结果行。它有数值函数,字符函数,日期函数,转换函数等。2 分组函数返回的结果是基于行组而不是
36、单行,所以分组函数不同于单行函数。在许多分组函数中可有以下选项: DISTRNCT 该选项使分组函数只考虑变元表达式中的不同值。 ALL该选项使分组函数考虑全部值,包含全部重复。全局部组函数除COUNT*外忽略空值。如果具有分组函数的查询,没有返回行或只有空值分组函数的变元取值的行,那么分组函数返回空值。2.7.1.5. 数据操纵语言命令数据库操纵语言DML命令用于查询和操纵模式对象中的数据,它不隐式地提交当前事务。它包含UPDATE、INSERT、DELETE、EXPLAIN PLAN、SELECT和LOCK TABLE 等命令。下面简单介绍一下:1)UPDATE tablename SET
37、 column1=expression1,column2=expression2, WHERE conditions;例如:SQL update serv set state=F0K where serv_id=123456 and serv_seq_nbr=1;UPDATE子句指明了要修改的数据库是EMP,并用WHERE子句限制了只对名字(ENAME)为MARTIN的职工的数据进行修改,SET子句那么说明修改的方式,即把MARTION的工作名称(JOB)改为MARAGER.2)INSERT INTO tablename column1,column2, VALUES expression1,
38、expression2,;例如:SQL insert into bill.serv select * from trans.serv_bak;3)DELETE FROM tablename WHERE conditions;例如:SQL delete from acct_item_area01 where acct_id=123245 and account_date=200110 and acct_item_type_id = 11001;DELETE命令删除一条记录,而且DELETE命令只能删除整行,而不能删除某行中的局部数据. 4)事务控制语句提交命令(COMMIT):可以使数据库的修改
39、永久化.设置AUTOCOMMIT为允许状态:SQL SET AUTOCOMMIT ON;回滚命令(ROLLBACK):消除上一个COMMIT命令后的所做的全部修改,使得数据库的内容恢复到上一个COMMIT执行后的状态.使用方法是:2.7.1.6. 创立表、视图、索引、同义词、用户2.7.1.6.1. 表建立表主要指定义以下信息: 列定义 完整性约束 表所在表空间 存储特性 可选择的聚集 从一查询获得数据语法如下:CREATE TABLE tablename (column1 datatype DEFAULT expression constraint, column1 datatype DEF
40、AULT expression constraint, )STORAGE子句 其他子句;例如:SQL create table serv (serv_id number(10),serv_seq_nbr number(3)2 tablespace data_bill3 storage (initial 10m next 5m);2.7.1.6.2. 视图视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视图本身不包含数据。视图所基于的表称为基表。引入视图有以下作用: 提供附加的表平安级,限制存取基表的行或/和列集合。 隐藏数据复杂性。 为数据提供另一种观点。 促使ORACLE的某些操作在包
41、含视图的数据库上执行,而不在另一个数据库上执行。2.7.1.6.3. 索引索引是种数据库对象。对于在表或聚集的索引列上的每一值将包含一项,为行提供直接的快速存取。在以下情况ORACLE可利用索引改良性能: 按指定的索引列的值查找行。 按索引列的顺序存取表。语法:create index on storage语句 其它语句;例如:SQL create index idx_serv_01 on serv(srev_id,serv_seq_nbr)2 tablespace data_bill_idx3 storage (initial 5m next 5m);2.7.1.6.4. 同义词同义词:为表
42、、视图、序列、存储函数、包、快照或其它同义词的另一个名字。使用同义词为了平安和方便。对一对象建立同义词可有以下好处: 引用对象不需指出对象的持有者。 引用对象不需指出它所位于的数据库。 为对象提供另一个名字。 语法: craete synonym for user_name.; 例如:假定在CALL用户下 SQL create synonym serv for bill.serv; 注意:在同义词建立后要授权2.7.1.6.5. 用户语法:CREATE USER username IDENTIFIED BY password;例如:SQL create user bill identified
43、 by jfxt;2.7.2. PL/SQL简介2.7.2.1. PL/SQL概述PL/SQL是Oracle对SQL标准的扩展,是一种块结构语言,即构成一个PL/SQL程序的根本单位过程、函数和无名块是逻辑块,可包含任何数目的嵌套了快。这种程序结构支持逐步求精方法解决问题。一个块或子块将逻辑上相关的说明和语句组合在一起,其形式为:DECLARE-说明BEGIN-语句序列EXCEPTION-例外处理END;它有以下优点: 支持SQL; 生产率高; 性能好; 可称植性; 与ORACLE集成.2.7.2.2. PL/SQL体系结构PL/SQL运行系统是种技术,不是一种独立产品,可认为这种技术是PL/SQL块和子程序的一种机,它可接收任何有效的PL/SQL块或子程序。如下图: PL/SQL机 PL/SQL块过程性语句执行器PL/SQL块SQL语句PL/SQL机可执行过程性语句,而将SQL语句发送到ORACLE效劳器上的SQL语句执行器。在ORACLE预编译程序或OCI程序中可嵌入无名的PL/SQL块。如果ORACLE具有PROCEDURAL选件,有名的PL/