热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(oracle10g复习一)oracle10g创建数据库的方法

有段时间没有摸这个东西了,说起来也惭愧啊,现在的工作根本用不到甲骨文,但是我觉得这个东西以后还是很有用的,所以我觉得很有必要复习下了,下面我会就这个一话题做一个全面的复习计划,待续.

有段时间没有摸这个东西了,说起来也惭愧啊,现在的工作根本用不到甲骨文,但是我觉得这个东西以后还是很有用的,所以我觉得很有必要复习下了,下面我会就这个一话题做一个全面的复习计划,待续... ... ... ... ... ... ... ...

在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 XP  数据库系统版本:Oracle Database 10G

Oracle的安装路径:D盘       创建的数据库名称:book

1、打开命令行工具,创建必要有相关目录

C:/>mkdir D:/oracle/product/10.2.0/admin/book

C:/>mkdir D:/oracle/product/10.2.0/admin/book/bdump

C:/>mkdir D:/oracle/product/10.2.0/admin/book/udump

C:/>mkdir D:/oracle/product/10.2.0/admin/book/cdump

C:/>mkdir D:/oracle/product/10.2.0/admin/book/pfile

C:/>mkdir D:/oracle/product/10.2.0/admin/book/create

C:/>mkdir D:/oracle/product/10.2.0/oradata/book

上面创建目录的过程也可以在Windows的图形界面中去创建。其中D:/oracle/product/10.2.0/admin/book目录下的几个子目录主要用于存放数据库运行过程中的跟踪信息。最重要的两个子目录是bdump和udump目录,bdump目录存放的是数据库运行过程中的各个后台进程的跟踪信息,当中alert文件是警告文件,其文件名称为alert_book.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。udump目录存放和特定会话相关的跟踪信息。D:/oracle/product/10.2.0/oradata/book目录存放各种数据库文件,包括controlfile、datafile、logfile。

2、创建初始化参数文件

数据库系统启动时须要用初始化参数文件的设置分配内存、启动必要的后台进程的。因此,初始化参数文件创建的是否正确、参数设置是否正确关系着整个建库的“命运”。

创建初始化参数文件可以通过拷贝现有的初始化参数文件并将其做适当的修改即可,从而不必要用手工去一句一句地写出来,因为初始化参数文件的结构体系基本上都是一样的。在我们安装Oracle的时候,系统已经为我们安装了一个名为orcl的数据库,于是我们可以从它那里得到一份初始化参数文件。打开D:/oracle/product/10.2.0/admin/orcl/pfile,找到init.ora文件,把它拷贝到D:/oracle/product/10.2.0/bd_1/databse下,并将其改名为initbook.ora。接着用记事本的方式打开initbook.ora,修改以下的内容:

db_domain=""     ------数据库域名

db_name=book

control_files=("D:/oracle/product/10.2.0/oradata/book/control01.ctl", "D:/oracle/product/10.2.0/oradata/book/control02.ctl", "D:/oracle/product/10.2.0/oradata/book/control03.ctl")

undo_management=AUTO    ------Undo空间管理方式

undo_tablespace=UNDOTBS1 ------注意此处的“UNDOTBS1”要和建库脚步本中对应

background_dump_dest=D:/oracle/product/10.2.0/admin/book/bdump  ------后台进程跟踪文件生成的位置

core_dump_dest=D:/oracle/product/10.2.0/admin/book/cdump

user_dump_dest=D:/oracle/product/10.2.0/admin/book/udump

3、打开命令行,设置环境变量oracle_sid

C:/>set oracle_sid=book

设置环境变量的目的地是在默认的情况下,指定命令行中所操作的数据库实例是book。

4、创建实例(即后台控制服务)

C:/>oradim –new –sid book

oradim是创建实例的工具程序名称,-new表明执行新建实例,-delete表明执行删掉实例,-sid指定实例的名称。

5、创建口令文件

C:/>orapwd file=D:/oracle/product/10.2.0/db_1/database/pwdbook.ora password=bookstore entries=5

orapwd是创建口令文件的工具程序名称,file参数指定口令文件所在的目录和文件名称,password参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用户的个数,当然还有一个force参数,表示是否强制覆盖。

请注意,这里的命令要一行输入,中间不得换行,否则会出现不必要的错误。

口令文件是专门存放sys用户的口令,因为sys用户要负责建库、启动数据库、关闭数据库等特殊任务,把以sys用户的口令单独存放于口令文件中,这样数据库未打开时也能进行口令验证。

6、启动数据库到nomount(实例)状态

C:/>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 12月 23 10:04:11 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL>connect sys/bookstore as sysdba ---这里是用sys连接数据库

已连接到空闲例程

SQL>startup nomount

ORACLE 例程已经启动。

Total System Global Area  285212672 bytes
       Fixed Size                  1248552 bytes
       Variable Size              71303896 bytes
       Database Buffers          205520896 bytes
       Redo Buffers                7139328 bytes

SQL>

7、执行建库脚本

执行建库脚本,首先要有建库的脚本。(去哪找建库脚本呢?我又没有!)不用着急,请接着往下看。

得到一个符合自己要求的建库脚本有两种方法,一种方法是在自己的电脑上用DBCA来建,接照它的提示一步步地去做,在做到第十二步的时候,请选择“生成建库脚本”,然后就大功告成,你就可以到相应的目录上去找到那个脚本并适当地修它便可便用。另一种方法就是自己手工去写一份建库脚本,这也是这里要见意使用的方法,用记事本编辑如下的内容,并将其保存为文件名任取而后缀名为(*.sql)的SQL脚本,这里保存到E盘根本录下且文件名称为book.sql。

Create database book

datafile 'D:/oracle/product/10.2.0/oradata/book/system01.dbf' size 300M reuse autoextend on next 10240K  maxsize unlimited

extent management local

sysaux datafile 'D:/oracle/product/10.2.0/oradata/book/sysaux01.dbf'

size 120M reuse autoextend on next 10240K maxsize unlimited

default temporary tablespace temp

tempfile 'D:/oracle/product/10.2.0/oradata/book/temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited

undo tablespace "UNDOTBS1" --请注意这里的undo表空间要和参数文件对应

datafile 'D:/oracle/product/10.2.0/oradata/book/undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited

logfile

group 1 ('D:/oracle/product/10.2.0/oradata/book/redo01.log') size 10240K,

group 2 ('D:/oracle/product/10.2.0/oradata/book/redo02.log') size 10240K,

group 3 ('D:/oracle/product/10.2.0/oradata/book/redo03.log') size 10240K

接着就执行刚建的建库脚本:

SQL>start E:/book.sql

8、执行catalog脚步本创建数据字典

SQL>start D:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/catalog.sql

9、执行catproc创建package包

SQL>start D:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/catproc.sql

10、执行pupbld

在执行pupbld之前要把当前用户(sys)转换成system,即以system账户连接数据库。因为此数据库是刚建的,所以system的口令是系统默认的口令,即manager。你可以在数据库建好以后再来重新设置此账户的口令。

SQL>connect system/manager

SQL>start D:/oracle/product/10.2.0/db_1/sqlplus/admin/pupbld.sql

如果这一步出错了,多半是因为权限的问题,你可以换和角色登陆,一般就可以登陆了

SQL>connect system/manager as sysdba

11、由初始化参数文件创建spfile文件

SQL>create spfile from pfile;

12、执行scott脚本创建scott模式

SQL>start D:/oracle/product/10.2.0/db_1/RDBMA/ADMIN/scott.sql

13、把数据库打开到正常状态

SQL>alter database open;

14、以scott连接到数据库(口令为tiger),测试新建数据库是否可以正常运行

至此,整个数据库就已经建好了。接着你就可以在这个数据库上做你的事情了。

第二:DBCA建库

1. 配置数据库选项

启动DBCA之后,就可以通过图形界面进行数据库各项参数的配置,下面对几个重要步骤进行一点说明。

在如图1所示的选择数据库模板界面中,可以选择使用模板来创建数据库或者通过自定义方式来创建。

image003.jpg

图1  选择数据库模板

首先选择通过自定义方式创建数据库,在界面中选择“定制数据库”即可。定制数据库不包含数据文件,需要实时创建,使用模板则会包含已经创建好的数据文件。

单击“下一步”按钮,进入如图2所示的设置数据库标识界面,需要定义一个数据库名称和SID,SID在同一计算机上不能重复,用于唯一标识一个实例。

096.jpg

图2  设置数据库标识

单击“下一步”按钮,进入如图3所示的管理选项界面,选择缺省配置“使用Enterprise Manger配置数据库”复选框即可,选择了这个选项,创建数据库时会自动配置Oracle 10g基于Web方式的Database Control。

097.jpg

图3  管理选项

我们知道在Oracle 9i之前,数据库会为数据库用户指定缺省口令,SYS用户的缺省口令为change_on_install,SYSTEM的缺省口令为manager,但是由于很多用户经常忘记修改缺省口令,进而可能为数据库留下安全隐患,所以从Oracle 9i开始,Oracle要求用户在创建数据库时自行指定用户口令。因此在如图4所示的数据库身份证明界面中可以简单地为所有初始用户定义一个缺省口令。

098.jpg

图4  数据库身份证明

单击“下一步”按钮,进入如图5所示的存储选项界面,该界面用于选择数据库的存储机制,通常可以选择文件系统存储,从Oracle 10g开始Oracle引入了自动存储管理(Automatic Storage Management)的新特性,我们将会在后面章节中详细介绍这一新特性。

099.jpg

图5  存储选项

单击“下一步”按钮,进入如图6所示的指定数据库文件所在位置界面,数据库文件存储位置可以选择“使用Oracle管理的文件”选项,这实际上就是利用了Oracle 9i中引入的一个新特新OMF(Oracle Managed Files)。

100.jpg

图6  指定数据库文件所在位置

单击“下一步”按钮,进入如图7所示的恢复配置界面,该界面用于指定快速恢复区(Flash Recovery Area),这是Oracle 10g的一个新特性,用于简化用户的备份管理,快速恢复区可以是磁盘上的一个存储目录,也可以使用ASM存储,这里可以按照具体的需要设置;同时还可以在这个页面上选择是否启动数据库的归档模式。

101.jpg

图7  恢复配置

单击“下一步”按钮,进入如图8所示的选择数据库组件和定制脚本界面,Oracle的数据库组件有很多,为了简化和快速安装,可以去除大部分选项(这要根据需要进行选择)。

103.2.JPG

图8  选择数据库组件和定制脚本

单击“下一步”按钮,进入如图9所示的初始化参数界面,其中内存选项可以暂时接受数据库的初始推荐,这些参数可以在建库后再进行修改。

104.jpg

图9  设置初始化参数

注意数据块大小需要认真选择,如图10所示,一旦创建数据库之后,这个参数将不可修改(从Oracle 9i开始,Oracle支持在同一数据库中容纳不同block_size的表空间,但是初始定义的block_size将用于SYSTEM、UNDO等表空间,不可修改)。

105.jpg

图10  设置数据块大小

字符集部分也需要认真选择,在中文的Windows平台上,默认的字符集就是ZHS16GBK,如图11所示,可以不需要修改,但是在Linux/UNIX下,如果系统语言环境缺省不是中文,则这里需要根据需要进行调整。

106.jpg

图11  设置字符集

对于连接模式,可以选择默认的“专用服务器模式”选项,如图12所示。

107.jpg

图12  选择数据库连接模式

单击“下一步”按钮,进入如图13所示的数据库存储界面,给出了存储及文件信息,可以按照需要进行调整,通常选择默认设置即可。

108.jpg

图13  数据库存储

单击“下一步”按钮,进入如图14所示的页面,控制文件选项中定义了对于控制文件至关重要的几个参数,这些参数在此一旦确定,以后只有重建控制文件才能修改。

109.jpg

图14  控制文件选项

单击“下一步”按钮,进入如图15所示的创建选项界面,可以选择将此前的设置存储为一个数据库模板,并生成创建数据库的脚本,如果接受“创建数据库”的选项,接下来就可以进行数据库的创建了(此处仅选择生成了模板和创建脚本)。

111.jpg

图15  创建选项

单击“完成”按钮,则可以看到模板的摘要信息,如图16所示。

112.JPG

图16  模板摘要信息

单击“确定”按钮,进入如图17所示的界面,数据库完成了脚本生成工作。如果选择了创建数据库,此时将开始数据库创建工作。

114.JPG

图17   生成脚本

 

在DBCA的最后一个步骤,保存生成了创建数据库的脚本,通过手工执行这些脚本,可以在命令行完成数据库的创建工作,这可以使我们摆脱图形界面的困扰,特别是在一些不易于运行图形界面的环境。此外,很多时候通过DBCA创建数据库可能会遇到一些错误,这些错误在图形界面下可能不易判断,但是通过命令行则要容易定位得多。

 

最后执行刚才生成的脚本就可以了,位置目录:

C:/oracle/admin/book/scripts/book.bat

 

待续... ... ... ... ... ... ... ...

 

 

 


推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了一个误删Oracle数据文件导致数据库无法打开的问题,并提供了解决方式。解决方式包括切换到mount状态、离线删除报错的数据文件等。 ... [详细]
  • 本文介绍了使用数据库管理员用户执行onstat -l命令来监控GBase8s数据库的物理日志和逻辑日志的使用情况,并强调了对已使用的逻辑日志是否及时备份的重要性。同时提供了监控方法和注意事项。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 1.直接在cmd窗口运行pipinstalljieba2.使用conda自带的安装工具condainstalljieba3.有一些模块是无法使用以上两种方式安装上ÿ ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
author-avatar
cdV陈海泰C
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有