仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 870|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL教程之手动创建 Oracle9i 数据库

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:33:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你不用花费很多时间和金钱来培训现有的职工,或者去花大价钱雇用那些拥有各种证书的开发者。因为MySQL的维护和管理在很大程度上是“傻瓜型”的。oracle|数据|数据库
手动创建Oracle9i数据库(转载)

(原文登载于2002年03月Linuxer杂志)



作者:何致|,美商甲骨文公司台湾分公司特约参谋



前几期我们分离切磋Oracle9i中心要素与数据库实体构成,信任人人关于Oracle9i数据库服务器已具有必定水平的懂得了。本期我将先容手动建置Oracle9i数据库的步骤与相干注重事项。



本文内容将涵盖以下主题:

n创建数据库的前置事情

n肇端参数档的主要参数

n手动创建Oracle9i数据库的步骤

n怎样移除Oracle9i数据库



不论缘故原由为什么,当您筹办自行创建Oracle9i数据库时,都必需事前做好妥帖筹办。由于手动创建Oracle9i数据库并非件简单的事,大概的话应当只管利用Oracle9i供应的「数据库建置帮助精灵」来创建新数据库。可是要想成为一个及格的OracleDBA,您也必需熟稔手动创建数据库的体例,才干面临建置Oracle9i数据库所大概碰着的任何成绩。



起首我们先看看创建Oracle9i数据库之前应注重那些事变。



创建Oracle9i数据库的前置处置事情

在入手下手创建新的Oracle9i数据库之前,倡议您先做好以下筹办事情:

n评价材料表与索引的寄存地位,并预估其所需空间(假如大概的话)。

n计划操纵体系下数据库实体档案的部署体例—优秀的档案设置将年夜幅改良材料存取效能。不论是安装Oracle服务器软件或是建置新数据库时,都必需出格注重这点。比方说,您能够将重置日记文件(RedoLogfiles)置于别的磁盘或是RAID1磁盘阵列上;而将数据文件置于RAID5磁盘阵列上。

n选定「全域数据库称号」(globaldatabasename)—它是在网际收集上辨认Oracle9i数据库的体例,由数据库称号与网域称号构成,分离设定在肇端参数档的DB_NAME与DB_DOMAIN参数内。

n熟习肇端参数档内较主要的参数,乃至「服务器参数档」(serverparameterfile)的利用机会与其服从。

n选定得当的数据库字符集。一切字符材料都是按照特定字符集存进数据库,因而您必需在创建数据库时指定得当字符集(注[1])。

n选定「尺度材料区块」巨细—设定在肇端参数档的DB_BLOCK_SIZE参数。除SYSTEM材料表空间,别的材料表空间也能够遵守「尺度材料区块」的设定。别的,在Oracle9i数据库中,您能够设定分外四种「非尺度材料区块」。必要注重的是,「尺度材料区块」巨细在数据库创建完成后即没法变动。

n针对将来数据库的运作情形,订立一份优秀的数据库备份企图,以便数据库毁损时能在最短工夫内予以修复。

n熟习Oracle9i数据库的激活/封闭体例,与其搭配的各类选项(如STARTUP指令的nomount、mount、open选项)。

n确认物理内存是不是足以激活Oracle9iInstance。

n确认Oracle9i服务器机的磁盘空间充足,以建置新数据库。



除本文说起的注重事项,您也能够查阅各类操纵体系专属的Oracle9i安装指南,以猎取更细致的信息。



选择数据库建置体例

Oracle9i数据库建置历程包括以下三项次要事情:

n建置新的数据库实体档案,包括材料文件、重置日记文件。

n创建把持档,并予以初始化。

n建置Oracle9i存取数据库体系时需要的数据字典(datadictionary)。



实践上,您大概经过以下三种体例之一来建置新的Oracle9i数据库时:

n利用Oracle「数据库建置组态精灵」(DatabaseConfigurationAssistant,DBCA)。

OracleUniversalInstaller在安装过程当中会合时激活DBCA帮忙您创建数据库,视您选择的安装品种而定。DBCA将以图形接口体例引诱您慢慢完成Oracle9i数据库的建置事情。如果安装历程未激活DBCA,您也能够过后独自激活DBCA创建新数据库,乃至创建第二个Oracle9i数据库。

n实行指令文件(script)手动创建Oracle9i数据库

假如您手边刚好保留着前次创建Oracle9i数据库所用的指令文件,那末您能够间接编修该指令文件,并予以实行。不然,倡议您利用Oracle9i供应的典范指令文件举行编修。Oracle9i不但供应了数据库建置典范指令文件,也供应了肇端参数典范文件。您可视实践必要举行需要调剂。

n移转(migrate)或晋级(upgrade)既无数据库。

假如您的使用体系正在存取既有Oracle数据库,除非您必要一个全新的数据库或是测试用情况,不然应当不必要创建新数据库。在此情形下,您所面对的将是数据库移转或晋级议题。有关这方面的细致信息,请参阅《Oracle9iDatabaseMigration》手册。



再谈肇端参数档

还记得上一期已经提过的肇端参数档吗?由于手动创建Oracle9i数据库之前必需先激活Oracle9iInstance,因而您必需先创建一个肇端参数档。创建新的肇端参数档时,最疾速的体例就是编纂Oracle9i供应的典范档案,然后另存新档。我较习气的体例是间接编纂既有肇端参数档之复本,然后视实践必要举行调剂。由于肇端参数档可供设定的参数十分多,假如某些参数未经由明白设定,Oracle9i会主动代进默许值。

第一次以手动体例创建Oracle数据库时,倡议您尽量不要修正各肇端参数值。比及您熟习每一个参数的意义与利用机会以后,再使用笔墨编纂器调剂或新增别的参数。除此以外,Oracle9i同意您创建服务器参数文件(以二进制格局寄存)。该档案内的参数可在Oracle9iInstance激活后实行ALTERSYSTEM指令予以修正。



以下是建置新数据库之前必需新增或编纂的肇端参数,包含:

n全域数据库称号

n把持文件称号与路径

n材料区块巨细

n影响SGA容量的肇端参数

n设定处置程序最年夜数量

n设定空间复兴(Undo)办理办法



设定全域数据库称号

Oracle9i的全域数据库称号由「数据库称号」与「网域称号」所构成,个中「数据库称号」设定于DB_NAME肇端参数,而「网域称号」则是设定于DB_DOMAIN参数。这两个参数兼并以后就能够在网际收集上独一辨认每个Oracle9i数据库。举例来讲,假定我们欲创建的Oracle9i数据库之全域数据库称号为mydb.uuu.com.tw,那末可在肇端参数档内设定以下两参数:




DB_NAME=mydb

DB_DOMAIN=uuu.com.tw








Tips:

您能够实行ALTERDATABASERENAMEGLOBAL_NAME指令变动Oracle9i数据库的全域数据库称号;在您变动DB_NAME与DB_DOMAIN这两个肇端参数后必需将Oracle9i数据库从头激活才会失效。别的,把持档也必需从头创建。



关于DB_NAME肇端参数

DB_NAME必需是笔墨字符串,且不克不及凌驾8个字符。在创建数据库的过程当中,DB_NAME设定值会纪录在材料文件、把持文件、和重置日记文件当中。假如您激活Oracle9iInstance的时分,肇端参数档内设定的DB_NAME分歧于把持文件内所记录的,那末数据库将没法激活。



关于DB_DOMAIN肇端参数

DB_DOMAIN一般是数据库主机地点地位的网域称号。假如您欲创建的数据库将到场散布式数据库运算情况,请出格注重此参数的设定。



设定把持档

如前所述,把持文件是Oracle9i数据库内相称主要的档案。因而您必需在新的肇端参数档内到场CONTROL_FILE参数以设定把持文件之文件名与路径。当您实行CREATEDATABASE时,列在CONTROL_FILE当中的把持档将随之创建。假如肇端参数档疏忽了此项参数,则Oracle9i会在实行CREATEDATABASE指令时主动创建把持文件并定名之,然后放在体系预设路径下。

那末,假如CONTROL_NAME内设定的把持文件已存在于操纵体系下该怎样办呢?此时Oracle9i会主动掩盖既有的把持档。假如您想创建全新的把持档,请断定CONTROL_NAME设定的把持文件名不会与操纵体系下任何文件名反复。

按照已往履历,Oracle激烈倡议您为每一个数据库最少计划两个把持档,并分离在两个实体磁盘上。云云可制止任一把持文件毁损时形成体系停摆。





设定材料区块巨细

Oracle9i数据库内寄存材料的最小单元为「材料区块」(datablock)。数据库内「尺度材料区块」巨细是设定在肇端参数档之DB_BLOCK_SIZE参数。Oracle9i数据库内最主要的SYSTEM材料表空间就是以DB_LOCK_SIZE设定值为基本所创建。别的DB_BLOCK_SIZE也是创建新材料表空间时预设的材料区块巨细。除尺度材料区块巨细以外,Oracle9i撑持分外4种「非尺度材料区块」巨细。



关于DB_BLOCK_SIZE肇端参数

从Oracle9i入手下手,DB_BLOCK_SIZE所设定的仅是尺度材料区块巨细;尽年夜多半的数据库情况只必要设定该参数便可。一样平常来讲,DB_BLOCK_SIZE可设定为4K或8K。假如此参数未经设定,则Oracle9i会主动按照数据库地点操纵体系平台自行决意得当的材料区块巨细。

必要注重的是,尺度材料区块巨细在数据库创建以后就没法改动—除非重修数据库。假如数据库的「材料区块」巨细分歧于「操纵体系区块」巨细,那末倡议您将DB_BLOCK_SIZE设为「操纵体系区块」巨细之整数倍。假定操纵体系区块巨细为4K,则无妨设定DB_BLOCK_SIZE=8192。在某些情形下,如许的组态体例将会明显地提拔材料存取效能。



何谓「非尺度材料区块」?

由「非尺度材料区块」组成的材料表空间可经过CREATETABLESPACE指令搭配BLOCKSIZE子句创建之;其区块巨细设定值可为2K、4K、8K、16K、32。需注重的是此范例材料区块将遭到操纵体系情况限定,不是一切操纵体系都能够设定上述一切区块巨细。

欲利用「非尺度材料区块」时,您还必需得当组态SGA内数据库缓冲区的子缓冲区,体例是藉由DB_nK_CACHE_SIZE参数所设定(此参数容后申明)。

此项机制是Oracle9i提出的新功效,在转移数据库时出格好用。举例来讲,您的OLTP数据库大概将材料区块巨细设定为4K,可是材料仓储体系利用的数据库却将材料区块巨细设定为8K。藉由「非尺度材料区块」的机制,您就能够平顺地将OLTP数据库的材料转移到材料仓储体系的数据库。



影响SGA容量的肇端参数

此范例肇端参数将把持内存内「体系全域区」(SystemGlobalArea,SGA)的巨细,除SGA_MAX_SIZE以外,别的参数几近都能够经过ALTERSYSTEM指令静态地变动。借着此项特征,您能够在Oracle9iInstance运作时静态地增添或减少SGA容量。



设定「数据库缓冲区」巨细

一样平常情形下,Oracle9i数据库缓冲区(databasebuffercache)巨细是由肇端参数档DB_CACHE_SIZE参数所决意。此时数据库缓冲区是以「尺度材料区块」作为材料存取单元。假如您想在Oracle9i数据库利用多重材料区块巨细,则必需设定一组DB_BLOCK_SIZE与DB_nK_CACHE_SIZE参数。假如上述两项参数在肇端参数档未明白设定,则Oracle9i会主动设定得当的DB_CACHE_SIZE值,且将DB_nK_CACHE_SIZE设定为0。



关于DB_CACHE_SIZE肇端参数

在Oracle8i之前,数据库缓冲区巨细是由DB_BLOCK_BUFFERS与DB_BLOCK_SIZE所决意;从Oracle9i入手下手将由DB_CACHE_SIZE代替之。必要注重的是,DB_CACHE_SIZE是以DB_BLOCK_SIZE所设定的尺度材料区块巨细为基准。为了向前兼容,在Oracle9i中仍然能够设定DB_BLOCK_BUFFERS参数。可是DB_BLOCK_BUFFERS属于静态参数,没法在Oracle9i数据库运作时举行静态调剂,也不克不及与别的静态参数相互搭配利用。



关于DB_nK_CACHE_SIZE肇端参数

从Oracle9i入手下手供应了「非尺度材料区块」的撑持,可经过以下参数设定:

ØDB_2K_CACHE_SIZE

ØDB_4K_CACHE_SIZE

ØDB_8K_CACHE_SIZE

ØDB_16K_CACHE_SIZE

ØDB_32K_CACHE_SIZE.



各参数当中的nk便是设定非尺度材料区块的巨细。我以以下参数设定为例:


DB_BLOCK_SIZE=4096

DB_CACHE_SIZE=20M

DB_2K_CACHE_SIZE=10M

DB_8K_CACHE_SIZE=8M














利用上述参数所组态的数据库缓冲区将具有以下特征:

1.「尺度材料区块」巨细为4K。

2.「尺度材料区块」巨细组成的数据库缓冲区容量为20M。

3.第一种「非尺度材料区块」巨细为2K,其组成的缓冲区容量为10M。

4.第二种「非尺度材料区块」巨细为8K,其组成的缓冲区容量为8M。



请注重一点,DB_nK_CACHE_SIZE参数不克不及设定「尺度材料区块」之缓冲区巨细。举例来讲,假如DB_BLOCK_SIZE设定为4K,就不克不及再设定DB_4K_CACHE_SIZE参数。





设定「共享区」与「年夜型区」容量

SGA内的共享区(SharedPool)与年夜型区(LargePool)分离由SHARED_POOL_SIZE与LARGE_POOL_SIZE所设定;这两个参数都属于静态参数(注[2])。假如肇端参数档内未设定这两个参数,则Oracle9i将主动决意其得当巨细。



设定SGA的相干注重事项

SGA最年夜容量由SGA_MAX_SIZE所把持。您能够静态地改动该参数值,可是需注重SGA_MAX_SIZE为数据库缓冲区、共享区、年夜型区、和别的SGA组件之容量总和。各地区之巨细不克不及凌驾SGA_MAX_SIZE所设定。假如SGA_MAX_SIZE未设定,则Oracle9i会主动设定SGA_MAX_SIZE为一切SGA组件巨细之总和。



设定处置程序最年夜数目

肇端参数PROCESSESS可决意同工夫毗连Oracle9i的操纵体系程序最年夜数目。该参数值必需年夜于6;个中5个是Oracle9i背景处置程序,加上1个利用者处置程序。假定统一工夫您的Oracle9i数据库同工夫会有100利用者上线,那末PROCESSES最少应设定为105。



设定空间复兴办理体例

任何数据库都应当具有某种特别机制来确保买卖的分歧性与完全性。在Oracle9i数据库内即存有一份主要的买卖相干信息,以便需要时可退回(rollback)失利的买卖,或是复兴(undo)某个数据处置举措。Oracle将这些信息统称为「复兴项目」(undoentries)。Oracle9i的复兴项目寄存在「复兴材料表空间」(undotablespace)或是「退回区段」(rollbacksegments)。



UNDO_MANAGEMENT肇端参数

针对复兴项目标办理,肇端参数档的UNDO_MANAGEMENT可设定由以下两种体例之一激活Oracle9iInstance:

nAUTO:以”主动复兴办理形式”激活Oracle9iInstance;其复兴项目将贮存于「复兴材料表空间」。

nMANUAL:以”手动形式”激活Oracle9iInstance;其复兴项目将贮存于「退回区段」。



为了向前兼容,UNDO_MANAGEMENT的默许值为MANUAL。



关于UNDO_TABLESPACE肇端参数

当Oracle9iInstance以”主动办理形式”激活时,将实验寻觅第一个可用的「复兴材料表空间」以寄存「复兴项目」。假如实行CREATEDATABASE指令,且UNDO_MANAGEMENT设定为AUTO时,Oracle9i就会主动创建一个名为SYS_UNDOTBS的「复兴材料表空间」。此材料表空间将是”主动办理形式”下预设的「复兴材料表空间」。

别的,您还能够设定UNDO_TABLESPACE肇端参数,以明白指定Oracle9i所利用的「复兴材料表空间」为什么。假如体系内缺少可用的「复兴材料表空间」,则Oracle9iInstance固然能够激活,可是将利用SYSTEM退回区段。Oracle倡议您只管妥帖使用「复兴材料表空间」来代替「复兴区段」,由于前者不仅易于办理,也能够设定「复兴项目」之保护工夫。



关于ROLLBACK_SEGMENTS肇端参数

ROLLBACK_SEGMENTS肇端参数内列出连续串「非体系退回区段」之相干信息。当数据库以”手动形式”举行复兴项目办理时,Oracle9iInstance将会在激活时请求此范例退回区段。假如该参数内无任何设定值,则利用「体系退回区段」。Oracle9i数据库的ROLLBACK_SEGMENTS参数是为了向前兼容而保存,倡议您以「复兴材料表空间」代替之。



手动创建Oracle9i数据库

完成一切前置筹办事情以后,您就能够按照先前的计划创建Oracle9i数据库。有别于利用「数据库建置组态精灵」(DatabaseConfigurationAssistant),手动创建数据库的体例次要是实行CREATEDATABASE指令。以下是创建Oracle9i数据库mydb的完全步骤:

1.设定OracleSID

2.选择DBA考证体例

3.创建肇端参数档

4.激活OracleInstance

5.实行CREATEDATABASE指令

6.创建别的材料表空间

7.创建数据字典视不雅表



步骤1:设定OracleSID

在一样平常情形下,每一个Oracle9i数据库都必需对应一个Oracle9iInstance。以是在创建数据库之前,您必需先指定Oracle9iInstance的体系标识符(systemidentifier),此体系标识符就是俗称的OracleSID;您也能够将它视为Oracle9iInstance之称号。

由于OracleSID可用以辨识分歧的Oracle数据库,因而SID称号必需是独一的,可经过操纵体系的情况变量ORACLE_SID设定之(注[3])。以下典范将设定命据库所利用的OracleSID为mydb:


ORACLE_SID=mydb

exportORACLE_SID








步骤2:选择DBA考证体例

您必需经由数据库之考证手续,且被付与得当体系权限后才能够创建Oracle9i数据库。Oracle9i用来考证DBA的体例有两种,分离是「暗码文件考证」与「操纵体系考证」。倡议您第一次手动创建数据库时先利用oracle帐号(安装Oracle9i所用的帐号)经过「操纵体系考证」来登进SQL*Plus。有关暗码文件的创建与利用体例将在将来专栏中为人人具体先容。



步骤3:创建肇端参数档

为了简化办理举措,倡议您将肇端参数档置放于Oracle9i预设目次下,而且按照尺度格局为肇端参数档定名。Oracle9i肇端参数档名之格局为:


init<OracleSID称号>.ora




其预设寄存路径则为:


$ORACLE_HOME/dbs






以mydb数据库为例,肇端参数档称号可定名为initmydb.ora,并寄存在opt/oracle/product/9.0.1/dbs目次下(注[4])。云云一来,每当您欲实行STARTUP指令激活Oracle9iInstance时,体系会主动到预设目次下寻觅肇端参数档,不需分外指定PFILE选项。



以下典范肇端参数文件之部份内容:


SampleInitializationParameterFile

#CacheandI/O

DB_BLOCK_SIZE=4096

DB_CACHE_SIZE=20971520

#DiagnosticsandStatistics

BACKGROUND_DUMP_DEST=$ORACLE_HOME/admin/mydb/bdump

CORE_DUMP_DEST=$ORACLE_HOME/admin/mydb/cdump

TIMED_STATISTICS=TRUE

USER_DUMP_DEST=$ORACLE_HOME/admin/mydb/udump

#ControlFileConfiguration

CONTROL_FILES=("$ORACLE_HOME/oradata/mydb/control01.ctl",

"$ORACLE_HOME/oradata/mydb/control02.ctl",

"$ORACLE_HOME/oradata/mydb/control03.ctl")

#Archive

LOG_ARCHIVE_DEST_1=LOCATION=$ORACLE_HOME/oradata/mydb/archive

LOG_ARCHIVE_FORMAT=%t_%s.dbf

LOG_ARCHIVE_START=TRUE

#Miscellaneous

COMPATIBLE=9.0.0

DB_NAME=ora901

#Distributed,ReplicationandSnapshot

DB_DOMAIN=uuu.com.tw

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

#NetworkRegistration

INSTANCE_NAME=ora901

#Pools

JAVA_POOL_SIZE=31457280

LARGE_POOL_SIZE=1048576

SHARED_POOL_SIZE=52428800

#ProcessesandSessions

PROCESSES=150

#RedoLogandRecovery

FAST_START_MTTR_TARGET=300

#ResourceManager

RESOURCE_MANAGER_PLAN=SYSTEM_PLAN

#Sort,HashJoins,BitmapIndexes

SORT_AREA_SIZE=524288














































































步骤4:激活OracleInstance

在Oracle9i数据库中,较经常使用来激活Oracle9iInstance的体例是利用SQL*Plus与Oracle9iEnterpriseManager。之前者为例,您必需先辈进SQL*Plus情况,然后切换为sysdba身份,体例为:


$SQLPLUS/nolog

CONNECT/ASsysdba










接上去您必需实行STARTUP指令将Oracle9iInstance开启至NOMOUNT形态。一样平常来讲,只要在创建新数据库,或是举行特定命据库保护事情时才会将Instance开启至NOMOUNT形态。由于将Instance开启至MOUNT形态时就会实验挂载Oracle9i实体数据库。试想,若体系自己还没有创建数据库实体档案,怎样大概Instance开启至MOUNT或是OPEN形态呢?以下是STARTUP指令的实行体例:


STARTUPNOMOUNT








此为STARTUP指令最基础的实行体例。由于我们将肇端参数文件置于预设目次($ORACLE_HOME/dbs)下,以是不需指定PFILE选项。不然,您所实行的STARTUP指令应当相似于:


STARTUPNOMOUNTpfile=$ORACLE_HOME/pfile/initmydb.ora








停止今朝为止,我们才算是完成实行CREATEDATABASE指令前的一切筹办事情—在内存内已顺遂设置SGA,并激活各类背景处置程序。但此时体系自己还没有存在任何实体数据库。接上去是最主要的步骤—实行CREATEDATABASE指令。



步骤5:实行CREATEDATABASE指令

当您实行CREATEDATABASE指令创建新数据库时,Oracle9i会完成以下各项次要事情:

n创建新数据库的实体档案,如材料文件、重置日记文件。

n更新把持文件内相干信息。

n创建SYSTEM材料表空间与SYSTEM退回区段(rollbacksegment)。

n创建数据字典

n设定命据库利用的字符集

n设定命据库地点时区



以下是CREATEDATABASE指令之典范:




CREATEDATABASEmydb

MAXINSTANCES1

MAXLOGHISTORY1

MAXLOGFILES5

MAXLOGMEMBERS5

MAXDATAFILES100

DATAFILE$ORACLE_HOME/oradata/mydb/system01.dbfSIZE200MREUSE

UNDOTABLESPACEundotbsDATAFILE

$ORACLE_HOME/oradata/mydb/undotbs01.dbf

SIZE200MREUSEAUTOEXTENDONNEXT2048KMAXSIZEUNLIMITED

DEFAULTTEMPORARYTABLESPACEtemptbs1

CHARACTERSETZHT16BIG5

NATIONALCHARACTERSETAL16UTF16

LOGFILEGROUP1($ORACLE_HOME/oradata/mydb/redo01.log)SIZE100M,

GROUP2($ORACLE_HOME/oradata/mydb/redo02.log)SIZE100M,

GROUP3($ORACLE_HOME/oradata/ora901/redo03.log)SIZE100M;


































我将以上CREATEDATABASE指令较主要的部分收拾以下:

n数据库称号为mydb,其全域数据库称号(globaldatabasename)为mydb.uuu.com.tw。

n按照肇端参数档CONTROL_FILES参数所设定的称号与路径分离创建三个把持档。

nMAXINSTANCES参数:可用来开启该数据库的Instance数量。

nMAXDATAFILES参数:该数据库所具有的最年夜数据文件数目。

n如DATAFILE子句所设定,该数据库SYSTEM材料表空间所绝对应的操纵体系档案为$ORACLE_HOME/oradata/mydb/system01.dbf。假设该档案已事前存在,则予以覆写。

nUNDO_TABLESPACE用以创建与定名「复兴材料表空间」(undotablespace)。

nDEFAULT_TEMPORARY_TABLESPACE用以创建与定名该数据库预设的「临时材料表空间」。

nZHT16BIG5为数据库内寄存材料的字符集。

nAL16UTF16为「国际字符集」(NATIONALCHARACTERSET)设定值,为NCHAR、NCLOB、与NVARCHAR2等unicode字段所利用的字符集。AL16UTF16为SQLNCHAR材料型态预设的字符集,其编码体例为UTF-16。

n新数据库具有三个线上重置日记文件(onlineredologfiles),分离设定在LOGFILE子句中。MAXLOGHISTORY、MAXLOGFILES、与MAXLOGMEMBERS为重置日记文件的相干设定。

n由于CREATEDATABASE指令内并未包括ARCHIVELOG子句,以是该数据库其实不会举行重置日记文件的封存举措。您能够在数据库创建后实行ALTERDATABASE指令将数据库切换为「封存形式」(ARCHIVELOGmode)。肇端参数文件内与「封存形式」相干的参数为LOG_ARCHIVE_DEST_1、LOG_ARCHIVE_FORMAT、与LOG_ARCHIVE_START。

n在CREATEDATABASE指令内也可加上SETTIME_ZONE子句以设定命据库时区(timezone)。假如省略该子句,则数据库预设时区(timezone)与操纵体系时区不异。



步骤6:创建别的材料表空间

上期专栏内容中我们已经切磋过Oracle9i的材料表空间计划体例。以步骤5的CREATEDATABASE指令而言,新数据库内将只要一个SYSTEM材料表空间。为了更无效地利用及办理Oracle9i数据库,倡议您别的新增数个材料表空间,按照使用体系实践需求而定。以下指令分离创建users与indx数据表空间。




CREATETABLESPACEusersLOGGING

DATAFILE$ORACLE_HOME/oradata/mydb/users01.dbf

SIZE25MREUSEAUTOEXTENDONNEXT1280KMAXSIZEUNLIMITED

EXTENTMANAGEMENTLOCAL;



CREATETABLESPACEindxLOGGING

DATAFILE$ORACLE_HOME/oradata/mydb/indx01.dbf

SIZE25MREUSEAUTOEXTENDONNEXT1280KMAXSIZEUNLIMITED

EXTENTMANAGEMENTLOCAL;


























步骤7:创建数据字典视不雅表

除创建分外的材料表空间外,您还必需在数据库创建以后实行两个主要的指令文件:catelog.sql与cataproc.sql。这两个指令文件将在Oracle9i数据库内创建办理事情必备的视不雅表、同义字(synonyms)、和PL/SQL套件(packages)。

ncatalog.sql:

本指令文件内容为:在数据字典数据表上创建相干视不雅表、静态效能视不雅表、和存取各类视不雅表所用的同义字。别的,catalog.sql也会将这些视不雅表的利用权限受权给数据库利用者。

ncataproc.sql:

本指令文件内包括实行PL/SQL程序所需的一切指令文件。



移除Oracle9i数据库的体例

移除Oracle9i数据库的体例有两种。传统体例是手动删除一切数据库实体档案;较烦琐的体例是利用「数据库组态帮助精灵」。

假如您想手动移除先前创建的Oracle9i数据库,步骤大概会略微烦琐一点。由于一切数据库相干档案(包括材料文件、重置日记文件、把持文件、肇端参数文件、重置日记封存盘...等)都必需自操纵体系删除。假如您不分明这些档案的寄存地位,可查询V$DATAFILE、V$LOGFILE、与V$CONTROLFILE等数据字典视不雅表。假如您欲移除的数据库是设定在「封存形式」,那末倡议您先检视肇端参数档内LOG_ARCHIVE_DEST_n、LOG_ARCHIVE_DEST、与LOG_ARCHIVE_DUPLEX_DEST等参数,以便从操纵体系删除旧有重置日记封存盘。



结语

本期谈到怎样以手动体例建置Oracle9i数据库,和CREATEDATABASE指令的次要项目。但愿列位读者关于Oracle9i数据库的建置历程都能有必定水平的懂得。将来无机会我将为人人树模怎样经过「数据库组态帮助精灵」来建置Oracle9i数据库。届时您将发明,本来建置Oracle9i数据库居然云云复杂!



作者简介

何致|,特长为Oracle、SQLServer等年夜型数据库体系办理,材料仓储计划建置,和数据库使用程序体系开辟。具有MCSD、MCDBA,OracleOCP,RHCE,SCJP,BorlandJBuilderProductCertified等十余项国际认证。今朝正努力于Oracle9i使用体系开辟,并卖力Oracle9i系列书本中文明与OraclePress手艺校稿事情。他同时也是美商OraclecSunMicrosystems公司原厂认证讲师。您能够透过hochihyi@ms64.hinet.net与他接洽。





注[1]:有关Oracle9i数据库的字符集品种与称号,请参阅《Oracle9iGlobalizationSupportGuideRelease1》

注[2]:SHARED_POOL_SIZE与LARGE_POOL_SIZE在Oracle9i之前为静态变量。

注[3]:肇端参数档之DB_NAME参数值必需与ORACLE_SID完整符合。

注[4]:以我的Oracle9i数据库为例:ORACLE_BASE=/opt/oracle,而ORACLE_HOME=$ORACLE_BASE/product/9.0.1,以是肇端参数文件之预设目次应为opt/oracle/product/9.0.1/dbs。
这一切听起来不错,无疑DBaaS具有很多相对于RDBMS的优势。然而MySQL学习教程,DBaaS也有其局限性,云服务中固有的局限性就是之一。当客户开始将数据放入云端时,他们会遭遇到无法控制的网络性能问题。
小女巫 该用户已被删除
沙发
发表于 2015-1-18 18:32:08 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
活着的死人 该用户已被删除
板凳
发表于 2015-1-22 21:03:22 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
分手快乐 该用户已被删除
地板
发表于 2015-1-31 11:55:13 来自手机 | 只看该作者
发几份SQL课件,以飨阅者
金色的骷髅 该用户已被删除
5#
发表于 2015-2-6 19:24:43 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
蒙在股里 该用户已被删除
6#
发表于 2015-2-18 09:13:24 | 只看该作者
也可谈一下你是怎么优化存储过程的?
精灵巫婆 该用户已被删除
7#
发表于 2015-3-6 03:52:04 | 只看该作者
发几份SQL课件,以飨阅者
柔情似水 该用户已被删除
8#
发表于 2015-3-12 19:53:32 | 只看该作者
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-20 02:19:32 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 08:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表