oracle 创建数据库方法范文.docx

上传人:b****9 文档编号:25072426 上传时间:2023-06-04 格式:DOCX 页数:23 大小:614.27KB
下载 相关 举报
oracle 创建数据库方法范文.docx_第1页
第1页 / 共23页
oracle 创建数据库方法范文.docx_第2页
第2页 / 共23页
oracle 创建数据库方法范文.docx_第3页
第3页 / 共23页
oracle 创建数据库方法范文.docx_第4页
第4页 / 共23页
oracle 创建数据库方法范文.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

oracle 创建数据库方法范文.docx

《oracle 创建数据库方法范文.docx》由会员分享,可在线阅读,更多相关《oracle 创建数据库方法范文.docx(23页珍藏版)》请在冰豆网上搜索。

oracle 创建数据库方法范文.docx

oracle创建数据库方法范文

3.1.3创建数据库

(1)

创建数据库有很多方法,我们可以选择在安装后打开"DB2第一步"启动面板来创建数据库,这个我们已经在第1章讲过了。

除此之外我们还可以通过CREATEDATABASE命令和创建数据库向导来创建数据库,下面我们分别讲解如何使用这两种方法创建数据库。

1.使用命令创建数据库

从命令行创建DB2数据库是相当简单的。

要创建数据库,必须调用DB2命令行处理程序(CommandLineProcessor,CLP)。

调用方法是在DB2程序组的CommandLineTools文件夹中选择CommandLineProcessor,或者从操作系统命令行执行命令db2cmddb2。

创建DB2数据库的语法如下:

1.CREATEDATABASEMYDB

您会问"就这么简单?

",是的,就这么简单!

CREATEDATABASE语句中唯一必需的选项就是数据库的名称。

数据库的命名规则是:

数据库名称可以由以下字符组成:

a-z、A-Z、0-9、@、#和$。

名称中的第一个字符必须是字母表字符、@、#或$;不能是数字或字母序列SYS、DBM或IBM。

注意,数据库名称不能超过8个字母。

数据库名称或数据库别名是一个唯一的字符串,包含前面描述的1个到8个字母、数字或键盘字符。

当然,有很多选项可供使用;不必只输入名称。

我们来研究一下这个命令实际上会导致什么情况。

1)DB2创建了什么

在发出CREATEDATABASE命令时,DB2会创建许多文件。

这些文件包括日志文件、配置信息、历史文件和3个默认的表空间。

这些表空间是:

SYSCATSPACE:

这是保存DB2系统编目的地方,系统编目跟踪与DB2对象相关联的所有元数据,即通常所说的"数据字典"。

TEMPSPACE1:

DB2用来放置分组、排序、连接和重组中间结果的临时工作区域。

USERSPACE1:

默认情况下存放所有用户对象(表、索引)的地方。

所有这些文件都放在默认安装路径的DB2目录中。

默认安装路径通常是安装DB2产品的路径。

对于简单的应用程序,这个默认配置应该可以满足需要。

但是,我们可能希望改变数据库文件的位置,或者改变DB2管理这些对象的方式。

接下来,我们将更详细地研究CREATEDATABASE命令。

对于从DB2V8进行迁移的用户,有一个特殊的注意事项:

在DB2V9之前,CREATEDATABASE命令会为上面列出的所有对象创建SMS表空间。

在DB2V9中,除了系统临时表空间外,所有表空间默认都将定义为自动存储(DMS)表空间。

2)CREATEDATABASE命令

DB2CREATEDATABASE命令的完整语法很复杂,下面说明了DBA感兴趣的大多数选项。

1.>>-CREATE--+-DATABASE-+-database-name-+----------------------+-->

2.'-DB-------''-|Databaseoptions|-'

数据库选项

1.CREATEDATABASE选项:

2.|--+----------------------------+------------------------------->

3.'-AUTOMATICSTORAGE--NO|YES--'

4.>--+---------------------------------------------+-------------->

5.'-ON----+-path--+-+--+----------------------+-'

6.'-drive-''-DBPATHON--+-path--+-'

7.'-drive-'

8.>--+-----------------------+------------------------------------>

9.'-ALIAS--database-alias-'

10.>--+----------------------------------------------+------------->

11.'-USINGCODESET--codeset--TERRITORY--territory-'

12.>--+-----------------------------------+------------------------>

13.|.-SYSTEM---------.|

14.'-COLLATEUSING--+-COMPATIBILITY--+-'

15.+-IDENTITY-------+

16.+-IDENTITY_16BIT-+

17.>--+---------------------------------------+-------------------->

18.'-CATALOGTABLESPACE--|tblspace-defn|-'

19.>--+------------------------------------+----------------------->

20.'-USERTABLESPACE--|tblspace-defn|-'

21.>--+-----------------------------------------+------------------>

22.'-TEMPORARYTABLESPACE--|tblspace-defn|-'

表空间选项

1.tblspace-defn:

2.|--MANAGEDBY--------------------------------------------------->

3.>--+-SYSTEMUSING--(----'container-string'-+--)--------------------------------+-->

4.+-DATABASEUSING--(----+-FILE---+--'container-string'--number-of-pages-+--)-+

5.|'-DEVICE-'|

6.'-AUTOMATICSTORAGE---------------------------------------------------------'

7.>--+-----------------------------+------------------------------>

8.'-EXTENTSIZE--number-of-pages-'

9.>--+-------------------------------+---------------------------->

10.'-PREFETCHSIZE--number-of-pages-'

11.>--+---------------------+--+---------------------------------+->

12.'-AUTORESIZE--+-NO--+-''-INITIALSIZE--integer--+-K|M|G-+-'

13.'-YES-'

14.>--+------------------------------------+----------------------->

15.'-INCREASESIZE--integer--+-PERCENT-+-'

16.'-+-K|M|G-'

17.>--+-------------------------------+----------------------------|

18.'-MAXSIZE--+-NONE-------------+-'

19.'-integer--+-K|M|G-'

3.1.3创建数据库

(2)

下面我们将学习这些选项以及如何使用它们。

数据库位置

CREATEDATABASE命令的参数之一是ONpath/drive选项。

这个选项告诉DB2希望在哪里创建数据库。

如果没有指定路径,就会在数据库管理程序设置(DFTDBPATH参数)中指定的默认数据库路径上创建数据库。

1.C:

\IBM\SQLLIB\BIN>db2getdbmcfg|find/i"DFTDBPATH"

2.默认数据库路径(DFTDBPATH)=C:

例如,以下的CREATEDATABASE命令将数据库放在Windows操作系统的D驱动器上的DATA目录中:

1.CREATEDATABASEMYDBOND:

\DATA

选择Automaticstorage(默认设置)允许DBA为数据库设置在创建所有表空间容器时可以使用的存储路径。

DBA不必显式地定义表空间的位置和大小,系统将自动地分配表空间。

例如,下面的数据库创建语句将为数据库中的所有表空间设置自动存储。

1.CREATEDATABASEMYDBAUTOMATICSTORAGEON

2./db2/mydbpath001,/db2/mydbpath002,/db2/mydbpath003

3.AUTORESIZEYESINITIALSIZE300MINCREASESIZE75MMAXSIZENONE

在AUTOMATEDSTORAGEON选项后面,给出了3个文件目录(路径)。

这3个路径是表空间的容器的位置。

其他的选项是:

AUTORESIZEYES:

当表空间用光空间时,系统将自动地扩展容器的大小。

INITIALSIZE300M:

没有定义初始大小的任何表空间的大小默认为300MB。

每个容器是100MB(因为有3个存储路径)。

INCREASESIZE75M(或百分数):

当表空间用光空间时,表空间的总空间增加75MB。

还可以指定一个百分数,在这种情况下,表空间会增长它的当前大小的百分数。

假如为20%,表示会比原来的空间增加20%。

MAXSIZENONE:

表空间的最大大小没有限制。

如果DBA希望限制一个表空间可以占用的存储空间,那么可以指定一个最大值。

当使用AUTOMATICSTORAGE定义表空间时,不需要提供其他参数:

1.CREATETABLESPACETESTMANAGEDBYAUTOMATICSTORAGE;

在这个命令中,可以提供与表空间相关联的任何参数;虽然使用自动存储可以大大简化日常的表空间维护,但是与重要的大型生产表相关联的表空间可能需要DBA更多地干预。

在没有启用自动存储的数据库中创建表空间时,必须指定MANAGEDBYSYSTEM或MANAGEDBYDATABASE子句。

使用这些子句会分别创建SMS表空间和DMS表空间。

在这两种情况下,都必须提供容器的显式列表。

如果数据库启用了自动存储,那么在定义表空间时还有另一个选择。

可以指定MANAGEDBYAUTOMATICSTORAGE子句,或者完全去掉MANAGEDBY子句(这意味着自动存储)。

在这种情况下,不提供容器定义,因为DB2会自动地分配容器。

代码页和整理次序

所有DB2字符数据类型(CHAR、VARCHAR、CLOB、DBCLOB)都有一个相关联的字符代码页。

可以认为代码页是一个对照表,用来将字母数字数据转换为数据库中存储的二进制数据。

一个DB2数据库只能使用一个代码页。

代码页是在CREATEDATABASE命令中使用CODESET和TERRITORY选项设置的。

代码页可以使用单一字节表示一个字母数字字符(单一字节可以表示256个独特元素),也可以使用多个字节。

英语等语言包含的独特字符相当少,因此单字节代码页(SBCS)对于存储数据足够了。

东亚国家语言(中文、日文、韩文等)需要超过256个元素才能表示所有的独特字符,因此需要多字节代码页(通常是双字节代码页DBCS)。

在默认情况下,数据库的整理次序根据CREATEDATABASE命令中使用的代码集进行定义。

如果指定选项COLLATEUSINGSYSTEM,就根据为数据库指定的TERRITORY对数据值进行比较。

如果使用选项COLLATEUSINGIDENTITY,那么以逐字节的方式使用二进制表示来比较所有值。

例如中文代码页为1386,codeset为GBK,TERRITORY为CN。

创建数据库时要注意选择合适的代码页,这些参数在数据库创建好后都不能再进行修改,务必要慎重选择。

如果客户端访问数据库服务器代码页不一样,将无法访问。

对于需要使用XML数据的应用程序,有一个特殊的注意事项。

当前,DB2只在定义为Unicode数据库才能同时存储XML文档和SQL数据的更多传统格式,比如整数、日期/时间、变长字符串等等。

随后,您将在这个数据库中创建对象来管理XML和其他类型的数据。

如果数据库在创建时没有启用Unicode支持,就不能在其中创建XML列。

假如要创建一个同时支持XML和SQL的数据库,请执行如下命令:

1.createdatabasexmldbusingcodesetUTF-8territoryus

一旦创建了Unicode数据库,您就不需要发出任何专门的命令或采取任何进一步措施来使DB2能够以它自身分层的格式存储XML数据和关系数据。

表空间定义

3个表空间(SYSCATSPACE、TEMPSPACE1、USERSPACE1)都是在默认目录中自动创建的(ON关键字),除非指定它们的位置。

对于每个表空间,DBA可以指定表空间应该使用的文件系统的特征。

3个表空间使用以下语法进行定义:

1.>--+---------------------------------------+-------------------->

2.'-CATALOGTABLESPACE--|tblspace-defn|-'

3.>--+------------------------------------+----------------------->

4.'-USERTABLESPACE--|tblspace-defn|-'

5.>--+-----------------------------------------+------------------>

6.'-TEMPORARYTABLESPACE--|tblspace-defn|-'

3.1.3创建数据库(3)

如果省略任何关键字,DB2将使用默认值来生成表空间。

表空间定义采用这些选项,其语法如下:

1.|--MANAGEDBY--------------------------------------------------->

2.|>--+-SYSTEMUSING--(----'container-string'-+--)--------------------------------+-->

3.'-DATABASEUSING--(----+-FILE---+--'container-string'

--number-of-pages-+--)-''-DEVICE-'

4.>--+-----------------------------+------------------------------>

5.'-EXTENTSIZE--number-of-pages-'

6.>--+-------------------------------+---------------------------->

7.'-PREFETCHSIZE--number-of-pages-'

注意,上面的语法不包括与自动存储数据库相关联的选项。

我们来详细看看这个语法。

MANAGEDBY选项让DB2生成这些表空间并决定如何管理空间。

SMS表空间使用SYSTEMUSING关键字,如下所示:

1.SYSTEMUSING('containerstring')

对于SMS表空间,容器字符串(containerstring)标识一个或多个将属于这个表空间的容器,表空间数据将存储在这些容器中。

每个容器字符串可以是绝对的或相对的目录名。

如果目录名不是绝对的,它就相对于数据库目录。

如果目录的任何部分不存在,数据库管理程序就会创建这个目录。

容器字符串的格式取决于操作系统。

使用DATABASEUSING关键字定义DMS表空间:

1.DATABASEUSING(FILE/DEVICE'containerstring'numberofpages|K|M|G)

对于DMS表空间,容器字符串标识一个或多个将属于这个表空间的容器,表空间数据将存储在这些容器中。

指定容器的类型(FILE或DEVICE)和大小(按照PAGESIZE大小的页面)。

大小还可以指定为一个整数,后面跟着K(表示千字节)、M(表示兆字节)或G(表示千兆字节)。

可以混合指定FILE和DEVICE容器。

对于FILE容器,容器字符串必须是绝对或相对的文件名。

如果文件名不是绝对的,它就相对于数据库目录。

如果目录名的任何部分不存在,数据库管理程序就会创建这个目录。

如果文件不存在,数据库管理程序就会创建这个文件并初始化为指定的大小。

对于DEVICE容器,容器字符串必须是设备名而且这个设备必须已经存在,对于DEVICE容器通常需要使用操作系统root权限创建逻辑卷并且赋予DB2实例使用的权限,一般通过UNIX/Linux的chown命令实现这一点。

重要提示:

所有容器必须在所有数据库上是唯一的;一个容器只能属于一个表空间。

1.EXTENTSIZEnumberofpages

EXTENTSIZE指定数据库可以写到一个容器中的PAGESIZE页面数量,达到这个数量之后将跳到下一个容器。

EXTENTSIZE值还可以指定为一个整数,后面跟着K、M或G。

数据库管理程序在存储数据时重复地循环使用各个容器。

EXTENTSIZE大小是在表空间级定义的。

一旦为表空间指定了扩展数据块大小,就不能改变了。

数据库配置参数DFT_EXTENT_SZ指定数据库中所有表空间的默认扩展数据块大小。

这个值的范围是2到256个页面;因此,绝对大小是从8KB到1024KB(对于4KB页面),或者从16KB到2048KB(对于8KB页面)。

可以在CREATETABLESPACE语句中使用EXTENTSIZE参数覆盖这个数字。

1.PREFETCHSIZEnumberofpages

PREFETCHSIZE指定在执行数据预获取时将从表空间中读取的PAGESIZE页面数量。

连续的预读取是指数据库管理程序能够提前预测查询,在实际引用页面之前读取这些页面。

这样查询就不需要等待底层操作系统执行I/O操作。

这种异步的检索可以显著减少执行时间。

可以通过修改CREATETABLESPACE语句中的PREFETCHSIZE参数来控制执行预获取的积极程度。

在默认情况下,这个值设置为DFT_PREFETCH_SZ数据库配置参数。

这个值代表在DB2触发预读取请求时每次读取多少个页面。

通过将这个值设置为扩展数据块大小的倍数,可以并行地读取多个扩展数据块。

当表空间的容器在不同的硬盘上时,这个功能甚至效率更高。

预读取大小还可以指定为一个整数,后面跟着K、M或G。

关于PREFETCHSIZE的设置,我们在后面表空间性能小节还会详细讲解。

CREATEDATABASE命令示例

下面是一个CREATEDATABASE命令的示例,它使用了前面讨论的许多选项。

1.CREATEDATABASEMYDB

2.DFT_EXTENT_SZ4

3.CATALOGTABLESPACEMANAGEDBYDATABASEUSING

4.(FILE'C:

\DB2DATA\CATALOG.DAT'2000,FILE'D:

\DB2DATA\CATALOG.DAT'2000)

5.EXTENTSIZE8

6.PREFETCHSIZE16

7.TEMPORARYTABLESPACEMANAGEDBYSYSTEMUSING

8.('C:

\TEMPTS','D:

\TEMPTS')

9.USERTABLESPACEMANAGEDBYDATABASEUSING

10.(FILE'C:

\TS\USERTS.DAT'1200)

11.EXTENTSIZE24

12.PREFETCHSIZE48

我们来详细地看看每一行:

CREATEDATABASE:

这个语句定义要创建的数据库的名称。

DFT_EXTENT_SZ4:

这个参数告诉DB2默认的扩展数据块大小是4个页面,除非在创建表空间时显式地声明,否则默认使用这个值。

CATALOGTABLEPSACEMANAGEDBYDATABASEUSING:

DB2编目空间将由数据库管理。

FILE'C:

\....':

表空间的位置将跨两个文件,每个文件有2000个页面的空间。

EXTENTSIZE8:

EXTENTSIZE是8个页面。

这个设置会覆盖DFT_EXTENT_SZ。

PREFETCHSIZE16:

在查询处理期间,同时预读取16个页面。

TEMPORARYTABLESPACEMANAGEDBYSYSTEMUSING:

DB2使用的临时空间将由操作系统处理。

'C:

\TEMPTS'...:

临时空间将跨两个文件,文件的大小在DB2执行期间自动地调整。

USERTABLESPACEMANAGEDBYDATABASEUSING:

用户表空间(放置真正的表的地方)将由DB2直接管理。

FILE'C:

\TS\...':

这个空间只有一个容器,它由1200个页面组成。

EXTENTSIZE24:

USER表空间的EXTENTSIZE是24个页面。

PREFETCHSIZE48:

查询处理期间,同时预读取48个页面。

上面我们介绍了关于如何创建DB2数据库的背景知识。

在大多数情况下,CREATEDATABASE命令的默认值提供了一个可以满足开发和测试需要的数据库。

一旦决定将数据库转入生产环境,就需要对DB2使用的数据布局和表空间定义付出更大的努力。

尽管这需要做更多的规划工作,但是产生的数据库更容易管理,性能也可能更好。

关于这部分内容我们会在3.2节中详细讲解。

3.1.3创建数据库(4)

2.使用创建数据库向导创建数据库

如果感觉到通过上面命令创建数据库比较麻烦,您可以通过创建数据库向导来创建数据库,创建数据库向导将带领我们执行许多步骤来生成数据库。

向导首先询问数据库的名称、创建它的默认驱动器(如果没有指定其他驱动器,就会使用这个驱动器)和别名,如图3-7所示。

另外,可以添加关于数据库内容的注释。

(点击查看大图)图3-7指定数据库的名称、默认路径、别名等

关于图3-7有几点需要特别注意。

如果希望在数据库中使用XML列,那么它必须定义为UTF-8(EnabledatabaseforXML)。

另外,在DB2V9中自动存储是数据库的默认设置。

如果希望覆盖这个默认设置,就必须选择"我想手工管理存储器"选项。

创建数据库向导:

用户/编目/临时表

向导的后3个对话框要求填写关于如何创建用户、编目和临时表空间的信息。

如果选择"低维护"选项,向导就会创建SMS表空间。

如果选择"高性能",就需要指定用于这个表空间的设备和文件系统,如图3-8所示。

无论选择哪个选项,都可以指定希望分配给这个表空间的容器(文件、设备)。

如果单击"添加"按钮,将会显示另一个对话框,如图3-9所示,可以在这里定义要使用的容器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1