选择特殊符号

选择搜索类型

热门搜索

首页 > 百科 > 电气百科

深入解析Oracle:数据库的初始化

《深入解析Oracle:数据库的初始化》围绕"数据库的初始化"这个主题展开,详细介绍了数据库的创建、使用模板创建数据库、插接式数据库、数据库的启动和关闭、参数及参数文件、控制文件与数据库初始化、控制文件与启动校验、数据字典等内容,不但兼顾了Oracle 10g、11g版本的功能,还为读者揭秘了刚刚发布的Oracle 12c的最新技术。 《深入解析Oracle:数据库的初始化》给出了大量取自实际工作现场的实例,在分析实例的过程中,兼顾深度与广度,不仅对实际问题的现象、产生原因和相关原理进行了深入浅出的讲解,更主要的是,结合实际应用环境,提供了一系列解决问题的思路和方法,包括详细的操作步骤,具有很强的实战性和可操作性,适用于具备一定数据库基础、打算深入学习Oracle技术的数据库从业人员,尤其适用于入门、进阶以及希望深入研究Oracle技术的数据库管理人员。

深入解析Oracle:数据库的初始化主要内容

目 录

第1章 Oracle数据库的创建 1

1.1 Oracle软件的获取与安装 1

1.1.1 Oracle软件的获取 1

1.1.2 Oracle的补丁集 4

1.2 使用DBCA创建数据库 8

1.2.1 DBCA的启动 8

1.2.2 模板选择及EM选项 10

1.2.3 数据库安全与口令 13

1.2.4 存储管理及选件 14

1.2.5 初始化参数选择设定 18

1.2.6 文件存储及创建选项 21

1.2.7 告警日志及跟踪文件 24

1.3 数据库创建的脚本 25

1.3.1 数据库创建脚本 25

1.3.2 创建的起点 26

1.3.3 ORADIM工具的使用 27

1.3.4 ORACLE_SID的含义 27

1.3.5 Oracle的口令文件 32

1.3.6 Oracle 12c中的口令文件 36

1.3.7 脚本的执行 37

1.3.8 db_name参数和instance_name参数 38

1.3.9 sql.bsq文件与数据库创建 42

1.3.10 数据文件及字典的创建 43

1.4 auto_space_advisor_job_proc案例一则 46

1.5 口令文件修改案例一则 49

第2章 使用模板创建数据库 52

2.1 数据库创建模板 53

2.2 DBMS_BACKUP_RESTORE包的使用 54

2.3 克隆数据库 55

2.4 传输表空间技术 58

2.5 跨平台表空间传输 63

2.5.1 字节顺序和平台 63

2.5.2 源平台和目标平台 63

2.5.3 源平台的导出及转换 64

2.5.4 文件传输 66

2.5.5 目标数据库的导入 66

2.5.6 同字节序文件的跨平台 68

2.5.7 Oracle 10g同字节序跨平台迁移 73

2.5.8 Oracle 10g同字节序跨平台迁移的增强 75

2.5.9 实现数据迁移的高可用性 83

2.6 Oracle 12c表空间传输的简化和增强 84

2.7 文件系统与ASM的切换 90

2.8 DBMS_FILE_TRANSFER的可选性 93

2.9 用户的锁定 96

2.10 最后的脚本 97

2.11 Oracle 12c引入EM express简化版本 98

2.12 systemstate转储案例分析一则 101

第3章 插接式数据库 109

3.1 插接式数据简介 109

3.2 CDB的组成 110

3.2.1 ROOT 110

3.2.2 Seed PDB 111

3.2.3 PDB 112

3.3 元数据的隔离 113

3.4 CDB的内存管理 114

3.5 PDB的创建和访问 118

3.6 由现有PDB创建新的PDB 123

3.7 PDB的使用与维护 126

3.8 种子数据库的隐藏和保护 129

3.9 CDB与PDB的起停管理 130

3.10 COMMON和Local用户 133

3.11 COMMON和Local用户的内部隔离 142

3.12 将Non-PDB插入CDB 146

3.13 UNPLUG数据库 151

3.14 PDB的备份与恢复 152

3.14.1 启动归档模式 152

3.14.2 对PDB执行备份 154

3.14.3 对PDB及PDB文件执行恢复 155

3.14.4 对PDB执行不完全恢复 157

3.15 CDB的视图与原理 169

3.16 PDB为云计算而生 174

第4章 数据库的启动和关闭 176

4.1 数据库的启动 176

4.1.1 启动数据库到NOMOUNT状态 177

4.1.2 启动数据库到MOUNT状态 202

4.1.3 启动数据库OPEN阶段 209

4.2 数据库的访问 220

4.2.1 客户端的TNSNAMES.ORA文件配置 221

4.2.2 服务器端的监听器文件listener.ora配置 223

4.2.3 通过不同服务器名对数据库的访问 225

4.2.4 动态监听器注册服务 226

4.2.5 简捷的Easy Connect方式 230

4.3 数据库的关闭 231

4.3.1 数据库关闭的步骤 231

4.3.2 几种关闭方式的对比 233

4.3.3 数据库关闭的诊断案例一则 235

第5章 参数及参数文件 238

5.1 初始化参数的分类 238

5.1.1 推导参数(Derived Parameters) 238

5.1.2 操作系统依赖参数 240

5.1.3 可变参数 240

5.1.4 废弃参数 240

5.1.5 初始化参数的获取 241

5.1.6 初始化参数的可选项目 244

5.2 参数文件 245

5.2.1 PFILE和SPFILE 246

5.2.2 获取参数的视图 247

5.2.3 SPFILE的创建 249

5.2.4 由内存创建参数文件 250

5.2.5 SPFILE的搜索顺序 251

5.2.6 使用PFILE/SPFILE启动数据库 251

5.2.7 修改参数 253

5.2.8 解决SPFILE参数修改错误 258

5.2.9 重置SPFILE中设置的参数 259

5.2.10 是否使用了SPFILE 260

5.2.11 SPFILE的备份与恢复 261

5.2.12 如何设置Events事件 267

5.2.13 导出SPFILE文件 267

5.2.14 使用ASM存储参数文件 269

5.3 CDB与PDB的参数管理 270

5.3.1 参数表的引入 271

5.3.2 参数表在PDB启动中的作用 274

5.4 参数文件诊断案例之一 275

5.4.1 登录系统检查告警日志文件文件 275

5.4.2 尝试重新启动数据库 277

5.4.3 检查数据文件 277

5.4.4 MOUNT数据库,检查系统参数 277

5.4.5 检查参数文件 278

5.4.6 再次检查alert文件 278

5.4.7 修正PFILE 280

5.4.8 启动数据库 280

5.5 RAC环境参数文件诊断案例 280

5.5.1 数据库资源异常 280

5.5.2 问题的发现 281

5.5.3 参数文件问题的解决 282

5.6 RAC环境参数文件案例两则 283

5.6.1 修改参数引起的挂起 283

5.6.2 参数叠加带来的冗余 283

第6章 控制文件与数据库初始化 285

6.1 控制文件的内容 285

6.2 Oracle 12c中控制文件的变化 288

6.3 SCN的说明 290

6.3.1 SCN的定义 290

6.3.2 SCN的获取方式 292

6.3.3 SCN的进一步说明 293

6.4 检查点(Checkpoint) 296

6.4.1 检查点(Checkpoint)的工作原理 297

6.4.2 全量检查点与增量检查点 298

6.4.3 LOG_CHECKPOINT_TO_ALERT参数 305

6.4.4 控制文件与数据文件头信息 306

6.4.5 数据库的启动验证 308

6.4.6 使用备份的控制文件 313

6.4.7 FAST_START_MTTR_TAR GET 315

6.4.8 关于检查点执行的案例 317

6.4.9 Oracle 10g自动检查点调整 319

6.4.10 检查点信息及恢复起点 321

6.4.11 正常关闭数据库的状况 322

6.4.12 数据库异常关闭的情况 323

6.4.13 数据库并行恢复案例一则 327

6.4.14 判断一个死事务的恢复进度 330

6.5 数据库的初始化 331

6.5.1 bootstrap$及数据库初始化过程 331

6.5.2 bootstrap$的定位 334

6.5.3 Oracle数据库中的Cache对象 335

6.5.4 Oracle数据库的引导 336

6.5.5 数据库引导的分解 338

6.5.6 bootstrap$的重要性 341

6.5.7 BBED工具的简要介绍 342

6.5.8 坏块的处理与恢复 345

6.5.9 使用BBED模拟和修复坏块 347

6.5.10 使用RMAN进行坏块修复 349

第7章 控制文件与启动校验 351

7.1 启动校验的两种情况 351

7.2 MISSING文件的产生 356

7.3 遭遇ORA-00600 25013/25015错误 359

7.4 来龙去脉--表空间创建 360

7.5 Drop Tablespace Internal 366

7.6 ORA-600 4348错误的成因 376

7.7 一致性损坏的显示错误 385

7.8 实际的处理过程 388

7.9 字典检查何时发生 389

第8章 数据字典 391

8.1 数据字典概述 391

8.2 内部RDBMS(X$)表 392

8.3 数据字典表 394

8.4 Oracle 12c的数据字典维护信息 399

8.5 数据字典表的特殊维护 400

8.6 静态数据字典视图 404

8.6.1 静态数据字典视图的分类 404

8.6.2 静态数据字典视图的内部实现 406

8.6.3 同义词 407

8.6.4 常用数据字典视图举例 408

8.7 动态性能视图 412

8.7.1 GV$和V$视图 412

8.7.2 GV_$、V_$视图和V$、GV$同义词 413

8.7.3 进一步的说明 417

8.7.4 动态性能视图与数据库启动 418

8.8 最后的验证 419

8.8.1 V$PARAMETER的结构 419

8.8.2 视图还是同义词 419

8.8.3 Oracle如何通过同义词定位对象 420

8.9 同义词优化案例一则 423

8.10 数据字典与统计信息缺失案例一则 426

8.11 DBA的数据字典敏感度 429

8.11.1 临时表空间组案例一则 429

8.11.2 从数据字典中获得更多知识 432

查看详情

深入解析Oracle:数据库的初始化造价信息

  • 市场价
  • 信息价
  • 询价

数据库软件

  • MySQL
  • 13%
  • 珠海派诺科技股份有限公司
  • 2022-12-06
查看价格

数据库

  • 数据库SQL server标准版数据库2008
  • 东望
  • 13%
  • 广州丹诚科技有限公司
  • 2022-12-06
查看价格

数据库

  • SQL数据库2008
  • 微软
  • 13%
  • 广州丹诚科技有限公司
  • 2022-12-06
查看价格

数据库

  • SQL SERVER
  • 微软
  • 13%
  • 广州丹诚科技有限公司
  • 2022-12-06
查看价格

数据库软件

  • 数据库软件
  • 13%
  • 重庆中瑞环保工程有限公司
  • 2022-12-06
查看价格

数据电视

  • 云浮市罗定市2016年3季度信息价
  • 建筑工程
查看价格

数据电视

  • 云浮市罗定市2016年1季度信息价
  • 建筑工程
查看价格

数据电视

  • 云浮市罗定市2015年3季度信息价
  • 建筑工程
查看价格

数据转发器

  • GGA7541
  • 湛江市2005年2月信息价
  • 建筑工程
查看价格

数据转发器

  • GGA7541
  • 湛江市2005年1月信息价
  • 建筑工程
查看价格

设备数据初始化

  • 设备数据初始化
  • 1套
  • 1
  • 施耐德
  • 中高档
  • 不含税费 | 不含运费
  • 2018-11-30
查看价格

Oracle数据库

  • Oracle 10G
  • 2套
  • 3
  • 中高档
  • 含税费 | 含运费
  • 2015-06-16
查看价格

Oracle数据库

  • 建议 racle11g版本.关系数据库管理系统,用于数据信息存備、数据仓库
  • 1套
  • 1
  • 中档
  • 含税费 | 含运费
  • 2018-09-25
查看价格

oracle数据库

  • 按原档
  • 1套
  • 2
  • 中档
  • 含税费 | 含运费
  • 2021-06-23
查看价格

数据库

  • Oracle 数据库
  • 1套
  • 3
  • 高档
  • 不含税费 | 含运费
  • 2022-04-18
查看价格

深入解析Oracle:数据库的初始化常见问题

查看详情

深入解析Oracle:数据库的初始化文献

ORACLE数据库在大H型钢轧线二级系统中的应用 ORACLE数据库在大H型钢轧线二级系统中的应用

ORACLE数据库在大H型钢轧线二级系统中的应用

格式:pdf

大小:162KB

页数: 2页

该文阐述了ORACLE数据库的特点及其访问方式,并介绍了ORACLE数据库及其所带的Form,Reports在开发大H型钢轧线二级系统中的应用。

ORACLE数据库系统可靠性研究 ——基于应用的数据库系统健壮性测量 ORACLE数据库系统可靠性研究 ——基于应用的数据库系统健壮性测量

ORACLE数据库系统可靠性研究 ——基于应用的数据库系统健壮性测量

格式:pdf

大小:162KB

页数: 1页

随着全球信息技术的不断快速发展,在社会中的到广泛应用的就是软件系统,这些软件系统都是基于数据库系统所研制出的.软件系统在不同的领域中会有不同的关键系统,如果系统出现问题,严重就会给企业带来巨大的经济损失.软件的健壮性是衡量软件质量的重要指标,软件在异常输入以及异常情况中,系统就会发生一系列的健壮性问题.

深入认识 vue-cli:能做的不仅仅是初始化 vue 工程

相信对于大部分使用过VueJS的同学来说, vue-cli是他们非常熟悉的一个工具。借助 vue-cli,我们通过非常简单的问答形式,方便地初始化一个vue工程,完全不需要担心繁复的webpack、eslint配置等等。

但是,仍然有许多同学没有搞清楚 vue-cli和 vue工程之间的关系,导致没有充分发挥 vue-cli的功能。在这篇文章中,我将从底层原理开始并结合几个例子,告诉大家 vue-cli还能这样用。

什么是vue-cli

引用vue-cli官方文档的一句话:

A simple CLI for scaffolding Vue.js projects.一个简单的Vue.js工程命令行脚手架工具。

在全局安装vue-cli之后,就可以通过一条命令初始化我们的vue工程:

vue init <template-name> <project-name>

接下来vue-cli就会按照这个 <template-name>模板内部的设置,抛出几个问答选项。在回答完问答选项以后,我们的vue工程目录就已经生成好了,接下来只要把依赖安装完,直接就可以跑起来,是不是非常方便呢?

接下来,我们就要看看,这一条命令的背后,究竟发生了一些什么事。

vue-cli初始化项目的原理

从官方文档可以知道,vue-cli使用了download-git-repo这个工具去下载远端git仓库里面的工程,如果加上了 --clone参数,则会在内部运行 git clone,通过克隆的方式把远端git仓库拉取到本地。明白这一点至关重要:

vue-cli并非从无到有地凭空生成一个项目,而是通过下载/拉取已有的工程到本地,完成生成项目的工作。

而这个“已有的工程”,就是所谓的“模板(template)”。

当然,vue-cli可不只是把模板拉取到本地这么简单,它还允许我们通过问答的形式对模板进行个性化配置,这个又是如何做到的呢?

vue-cli使用了inquirer.js实现了“问答环节”,简单来说是这样子的:

// 准备几个问题

constquestions = [

{

type: 'input',

name: 'name',

message: 'What's your name?'

},

{

type: 'input',

name: 'age',

message: 'How old are you?',

}

]

然后把这段问题传给inquirer.js就可以了:

inquirer.prompt(questions).then(({ name, age }) => {

console.log(`Myname is ${name}, and I'm ${age} years old`)

})

在运行的时候,vue-cli会在命令行里面把 What's your name?和 Howold are you?这两个问题相继抛出,获取用户输入,把输入赋值给 name和 age变量,这样就能够获取用户的输入信息了。接着我们引出下一个问题,这些用户输入,是如何跟模板的自定义关联起来的呢?

我们打开一个vue-cli的模板,比如webpack-simple里面的README.md,它长这样:

# {{ name }}

> {{ deion }}

上面使用双括号包裹起来的,最终会根据用户的输入而更改为具体的内容。是不是觉得这种写法很熟悉?其实就是Handlebars的模板语法。

以这个README.md文件为例,在vue-cli运行的过程中,会首先读取文件的内容放在内存,然后通过 inquirer.js获取用户输入,把输入的值替换到文件内容里面,最后通过另外一个名叫Metalsmith的工具,把替换好的内容输出为文件,也就生成了具有个性化内容的README.md文件了。

整个流程并不复杂,在明白这些原理后,我们就能更深入地使用vue-cli了。

Java与Java,Vue-cli与Vue

虽然这么类比不太准确,但我想大家也应该能明白我的意思。

简单来说,就是vue-cli不仅仅能初始化vue工程,理论上能够初始化一切工程,包括react,angular等等等等,只要你有一份能够运行的模板,就能够通过vue-cli进行工程的初始化。

在讨论区有许多类似的问题:

“vue-cli当中如何配置sass?”

“vue-cli中如何修改devServer的端口?”

“vue-cli中发现项目跑不起来”

……

vue-cli说:“这锅我不背。”

是的,所遇到的问题都不是vue-cli的问题,而是相关模板的问题。那么应该如何写一份合格的模板呢?下面我们一起来研究一下。

写一份vue-cli模板

参考官方文档,也许还是不能理解到底应该怎么写,那么我们可以直接参考官方例子webpack-simple,看看它到底是怎么写的。

首先可以看到目录结构:

着实是非常简单,其中 meta.json就是向用户抛出的问答题, /template目录则是真正的模板内容。首先我们来看看 meta.json都写了些啥:

{

"prompts": {

"name": {

"type": "string",

"required": true,

"label": "Project name"

},

"deion": {

"type": "string",

"required": true,

"label": "Project deion",

"default": "A Vue.js project"

},

"author": {

"type": "string",

"label": "Author"

},

"sass": {

"type": "confirm",

"message": "Use sass?",

"default": false

}

},

"completeMessage": "{{#inPlace}}To get started:nn npm installn npm run dev.{{else}}To get started:nn cd {{destDirName}}n npm installn npm run dev.{{/inPlace}}"

}

可以看到,它一共向用户提了4个问题:

Project name

Project deion

Author

Use sass?

接着,我们打开 /template目录,看看它长什么样:

这就是终将被生成的工程目录。打开里面的 package.json:

{

"name": "{{ name }}",

"deion": "{{ deion }}",

"version": "1.0.0",

"author": "{{ author }}",

"private": true,

"s": {

"dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",

"build": "cross-env NODE_ENV=production webpack --progress --hide-modules"

},

"dependencies": {

"vue": "^2.4.4"

},

"devDependencies": {

"babel-core": "^6.26.0",

"babel-loader": "^7.1.2",

"babel-preset-env": "^1.6.0",

"cross-env": "^5.0.5",

"css-loader": "^0.28.7",

"file-loader": "^1.1.4",

{{#sass}}

"node-sass": "^4.5.3",

"sass-loader": "^6.0.6",

{{/sass}}

"vue-loader": "^13.0.5",

"vue-template-compiler": "^2.4.4",

"webpack": "^3.6.0",

"webpack-dev-server": "^2.9.1"

}

}

结合前文原理里面的内容,也不难理解这个 package.json里面双括号的含义了。

看到这里,是不是已经跃跃欲试,想要写一份属于自己的模板呢?又或者想要打造一款属于自己的命令行脚手架工具?原理都是很简单的,只要按照想法一步步实现即可。

后记

《教你从零开始搭建一款前端脚手架工具》

好用的项目初始化工具SCION升级啦!

但是发现仍然有许多同学对于vue-cli的理解有些偏差,于是写下这篇文章,聊一聊自己的理解。

vue组件开发练习--焦点图切换

一套Vue的单页模板:N3-admin

vuejs开发H5页面总结

Webpack 3,从入门到放弃

轻松入门React和Webpack

主要内容

从一个简单的例子认识webpack

入口文件和输出文件

认识webpack-loader和webpack-plugin

打包后路径的相关问题

webpack-dev-server配置介绍

三文件配置方案

优化webpack的打包性能

学习写一个vue-loader

学习写一个vue-plugin

查看详情

Oracle text简单的示例

这里先给出一个简单示例说利用Oracle Text实现全文检索的方法与步骤,在后面在进行具体的说明。Orcale9i提供了Oracle Text Manager可以简化许多工作,所有在Oracle Text Manager中完成的工作,都可以在通过PL/SQL来实现。要使用Oracle Text,必须具有CTXAPP角色或者是CTXSYS用户。Oracle Text为系统管理员提供CTXSYS用户,为应用程序开发人员提供CTXAPP角色。

CTXSYS用户可执行以下任务:启动Oracle Text服务器,执行CTXAPP角色的所有任务。

具有CTXAPP角色的用户可执行以下任务:创建索引,管理 Oracle Text 数据字典,包括创建和删除首选项,进行Oracle Text 查询,使用 Oracle Text PL/SQL程序包。

使用Oracle Text的步骤:

⑴创建表来保存某些文档。该示例使用一个主关键字列来标识每个文档,使用一个小的VARCHAR2列来保存每个文档。

CREATE TABLE docs (id NUMBER PRIMARY KEY,text VARCHAR2(80));

⑵将两个示例文档置入该表:

INSERT INTO docs VALUES (1,'the first doc');

INSERT INTO docs VALUES (2,'the second doc');

COMMIT;

⑶使用Oracle Text Manager来创建和修改首选项,首选项将与索引相关联。

⑷使用Oracle Text Manager创建文本索引。另外,可以输入以下使用默认首选项的 SQL 语句:

CREATE INDEX doc_index ON docs(text) INDEXTYPE IS CTXSYS.CONTEXT;

⑸使用 CONTAINS 函数,发出基于内容的文档查询。例如:

SELECT id FROM docs WHERE CONTAINS (text,'first') > 0;

这将在文本列包含单词 first (即文档1) 的 docs 中查找所有行。语句中的>0部分是有效的Oracle SQL所必需的,Oracle SQL不支持函数的布尔返回值。

以上只是一个简单的示例,旨在给出使用Oracle Text建立全文索引的完整步骤,归纳起来如下:

⑴建表并装载文本(包含带有需要检索的文本字段)

⑵配置索引

⑶建立索引

⑷发出查询

⑸索引维护:同步与优化(将在后面介绍)

查看详情

Oracle textOracleText全文检索

Oracle一直致力于全文检索技术的研究,当Oracle9i Rlease2发布之时,Oracle数据库的全文检索技术已经非常完美,Oracle Text使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用的新名称,在Oracle8/8i中它被称作Oracle interMedia Text,在Oracle8以前它的名称是Oracle ConText Cartridge。使用Oracle9i和Oracle Text,可以方便而有效地利用标准的SQL工具来构建基于文本的新的开发工具或对现有应用程序进行扩展。应用程序开发人员可以在任何使用文本的Oracle数据库应用程序中充分利用Oracle Text搜索,应用范围可以是现有应用程序中可搜索的注释字段,也可是实现涉及多种文档格式和复杂搜索标准的大型文档管理系统。Oracle Text支持Oracle数据库所支持的大多数语言的基本全文搜索功能。本文将介绍如何使用Oracle9i的全文检索技术来为自己的应用提供一个优秀的解决方案。

查看详情

相关推荐

立即注册
免费服务热线: 400-888-9639