Oracle数据库精讲与疑难解析

     13164110_200808201030321.jpg

【书 名】 Oracle数据库精讲与疑难解析
     《Oracle数据库精讲与疑难解析》一书在“2008年度最佳IT技术图书与原创作者评选”活动中,被评为“2008年度优秀IT技术图书”。
【作 者】 赵振平
        赵振平在“2008年度最佳IT技术图书与原创作者评选”活动中,荣获“2008年度最佳原创作者”称号。
【ISBN】 978-7-121-06189-9
【出版社】 电子工业出版社
【出版日期】2008年5月
【内容简介】
    本书是一本毫无保留的Oracle学习宝典。通过作者历时3年的写作,本书介绍了Oracle的安装及卸载、数据库的启动关闭、表空间和数据文件的管理、Oracle网络管理、口令文件管理、内存管理、进程管理、用户管理、数据的导入导出、备份与恢复、模式对象的管理以及应用程序开发等相关知识。本书旨在向读者解答使用Oracle中遇到的疑难问题,并展示管理Oracle的大量技巧。

【前言】
    亲爱的朋友,在使用Oracle时,你肯定会遇到许多诸如下面的问题:
 安装Oracle时,不能启动安装界面……
 安装Oracle时,安装界面显示乱码……
  Oracle 8i不能在奔腾4(P4)机器上安装……
 不能完全卸载Oracle数据库……
 数据库突然掉电……
 一个数据文件损坏……
 一个表中的数据被意外删除……
 连接数据库时,提示:监听器不存在(TNS-12541 TNS:no listener)……
 连接数据库时,提示:无法解析服务名(TNS-03505 Failed to resolve name)......
 连接数据库时,提示“TNS-12535 TNS:operation timed out……”
 数据库无法启动……
 数据库无法关闭……
 使用数据库时,报告错误“ORA-00104: deadlock detected; all public servers blocked waiting for resources……”
 对表空间进行操作时,提示:表空间不存在(表空间确实存在)……
 创建表时,报告错误“ORA-01950: no privileges on tablespace 'USERS'……”
 创建表时,报告错误“ORA-01536: space quota exceeded for tablespace 'TBST'…..”
 往表中插入数据时,提示“ORA-01653: unable to extend table REP.PHONE_RESUME by 32 in tablespace TBS_PRO……”
 不能往表空间中添加数据文件……
 不能杀掉一个进程……
 如何提高Oracle的最大会话数……
 为什么数据库高速缓冲区(Database Buffer Cache)的大小总是显示为0……
 表被锁住,如何解锁……
 为什么我不能成为超级用户……
 遇到snapshot too old错误……
 导出数据时,报告错误“EXP-00091: Exporting questionable statistics……”
 如何把Access的数据导入Oracle中……
 如何把Excel的数据导入到Oracle中……
 导入数据时,报告错误“IMP-00020: long column too large for column buffer size (7) ……”
 为什么数据总是被导到SYSTEM表空间……
 修改初始化参数时,报告错误“ORA-32001: write to SPFILE requested but no SPFILE specified at startup…...”
 修改初始化参数时,报告错误“ORA-02095: specified initialization parameter cannot be modified……”
 使用数据库链接时,报告错误ORA-02019: connection description for remote database not found……
 执行命令ARCHIVE LOG LIST时,报告权限不足……
 无法归档(ARCHIVELOG)数据库……
 普通用户登录数据时,报告错误“ORA-00257 : archiver error. Connect internal only, until freed……”
 在SELECT中使用函数时,报告错误“ORA-14551: cannot perform. a DML operation inside a query……”
  ORA-00937: not a single-group group function……
 查询数据时,报告错误“ORA-02032: clustered tables cannot be used before the cluster index is built……”
 访问序列时,报告错误“ORA-08002: sequence string.CURRVAL is not yet defined in this session……”
 执行存储过程,报告错误“ORA-01031: insufficient privileges……”
 ……......……......……......……......……......……......……......……......
    遇到上面的问题,怎么办?Oracle博大精深,出现的问题亦千奇百怪,本书正是为了解决你使用Oracle中遇到的各种疑难问题编著而成的,它能助你破除重重障碍,成功到达Oracle的彼岸。特别注意的是,本书不是只为了讲解基本概念而写,而是重在疑难解惑,与读者分享工作经验。
    写本书的体会
    我在2000年参加工作,2001年正式成为DBA(数据库管理员),一直从事Oracle数据库的管理工作,从Oracle 7到Oracle 8i,从Oracle 8i到Oracle 9i、Oracle 10g,直到当前的Oracle 11g,7年多的光阴,我依然奋斗在DBA这个行列。在以往的日子里,每当遇到许多疑难问题时,我总是重复经历(看英文文档-研究-解决问题)的过程。问题解决以后,我总是把解决的过程记录在一个文本文件中。正是这一次次的经历,为我积累了丰富的经验,也为我成就今天这本书打下了坚实的基础。正所谓“宝剑锋从磨砺出,梅花香自苦寒来”。积累的这个“文本文件”,现在也成了我的“宝贝”,所以,我会经常把它备份到好多地方,以防丢失!!
    2005年7月,电子工业出版社的胡辛征老师正在筹划一本有关Oracle疑难解析方面的书,我也很乐意与大家一起分享我的经验,于是我和胡老师不谋而合。
    于是,我开始蜷伏在北京上地的某个角落,从日出东方到夕阳西下,经历了不知多少个日日夜夜。看过漫天尘土的春季,浸泡在炎热的夏季,看着秋天的落叶,不知不觉中走过了冬季。漫漫长路,历时三载,2008年元旦,本书初稿终于尘埃落定。
    本书重在疑难解析,帮助读者解决使用Oracle中遇到的疑难问题。这本书中的疑难问题都是缘于我的亲身经历。
    出于严谨性的考虑,本书中的例子我都在机器上重新进行了模拟试验,因此,这本书耗费了我大量的时间和精力。
    由于这本书中例子很多、很常见,所以,虽然这本书是我自己写的,但是我自己也经常在使用这本书的电子版,当我遇到问题的时候,我只需要在本书的电子版中输入错误提示信息(或者关键字)进行搜索,马上就能找到答案,并且,只需把本书中给出的步骤(脚本/命令)复制出来,稍微修改一下,马上就能运行,真的很方便、很快捷!所以,我相信这是一本Oracle疑难解析方面的好书。因为这本书对我有用,所以管用!
    学习Oracle其实并没有那么难,做任何事情都要讲究途径和努力。学习Oracle要先把它的体系结构、概念机制搞清楚,在了解熟悉了这些之后,接下来的工作就是要建立一个测试环境并不断去实践,这是尤为关键的。因为做Oracle的DBA,其水平高低不在于你对它的名词概念掌握了多少,也不在于你是否有Oracle官方的OCP认证,而是在于你的实际排查、解决故障问题的能力——这是衡量一个数据库管理员水平高低的唯一标准。对于那些已经熟悉了Oracle的名词概念和体系结构的人,如果想要更进一步地提升自己水平的话,那么本书正是提供了这样一种途径,让你掌握更多的解决Oracle问题的方法。水平再高的Oracle DBA也不敢说自己能解决Oracle出现的所有问题,Oracle机制复杂,版本也不断更新,总会有我们没有遇到过的问题出现,这就需要我们不断地积累经验、整理总结。我是一个对技术有些偏执的人,每当碰到一个技术问题,我都会反复实验,钻研得很深很细,谓之触类旁通并非过誉,这本书总结了我多年以来在Oracle领域的疑难问题解决经验。
    本书的结构
    本书共25章,近1000页,每章的第一小节(或者更小的小节)介绍一些基本概念,让初学者对Oracle的基本概念有个清晰的了解(介绍Oracle的体系结构,不是本书的重点)。然后下面的小节将手把手教会读者如何(HOW TO)操纵数据库(大部分是基于命令行的)。如果在操纵数据库的时候遇到疑难问题,在最后一小节(或者更小的小节)我们将会告诉你为什么会出现这样的问题,并Step By Step地教会读者如何解决这样的问题,只要严格按照我们给出的步骤,一定能解决你遇到的问题(FAQ)。
    本书快速目录
    第1章  认识Oracle的世界——Oracle的体系结构
    本章介绍主要Oracle的一些基本概念。
    第2章  迈出第1步——Oracle的安装/卸载  含35个实务
    本章介绍如何安装/卸载Oracle,并帮助读者解决安装/卸载过程中遇到的疑难问题。
    第3章  有米之炊数据库的创建与删除  含14个实务
    本章介绍如何创建和删除数据库,并解决安装过程中遇到的疑难问题。
    第4章  Oracle网络管理并不难  含31个实务
    本章介绍Oracle网络的基本配置,并解析Oracle网络中遇到的各种疑难问题。
    第5章  系统管家婆——SQL*Plus的使用  含28个实务
    SQL*Plus是Oracle的管理工具,本章主要介绍SQL*Plus使用的各种技巧。
    第6章  有始有终——数据库的启动关闭  含43个实务
    本章引导读者如何启动和关闭数据库,并解答启动数据库和关闭数据库中遇到的疑难问题。
    第7章  理清两个模式问题——专有/共享服务器模式  含16个实务
    本章介绍Oracle的两种模式——共享服务器(Shared Server)模式和专有服务器模式(Dedicated Server),并教会读者如何配置这两种模式,并解答配置这两种模式时遇到的疑难问题。
    第8章  掌握两个管理问题——表空间和数据文件的管理  含76个实务
    本章介绍表空间/数据文件的基本概念,并解析表空间/数据文件使用中遇到的疑难问题。
    第9章  进程管理  含14个实务
    本章介绍进程的基本概念,并解析与进程有关的疑难问题。
    第10章  内存管理  含25个实务
    本章介绍Oracle内存的组成及内存使用中遇到的疑难问题。
    第11章  用户管理  含38个实务
    本章介绍用户和权限,并解析用户管理及权限管理中遇到的各种疑难问题。
    第12章  数据导出  含39个实务
    本章介绍Oracle数据的导出,详细介绍Oracle导出的各种方法(如使用Oracle的导出工具、使用第三方的导出工具)。本章介绍的导出方法并不仅仅局限于Oracle提供的导出方法。本章不仅介绍导出的各种技巧,还向读者展示导出过程中遇到的各种疑难问题,并给出应对之策。
    第13章  数据导入  含26个实务
    如何把文本数据导入Oracle;如何把EXCEL的数据导入Oracle;如何把ACCESS的数据导入Oracle。本章介绍数据的各种导入方法,并解析导入过程中遇到的各种疑难问题。本书并不局限于Oracle提供的导入工具。
    第14章  重中之重——控制文件的管理  含8个实务
    本章介绍控制文件的管理,并介绍管理控制文件时遇到的各种疑难问题。
    第15章  成为数据库的最高统治者——口令文件(Password File)管理  含14个实务
    口令文件是Oracle安全体系的一部分,本章介绍控制文件的使用及控制文件管理时遇到的疑难问题。
    第16章  联机日志文件管理  含19个实务
    本章介绍联机日志文件管理技巧及联机日志文件使用中遇到的各种疑难问题。
    第17章  参数文件(PFILE/SPFILE)管理  含9个实务
    数据库启动时会用到参数文件,本章介绍如何使用参数文件启动数据库,并解析参数文件使用中遇到的各种疑难问题。
    第18章  全球应用——分布式数据库疑难攻略  含12个实务
    本章介绍如何使用分布式数据库,介绍使用分布式数据库的技巧及解惑。
    第19章  并不陌生的问题——裸设备  含6个实务
    本章详细介绍了裸设备的基本概念,裸设备的使用技巧。
    第20章  备份恢复之基石——归档(Archivelog)管理  含25个实务
    本章主要讨论归档的管理技巧,及归档设置中的各种疑难问题。
    第21章  必行之举——数据库备份  含38个实务
    本章通过实战演习,介绍数据库的各种备份方法。
    第22章  失而复得——数据库恢复  含32个实务
    本章通过实战演习,介绍数据库故障的各种恢复技巧。
    第23章  数据库通用语言——SQL语句  含26个实务
    本章介绍SQL语句的使用技巧及疑难问题。
    第24章  模式对象(Schema Object)的管理  含110个实务
    本章介绍各种数据库对象的管理及管理数据库对象中会遇到的各种问题。
    第25章  PL/SQL应用程序开发  含70个实务
    本章主要介绍程序开发过程中遇到的与数据库相关的各种疑难问题。
    本书的实务速查目录电子版的下载地址是http://space.itpub.net/?13804621www.broadview.com.cn。查询电子版实务目录,再翻阅本书内容,真正做到遇到问题速查解决。
    本书的使用
    本书的学习流程如下图所示:
    本书的符号说明
〖Environment(环境)〗 :对数据库环境和操作系统环境进行简要描述
〖Symptom(现象)〗 :对问题产生时的现象进行描述
〖Cause(原因)〗  :解释问题产生的原因
〖Action(方法)〗  :描述问题的解决方法和步骤
                                               2008年4月 

【目录】
*在本目录后面另配有754个实务内容的速查目录。*
第1篇  创建属于自己的Oracle数据库
第1章  认识Oracle的世界——Oracle的体系结构 2
1.1  Oracle的发家史 2
1.2  数据库 3
1.3  数据库管理系统(DBMS) 3
1.4  关系数据库的概念(RDBMS) 3
1.4.1  关系数据库模型 4
1.4.2  表 5
1.5  Oracle的总体框架结构 6
1.5.1  Oracle实例(Oracle Instance) 6
1.5.2  Oracle的存储结构 8
1.6  数据字典(Data Dictionary) 9
1.6.1  数据字典概述 9
1.6.2  数据字典的结构 9
1.6.3  数据字典的使用 10
第2章  迈出第1步——Oracle的安装/卸载 11
2.1  Oracle的安装 11
2.1.1  Oracle安装的几个概念 11
2.1.2  Oracle 10g(10.1)的安装——Windows篇 13
2.1.3  Oracle 10g的安装——Solaris篇 20
2.1.4  Oracle安装疑难解析 34
2.2  Oracle的卸载 55
2.2.1  Oracle完全卸载——Windows篇 55
2.2.2  Oracle完全卸载——UNIX篇 60
第3章  有米之炊——数据库的创建与删除 71
3.1  创建数据库 71
3.1.1  数据库创建概述 71
3.1.2  Solaris下用DBCA创建数据库 74
3.1.3  DIY——Solaris下手工创建数据库 86
3.1.4  数据库创建疑难解析 93
3.2  删除数据库 103
3.2.1  数据库删除概述 103
3.2.2  数据库删除——手工篇 103
3.2.3  数据库删除——DBCA篇 104
第2篇  网 络 管 理
第4章  Oracle网络管理并不难 108
4.1  Oracle网络体系结构 108
4.1.1  Oracle应用的几种网络结构 108
4.1.2  Oracle Net 110
4.1.3  OSI模型 111
4.1.4  Oracle Net的堆栈结构 111
4.1.5  Oracle监听器 113
4.1.6  连接描述符(connect identifier) 115
4.1.7  网络服务名(Net Service Name) 115
4.1.8  命名方法 117
4.1.9  配置Oracle网络的工具 118
4.2  Oracle网络管理实务 118
4.2.1  Oracle网络服务器端配置 118
4.2.2  Oracle网络客户端配置 125
4.3  Oracle网络管理疑难解析 130
4.3.1  Oracle网络服务器端配置疑难解析 130
4.3.2  Oracle网络客户端配置疑难解析 138
4.3.3  Oracle网络与防火墙(Firewall) 162
第3篇  系 统 管 理
第5章  系统管家婆——SQL*Plus的使用 170
5.1  系统管理工具SQL*Plus 170
5.2  SQL缓冲区(SQL Buffer) 171
5.3  SQL*Plus的环境配置 171
5.3.1  SQL*Plus的环境变量 171
5.3.2  SQL*Plus站点配置文件(Site Profile) 171
5.3.3  SQL*Plus用户配置文件(User Profile) 172
5.4  SQL*Plus的启动 172
5.5  SQL*Plus专有命令介绍 173
5.5.1  登录,注销命令 173
5.5.2  编辑命令 174
5.5.3  其他有用的SQL*Plus命令 176
5.6  SQL*Plus实务与疑难解析 178

第6章  有始有终——数据库的启动与关闭 199
6.1  数据库启动 199
6.1.1  数据库启动原理 199
6.1.2  数据库启动实务 200
6.1.3  数据库启动疑难解析 215
6.2  数据库关闭 238
6.2.1  数据库关闭原理 238
6.2.2  数据库的关闭(SHUTDOWN)实务 239
6.2.3  数据库关闭疑难解析 243
第7章  理清两个模式问题——专有/共享服务器模式 247
7.1  理解专有服务器模式(Dedicated Server Mode) 247
7.2  共享服务器模式(Shared Server Mode)原理 248
7.2.1  共享服务器模式(Shared Server Mode)的架构 248
7.2.2  监听器和调度进程的关系 249
7.2.3  请求队列(Request Queue)/响应队列(Response Queue) 249
7.2.4  调度进程(Dispatcher Processes,Dnnn) 249
7.2.5  共享服务器进程(Shared Server Processes,Snnn) 250
7.3  共享服务器模式(Shared Server Mode)实务 250
7.4  共享服务器模式(Shared Server Mode)疑难解析 262
第8章  掌握两个管理问题——表空间和数据文件的管理 275
8.1  数据库存储结构 275
8.1.1  物理结构 275
8.1.2  逻辑结构 279
8.2  深刻理解表空间 286
8.2.1  大文件表空间 286
8.2.2  系统表空间 287
8.2.3  辅助表空间 287
8.2.4  回滚表空间(Undo Tablespace) 287
8.2.5  临时表空间 291
8.2.6  表空间中区的管理方式 291
8.2.7  表空间中段的管理方式 293
8.2.8  非标准块表空间 293
8.2.9  表空间的离线(Offline)与在线(Online) 294
8.2.10  只读表空间(Read-Only Tablespace) 294
8.3  深刻理解数据文件 294
8.3.1  数据文件的内容 294
8.3.2  数据文件的尺寸(Size) 295
8.3.3  离线数据文件 295
8.3.4  临时数据文件(Temporary Datafiles) 295
8.4  表空间管理实务与疑难解析 295
8.4.1  永久表空间管理 295
8.4.2  临时表空间管理实务与疑难解析 330
8.4.3  回滚表空间管理实务与疑难解析 338
8.5  数据文件管理实务与疑难解析 345
8.5.1  数据文件管理实务 345
8.5.2  数据文件管理疑难解析 354
第9章  进程管理 357
9.1  Oracle进程简介 357
9.2  用户进程 358
9.3  Oracle进程 358
9.3.1  服务器进程 358
9.3.2  后台进程 358
9.4  进程综合管理实务与疑难解析 363
9.5  会话管理实务与疑难解析 372
第10章  内存管理 379
10.1  Oracle内存结构简介 379
10.2  系统全局区 380
10.3  SGA自动管理 381
10.4  SGA组成介绍 382
10.4.1  数据库高速缓冲区 382
10.4.2  日志缓冲区 383
10.4.3  共享池 383
10.4.4  大池 385
10.4.5  Java池 385
10.4.6  流池 385
10.5  程序全局区 385
10.6  内存管理实务与疑难解析 385
第11章  用户管理 407
11.1  用户验证 408
11.1.1  口令认证 408
11.1.2  外部认证 408
11.1.3  全局认证 409
11.2  Oracle的安全大门——权限(Privileges) 409
11.2.1  系统权限 410
11.2.2  对象权限 413
11.3  使权限管理变得更加容易——角色(Role) 414
11.4  限制用户的资源消耗——资源限制文件(Profile) 416
11.4.1  资源限制的级别 416
11.4.2  限制资源的参数 417
11.5  用户与权限管理实务与疑难解析 418
11.5.1  用户管理实务与疑难解析 418
11.5.2  权限管理实务与疑难解析 423
11.5.3  角色管理实务与疑难解析 428
11.5.4  资源限制文件管理实务与疑难解析 434
第4篇  移动你的数据库
第12章  数据导出 440
12.1  数据导出方法介绍 440
12.1.1  Oracle最新导出工具——Data Pump Export 440
12.1.2  Oracle原来的导出工具——Export 441
12.2  数据导出实务 443
12.3  数据导出疑难解析 463
第13章  数据导入 485
13.1  数据导入方法介绍 485
13.1.1  Oracle最新导入工具——Data Pump Import 485
13.1.2  Oracle以前的导入方法——Import 485
13.2  数据导入实务 488
13.3  数据导入疑难解析 510
第5篇  Oracle文件管理
第14章  重中之重——控制文件的管理 524
14.1  控制文件的概念 524
14.2  控制文件管理实务与疑难解析 525
第15章  成为数据库的最高统治者——口令文件(Password File)管理 537
15.1  超级用户权限(SYSDBA、SYSOPER)介绍 537
15.2  口令文件的基本概念 538
15.3  启用口令文件认证 539
15.4  口令文件管理实务与疑难解析 541
第16章  联机日志文件管理 555
16.1  联机日志文件的概念 555
16.1.1  联机日志文件的内容 556
16.1.2  联机日志文件的循环利用 556
16.2  联机日志文件管理实务与疑难解析 557
第17章  参数文件(PFILE/SPFILE)管理 569
17.1  参数文件的基本概念 569
17.2  初始化参数文件 570
17.3  服务器参数文件 570
17.4  初始化参数的修改 571
17.5  参数管理实务与疑难解析 571
第6篇  Oracle高级专题
第18章  全球应用——分布式数据库疑难攻略 580
18.1  分布式数据库系统的概念 580
18.1.1  同构分布式数据库系统 581
18.1.2  异构分布式数据库系统 581
18.1.3  数据库链接(Database Link) 581
18.2  分布式数据库管理实务与疑难解析 582
第19章  并不陌生的问题——裸设备 591
19.1  裸设备的概念 591
19.2  裸设备管理实务与疑难解析 592
第7篇  数据库备份/恢复
第20章  备份/恢复之基石——归档(Archivelog)管理 602
20.1  归档的基本概念 602
20.1.1  非归档模式 602
20.1.2  归档模式 603
20.1.3  归档路径 603
20.2  归档管理实务与疑难解析 604
第21章  必行之举——数据库备份 629
21.1  理解数据库备份 629
21.1.1  数据库失败的种类 630
21.1.2  备份和恢复的解决方案 631
21.1.3  备份和恢复的物理结构 631
21.1.4  备份的类型 631
21.1.5  执行用户管理的备份 631
21.2  恢复管理器(RMAN) 633
21.2.1  通道 633
21.2.2  备份集的维护 634
21.2.3  RMAN资料库 636
21.2.4  RMAN的使用 637
21.3  数据库备份实务与疑难解析 637
21.4  恢复目录管理实务与疑难解析 661
第22章  失而复得——数据库恢复 669
22.1  数据库恢复 669
22.1.1  实例恢复 669
22.1.2  介质恢复 670
22.1.3  用户错误(User Error)的恢复 672
22.2  数据库闪回(Flashback Database) 672
22.3  用户管理的恢复(User-managed Recovery) 673
22.4  联机日志文件丢失的恢复 673
22.5  控制文件损坏的恢复 687
22.6  数据文件损坏的恢复 699
22.7  表的恢复(用户错误的恢复) 711
第8篇  Oracle程序设计
第23章  数据库通用语言——SQL语句 746
23.1  结构化查询语言简介 746
23.2  SELECT语句 748
23.2.1  理解SELECT 语句 748
23.2.2  SELECT语句使用实务与疑难解析 749
23.3  INSERT语句 761
23.3.1  理解INSERT语句 761
23.3.2  INSERT语句使用实务与疑难解析 761
23.4  UPDATE语句 768
23.4.1  理解UPDATE语句 768
23.4.2  UPDATE语句使用实务与疑难解析 768
23.5  DELETE语句 770
23.5.1  理解DELETE语句 770
23.5.2  DELETE语句的使用 771
23.6  SQL语句中,集合函数使用实务与疑难解析 774
第24章  模式对象(Schema Object)的管理 779
24.1  模式(Schema)的概念 779
24.2  模式对象管理 780
24.2.1  表(Table) 780
24.2.2  索引(Index) 801
24.2.3  外部表(External Table) 807
24.2.4  临时表(Temporary Table) 817
24.2.5  分区表(Partition Table) 822
24.2.6  聚簇(Cluster) 838
24.2.7  索引组织表(Index-Organized Table,IOT) 840
24.2.8  视图 847
24.2.9  同义词 853
24.2.10  序列 856
第25章  PL/SQL应用程序开发 863
25.1  PL/SQL简述 863
25.1.1  PL/SQL块结构 863
25.1.2  数据类型 864
25.1.3  运算符 864
25.1.4  PL/SQL语句控制结构 866
25.2  存储过程(Stored Procedure) 867
25.2.1  存储过程的基本原理 867
25.2.2  存储过程管理实务与疑难解析 867
25.3  函数(Function) 885
25.3.1  函数的基本原理 885
25.3.2  函数的管理实务与疑难解析 885
25.4  包 894
25.4.1  包的基本原理 894
25.4.2  包管理实务与疑难解析 894
25.5  触发器 901
25.5.1  触发器的基本原理 901
25.5.2  触发器管理实务与疑难解析 902
25.6  游标 925
25.6.1  游标的基本原理 925
25.6.2  游标管理实务与疑难解析 926

【实务速查目录】
第2章  迈出第1步——Oracle的安装/卸载 11
实务1  安装Oracle时,为什么不能启动安装界面 34
实务2  为什么Oracle安装界面无法显示中文,都是“□□□” 34
实务3  安装Oracle时,报告错误“ORA-12547:TNS:lost contact” 35
实务4  如何下载Oracle的安装文件 35
实务5  Oracle安装完成后,用户sys与system默认的密码是什么 36
实务6  如何找到Oracle安装时生成的日志文件 36
实务7  安装Oracle时,是否需要安装JDK 37
实务8  解压安装文件时,报告无权限 37
实务9  安装Oracle软件并创建完数据库后,服务内的ORACLESID显示
实务9  “启动”而不是“已启动” 37
实务10  安装Oracle时,报告错误“Thrown when the IP address of a host
实务10  cannot be determined” 38
实务11  安装Oracle时,报告错误“无法读取C:/Program Files/Oracle/
实务11  Inventory/ ContentsXML/ comps.xml,丢失某些产品清单信息” 38
实务12  安装时,提示“安装程序交换区C:\Documents and Settings\
实务12  Administrator\Local Settings\Temp\OraInstall没有足够的磁盘空间,
实务12  请再装备一些磁盘空间,然后再试” 38
实务13  创建数据库时,出现错误“ORA-03113: end-of-file on
实务13  communication channel” 38
实务14  安装Oracle时,报告错误“ORA-27102:out of memory” 39
实务15  在Linux(UNIX)环境下成功安装了Oracle 10g,从Windows
实务15  下用IE登录Oracle 10g的em时,按钮显示为“□□” 39
实务16  在Linux AS4安装Oracle 9i(9.2.X.X),当执行runInstaller时,出现错误 39
实务17  是否可以在同一机器上既装Oracle 8i又装Oracle 9i 40
实务18  安装Oracle 9i时,遇到错误“invalid end header format” 40
实务19  在同一台机器上同时安装Oracle 9i与Oracle 10g 41
实务20  安装Oracle时,报告错误“ORA-27123:unable to attach to shared
实务20  memory segment”。 41
实务21  安装Oracle时,报告错误,不能够写/tmp目录 42
实务22  安装Oracle 10g时,报告操作系统版本(operating system version)
实务22  检查失败之案例一 43
实务23  在安装Oracle 10g时,报告补丁包(Service Pack)检查失败 44
实务24  安装Oracle时,报告显示器(monitor)设置检查失败 45
实务25  Oracle安装完成以后,为什么在提示符下输入sqlplus,提示命令不存在 45
实务26  安装Oracle时,报告打开共享对象文件libawt.so:libXp.so.6错误 47
实务27  安装Oracle时,报告错误“…cannot restore segment prot after reloc:
实务27  Permission denied” 48
实务28  安装Oracle时,报告错误“…libaio.so.1: cannot open shared object file” 49
实务29  在Windows上安装Oracle,临时目录的空间充足,却报告不能够
实务29  写临时目录 50
实务30  安装Oracle到一定进度时,报告错误“加载数据库时出错:
areasQueries” 50
实务31  Oracle 8i在奔腾4(P4)机器上安装的异常处理 51
实务32  安装Oracle时,报告先决条件检查失败 52
实务33  如何标识已经存在的Oracle根目录(Oracle Base Directory) 53
实务34  如何标识已经存在的Oracle清单目录(Oracle Inventory Director) 54
实务35  如何标识已经存在的Oracle主目录(Oracle Home Directory) 54
第3章  有米之炊——数据库的创建与删除 71
实务36  使用DBCA创建数据库时,报告错误“ORA-12547: TNS: lost contact” 93
实务37  使用DBCA创建数据库时,报告错误“ORA-12571: TNS:packet
writer failure” 93
实务38  使用DBCA创建数据库时,报告错误“ORA-27123: unable to attach
to shared memory segment” 94
实务39  手工创建数据库时,如何查找数据库创建失败的原因 95
实务40  手工创建数据库时,报告错误“ORA-01504: database name 'TT' does
not match parameter db_name 'man'” 96
实务41  手工创建数据库,启动实例时,报告错误“ORA-24324: service handle
not initialized” 96
实务42  手工创建数据库时,报告错误“ORA-27038: created file already exists” 97
实务43  手工创建数据库时,报告错误“ORA-01100: database already mounted” 97
实务44  手工重建数据库时,报告错误“ORA-01092: ORACLE instance
terminated. Disconnection forced”之案例一 98
实务45  手工重建数据库时,报告错误“ORA-01092: ORACLE instance
terminated. Disconnection forced”之案例二 99
实务46  手工重建数据库时,报告错误“ORA-01092: ORACLE instance
terminated. Disconnection forced”之案例三 100
实务47  手工创建数据库时,报告错误“ORA-01034: ORACLE not available” 101
实务48  手工创建数据库,启动实例时,后台进程启动失败(如ORA-00444:
background process "LGWR" failed while starting) 102
实务49  手工创建数据库,启动实例时,报告参数user_dump_dest错误 103
第4章  Oracle网络管理并不难 108
实务50  启动监听器时,报告错误“无法找到指定的路径” 130
实务51  连接数据库时,报告错误“TNS-12541:TNS:no listener”
(没有监听器)之案例一 131
实务52  连接数据库时,报告错误“TNS-12541:TNS:no listener”
(没有监听器)之案例二 132
实务53  连接数据库时,报告错误“TNS-12541:TNS:no listener”
(没有监听器)之案例三 134
实务54  如何修改监听器的端口号 135
实务55  启动监听器时,报告错误“TNS-12545:Connect failed because
target host or object does not exist”案例一 136
实务56  启动监听器时,报告错误“TNS-12545:Connect failed because
target host or object does not exist”案例二 137
实务57  客户端连接数据库时,报告权限不足(ORA-01031:insufficient
privileges) 138
实务58  以SYSDBA的身份登录数据库,报告错误“ORA-12518:TNS:
listener could not hand off client connection” 139
实务59  连接数据库时,报告错误“TNS-12538:TNS:no such protocol adapter” 139
实务60  如何禁止以操作系统认证方式登录Oracle 140
实务61  连接数据库时,报告错误“ORA-12505: TNS:listener does not
currently know of SID given in connect descriptor” 141
实务62  连接数据库时,报告错误“TNS-03505 Failed to resolve name”
(无法解析服务名)之案例一 141
实务63  连接数据库时,报告错误“TNS-03505:Failed to resolve name”
(无法解析服务名)之案例二 143
实务64  连接数据库时,报告错误“TNS-03505:Failed to resolve name”
(无法解析服务名)之案例三 144
实务65  连接数据库时,报告错误“TNS-03505:Failed to resolve name”
(无法解析服务名)之案例四 145
实务66  连接数据库时,报告错误“TNS-12535:TNS:operation timed out”
之案例一 146
实务67  连接数据库时,报告错误“TNS-12533:TNS:illegal ADDRESS
parameters” 147
实务68  连接数据库时,报告错误“TNS-12504:TNS:listener was not
given the SID in CONNECT_DATA” 149
实务69  协议适配器错误(ORA-12560: TNS:protocol adapter error)之案例一 149
实务70  协议适配器错误(ORA-12560: TNS:protocol adapter error)之案例二 150
实务71  连接数据库时,报告错误“ORA-03113: end-of-file on communication
channel,ORA-24315: illegal attribute type” 151
实务72  连接数据时,报告错误“ORA-12545:Connect failed because target
host or object does not exist”之案例三 152
实务73  连接数据库时,报告错误“ORA-12154: TNS:could not resolve
the connect identifier specified” 155
实务74  连接数据库时,报告错误“ORA-12162: TNS:net service name is
incorrectly specified” 157
实务75  连接数据库时,报告错误“ORA-12514: TNS:listener does not
currently know of service” 158
实务76  连接数据库时,报告错误“ORA-12523: TNS:listener could not
find instance appropriate for the client connection” 160
实务77  连接数据库时,报告错误“ORA-12520: TNS:listener could not
find available handler for requested type of server” 161
实务78  连接数据库时,报告错误“ORA-12170: TNS:Connect timeout occurred” 162
实务79  连接数据库时,报告错误“TNS-12535:TNS:operation timed out”
之案例二 165
实务80  连接数据库时,报告错误“ORA-12537: TNS:connection closed” 165
第5章  系统管家婆——SQL*Plus的使用 170
实务81  如何定义绑定变量(Bind Variables) 178
实务82  使用SQL*Plus,如何登录数据库 178
实务83  如何在SQL*Plus中执行SQL语句 181
实务84  如何把SQL*Plus设置成自动提交模式(AUTOCOMMIT) 182
实务85  在SQL*Plus中,如何终止SQL语句的执行 182
实务86  如何在SQL*Plus中执行操作系统命令(OS COMMANDS) 183
实务87  在SQL*Plus中,如何执行一段PL/SQL块(PL/SQL Blocks) 183
实务88  如何在SQL*Plus中执行存储过程 184
实务89  如何重复执行一条SQL语句 184
实务90  如何在启动SQL*Plus时,不出现登录界面 185
实务91  如何修改Oracle日期显示格式 186
实务92  如何把SQL缓冲区的内容保存到操作系统文件中 186
实务93  如何编辑缓冲区中的SQL语句 187
实务94  如何运行一个SQL脚本文件 188
实务95  如何将查询结果保存到文件中 189
实务96  如何知道SQL语句的执行速度 190
实务97  如何查看SQL*Plus的系统变量 191
实务98  如何设置SQL*Plus的系统变量 192
实务99  如何改变SQL*Plus的启动选项 192
实务100  如何关闭SQL*Plus 192
实务101  如何禁止用户在SQL*Plus中执行指定命令 192
实务102  如何列出SQL缓冲区中的内容 194
实务103  如何把SQL脚本文件的内容装载到SQL*Plus的缓冲区中 194
实务104  如何查出SQL*Plus默认使用哪个编辑器(editor) 195
实务105  如何设置SQL*Plus默认使用哪个编辑器(editor) 195
实务106  如何把SQL*Plus所有环境变量的设置保存到操作系统文件中 195
实务107  在SQL*Plus中,为什么无法显示小时 196
实务108  为什么SQL语句的返回结果非常零乱 197
第6章  有始有终——数据库的启动与关闭 199
实务109  如何使数据库自动启动/关闭之UNIX/Linux篇 200
实务110  如何使数据库自动启动/关闭之Windows篇 204
实务111  如何把数据库启动到NOMOUNT状态 205
实务112  如何把数据库启动到MOUNT状态 206
实务113  如何打开数据库(Open) 207
实务114  如何一步一步启动数据库 209
实务115  如何用特定的初始化参数文件(Initialization Parameter File,
PFILE)启动数据库 210
实务116  如何把数据库启动到限制模式(RESTRICT) 211
实务117  如何以只读模式(Read Only)打开数据库 212
实务118  如何把数据库启动到恢复模式(RECOVER) 213
实务119  如何重新启动数据库(RESET) 214
实务120  启动数据库时,报告错误“LRM-00123: invalid character 0
found in the input file” 215
实务121  启动数据库时,报告“权限不足”(ORA-01031: insufficient privileges) 215
实务122  启动数据库时,报告错误“ORA-07217: sltln: environment variable
cannot be evaluated” 216
实务123  连接数据库时,提示错误“ORA-27101: shared memory realm
does not exist” 217
实务124  启动数据库时,报告错误“ORA-00600:internal error code,arguments: [num],[?],[?],[?],[?] ” 217
实务125  如何判断数据库是否已经启动 221
实务126  如何知道数据库处于何种状态 222
实务127  打开数据库时,报告错误“ORA-01507: database not Mounted” 223
实务128  启动数据库时,报告错误“未知参数名”(LRM-00101: unknown
parameter name 'ss') 224
实务129  启动数据库时,报告错误“不能打开参数文件”(ORA-01078: failure
in processing system parameters) 224
实务130  启动数据库时,报告错误“LRM-00116: syntax error at 'DB_BLOCK
_SIZE' following '='” 225
实务131  启动数据库时,报告错误“ORA-24323: value not allowed” 225
实务132  启动数据库时,报告错误“标识控制文件时,发生错误”(ORA-00205:
error in identifying control file, check alert log for more info) 226
实务133  启动数据时,报告错误“ORA-00381: cannot use both new and old
parameters for buffer cache size specification” 227
实务134  启动数据库时,报告错误“数据库已经运行”(ORA-01081:
cannot start already-running ORACLE - shut it down first) 229
实务135  启动数据库时,报告错误“ORA-19809: limit exceeded
for recovery file” 229
实务136  启动数据库时,数据库被挂起之案例一 231
实务137  启动数据库时,数据库被挂起之案例二 232
实务138  启动数据库时,数据库被挂起之案例三 233
实务139  启动数据库时,报告错误“ORA-10997: another STARTUP/SHUTDOWN
operation of this instance inprogress” 234
实务140  启动数据库时,报告错误“ORA-02778: Name given for the log directory
is invalid” 235
实务141  启动数据库时,报告错误“ORA-01565: error in identifying file
'E:\oracle\ product\10.2.0\db_1/dbs/SPFILEWM.ora'” 236
实务142  启动数据时,报告错误“ORA-27046: file size is not a multiple of
logical block size” 237
实务143  启动数据库时,报告错误“ORA-00106: cannot
STARTUP/SHUTDOWN database when connected to a dispatcher” 237
实务144  如何以NORMAL方式关闭数据库 239
实务145  如何以IMMEDIATE方式关闭数据库 240
实务146  如何以TRANSACTIONAL方式关闭数据库 241
实务147  如何以ABORT方式关闭数据库 242
实务148  为什么关闭数据库如此慢 243
实务149  连接数据库时,报告错误“ORA-01090: SHUTDOWN in
 progress - connection is not permitted” 244
实务150  登录数据库时,报告错误“ORA-01033: Oracle initialization or
shutdown in progress” 245
实务151  为什么使用SHUTDOWN IMMEDIATE命令不能关闭数据库 245
第7章  理清两个模式问题——专有/共享服务器模式 247
实务152  如何把数据库配置成共享服务器模式(Shared Server)之手工篇 250
实务153  如何把数据库配置成共享服务器模式(Shared Server)之DBCA篇 253
实务154  数据库已经被配置成共享服务器模式,如何请求一个
专有服务器连接 256
实务155  如何确定数据库中有多少个共享服务器进程
(Shared Server Processes) 257
实务156  如何确定数据库中有多少个调度进程(Dispatcher) 258
实务157  如何增加调度进程(Dispatcher)的数量 258
实务158  如何增加共享服务器进程(Shared Server Processes)的数量 259
实务159  如何关闭指定的调度进程 260
实务160  使用数据库时,报告错误“ORA-00104: deadlock detected;
all public servers blocked waiting for resources” 262
实务161  关闭数据库时,报告错误“ORA-00106: cannot STARTUP/SHUTDOWN
database when Connected to a dispatcher” 263
实务162  启动数据库时,报告错误“ORA-00132: syntax error or unresolved
network name 'listeners_wm'” 264
实务163  如何把数据库从共享服务器模式(Shared Server)改成专有服务器
模式(Dedicatied Server)之手工篇 265
实务164  如何把数据库从共享服务器模式(Shared Server)改成专有
服务器模式(dedicatied server)之DBCA篇 268
实务165  如何判断数据库是运行在专有服务器模式,还是共享服务器模式 270
实务166  数据库已经被配置成共享服务器模式,为什么客户端请求到的
还是专有服务器连接? 271
实务167  如何判断客户端请求到的是专有服务器连接还是共享服务器连接 273
第8章  掌握两个管理问题——表空间和数据文件的管理 275
实务168  如何创建大文件表空间 295
实务169  如何创建表空间 296
实务170  如何删除表空间 297
实务171  如何知道表空间PRODUCT由哪些数据文件组成 297
实务172  如何创建非标准块表空间 297
实务173  如何把字典管理的表空间(Dictionary Extent Management)
转换成本地管理的表空间(Local Extent Management) 299
实务174  如何把本地管理的表空间(Local Extent Management)
转换成字典管理的表空间(Dictionary Extent Management) 300
实务175  为什么表空间离线后无法在线 300
实务176  用DELETE语句删除表中数据以后,为什么表空间的空闲
空间没有增加 301
实务177  如何禁止任何人写表空间test 301
实务178  如何对一个表空间进行扩展 302
实务179  如何限制某个用户对表空间的使用(Tablespace Quota) 303
实务180  如何使只读表空间可读/写 303
实务181  如何使一个表空间在线 304
实务182  如何使一个表空间离线 304
实务183  如何重命名表空间 304
实务184  如何知道数据库中有哪些表空间 305
实务185  如何知道一个表空间的存储参数(Storage Parameters) 305
实务186  如何知道表空间的空间使用情况 306
实务187  如何知道哪些表空间是本地管理的 307
实务188  把表空间设置成只读,为什么很长时间还没有完成 307
实务189  如何收缩表空间 309
实务190  如何使用户能够使用另外一个表空间 310
实务191  如何把永久表空间转换成临时表空间 311
实务192  如何知道数据库中所有用户的默认表空间 312
实务193  如何得到创建表空间的SQL语句 312
实务194  对表空间进行操作时,报告错误“表空间不存在” 313
实务195  删除表空间时,报告错误“ORA-22868: table with LOBs
contains Segment in different Tablespaces” 314
实务196  创建表时,报告错误:ORA-01950: no privileges on Tablespace
'USERS'” 314
实务197  删除表空间时,报告错误“ORA-01549: Tablespace not empty, use
INCLUDING CONTENTS option” 315
实务198  删除表空间时,报告错误“ORA-02429: cannot DROP index used
for enforcement of unique/primary key” 316
实务199  创建表时,报告错误“ORA-01536: space quota exceeded for
Tablespace 'TBST'” 318
实务200  创建表空间时,报告错误“ORA-27038: created file already exists
(创建的数据文件已经存在)” 319
实务201  创建表空间时,报告错误“ORA-12913: Cannot create dictionary
managed Tablespace” 319
实务202  报告错误“ORA-03212:temporary Segment cannot be create in
locally-managed Tablespace” 320
实务203  创建表时,报告错误“ORA-01659: unable to allocate MINEXTENTS
beyond 4 in Tablespace TP” 321
实务204  创建表时,报告错误“Ora-01658:unable to create INITAL Extent for
Segment in Tablespace TP” 322
实务205  删除表空间时,报告错误“ORA-23515: materialized views and/or
their indices exist in the tablespac” 322
实务206  不能删除表空间,报告错误“ORA-00942: table or view does not exist” 323
实务207  创建表空间时,报告错误“ORA-29339: Tablespace Block SIZE
16384 does not match configured Block Sizes” 324
实务208  删除表空间时,报告错误“ORA-25183: index-organized table top
index Segment is in a different Tablespace” 326
实务209  往表空间中添加数据文件时,报告错误“ORA-00059: maximum
number of DB_FILES exceeded” 327
实务210  往表中插入数据时,报告错误“ORA-01653: unable to extend table REP.PHONE_ RESUME by 32 in Tablespace TBS_PRO” 328
实务211  往表中插入数据时,报告错误“ORA-1654: unable to extend index
PRODUCT. IND_STY by 128 in Tablespace IND_TBS” 329
实务212  如何创建临时表空间 330
实务213  如何知道数据库中有哪些临时表空间 331
实务214  如何知道数据库使用哪个临时表空间作为默认临时表空间
(Default Temporary Tablespace) 331
实务215  如何改变数据库默认的临时表空间 332
实务216  如何重建临时表空间 333
实务217  临时表空间为空的错误(ORA-25153:temporary Tablespace is empty) 334
实务218  删除临时表空间时,报告错误“ORA-12906: cannot DROP
default temporary Tablespace” 336
实务219  改变临时文件时,报告错误“ORA-01516: nonexistent log file,
datafile, or TEMPFILE” 337
实务220  报告错误“ORA-01652:unable to extend temp Segment by 8192 in
Tablespace TEMP” 337
实务221  创建临时表空间时,提示错误“ORA-25139: invalid option for
CREATE TEMPORARY TABLESPACE” 338
实务222  如何创建回滚表空间 338
实务223  如何删除回滚表空间 339
实务224  如何查看数据库中回滚段的管理方式 340
实务225  如何往回滚表空间中增加数据文件 340
实务226  如何显示数据库当前正在使用的回滚表空间 340
实务227  如何切换回滚表空间 341
实务228  如何使用回滚段自动管理 342
实务229  如何知道数据库中有哪些回滚表空间 343
实务230  如何重建数据库正在使用的当前回滚表空间(活动回滚表空间) 343
实务231  使用数据库时,报告错误“ORA-01650: unable to extend rollback
Segment RB01 by 256 in Tablespace UNDOTBS1” 344
实务232  如何移动数据文件 345
实务233  如何删除数据文件 348
实务234  如何使数据文件离线 348
实务235  如何知道数据文件的使用情况 349
实务236  如何使数据文件PRODUCT1在线 350
实务237  如何重命名数据文件PRODUCT2 351
实务238  如何增加数据文件的尺寸 353
实务239  如何使数据文件自动扩展 353
实务240  如何知道整个数据库中有哪些数据文件 354
实务241  改变数据文件的尺寸时,报告错误“ORA-03297: file contains
used data beyond requested RESIZE value” 354
实务242  不能扩展数据文件(ORA-01237: cannot extend datafile 21) 355
实务243  往表空间中添加数据文件时,报告错误“ORA-01641: Tablespace
'TBS_CONTRO' is not online - cannot add data file” 355
第9章  进程管理 357
实务244  如何查询数据库中有哪些后台进程 363
实务245  如何增加数据库书写进程的数量 364
实务246  如何增加归档进程的数量 365
实务247  如何把校验点进程的信息写入警报文件 366
实务248  可不可以杀死Oracle后台进程 367
实务249  如何查看每个进程占用的系统资源 367
实务250  为什么修改初始化参数processes不生效 370
实务251  如何提高Oracle的最大会话数 372
实务252  如何查询数据库有哪些会话 373
实务253  如何知道用户TEST是从哪台机器登录的 373
实务254  如何杀掉一个进程(会话) 374
实务255  杀掉进程时,报告错误“ORA-00028: your session has been killed” 375
实务256  杀掉进程的时候,报告错误“ORA-00026: missing or invalid
session ID” 376
实务257  为什么非但不能杀掉一个进程,还报告错误“ORA-00031:
session marked for kill” 376
第10章  内存管理 379
实务258  如何显示SGA的情况 385
实务259  如何设置SGA自动管理 386
实务260  如何禁用SGA自动管理 388
实务261  如何限制SGA的最大尺寸 388
实务262  如何查看用于SGA管理的单位 390
实务263  如何设置高速缓冲区中保持池的大小 390
实务264  如何设置高速缓冲区中回收池的大小 391
实务265  如何计算数据库高速缓冲区的命中率(Hit Ratio) 391
实务266  如何提高数据库高速缓冲区的大小 392
实务267  如何计算出数据库高速缓冲区的实际大小 393
实务268  如何显示保持池的大小 395
实务269  如何显示回收池的大小 396
实务270  如何显示共享池的大小 396
实务271  如何显示共享池中的自由空间 397
实务272  如何修改共享池的大小 398
实务273  如何计算库缓冲区的命中率 398
实务274  如何计算数据字典缓冲区的命中率 398
实务275  如何显示日志缓冲区的实际大小 399
实务276  如何修改日志缓冲区的大小 399
实务277  如何把SGA锁定在物理内存中 401
实务278  如何显示大池的大小 402
实务279  如何修改大池的大小 403
实务280  如何显示JAVA池的大小 404
实务281  如何修改Java池的大小 405
实务282  为什么数据库高速缓冲区的大小总是为0 405
第11章  用户管理 407
实务283  如何创建用户 418
实务284  如何删除用户 418
实务285  如何修改用户的属性 418
实务286  如何找出指定用户的默认表空间 419
实务287  如何修改用户的默认表空间 419
实务288  如何改变数据库默认表空间 420
实务289  如何查出用户正在使用的临时表空间 420
实务290  如何修改用户的临时表空间 421
实务291  如何知道数据库中有哪些用户 421
实务292  如何列出所有用户的表空间限额 422
实务293  如何锁住一个用户 423
实务294  如何把权限授予用户 423
实务295  如何回收授予用户的权限 424
实务296  如何知道一个用户有哪些对象权限 425
实务297  如何知道到一个用户有哪些系统权限 426
实务298  如何列出当前会话有哪些有效的系统权限 426
实务299  如何知道一个用户是否可以把自己从其他用户获得的权限
授予另外的用户 427
实务300  如何创建角色 428
实务301  如何把权限授予角色 429
实务302  如何回收授予角色的权限 429
实务303  如何把角色授予角色 430
实务304  如何把角色授予其他用户 430
实务305  如何禁用角色(Disabling Role)或者激活角色(Enabling Role) 430
实务306  如何列出当前会话有哪些激活的角色 431
实务307  如何设置用户默认角色(Default Role) 431
实务308  如何删除角色 432
实务309  如何查询一个角色有哪些系统权限 432
实务310  如何查询一个角色有哪些对象权限 433
实务311  如何查询一个角色有哪些角色权限 433
实务312  如何列出数据库中的所有角色 433
实务313  如何查询一个用户拥有的角色 434
实务314  如何启用(激活)数据库资源限制 434
实务315  如何创建资源限制文件 435
实务316  如何删除资源限制文件 435
实务317  如何显示数据库中有哪些资源限制文件 436
实务318  如何知道一个资源限制文件中有哪些资源限制 436
实务319  如何为用户指派一个资源限制文件 437
实务320  如何修改资源限制文件 437
第12章  数据导出 440
实务321  使用参数文件,如何执行全库导出 443
实务322  使用参数文件,如何执行用户模式导出 444
实务323  使用参数文件,如何执行表模式导出 444
实务324  如何把Oracle的数据导入到Excel中 445
实务325  把Oracle数据导成文本文件之存储过程篇 449
实务326  把Oracle数据导成文本文件之SPOOL篇 451
实务327  把Oracle数据导成文本文件之PL/SQL Developer篇 452
实务328  把Oracle数据导成文本文件之TOAD篇 454
实务329  如何通过交互式执行数据的导出 455
实务330  如何通过命令行方式(Command-Line)执行数据的导出 456
实务331  如何通过参数文件方式执行数据的导出 456
实务332  如何通过交互式模式导出用户zzp的表PROCESSING_LOGS 456
实务333  如何通过交互式导出方式导出用户zzp拥有的所有表 457
实务334  如何通过命令行方式导出用户test的所有数据 458
实务335  如何把Oracle数据导成多个DUMP文件 458
实务336  如何导出一个表的部分数据 459
实务337  如何只导出表的结构 460
实务338  如何定时导出 461
实务339  如何判断导出是否成功 463
实务340  如何把数据导出到磁带上 463
实务341  执行数据导出时,报告错误“EXP-00071: QUERY parameter not
compatible with Direct Path export” 463
实务342  导出时,报告错误“snapshot too old”之现象一 464
实务343  导出数据时,报告错误“snapshot too old”之现象二 465
实务344  导出数据时,报告错误“ORA-04063: package body '…'has errors” 466
实务345  导出表空间中的数据时,报告错误“EXP-00044: must be connected 'AS
SYSDBA' to do Point-in-time Recovery or Transportable Tablespace import” 467
实务346  导出表空间时,报告错误“ORA-29341: The transportable set is not
self-contained” 468
实务347  导出数据时,报告错误“ORA-19206: Invalid value for query or REF
CURSOR parameter” 469
实务348  导出数据时,报告错误“ORA-21779: duration not active” 470
实务349  导出数据时,报告“写导出文件错误(EXP-00002: error in writing
to export file)” 471
实务350  导出数据时,报告错误“ORA-04045: errors during recompilation/
revalidationof SYS.DBMS_REFRESH_EXP_SITES” 474
实务351  导出数据时,报告错误“ORA-00942: table or view does not exist” 475
实务352  导出数据时,报告无效的列名(ORA-00904: invalid column name) 475
实务353  导出数据时,报告错误“ORA-00933: SQL command not properly ended” 477
实务354  导出数据时,报告错误“EXP-00000: Message 0 not found; No
message file for product=RDBMS,facility=EXP” 477
实务355  导出数据时,报告错误“ORA-31600: invalid input value
EMIT_SCHEMA for parameter NAME in function SET_TRANSFORM_PARAM” 478
实务356  导出数据时,报告错误“EXP-00003: no definition of memory
found for the segment(109,7313)” 479
实务357  导出数据时,报告错误“EXP-00009: no privilege to export
TEST's table STUDENT2” 480
实务358  导出数据时,报告错误“EXP-00091: Exporting questionable
statistics” 481
实务359  用EXPORT工具导出数据时,报告错误“ORA-12540:
TNS:internal limit restriction exceeded” 483
第13章  数据导入 485
实务360  如何显示DUMP文件的内容 488
实务361  把文本数据导入Oracle之PL/SQL Developer篇? 489
实务362  把文本数据导入Oracle之TOAD篇 491
实务363  如何把Excel的数据导入到Oracle中 494
实务364  如何把数据导入到另外一个表空间 495
实务365  如何只导入一个表的数据 495
实务366  如何只导入一个用户的数据 496
实务367  如何只导入表的结构 496
实务368  如何把表空间从一个数据库移动到另外一个数据库 497
实务369  如何把Access的数据导入Oracle中 500
实务370  如何判断导入是否成功 503
实务371  如何使用SQL * Loader装载数据到Oracle中 504
实务372  导入数据时,报告错误“IMP-00020:long column too large for
column buffer size(7)” 510
实务373  执行导入操作时,报告“处理参数错误” 511
实务374  导入被挂起的原因之——要创建的对象名已经被占用 511
实务375  导入数据时,报告错误“IMP-00017: following statement fail
with Oracle…” 512
实务376  导入数据时,报告错误“ORA-00001: unique constraint
(TEST.SYS_ C005074)violated” 513
实务377  为什么数据总是被导到system表空间 514
实务378  执行数据导入后,为什么没有数据被导入 516
实务379  导入数据时,报告错误“ORA-01401: inserted value too
large for column” 517
实务380  导入数据时,报告错误“IMP-00013: only a DBA can Import
a file Exported by another DBA” 517
实务381  没有导入任何数据,为什么表空间中已使用空间却增加了 518
实务382  执行数据导入时,报告错误“IMP-00041:Warning:
object created with compilation warnings” 520
实务383  导入数据时,报告错误“ORA-01653:unable to extend table
NBC.SSBS by 128 in tablespace TBS2” 520
实务384  导入数据时,报告错误“IMP-00015: following statement
failed because the object already exists” 521
实务385  导入数据时,报告错误“IMP-00029:cannot qualify table
name by owner(test.student2),use FROMUSER parameter” 521
第14章  重中之重——控制文件的管理 524
实务386  如何创建控制文件 525
实务387  如何得到创建控制文件的脚本 528
实务388  如何镜像控制文件 529
实务389  如何知道当前数据库中控制文件的名字及位置 530
实务390  如何删除控制文件 531
实务391  如何移动控制文件 532
实务392  如何知道控制文件的内容 533
实务393  创建控制文件时,遗漏数据文件怎么办 533
第15章  成为数据库的最高统治者——口令文件(Password File)管理 537
实务394  如何把超级用户权限(SYSDBA与SYSOPER)授予其他用户 541
实务395  如何回收授予用户的超级用户权限 542
实务396  如何知道系统中有哪些超级用户 542
实务397  如何修改口令文件的最大用户数 543
实务398  授予用户SYSDBA权限时,报告错误“ORA-01994: GRANT
failed: password file missing or disabled” 543
实务399  如何把Oracle的认证方式改成操作系统认证方式 544
实务400  忘记了超级用户sys的密码,怎么办 546
实务401  如何使普通用户sun成为超级用户 546
实务402  连接数据时,报告错误“ORA-01017: invalid username/password;
logon denied” 549
实务403  进行授权时,报告错误“ORA-01996: GRANT failed: password file ''
is full” 550
实务404  进行授权时,报告错误“ORA-01999: password file cannot
be updated in SHARED mode” 551
实务405  ORA-01991: invalid password file… 552
实务406  创建口令文件时,报告错误“OPW-00001: Unable to
open password-file” 552
实务407  登录数据库时,报告错误“ORA-12641: Authentication
service failed to initialize” 553
第16章  联机日志文件管理 555
实务408  如何创建一个联机日志组 557
实务409  如何添加一个联机日志文件 557
实务410  如何删除一个联机日志组 557
实务411  如何删除一个联机日志文件 558
实务412  如何清除(初始化)联机日志文件的内容(Clearing a Redo Log File) 558
实务413  如何强迫日志切换 559
实务414  如何镜像联机日志文件 559
实务415  最容易模糊的概念——联机日志文件的3个状态 560
实务416  如何提高联机日志切换(Log Switch)的频率 560
实务417  如何移动联机日志文件 560
实务418  如何查看联机日志是否已经归档 561
实务419  如何增加联机日志文件的尺寸 562
实务420  如何知道数据库中有哪些联机日志组 564
实务421  如何知道数据库中有哪些联机日志文件 564
实务422  创建联机日志组时,报告错误“ORA-00336:log file size 4096
blocks is less than minimum 8192 blocks” 565
实务423  删除 联机日志组时,报告错误“ORA-01624: log 2 needed for
crash recovery of instance nbo(thread 1)” 566
实务424  删除联机日志文件组时,报告错误“ORA-00350: log 3 of thread
1 needs to be archived” 567
实务425  删除联机日志文件组时,报告错误“ORA-01623: log 2 is current
log for instance nbo(thread 1)- cannot drop ” 567
实务426  添加联机日志文件时,报告错误“ORA-00357: too many members
specified for log file,the maximum is 3” 568
第17章  参数文件(PFILE/SPFILE)管理 569
实务427  如何知道SPFILE的名字及存放位置 571
实务428  如何查看初始化参数的值 572
实务429  如何使用参数文件启动数据库 572
实务430  在数据库运行时,如何修改初始化参数文件(PFILE)中的参数 574
实务431  在数据库运行时,如何修改服务器参数文件(SPFILE)中的参数 574
实务432  如何根据PFILE创建SPFILE 575
实务433  如何根据SPFILE创建PFILE 576
实务434  修改初始化参数时,报告错误“ORA-02095: specified initialization
parameter cannot be modified” 577
实务435  修改初始化参数时,报告错误“ORA-32001: write to SPFILE
requested but no SPFILE specified at STARTUP” 577
第18章  全球应用——分布式数据库疑难攻略 580
实务436  如何创建到另外一个数据库的数据库链接 582
实务437  如何删除数据库链接 582
实务438  使用数据库链接,如何查询远程数据库中的数据 583
实务439  如何利用数据库链接往远程数据库中插入数据 583
实务440  如何利用数据库链接,修改远程数据库中的数据 583
实务441  如何利用数据库链接删除远程数据库的数据 584
实务442  使用数据库链接,如何把杭州数据库中的数据插入到北京
(本地)的数据库中 584
实务443  如何查询出数据库中有哪些数据库链接 585
实务444  使用数据库链接时,报告错误“ORA-02019: Connection description
for remote database not found” 586
实务445  使用数据库链接时,报告错误“ORA-02085: database link LK.WXXR.
 COM.CN Connects to WM.WXXR.COM.CN” 587
实务446  创建数据库链接时,报告错误“ORA-01017: invalid username/
password;logon denied” 587
实务447  创建数据库链接时,报告错误“ORA-12154:TNS:could not resolve
the connect identifier specified” 588
第19章  并不陌生的问题——裸设备 591
实务448  如何配置裸设备(Raw Device)? 592
实务449  如何使用裸设备创建表空间 595
实务450  如何把裸分区加入到表空间中 595
实务451  如何把联机日志文件放到裸设备上 596
实务452  如何把回滚表空间放到裸设备上 597
实务453  如何使用RMAN把数据文件BBT1.dbf移动到裸设备上 598
第20章  备份/恢复之基石——归档(Archivelog)管理 602
实务454  如何把数据库切换到归档模式 604
实务455  如何把数据库切换到非归档模式 607
实务456  如何手工归档联机日志文件 608
实务457  如何启动归档进程 608
实务458  如何定时删除归档日志文件 609
实务459  如何知道数据库处于哪种归档模式 611
实务460  如何指定归档路径(Archive Destination) 612
实务461  如何停止归档进程 612
实务462  如何知道数据库产生了哪些归档日志文件 613
实务463  如何知道归档进程的信息 614
实务464  如何知道数据库的归档路径 615
实务465  如何删除归档日志文件 616
实务466  如何设置归档日志文件的大小 617
实务467  普通用户登录数据库时,报告错误“ORA-00257 : archiver error.
connect  internal only, until freed”案例一 617
实务468  普通用户登录数据库时,报告错误“ORA-00257 : archiver error.
connect  internal only, until freed”案例二 618
实务469  修改归档路径时,报告错误“ORA-16179: incremental changes to
"LOG_ ARCHIVE_DEST_1" not allowed with SPFILE” 620
实务470  手工归档时,报告错误“ORA-16020: less destinations available than
specified by LOG_ARCHIVE_MIN_SUCCEED_DEST”之案例一 621
实务471  手工归档时,报告错误“ORA-16020: less destinations available than
specified by LOG_ARCHIVE_MIN_SUCCEED_DEST”之案例二 622
实务472  设置归档模式时,报告错误“ORA-00265: instance recovery required,
cannot set ARCHIVELOG mode” 623
实务473  启动数据库时,报告错误“ORA-00439:feature not enabled:Managed
Standby” 624
实务474  启动数据库时,报告错误“ORA-32006: LOG_ARCHIVE_START
initialization parameter has been deprecated” 625
实务475  执行ARCHIVE LOG LIST命令时,报告权限不足 626
实务476  启动数据库时,报告错误“ORA-16024: parameter LOG_ARCHIVE_
DEST_2 cannot be parsed” 627
实务477  启动数据库时,报告错误“ORA-09291: sksachk: invalid device
specified for archive destination” 627
实务478  启动数据库时,报告错误“ORA-16019: cannot use db_recovery_file_dest
with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST” 628
第21章  必行之举——数据库备份 629
实务479  如何备份整个数据库 637
实务480  如何备份一个数据文件 638
实务481  如何备份表空间 639
实务482  使用RMAN进行备份时,如何产生“双备份” 639
实务483  如何备份归档日志文件 640
实务484  如何备份控制文件 641
实务485  控制文件被RMAN自动备份到哪里 642
实务486  如何备份SPFILE 643
实务487  如何将RMAN命令执行的结果写入到一个日志文件中 644
实务488  备份归档日志文件时,报告错误“RMAN-06059: expected archived
log not found, lost of archived log compromises recoverability” 644
实务489  备份数据库时,报告错误“ORA-27063: skgfospo: number of bytes
read/written is incorrect” 646
实务490  备份数据库时,报告错误“ORA-19504: failed to create file
"/export/back_ arch_1si005cc_1_1"” 646
实务491  备份数据库时,报告错误“ORA-27037:unable to obtain file status” 647
实务492  进行备份时,报告错误“ORA-00230: ope

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13164110/viewspace-402897/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13164110/viewspace-402897/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值