Oracle设计开发指南

Oracle设计开发指南
Oracle设计开发指南

知识库Oracle设计开发指南

版本历史

目录

1.引言 (6)

1.1目的 (6)

1.2范围、约束及假设 (6)

1.3定义、首字母缩写词和缩略语 (6)

1.4阅读对象 (6)

1.5参考资料 (6)

1.6文档概述 (6)

2.数据库设计 (6)

2.1逻辑设计 (6)

2.1.1表设计 (6)

2.1.2范式和冗余 (7)

2.1.3索引设计 (7)

2.1.4聚簇设计 (8)

2.1.5视图设计 (8)

2.2物理设计 (9)

2.2.1内存参数设计 (9)

2.2.2表容量估算 (9)

2.2.3索引容量估算 (9)

2.2.4存储参数设计 (9)

2.2.5表空间设计 (9)

2.2.6数据文件设计 (9)

2.2.7重做日志文件设计 (9)

2.2.8回滚段设计 (9)

2.3命名规范 (9)

2.3.1一般性命名规范 (9)

2.3.2对象命名规范 (9)

3.SQL优化 (11)

3.1SQL执行过程 (11)

3.1.1解析SQL (11)

3.1.2执行SQL (11)

3.1.3显示结果集 (11)

3.2SQL优化器 (12)

3.2.1优化器的优化方式 (12)

3.3SQL优化过程 (12)

3.3.1确定具有高影响力的SQL语句 (12)

3.3.2抽取和解释SQL语句 (13)

3.3.3调整SQL语句 (13)

3.4SQL调整工具 (13)

3.4.1Oracle AutoTrace (13)

3.4.2TKPROF工具 (15)

3.4.3STATSPACK工具 (16)

3.5O RACLE SQL优化方法 (32)

3.5.1选用适合的ORACLE优化器 (32)

3.5.2访问Table的方式 (32)

3.5.3共享SQL语句 (33)

3.5.4选择最有效率的表名顺序 (34)

3.5.5WHERE子句中的连接顺序 (34)

3.5.6SELECT子句中避免使用... * ... . (35)

3.5.7减少访问数据库的次数 (35)

3.5.8使用DECODE函数来减少处理时间 (36)

3.5.9删除重复记录 (37)

3.5.10用TRUNCATE替代DELETE (37)

3.5.11HWM对数据库性能的影响 (37)

3.5.12尽量多使用COMMIT (38)

3.5.13用Where子句替换HAVING子句 (38)

3.5.14减少对表的查询 (39)

3.5.15使用表的别名(Alias) (39)

3.5.16用EXISTS替代IN (39)

3.5.17用NOT EXISTS替代NOT IN (40)

3.5.18用表连接替换EXISTS (40)

3.5.19用EXISTS替换DISTINCT (41)

3.5.20识别?低效执行?的SQL语句 (41)

3.5.21提高insert、update速度 (41)

3.6调整查询 (42)

3.6.1查询调整方法 (42)

3.6.2子查询调整方法 (42)

3.6.3使用Oracle并行查询发挥多CPU的威力 (43)

3.7排序优化 (44)

3.7.1Oracle SQL排序原理 (44)

3.7.2需要进行排序的操作 (45)

3.7.3排序性能诊断 (45)

3.7.4监控临时表空间的使用情况 (45)

3.8调整表联接 (46)

3.8.1表联接类型 (46)

3.8.2Oracle优化器联接原理 (49)

3.8.3联接优化 (53)

3.9调整DML语句 (53)

3.9.1Oracle存储参数和DML性能 (53)

3.9.2空闲列表管理和DML性能 (55)

3.9.3索引和DML性能 (56)

3.10用索引调整SQL (56)

3.10.1Oracle索引概述 (56)

3.10.2索引不被使用的场景 (58)

3.10.3索引使用方法 (58)

3.11分页优化技术 (59)

3.11.1分页查询概述 (59)

3.11.2单表分页查询 (59)

3.11.3联接分页查询 (60)

3.11.4UNION ALL分页查询 (61)

3.11.5使用ROW_NUMBER函数分页 (64)

Oracle设计开发指南错误!未指定书签。错误!未指定书签。

3、引言

a)目的

b)范围、约束及假设

c)定义、首字母缩写词和缩略语

d)阅读对象

e)参考资料

f)文档概述

4、数据库设计

a)逻辑设计

i.表设计

1、选择合适的数据类型与长度

选择最合适的数据类型,避免数据类型转换;确定好字段的长度,避免浪费存储空间;若在创建字段的时候,不能够确认字段长度的话,则最好采用变长的数据类型。禁止使用LONG和LONG RAW类

型,应使用BLOB或CLOB类型。

2、确定表需要采用的完整性约束与默认值。

在建立表之前,需要确定列的主键约束、外键约束、非空约束、唯一性约束和CHECK约束;需要确认列的默认值。

3、在设计大表时,把允许NULL的列放在表的后面。

在数据库存储的时候,若字段为NULL,则这个值根本没有存储。把允许NULL的字段放在表的末尾,当数据库比较大或者空字段比较多的话,则可以大大的减少数据库的存储空间。

Oracle表列建立好之后,除非重新删除再建立,否则无法调整列的顺序。因此在创建表之前,要对列、以及是否为空有一个明确的定义。只有如此,才能够合理安排列的顺序。

4、确定表需要采用的类型。

对于数据量比较大的表(Oracle建议:单个表大小超过2G),根据表数据的属性进行分区,以得到较好的性能。如果表按某些字段进行增长,则采用按字段值范围进行范围分区。如果表按某个字段的几个关键值进行分布,则采用列表分区。对于静态表,则采用Hash分区或列表分区。在范围分区中,如果数据按某关键字段均衡分布,则采用子分区的复合分区方法。

表中数据多数情况下按主键列进行查询且更新不频繁应使用索引表或聚簇表,其他情况下使用普通的堆表。

5、每个表在创建时候,必须指定所在的表空间,不要采用默认表空间以防止表建立在系统表空间上导致性能问题。对于事务比较繁忙的数据表,必须存放在该表的专用表空间中。表的数据和索引应存放在不同的表空间中。大二进制数据列存储于独立表空间中。

6、每个表均创建类型为Sequence的主键字段。为每个表增加如下字段:LAST_UPDATE_DATE、LAST_UPDATE_USER_SEQ、CREATE_DATE、CREATE_USER_SEQ。为每个业务数据表增加以下字段:COMPANY_SEQ (租户序列号)。为每个数据表增加删除标记字段。为业务数据表增加5-8个保留字段。

ii.范式和冗余

如果没有性能上的原因,应该使用关系数据库理论,达到较高的范式,避免数据冗余。如果在数据量上与性能上有一定要求,并且表的更新率较低,查询率较高,考虑到实现的方便性可以有适当的数据冗余。

iii.索引设计

iv.聚簇设计

Oracle支持两种类型的聚簇:索引聚簇和哈希聚簇

1.使用索引聚簇

2.使用哈希聚簇

v.视图设计

b)物理设计

i.内存参数设计

ii.表容量估算

iii.索引容量估算

iv.存储参数设计

v.表空间设计

vi.数据文件设计

vii.重做日志文件设计

viii.回滚段设计

c)命名规范

i.一般性命名规范

ii.对象命名规范

a)SQL执行过程

i.解析SQL

ii.执行SQL

iii.显示结果集

这一步骤将对字段数据执行所有必要的排序、转换和重新格式化。

Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析

语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。

i.优化器的优化方式

Oracle的优化器共有两种的优化方式,即基于规则的优化方式(Rule-Based Optimization,简称

为RBO)和基于成本的优化方式(Cost-Based Optimization,简称为CBO)。

1、RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常

见的,当一个where子句中的一列有索引时,优化器会选择按索引扫描。

2、CBO方式:依词义可知,它是看SQL语句的代价(Cost),这里的代价主要指CPU和内存。优化

器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小、有多少行、每行的长度等信息。这些统计信息起初在库内是没有的,是你在做analyze后才出现的,很多的时侯过期统计信息会令优化器做出一个错误的执行计划,因些我们应及时更新这些信息。在Oracle8及以后的版本,Oracle列推荐用CBO的方式。

CBO的成本主要由物理I/O组成,计算公式为:

IO+CPU/1000+Net I/O*1.5

IO表示物理I/O请求,CPU表示逻辑I/O请求,Net I/O表示通过数据库链接访问远程数据库的逻辑I/O请求。CBO会尝试计算所有可能执行的物理I/O,选择只需要最小物理I/O的计划。

ii.优化器的优化模式

优化模式包括Rule,Choose,First rows,All rows这四种方式。

1、Rule:基于规则的方式。

2、Choose:默认的情况下Oracle用的便是这种方式。指的是当一个表或或索引有统计信息,则走CBO的方式,如果表或索引没有统计信息,表又不是特别的小,而且相应的列有索引时,那么就走索引,

走RBO的方式。

3、First Rows:它与Choose方式是类似的,所不同的是当一个表有统计信息时,它将以最快的方式返回查询的最先的几行,从总体上减少了响应时间。

4、All Rows:也就是我们所说的Cost的方式,当一个表有统计信息时,它将以最快的方式返回表的所有的行,从总体上提高查询的吞吐量。没有统计信息则走基于规则的方式。

使用下列SQL语句可以修改优化器模式:

c)SQL优化过程

i.确定具有高影响力的SQL语句

在V$SQLAREA视图中的SQL语句将根据下列参数进行级别排序,这些参数是按照重要性由高到低进行排序的:

1、Executions(执行):经常执行的SQL语句就应当越早进行调整,因为它们会对总体性能产生巨大的影响。

2、Disk_reads(磁盘读取):高的磁盘读取量有可能表明查询导致了过多的输入输出量。

3、Rows_processed(记录处理):处理大量记录的查询会导致较高的输入输出量,同时在排序时有可能对TEMP表空间产生影响。

4、Buffer_gets(缓冲区读取):高的缓存读取量有可能表明了一个高资源使用量的查询。

5、Sorts(排序):排序会造成速度的明显降低,尤其是那些在磁盘TEMP表空间中进行的排序。

V$SQLAREA视图提供了一种识别有潜在问题或者需要优化的SQL语句的方法,可以使用下列SQL 语句找出执行开销高的语句。

ii.抽取和解释SQL语句

在指定SQL语句后,需要对它进行“解释”以丰富现存的执行计划,并且对它进行调整来确定这个执行计划是否可以改进。

在TOAD和PLSQL Developer中,可以使用Explain plan查看SQL语句的执行计划,在

SQL*Plus中可以使用Oracle AutoTrace查看SQL语句的执行计划,还可以使用Oracle提供的TKPROF工具、STATSPACK工具诊断和分析SQL语句可能存在的问题。

iii.调整SQL语句

我们将使用下列方法之一对拥有非优化执行计划的SQL语句进行调整:

d)SQL调整工具

i.Oracle AutoTrace

AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计。

1、在开始菜单->运行中,输入cmd,进入命令窗口,输入sqlplus命令,输入用户名:test,输入密

码:test,连接成功。

2、输入set autotrace on,表示启用autotrace查看sql执行计划。输入SQL语句,在执行完成后,先显示SQL执行结果,然后显示SQL执行计划,最后显示SQL统计信息。

附:AUTOTRACE Statistics常用列解释

判断SQL 效率高低除了通过时间来衡量,还应该通过执行SQL 执行状态里面的逻辑读的数量来衡量:

逻辑读=(db block gets+ consistent gets )

ii. TKPROF 工具

TKPROF 是一个用于分析Oracle 跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是跟踪用户的会话并使用TKPROF 工具的排序功能格式化输出,从而找出有问题的SQL 语句。

TKPROF 的使用遵循以下几个步骤:

在数据库级别上设置

TIMED_STATISTICS 为

true ,在SQL*Plus 中使用下列语句: TIMED_STATISTICS 为true 表示允许sql trace 和其他一些动态性能视图收集与时间有关的参数。

在session 级别设置trace ,在SQL*Plus 中使用下列语句: 3、找到生成的trace 文件,路径:Oracle 安装目录\admin\实例名\udump ,文件格式为:实例名_ora_编号.trc

4、对trace 文件使用TKPROF 工具进行分析

Tkprof tracefile outfile[explain=user/password][options …]

一般来说,使用TKPROF 得到的输出文件中包含3个部分:SQL 语句本身;相关的诊断信息,包括CPU 时间、总共消耗时间、读取磁盘数量、逻辑读数量、以及查询中返回的记录数目等。

例:在SQL*Plus 中输入下列语句:

Tkprof 输出文件中主要性能指标的说明:

i. STATSPACK 工具

Oracle Statspack 从Oracle8.1.6开始被引入Oracle,并马上成为DBA 和Oracle 专家用来诊断数据库性能的强有力的工具。通过Statspack 我们可以很容易的确定Oracle 数据库的瓶颈所在,记录数据库性能状态,也可以使远程技术支持人员迅速了解你的数据库运行状况。Statspack 的脚本位于$ORACLE_HOME\RDBMS\ADMIN\spcreate.sql

1. 安装STATSPACK

1、为了能够顺利安装和运行Statspack 你可能需要设置以下系统参数:

job_queue_processes

为了能够建立自动任务,执行数据收集,该参数需要大于0。你可以在初试化参数文件中修改该参数(使该参数在重启后以然有效)。该参数可以在系统级动态修改(重启后失效)。在SQL*Plus 中输入下列语句:

timed_statistics

收集操作系统的计时信息,这些信息可被用来显示时间等统计信息、优化数据库和 SQL 语句。

要防止因从操作系统请求时间而引起的开销,请将该值设置为False。使用statspack收集统计信息时建议将该值设置为 TRUE,否则收集的统计信息大约只能起到10%的作用,将timed_statistics设置为True所带来的性能影响与好处相比是微不足道的。该参数使收集的时间信息存储在V$SESSTATS 和V$SYSSTATS等动态性能视图中。Timed_statistics参数可以在实例级进行更改,在SQL*Plus中输入下列语句:

2

、创建Statspack需要使用的表空间和用户

3、安装Statspack

安装Statspack需要拥有SYSDBA(connect / as sysdba)权限的用户登陆。在Oracle8.1.7以后版本中运行spcreate.sql。首先登陆到数据库,最好转到$ORACLE_HOME/RDBMS/ADMIN目录,这样我们执行脚本就可以方便些。

执行完成,提示如下信息表示创建成功。

1. 生成分析报告

1、用statspack 用户帐号登录SQL*Plus

2、抓取快照,至少抓取2次以上,在SQL*Plus 中输入下列语句:

生成分析报告,,在SQL*Plus 中输入下列语句: 按照提示,依次输入begin_snap 、end_snap 和report_name 值。

生成的分析报告位于$ORACLE_HOME/RDBMS/ADMIN 目录下。

1. STATSPACK 收集选项

Statspack 有两种类型的收集选项: 级别(level ):控制收集数据的类型 门限(threshold ):设置收集的数据的阈值。 1、级别(level )

Statspack 共有三种快照级别,默认值是level 5

可以通过statspack 包修改缺省的级别设置

如果你只是想本次改变收集级别,可以忽略i_modify_parameter 参数。 2、快照门限

快照门限只应用于stats$sql_summary 表中获取的SQL 语句。因为每一个快照都会收集很多数据,每一行都代表获取快照时数据库中的一个SQL 语句,所以stats$sql_summary 很快就会成为Statspack 中最大的表。

门限存储在stats$statspack_parameter 表中。让我们了结一下各种门限:

任何一个门限值超过以上参数就会产生一条记录。通过调用statspack.modify_statspack_parameter 函数我们可以改变门限的默认值。

例如:

2.STATSPACK分析报告详解

statspack 输出结果中必须查看的十项内容:

1、报表头信息

数据库实例相关信息,包括数据库名称、ID、版本号及主机等信息。

oracle数据库安装文档

oracle数据库安装文档

概述 内蒙古中行数据库安装:平台red hat 6.6,数据库版本11.2.0.4,升级psu。

一、环境准备 1、安装前准备 1.1编辑/etc/security/limits.conf文件 vi /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 1.2配置内核参数(Configure Kernel Parameters) vi /etc/sysctl.conf #kernel.shmmax = 68719476736 #kernel.shmall = 4294967296 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304

net.core.wmem_default = 262144 net.core.wmem_max = 1048586 1.3关闭防火墙并重启系统 vi /etc/selinux/config 1.4创建用户组 1.创建组和用户: groupadd -g 600 oinstall groupadd -g 601 dba groupadd -g 602 oper useradd -m -u 601 -g oinstall -G dba,oper oracle 2.修改用户口令:

Linux下oracle建库

ORACLE 安装部分说明
一、通过 dbca 创建数据库
Oracle DBCA 总共提供四种操作模式,进行数据库管理工作,分别是: 1、 创建数据库( Create a database ) .] 2、 配置数据库各项设定( Configuration database options in a database ) . 3、 删除数据库( Delete a database ) . 4、 模板管理( Manager Templates) .

这里有 4 个选项, Data Warehousing : 这个模版是用来创建数据仓库环境的( DDS ) 。 Transacti on Processing : 这个模版是用来创建联机事务处理环境的 (OLTP)。 General Purpose: 这个模版创建的数据拥有 DDS 和 OLTP 特性。当然也很巨大! (小硬盘 8 0G 以下者慎用! ) New Database:以自定义方式创建数据库。

设置全域数据库名称(Global Database Name)和 SID。 所谓全域数据库名称目的是希望能够在网络上唯一识别每个 oracle 数据库,格式通常如 下:[Oracle SID 名称].[数据库主机所在网域名称] 我们公司的域名称:https://www.360docs.net/doc/4416751352.html,,数据库 SID 设定 oracleDB。那么全域数据库名称就可 以设定为:https://www.360docs.net/doc/4416751352.html, 下一步选择:No,don’t register the database。

笔记6:使用DBCA命令或SQL命令创建及管理数据库

笔记6:使用DBCA命令或SQL命令创建及管理数据库 一、创建数据库前注意事项: 在Oracle下创建多个数据库,需要注意每创建一个数据库之前都需要修改$Oracle_home\NETWORK\ADMIN\listener.ora, 在SID_LIST中添加新的数据库SID (SID_DESC = (GLOBAL_DBNAME = NEWSID) (ORACLE_HOME = $ORACLE_HOME) (SID_NAME = NEWSID) ) 之后重新启动OracleOraDb11g_home1TNSListener服务。 二、创建数据库的方式 1.利用开始菜单中的DBCA可视化组件创建。(见笔记3) 2. 利用DBCA命令以静默方式创建数据库 注意:Win7系统必须是超级管理员Administrator身份才可以,否则普通管理员对一些文件还是有访问限制的。 命令如下: dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname oraDB -sid oraDB -responseFile NO_VALUE-characterSet AL32UTF8 -memoryPercentage 30 -emConfiguration LOCAL

3. 利用SQL语句手动创建数据库 步骤1:利用oradim工具创建数据库实例 步骤2:创建文本初始化参数文件(pfile) 创建D:\app\myoracle_init目录,用于存放相关初始化参数文件和脚本文件。目录和存放位置可自行定义。 本例:初始化参数文件名initmyoracle.ora, 按照教材P57页编写文件内容,注意涉及Oracle安装路径的一定要根据自己的情况进行修改,比如我的Oracle安装路径就是”D:\app”。 注意:需要了解各种初始化参数的含义 步骤3:创建数据库创建脚本文件 命令:Create database 数据库名 注意: 1.要理解明白Oracle的数据库创建的各项参数,必须先清除Oracle数据库的存储结构 (物理存储结构及逻辑存储结构(见笔记5))。 2.Undo tablespace 的名称务必和初始化参数文件中undo_tablespace的值一致。 本例:创建数据库的脚本文件CreateDatabase_myoracle.sql 步骤4:启动SQLPlus进行数据库实例启动和数据库文件保存 1.Cmd窗口中切换当前数据库 set oracle_sid=orcl sqlplus 输入用户名及密码 执行命令:使用初始化文件启动数据库实例 Startup pfile=’ D:\app\myoracle_init\initmyoracle.or a’ nomount

手工建立oracle数据库的方法

手工建库需要经过以下几个步骤,每一步骤都非常关键: 1.创建必要的相关目录 2.创建初始化参数文件 3.设置环境变量Oracle_sid 4.创建实例 5.创建口令文件 6.启动数据库到nomount(实例)状态 7.执行建库脚本 8.执行catalog脚本创建数据字典 9.执行catproc创建package包 10.执行pupbld 11.由初始化参数文件创建spfile文件 12.执行scott脚本创建scott模式 13.用命令测试数据库创建是否完成 14.配置OEM,使得能够通过浏览器管理和控制数据库 Oracle的安装路径:C盘创建的数据库名称:book book数据库的SYS用户初始密码:bookstore 需要配置EM资料库之后,才可以通过EM访问数据库(才可以出现DBConsole服务)。 1、打开命令行工具,创建必要的相关目录 C:\>mkdir C:\oracle\product\10.2.0\admin\book C:\>mkdir C:\oracle\product\10.2.0\admin\book\adump C:\>mkdir C:\oracle\product\10.2.0\admin\book\bdump C:\>mkdir C:\oracle\product\10.2.0\admin\book\cdump C:\>mkdir C:\oracle\product\10.2.0\admin\book\dpdump C:\>mkdir C:\oracle\product\10.2.0\admin\book\udump C:\>mkdir C:\oracle\product\10.2.0\admin\book\pfile C:\>mkdir C:\oracle\product\10.2.0\oradata\book 上面创建目录的过程也可以在Windows的图形界面中去创建。其中C:\oracle\product\10.2.0\admin\book目录下的几个子目录主要用于存放数据库运行过程中的跟踪信息。最重要的两上子目录是bdump和udump目录,bdump目录存放的是数据库运行过程中的各个后台进程的跟踪信息,当中alert文件是警告文件,其文件名称为alert_book.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。Udump目录存放和特定会话相关的跟踪信息。C:\oracle\product\10.2.0\oradata\book目录存放各种数据库文件,包括控制文件、数据文件、重做日志文件。

关于oracle建库时报错DIM-00019问题

OS:windows server 2003, DB:Oracle 10g for win-32。 机器是IBM x3850 截图: DIM-00019: create service error O/S-Error: (OS 1388) 无法将新成员加入到本地组中,因为成员的帐户类型错误。 网上找了一些帖子,现总结如下: 一、 系统平台:Windows XP sp2 Oracle 10.2.1.0 重新安装操作系统后,需要直接使用原来安装的ORACLE及数据库文件,根据网上找到的资料,只需要使用oradim -new -sid oratest -pfile E:\oracle\product\10g\admin\oratest\pfile\init.ora建立Windows服务即可,经实际测试,可能有些问题,如下: E:\oracle\product\10g\db_1\BIN>oradim -new -sid oratest -pfile E:\oracle\product

\10g\admin\oratest\pfile\init.ora Message 51 not found; No message file for product=RDBMS, facility=ORADIM DIM-00019: Message 19 not found; No message file for product=RDBMS, facility=ORA DIM O/S-Error: (OS 2) 系统找不到指定的文件。 在Windows管理工具里看到服务是添加了,但不能正常使用,只好删除: E:\oracle\product\10g\db_1\BIN>oradim -delete -sid oratest Message 50 not found; No message file for product=RDBMS, facility=ORADIM 经查,需要添加注册表项: "ORACLE_HOME"="E:\\oracle\\product\\10g\\db_1" "ORACLE_SID"="oratest" "ORACLE_BASE"="E:\\oracle\\product\\10g" 再执行oradim可正常添加服务,并且可以正常使用。 E:\oracle\product\10g\db_1\BIN>oradim -new -sid oratest -pfile E:\oracle\product \10g\admin\oratest\pfile\init.ora Instance created. 二、改SID办法 我改了sid,由于我以前装过sid= oracle9i的,然后被我删了 1。先卸载 2。然后删除目录oracle和programe file下的oracle目录 3。删除regedit的oracle 4。在删除服务在regedit 然后我才重装的可是就报上面的错误? 解决:换了个sid再建库,ok了 在NT架构系统中,需要先建立一个服务,就是Oracle.exe,用于包裹Oracle 应用。也就是第一步是用oradim建立一个SID的服务。出错就是这个呀。 手工运行一下oradim就知道了 三、建议用户组 手动创建组,ORA_DBA 然后,将用户administrator添加到这个组中。 再运行你上边说的DBCA -------database configuration assistant

Oracle手动安装数据库

Oracle手动安装数据库 2019年8月21日18:55 Oracle手动安装数据库 1安装rpm包 挂载iso镜像 mount loop -p -t iso9660 /光盘路径/挂载路径到/etc/yum.repo.d文件夹下新建新repo vi package.repo [yum名称] name = Instructor Server Repository baseurl=file://路径 enabled=1 gpgcheck=0 依赖包为 yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel numactl-devel sysstat unixODBC unixODBC-devel kernelheaders pdksh

pdksh pcre-devel readline rlwrap 2建立用户和组 groupadd oinstall groupadd oper groupadd dba useradd -g oinstall -G dba oracle passwd oracle 3新建目录 mkdir -p /u01/app/oracle chmod 775 -R /u01 chown -R oracle:oinstall /u01 mkdir /oradata chmod 775 /oradata chown oracle:oinstall /oradata/ 4修改/etc/sysctl.conf vi /etc/sysctl.conf(root) fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 kernel.panic_on_oops = 1 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.conf.all.rp_filter = 2 net.ipv4.conf.default.rp_filter = 2 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500 sysctl -p 执行生效 5修改/etc/security/limits.conf vi /etc/security/limits.conf(root)oracle soft nofile 1024

命令创建ORACLE数据库

在Oracle中建库,通常有两种方法。一是使用Oracle的建库工且DBCA,这是一个图形界面工且,使用起来方便且很容易理解,因为它的界面友好、美观,而且提示也比较齐全。在Windows系统中,这个工具可以在Oracle程序组中打开(”开始”—“程序”—“Oracle - OraDb10g_home1”—“Configuration and Migration Tools”—“Database Configuration Assistant”),也可以在命令行(”开始”—“运行”—“cmd”)工具中直接输入dbca来打开。另一种方法就是手工建库,这也就是下面所要讲的内容。 手工建库比起使用DBCA建库来说,是比较麻烦的,但是如果我们学好了手工建库的话,就可以使我们更好地理解Oracle数据库的体系结构。手工建库须要经过几个步骤,每一个步骤都非常关键。它包括: 1、创建必要的相关目录 2、创建初始化参数文件 3、设置环境变量Oracle_sid 4、创建实例 5、创建口令文件 6、启动数据库到nomount(实例)状态 7、执行建库脚本 8、执行catalog脚步本创建数据字典 9、执行catproc创建package包 10、执行pupbld 11、由初始化参数文件创建spfile文件 12、执行scott脚本创建scott模式 做完了以上的步骤之后就可以使用“SQL>alter database open;”打开数据库正常的使用了。下面,我将具体地把以上的几个步骤用实验展开来讲。 实验系统平台:Windows Server 2000数据库系统版本:Oracle Database 10G Oracle的安装路径:D盘创建的数据库名称:book 1、打开命令行工具,创建必要有相关目录

基于Oracle的海量DEM数据建库研究

2007年6月第5卷第3期 地理空间信息 GEOSPATIALINFORMATION June,2007 Vol.5,No.3基于Oracle的海量DEM数据建库研究 张珊珊 (广州市城市规划勘测设计研究院,广东广州510060) 摘要:讨论了基于Oracle管理海量DEM数据的关键技术,介绍了数据库设计的方法,并在具体实验的基础上得出了4点结论。 关键词:地理信息系统;DEM;Oracle;数据库 Design of DEM Database Prototype Based on Oracle ZHANG Shanshan (GuangzhouUrbanPlanningDesign&SurveyResearchInstitute,Guangzhou510060,China) Abstract:ThispaperdiscussesthekeytechniqueofmanagingDEMdatabasedonOracleandintroducesthedesignmethodofdatabaseprototype.Fourconclusionsaremadebyspecificexperiment. Key words:GIS;DEM;Oracle;database 传统的DEM数据的管理是建立在文件基础上的,具有灵活方便、成本低、适合小范围DEM数据管理的特点。对大范围海量DEM数据的建库,由于涉及数据的安全、共享及数据操作效率,基于文件管理DEM的方式已很难满足空间数据管理的要求。 近年来,基于数据库对海量DEM数据进行管理已越来越成为一种趋势,而我国一些大型空间数据库也建立在Oracle数据库的基础上。本文讨论了建立于Oracle之上的DEM数据库原型,并以此对DEM数据进行了基本的建库实验。 1建库目标和原则 1.1建库目标 结合当前DEM数据应用的实际,可归纳出建立DEM数据库的目标: 1)基于本地及网络的DEM数据存储、分发及三维浏览; 2)与空间及影像数据的高度集成; 3)适用经纬度坐标与大地坐标不同坐标类型的可伸缩库体。 1.2建库原则 不论是标准空间数据的分发还是三维数字城市项目,都要求DEM的建库符合以下的一些原则。 1)无缝的数据组织。就DEM数据而言,无缝的概念主要体现在空间和时间两个方面。空间上无缝是指对DEM数据在二维平面上进行集成,形成地理空间上无缝连接的整体集成信息,这种空间无缝的数据组织方法决定了在进行多块DEM镶嵌、三维浏览或金字塔数据建立等操作时不会在相邻边出现裂缝。DEM数据的时间无缝是指对DEM数据库中的数据按时间维进行集成,形成在时间上连续的整体集成信息,在数据操作上具体体现为对历史数据的合理管理。 2)金字塔数据分层。建立金字塔分层数据是多分辨率DEM栅格数据管理的主要方法。在数据的分发过程中,金字塔为数据的分级检索提供了相关区域中各种比例尺的概貌,而在基于DEM的三维浏览中,金字塔是建立LOD三维浏览的基础。 2基于Oracle的DEM数据库原型设计 2.1DEM数据结构 通常情况下,DEM的数据结构包括正方形格网结构(Grid)、不规则三角网结构(TIN)以及Grid与TIN的混合结构三种。其中Grid数据结构存储量小,结构简单,操作方便,非常适合于大规模的使用和管理。因此在以下DEM数据库原型的研究中,只考虑具有栅格数据结构的DEM数据的建库表达。 2.2定长的数据记录单元 对DEM建库,数据单元的定长意味着数据库同一比例尺数据表中的每一条记录都占有相同的空间范围。对数据定长的要求,基于以下两方面的考虑:1)有利于高效索引的建立。空间索引的本质在于将二维平面上的空间对象通过一维的线性编码表示。如果单元记录定长,每一记录与一维编码的对应也存在内在的规律,则空间DEM对象在二维空间上的索引建立效率将大为提高。对另外一些直接的编码索引方法(如基于Morton编码的索引),数据定长也是它们对数据的基本要求。 收稿日期:2005-08-26 中图分类号:P208文献标志码:B文章编号:1672-4623(2007)03-0047-02

oracle11G建库到登录(祥解)

创建新数据库并登录到该数据库步骤: 1、使用向导,创建一个新的数据库 2、配置数据库的监听程序 3、配置数据库的服务名 4、登录数据库测试 一、创建或删除数据库:Database Configuration Assistant: 下一步:

这里我们选择创建数据库:下一步直到以下界面,前面默认即可: 全局数据库名:填写你将给新建的数据库起的名称,这里就叫test SID :test 通常与数据库名称相同 下一步:

把配置Enterprise Manager勾勾去掉:下一步: 为新建数据库的所有账户使用同一口令:这里设为test, 下一步直到完成,前面默认即可:

当创建完成后出现以下界面: 选择口令管理:解锁账户:

把scott sys system 三个账户的勾勾都去掉。 确定,退出,test数据库就创建成功了。 查看安装目录,oradata : 但现在还不能登录到数据库,因为还没有为该数据库实例监听程序和配置服务名 配置监听程序和服务名有两种方式:修改文件和使用向导,这里我们就用修改文件,比较简单。 修改文件进行配置监听和服务名: 下面为该数据实例配置监听程序: 找到目录修改oracle安装目录下: oracle \product\11.1.0\db_1\NETWORK\ADMIN 该目录的listener.ora文件。 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = E: \oracle\app\lenovo\product\11.1.0\db_1) (PROGRAM = extproc)

Oracle11g手动建库步骤文档

Ceate database 手动建库 Oracle官方文档 Database Administration Administrator's Guide HT ML PDF 2、Creating and Configuring an Oracle Database ——>Creating a Database with the CREATE DATABASE Statement Step 1: Specify an Instance Identifier (SID) 指定一个实例名export ORACLE_SID=test※; extent:.bash_profile --只能有一个SID,想看哪个库,使他的SID生效一下就行了。 . .bash_profile source .bash_profile --使生效 Step 2: Ensure That the Required Environment Variables Are Set 确保所需的环境变量都设置到了LINUX(.bash_profile) unix(.profile) 我们有很多套数据库,但是软件还是ORACLE_HOME的软件 sqlplus: $ORACLE_HOME/bin/sqlplus 用的是同一套的数据库软件。 Step 3: Choose a Database Administrator Authentication Method 选择一个数据库管理认证方式。 在$ORACLE_HOME/dbs/下创建密码文件,(--sys用户的密码) dbs]$ orapwd file=orapwtest※ password=oracle entries=3 force=y (entries=3 给多少个用户设置sysdba的权限) (force=y 当前有这个文件就给替换掉) Step 4: Create the Initialization Parameter File

Oracle数据库技术与实验指导

Oracle数据库技术与实验指导 2011.08

第0章实用Oracle数据库技术 Oracle的官方网站为https://www.360docs.net/doc/4416751352.html,; 其次https://www.360docs.net/doc/4416751352.html,/这里有很多权威的解决方案和补丁; 然后就是一些著名网站如:https://www.360docs.net/doc/4416751352.html,、https://www.360docs.net/doc/4416751352.html,、https://www.360docs.net/doc/4416751352.html,,这里有很多经验之谈。 遇到问题了还可以第一时间找https://www.360docs.net/doc/4416751352.html,,这里会给你最详细的解释。 Oracle 10g/11g数据库都分为标准版(Standard Edition)、标准版1(Standard Edition One)以及企业版(Enterprise Edition)。可从如下网址下载、学习或试用Oracle:https://www.360docs.net/doc/4416751352.html,/technology/global/cn/software /products/database/oracle10g/index.html https://www.360docs.net/doc/4416751352.html,/technology/global/cn/software

/products/database/index.html https://www.360docs.net/doc/4416751352.html,/technology/software/index.htm l https://www.360docs.net/doc/4416751352.html,/technology/software/products/ database/index.html SQL Developer也可以单独免费下载安装的。下载地址为:https://www.360docs.net/doc/4416751352.html,/technology/global/cn/software/pr oducts/sql/index.html SQL*Plus Instant Client(SQL*Plus即时客户端) SQL*Plus Instant Client下载: https://www.360docs.net/doc/4416751352.html,/technology/global/cn/software/te ch/oci/instantclient/index.html。 实验1 数据库系统基础操作 Oracle Database 11g第 2 版(11.2.0.1.0)的下载地址:

02_如何创建Oracle数据库(手动执行CreateDataBase命令创建)

如何创建Oracle数据库(手工创建) 在上一章里,方少演示了如何利用DBCA来创建ORACLE数据库,但是在这一章里方少要告诉大家如何在命令行下通过执行CREATE DATABASE命令来创建一个数据库,之所以演示命令行手工创建数据库给大家是因为在OCM的实验考试里面是不允许用DBCA来建库的。 要创建一个数据库,必须按照正确的顺序执行以下步骤: (1)创建一个参数文件和口令文件。 (2)使用创建的参数文件在内存中构建一个实例。 (3)执行CREATE DATABASE命令。 (4)运行一系列SQL脚本生成数据字典视图和补充的PL/SQL程序包。 (5)运行相应SQL脚本生成Enterprise Manager Database Control以及该数据库需要的任 何选项。 下面,我们就按照上面的步骤创建一个名为ORCL的数据库。 在创建参数文件之前,我们得先创建一些orcl数据库要用到的目录: mkdir–p$ORACLE_BASE/admin/orcl/adump mkdir–p$ORACLE_BASE/admin/orcl/bdump mkdir–p$ORACLE_BASE/admin/orcl/cdump mkdir–p$ORACLE_BASE/admin/orcl/dpdump mkdir–p$ORACLE_BASE/admin/orcl/udump mkdir–p$ORACLE_BASE/admin/orcl/pfile mkdir–p$ORACLE_BASE/oradata/orcl mkdir–p$ORACLE_BASE/flash_recovery_area export ORACLE_SID=orcl 接下来,我们要在/etc/oratab里加入如下所示的一条记录 orcl:/u01/app/oracle:Y 下面,我们要创建口令文件: orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=10force=y 在Oracle中,所有参数被分为“基本”参数和“高级”参数。通常,我们需要设置20多个“基本”参数。 启动参数文件init.ora应与下面给出的代码相似: ########################################################################## #### #Copyright(c)1991,2001,2002by Oracle Corporation ##########################################################################

数据建库总结

基础地形数据建ARCSDE库情况总结 2010-12-26 第1章.概述 (2) 第2章.建库源数据分析整理 (3) 第3章.GIS库结构建设及入库软件配置 (10) 第4章.数据入库 (14) 第5章.已入库数据符号化 (17) 第6章.数据更新 (19)

第1章.概述 1.1.背景 本篇总结是在XXX城区及各镇1:500基础地形数据建库、XXXX城区1:500基础地形数据建库以及对原XXX地形数据建库了解的基础上总结得出。地形建库源数据分为MAPGIS(WT、WL、WP)和分幅DWG两种格式建库,并且建库前假设没有SDE库属性结构标准文档。 1.2.总结中涉及软件及数据资料 (1)涉及主要软件 CAD 2007、MAP 3D 2007、ARCGIS系列软件、ORACLE 10g、PLSQL Developer;MAPGIS 67、MAP2SHP数据转换软件、数据标准转换器、Font Creator 5.6;地形图检查软件、GBF。 (2)涉及和产生的主要资料 MAPGIS及分幅DWG格式地形图、GBT13923-2006《基础地理信息要素分类与代码》、《地形图建库详细设计(程序接口设计)》、《地形图建库CAD数据提交标准》、《Mapgis数据提交标准》 1.3.数据格式转换方式 对于两种源数据格式的地形图入库,目前采取的具体方式是: (1)MAPGIS格式数据使用MAP2SHP软件将源数据转换为SHP格式数据后进行后续入库工作。 (2)DWG格式数据使用GBF软件将源数据转换为ARCGIS个人空间数

据库(MDB)后进行后续入库工作。 (3)入库流程: 第2章.建库源数据分析整理 2.1.源数据分析 1.DWG格式数据分析 对拥有的分幅DWG格式地形图查看其标准程度,查看分幅地形图文件命名方式,查看地形图有哪些图层,图层上有哪些实体、什么颜色,查看各层实体的属性值是否完整,块实体的块名及旋转角度值是否完整,查看居民地层房屋实体闭合情况,从而决定GBF预入库时的图幅提取及文件配置方式。 分析结果常见问题: (1)分幅地形图文件名格式不符合GBF预入库时图幅号提取规范, 造成无法生成图幅的现象。 解决方法:修改程序使GBF软件预入库时提取图幅号的方

Oracle 11gR2 创建数据库实例

Oracle 11gR2 创建数据库实例 因为工作需要在Oracle 11gR2库中新建一数据库实例。采用脚本命令创建,建议使用oracle用户进行以下操作。顺序如下: 1.创建实例启动用的参数文件。在程序默认的参数文件里修改即可:重命名规则initSID.ora /u01/oracle/product/11.2.0/db_1/dbs/ 下,目录尽量使用绝对路径,采用ORACLE_BASE等环境变量有可能报错。 例initcrm.ora db_name='crm' --修改 #memory_target=500m --注释掉 sga_target=200m --添加 pga_aggregate_target=60m --添加 processes = 150 audit_file_dest='/u01/oracle/admin/crm/adump' --建立目录 audit_trail ='db' db_block_size=8192 db_domain='' db_recovery_file_dest='/u01/oracle/flash_recovery_area' --建立目录 db_recovery_file_dest_size=2G diagnostic_dest='/u01/oracle' ---修改 dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)' open_cursors=300 remote_login_passwordfile='EXCLUSIVE' undo_tablespace='UNDOTBS1' 2.创建相应目录: mkdir -p /u01/oracle/admin/ora11g/adump mkdir -p /u01/oracle/admin/ora11g/dpdump mkdir -p /u01/oracle/flash_recovery_area 3.创建密码文件:命名规则orapwSID,目录依旧是 /u01/oracle/product/11.2.0/db_1/dbs/ Linux下orapw+实例名 Windows下pwd+实例名 $ orapwd file=orapwora11g password=oracle 4.创建数据库实例 设置环境变量export ORACLE_SID=crm 执行以下命令 sqlplus /nolog conn / as sysdba

oracle 11G rac和database安装建库

本次安装基于centos6.5. 安装准备: 1.grid和database的安装包,然后解压所有安装包。进入到grid/rpm/目录下,安装cvuqdisk-1.0.9-1.rpm这个包。 2.一个共享存储,这个是必须的。2个节点都要同时访问。 3.pdksh安装包,这个可以用ksh代替但是这里检测时候总是有提示,所以提前准备安装也可以。 安装前需要规划好IP地址,rac的安装需要7个地址,2个本机地址,2个rac的vip地址,1个scanip地址。2个私有地址。(注意以上地址最好不要有冲突)地址规划好后写入hosts内容: 172.24.10.110 db1 172.24.10.111 db2 172.24.10.112 db1-vip 172.24.10.113 db2-vip 172.24.10.114 scanip 10.0.0.1 db1-priv 10.0.0.2 db2-priv 先安装相关依赖包,yum自行搭建光盘即可: yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel libgcc libstdc++ libaio libaio-devel make sysstat unixODBC unixODBC-

devel elfutils-libelf-devel.x86_64 关闭防火墙: service iptables stop service ip6tables stop chkconfig iptables off chkconfig ip6tables off 关闭selinux: sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/sysconfig/selinux setenforce 0 创建用户和组: 所有节点执行: (所有节点的组gid和用户uid都必须要一样) groupadd -g 1110 oinstall groupadd -g 1111 dba groupadd -g 1112 asmadmin groupadd -g 1113 asmdba groupadd -g 1114 asmoper groupadd -g 1115 oper

Oracle数据库安装配置完全实战手册

ORACLE 数据库配置完全实战手册 【版本日期:2010.12.18 China 】 ################################################################################ To be DBA or not to be, that is NOT the question. ---- Arron 作者允许自由散发此文档,但对其进行的任何修改应通知作者,以便于维护版本。 作者email:zhou_arron@https://www.360docs.net/doc/4416751352.html, Oracle8以8.1.5为界分为普通版本和internet版本。普通版版本号8.0.x,接触较多的是8.0.5;internet版版本号包括8.1.5(Release 1),8.1.6(Release 2),8.1.7(Release 3)。普通版简称Oracle 8,internet版简称Oracle 8i。如果不作特别说明,文中凡出现Oracle 8i均指8.1.7版。 Oracle9i目前出到第二版,版本号为9.2,简称Oracle 9i。如果不作特别说明,文中凡出现Oracle 9i均指9.2版。 本手册介绍Oracle配置的基本方法,描述的是“所然”而不是“所以然”。全部操作以命令行方式出现,不涉及GUI(只有白刃战才是真正的战斗)。鉴于大家对Windows已经十分熟悉,同时为了避免Windows和Unix两种截然不同的使用和开发风格给描述带来的复杂性,所以本手册不介绍在Windows上的Oracle(上帝的归上帝,恺撒的归恺撒)。 文中所有例子以oradb作为数据库实例名,数据库用户dbuser,口令oracle。如果不作特别说明,关于Oracle 8i所有的例子都在Solaris 8 Intel Platform+Oracle 8iR3上通过,关于Oracle 9i所有的例子都在RedHat Linux 7.3+Oracle 9iR2上通过。附录文件sample.tar 包含全部示例,简称附录。 大量使用表emp作为例子(参见附录08_proc/proc/single/emp.sql): create table emp ( no number(12) not null, name char(20) not null, age number(6) not null, duty char(1) not null, salary number(12) not null, upd_ts date not null, primary key (no) ); 开发中对应emp表结构,定义其宿主结构(参见附录08_proc/proc/single/db.h):typedef struct { double no; char name[21]; int age; char duty[2];

Oracle DataGuard建库

DataGuard原理在此不说了,这里只是说下我做的这个项目流程 一.在physical 主机创建数据库 操作系统:redhat5.4 本项目安装一台primary,一台standby,所以要准备两台机器,命名为DG1、DG2 1、安装数据库软件 此处安装的是oracle10.2.0.1,安装过程我们基本上已经熟练了解,在此不细说。记住只安装数据库软件哦(这样可以简化后面的升级过程) 2、如果直接用10.2.0.1做dataguard,可能会出现一些bug,为了避免这些bug,我们要将数据库软件升级到10.2.0.5 3、建库:在DG1上用DBCA建库,DG2上面暂不建库 4、primary端设置 4.1、主库设置为force logging模式 1. SQL > alter database force logging; 2. create a Password file [oracle@localhost dbs]$ orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl password=oracle 4.2、主库设置为归档模式 SQL > shutdown immediate; SQL > startup mount; SQL > alter database archivelog; SQL > archive log list; 4.3、添加redo log file 1)添加新的standby redolog组,并为该组指定成员。 SQL > alter database add standby logfile group 4 (‘/u01/app/oracle/oradata/oradg/redo04.log’)size 50M; SQL > alter database add standby logfile group 5 (‘/u01/app/oracle/oradata/oradg/redo05.log’)size 50M; SQL > alter database add standby logfile group 6 (‘/u01/app/oracle/oradata/oradg/redo06.log’)size 50M; SQL > alter database add standby logfile group 7 (‘/u01/app/oracle/oradata/oradg/redo07.log’)size 50M; 2)确定standby redo log file groups已经创建: SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG; 4.4 、初始化参数 DB_NAME=testdb DB_UNIQUE_NAME=testdb LOG_ARCHIVE_CONFIG='DG_CONFIG=(testdb,testdbst)' LOG_ARCHIVE_DEST_1= 'LOCATION=/u01/oradata/arch/testdb VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=testdb’ LOG_ARCHIVE_DEST_2= 'SERVICE=boston LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=test dbst’ LOG_ARCHIVE_DEST_STATE_1=ENABLE

相关主题
相关文档
最新文档