Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302825
  • 博文数量: 94
  • 博客积分: 2220
  • 博客等级: 大尉
  • 技术积分: 975
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-17 21:17
文章分类

全部博文(94)

文章存档

2011年(5)

2010年(11)

2009年(1)

2008年(2)

2006年(1)

2005年(65)

2004年(9)

我的朋友

分类: DB2/Informix

2005-07-11 11:22:42

informix TRAIN文档(二)

 

informix TRAIN文档(三)

 


第三章 数据库服务器的初始化

第一节 数据库服务器初始化时的考虑

用户在建立和初始化其数据的时候,最重要考虑的问题是:数据存储实体选用哪种方案,rawevice 还是cookedfile,是否对数据库空间建立镜像,怎样建立?对于OnLine动态服务器7.1的使用者还可以考虑数据库系统是否需要数据复制的安全系统以及如何建立数据复制等等问题。

Raw devicecooked file对于OnLine来说其概念和管理是一致的,因此对较小的数据库系统 其效果相差无几,但对大数据库系统,由于cooked file采用unixI/O机制,而raw device则采用On-Line自身的I/O机制,因此在效率上raw device会明显快于cooked file,且raw device的数据安全性也 高于cooked file,假设用户不小心删除数据储存实体chunk的文件名后,以cooked file方式定义的数 据库将被删除,而以raw device方式定义的数据储存实体 Chunk 只是描述它的设备文件名被删除, 作为真正的存储数据的数据库空间并没有受到影响,通过重新建立设备文件名的方法,该数据储存实体不难恢复,而 cooked file 则无法恢复。

另外从效率上考虑,Raw device的使用在unix系统上还有块设备和字符设备之分,用unix命令ls-l列设备目录,我们可以看到,有些设备文件名的标识为b而另一些则为c,其中标识为c的设备为字符设备,作为OnLine数据储存实体来说,字符设备更有利于发挥主机服务器的DMA能力,所以 我们总是定义字符设备为数据储存实体。

数据存储空间的镜像与数据库服务器的复制是OnLine的数据安全机制,我们将在数据安全的章节中给以详细的讲述。

 


第二节 操作系统上的准备工作

在建立和初始化数据库服务器系统的时候,需要作的准备工作有以下几点:

1 为数据库所使用原始设备计划磁盘空间,并使得在UNIX操作系统上取得该原始设备的描述。

2 修改INFORMIX环境下的配置文件$INFORMIXDIR/etc/sqlhosts和计算机系统对网络节点、 网络端口的定义文件/etc/hosts/etc/hosts.equiv/etc/services

vi $INFORMIXDIR/etc/sqlhosts

online7 ontlitcp changsha sqlexec7

(虚拟服务器名) (网络协议类型) (主机名) (服务端口名)

# vi /etc/hosts

132.147.162.1 changsha

(网络结点) (主机名)

# vi /etc/hosts.equiv

changsha

(主机名)

# vi /etc/services

sqlexec7 8888/tcp

(服务端口名) (端口号)

 

3
调节操作系统的核心参数,以适应OnLine动态服务器7.1unix在共享内存及信号量等方面 的需要。

用系统提供的参数管理的工具 ( 例如SCO UNIXsysadmsh)来进行调整。需要调整的参数也因数据库产品的版本不同而有所不同,具体可以在成功地安装了数据库服务器后,查看$INFORMIX-DIR /release/ ONLINE_ 7.1中对操作系统参数要求的说明。

例如对于在SCO UNIX 3.2.4.2平台上使用OnLine7的用户,需要调整的核心参数有SHM MAXSHMSEGSHMMNISEMMNISEMMSL。因此用户可注册到 root,然后运行 sysad- msh ,在菜单中选择System,然后选择Configure,再选择Kernel,在Kernel选项中选择Parameter,然后调整第9Shared Data中的参数SHMMAXSHMSEGSHMMNI以及第8Semphore中的参数 SEMMNI SEMMSL,设置完毕后在Kernel选项中选择 Rebuild,重新构造unix引导核心。 然后退 出sysadmsh,并重新启动 unix。同时需要注意的是,在重新构造核心后,数据库服务器存储原始设 备名的属主和组定义的改变。

第三节 建立数据在磁盘上组织实体

数据在磁盘上以数据存储块的形式存在,但在逻辑上则是以数据库空间的形式存在。 每一个数据库空间至少有一个数据存储块,其中最先定义的数据存储块为主数据存储块,而其它的数据存储块则为附加数据存储块。同时在所有的数据库空间中必定有一个根数据库空间(rootdbs)。建立数据在磁盘上的组织实体是建立与逻辑概念的数据库空间相对应的数据存储块。数据存储块 的组织方式 有两种:原始磁盘设备形式和 UNIX文件形式。相比起来,原始磁盘设备形式具有较 高的运行效率和可靠性,但是原始磁盘设备形式的数据存储块的建立需要数据库管理员对数据库服务器所运行的系统的磁盘设备的描述具有足够的知识和经验。

原始磁盘设备形式的数据存储实体的建立方法是将一个特定的原始磁盘 (或部分磁盘) UNIX的链接命令ln链接到一个便于记忆和管理的设备文件。例如在 AT&T SVR4系统中,有一个磁盘/dev/rdsk/c0t1d1,而定义中的原始磁盘设备名为rootdbs1,因此数据库管理员以root用户注册, 然后用以下的命令来构造数据存储实体,

# cd $INFORMIXDIR

# ln /dev/rdsk/c0t1d1 rootdbs1

# chmod 660 rootdbs1

# chown informix rootdbs1

# chgrp informix rootdbs1

UNIX文件形式的数据存储实体的建立方法是产生一个0字节的UNIX文件,使用命令如下:

# cd $INFORMIXDIR

# cat /dev/null > rootdbs1

# chown informix rootdbs1

# chgrp informix rootdbs1

第四节 建立数据库服务器共享内存

至此,我们可以开始初始化数据库服务器,以informix用户注册,用命令onmonitor命令。在初始化前必须正确地定义了环境变量INFORMIXDIRPATHINFORMIXSERVER以及文件 $INFORMIXDIR/etc/sqlhosts/etc/hosts/etc/hosts.equiv/etc/services

首先注册到 informix,运行 onmonitor,在菜单中选择 Parameter,然后选择Initialize,便进 入数据库空间初始化的屏幕。然后设置在屏幕上显示的参数。

INTIALIZATION: Make desired changes and press ESC to record changes.

Press Interrupt to abort changes. Press F2 or CTRL-F for field-level help.

DISK PARAMETERS

Page Size [ 2] Kbytes Mirror [N]

Tape Dev. [/dev/rct0 ]

Block Size [ 16] Kbytes Total Tape Size [ 150000] Kbytes

Log Tape Dev. [/dev/rct0 ]

Block Size [ 16] Kbytes Total Tape Size [ 150000] Kbytes

 

Boot Name [rootdbs ] Root Size [ 20000] Kbytes

Primary Path [/usr/informix/rootdbs1 ]

Offset [ 0] Kbytes

Mirror Path [ ]

Offset [ 0] Kbytes

 

Phy. Log Size [ 1000] Kbytes Log. Log Size [ 500] Kbytes

Number of Logical Logs [ 6]

第一屏设置完成后按ESConmonitor在完成数据库空间初始化以后便接着要求用户设置共享内存。如果用户在以后需要调整共享内存时可以运行 onmonitor,然后选择Parameters菜单,再选 择 Shared-Memory项。对于初次调整共享内存,用户需要注意的是Server Number是不可以重复的,并且 Server Name以小写为好,尤其是对于用户需要建立分布式数据库系统的情况更为重要。可以说对用户影响最大的BUFFERSLOCKS

SHARED MEMORY: Make desired changes and press ESC to record changes.

Press Interrupt to abort changes. Press F2 or CTRL-F for field-level help.

SHARED MEMORY PARAMETERS

Server Number [ 10] Server Name [online7 ]

Server Aliases [ ]
Dbspace Temp [ ]
Deadlock Timeout [ 60] Secs Number of Page Cleaners [ 1]
Forced Residency [N] Stack Size (Kbytes) [ 32]
Non Res. SegSize (Kbytes) [8000]

 

Physical Log Buffer Size [ 32] Kbytes
Logical Log Buffer Size [ 32] Kbytes
MAX # of Logical Logs [ 6] Transaction Timeout [ 300]
MAX # of Transactions [ 20] Long TX HWM [ 50]
MAX # of Userthreads [ 20] Long TX HWM Exclusive [ 60]
MAX # of Locks [ 2000] Index Page Fill Factor [ 90]
MAX # of Buffers [ 200] Add SegSize (Kbytes) [ 8192]
MAX # of Chunks [ 8] Total Memory (Kbytes) [ 0]
MAX # of Open Tblspaces [ 200]
MAX # of Dbspaces [ 8]
Shared memory size [ 864] Kbytes Page size [ 2] Kbytes
Enter a unique value to be associated with this version of INFORMIX-OnLine.
设置完共享内存后按ESC键,OnLine便初始化共享内存,当OnLine成功地初始化共享内存后,OnLine便进入第三个屏幕数据库服务器性能参数调整。在这个屏幕中用户说明OnLine 动态服务器 7.1所运行的计算机是否一个SMP体系结构的计算机,若是则置 Multiprocessor Machine Y,否 则为N。当 Multiprocessor Machine Y时,用户可以进一步地设置有多少个服务器进程与 CPU 结合 (Num Procs to Affinity),并且从第几个CPU开始与数据库服务器进程结合 ( Proc num to start with)。 如果该计算机为单处理器计算机系统,则设置 Single CPU VPY,否则为N。怎样设置 CPU VP AIO VP,在“Informix ODS 性能指南”一书中有详细介绍。在屏幕的右下方是该数据库服务器 的网络链接形式的定义,它必须与$INFORMIXDIR/etc/sqlhosts中的设置相符。例如在$INFORMIX- DIR /etc/sqlhosts中定义数据库服务器online的网络链接形式为onsoctcp,则在 NETTYPE settings中设置Protocol soctcp ,其它项可先用其缺省 值。

 

PERFORMANCE: Make desired changes and press ESC to record changes.
Press Interrupt to abort changes. Press F2 or CTRL-F for field-level help.
PERFORMANCE TUNING PARAMETERS

 

Multiprocessor Machine [N] LRU Max Dirty [ 60]
Num Procs to Affinity [ 0] LRU Min Dirty [ 50]
Procs num to start with [ 0] Checkpoint Interval [ 300]
Num of Read Ahead Pages [ 4]
CPU VPs [ 1] Read Ahead Threashold [ 2]
AIO Vps [ 2]
Single CPU VP [Y] NETTYPE settings:
Use OS Time [N] Protocol Threads Users VP-class
Disable Priority Aging [N] [soctcp] [ ] [ ] [ ]
Off-Line Recovery Threads [ 10] [ ] [ ] [ ] [ ]
On-Line Recovery Threads [ 1] [ ] [ ] [ ] [ ]
Num of LRUS queues [ 8] [ ] [ ] [ ] [ ]
设置完这一屏参数后,按ESC。 接下来我们将设置动态数据复制、运行监控和并行数据操作等参数, 由于目前数据库系统处于初建阶段, 暂不考虑动态数据复制,当系统进入该屏幕后按 ESC

DATA REPLICATION: Make desired changes and press ESC to record changes.
Press Interrupt to abort changes. Press F2 or CTRL-F for field-level help.
DATA REPLICATION PARAMETERS

Interval [ 30]
Timeout [ 30]
Auto [0]
Lost & Found [/usr/informix/etc/dr.lostfound ]

这时系统进入运行监控屏幕,在这屏幕中我们将定义系统运行的信息日志文件以及当系统运行发现问题时,系统的运行状态将写到那一个目录下。

DIAGNOSTICS: Make desired changes and press ESC to record changes.
Press Interrupt to abort changes. Press F2 or CTRL-F for field-level help.
DIAGNOSTIC PARAMETERS

 

Message Log [/usr/informix/online.log ]
Console Msgs. [/dev/console ]
Alam Program [ ]
Dump Shared Memory [Y]
Dump Gcore [N]
Dump Core [N]
Dump Count [ 2]
Dump Directory [/tmp ]

设置完运行监控参数后,按ESC键。这时系统进入最后一个设置屏幕,并行数据操作屏幕, 由于我们刚开始建立数据库系统,暂不考虑并行数据操作参数的设置。 因此我们按ESC键来结束我 们的数据库服务器初始化操作过程。


PDQ: Make desired changes and press ESC to record changes.
Press Interrupt to abort changes. Press F2 or CTRL-F for field-level help.
PARALLEL DATABASE QUERIES PARAMETERS

PDQ Priority [100]
Maximun Priority [100]
Decision Support Queries [ 10]
Decision Support Memory (Kbytes) [ 8192]
Maximun Decision Support Scans [ 4]
Dataskip [ ]
Optimizer Hint [0]

当数据库服务器初始化成功时,系统处于quencent状态。这时用户可在菜单上选择Exit, 退出Parameters,然后选择Mode, 再选择 OnlineINFORMIX-OnLine便进入online状态。

第五节 初始化处理器资源

OnLine 动态服务器7.1采用多进程 多线索体系结构, 即用较少的数据库服务器进程来作所有的数据库操作, 因此处理器资源的利用将直接影响用户系统的运行性能。 处理器资源的初始化可以 的数据库系统初始化的过程中实现,也可以在以后用onmonitor实用程序的Parameters菜单中的 Perf -ormance项来进行,参数调整以后需重新启动数据库服务器才能有效。同时在系统的运行过程中,用户可以根据自己的需要,通过 onmonitor 实用程序的Mode菜单中的 Add-proc Dropproc 随时调整系 统的处理器资源,而不需要重新启动数据库服务器。

第六节 数据库服务器的状态

INFORMIX-OnLine具有五个不同的状态,它们分别是onlinequiesentrecoveryshut down offline。这五个状态分别是为OnLine运行中不同目的而设计的。

Mode: Startup On-line Graceful-shutdown Immediate-shutdown Take-offline ...

online 状态是系统响应联机用户数据库访问的状态。 在这个状态下,用户可以查询、插入 、 修改和删除他们的数据,以及各种简单或复杂的事务处理。

quiesent 状态是数据库管理员管理系统的状态。在这个状态下,除了数据库管理员,任何 普通用户都不能进入数据库系统,不能对数据库作任何的访问和操作。通常在这个状态下,数据库管理员进行数据备份、批量处理、调整 OnLine 参数以及其它各种数据 库系统的管理。

recovery 状态是OnLine为保持数据库一致性而进行的内部事务处理状态,因此这个状态拒绝任何人访问数据库系统,包括数据库管理员。

shutdown 状态是 OnLine关闭前的一个等待联机退出的状态。在这个状态下,已经进入数据库系统,并且正在进行数据库访问或操作的用户被要求尽快结束工作,退出数据库系统,而尚 未联机 和那些没有进行数据库访问和操作的用户将被拒绝进入数据库系统。

offline 状态是 OnLine 处于关闭的状态。

第七节 数据库服务器的启动与关闭

启动和关闭OnLine最简单的方法 onmonitor,选择Mode,然后用StartupOnline来启动数据 库服务器。 或者用Take-offine来关闭 数据 库服务器。

通过命令形式,oninit 启动数据库服务器;onmode -ky 关闭 数据 库服务器。

从系统管理的角度来看,最好是在系统启动的最后自动启动数据库服务器和在系统关闭时最先关闭数据库服务器。这样便需要建立启动文件和关闭文件。

SCOUNIX为例,启动文件建立在/etc/rc2.d目录下,其名字可以是S99informix,启动文件 如下:

INFORMIXSERVER=online7
INFORMIXDIR=/usr/informix
PATH=$PATH:$INFORMIXDIR/bin
export INFORMIXSERVER INFORMIXDIR PATH
exho "Start up OnLine Dynamic Server "
oninit&
ipcs -bm
命令ipcs用于检查unix系统的共享内存和信号量,用这种方法可以很容易地知道数据库服 务器 是否正常地启动。

关闭文件建立在/etc/rc0.d目录下,其名字可以是K01informix,关闭文件的内容如 下:

INFORMIXSERVER=online7
INFORMIXDIR=/usr/informix
PATH=$PATH:$INFORMIXDIR/bin
export INFORMIXSERVER INFORMIXDIR PATH
echo "Stop OnLine Dynamic Server"
onmode -ky&
ipcs –bm

informix TRAIN文档(四)

 

第四章 数据库服务器系统的管理

通过上一章的实践,用户可以建立起一个最初步的数据库服务器系统,它有一个数据库空间 Dbspace,该数据库空间被称作rootdbsrootdbs有一个数据存储块chunk。数据库服务器系统的定义、用户数据库和数据库日志都存放在这个chunk中。然而对于一个实际的数据库应用系统,希望数据库服务器系统的定义、用户数据库和数据库日志分别存放在不同的数据空间中,以达到比较理 想的运行效率和方便简洁的数据库系统管理。本章中我们将讨论如何为一个数据库服务器系统增 加 一个数据库空间Dbspace和如何为一个数据库空间增加一个数据存储块chunk

第一节 增加数据库空间 Dbspace

在自定义Dbspace前,用户必须为用户自定义的Dbspace定义一个数据储存块Chunk,然后启 动 onmonitor,用Dbspaces中的Craete将该 Chunk赋予用户自定义的Dbspace

例如在一个 SCO UNIX 应用系统中,用户需要为其应用数据库系统定义一个数据库空间 Dbspace, 其名字为 workdbs1,并且这个Dbspace的第一个Chunk的大小为100MB,其名字为 work dbs1_ primary。现在用户决定将 workdbs1_primary定义在/dev/rdsk/0sa所对应的磁盘空间上, 环境 变量 INFORMIXDIR=/usr/informix。步骤如下:

1.1 注册到 root

# cd /usr/informix
# ln /dev/rdsk/0sa workdbs1_primary
# chown informix workdbs1_primary
# chgrp informix workdbs1_primary
# chmod 660 workdbs1_primary
# exit

1.2 注册到 informix,

$ onmonitor

选择Dbspaces后按Enter键,再选择Create,屏幕上显示出增加Dbspace的格式。

用户在Dbspace Name中输入workdbs1,在Mirror中输入Y。在PRIMARY CHUNK INFORMATION下面的Full Pathname中输入/usr/informix/workdbs1_primary,在 Size 中输入 100000MIRROR CHUNK INFORMATION下面的Full Pathname为镜像数据存储块的全路径名, 在这里没有输入。然后按ESC键,数据库服务器系统就将用户自定义的数据库空间workdbs1 加入 rootdbs的管理区(保留页)中。

OnLine动态服务器7.1允许用户定义临时数据库空间 Tempdbs,如果某一个数据库空间是临 时数据库空间则置TempY,否则为N。当某一个数据库空间为临时数据库空间时,它同时需要在 共享内存的设置屏幕中的Temp Dbspace有正确的描述。

Press ESC to build a new dbspace.
Press Interrupt to cancel the option and return to the Dbspace menu.
Press F2 or CTRL-F for field level help.
CREATE DBSPACES
Dbspace Name [workdbs1 ] Mirror [N] Temp [N]
PRIMARY CHUNK INFORMATION:

 

Full Pathname [/usr/informix/workdbs1_primary ]


Offset [ ] Kbytes Size [ 100000] Kbytes

 

MIRROR CHUNK INFORMATION:


Full Pathname [ ]


Offset [ ]

或者通过命令形式增加Dbspace

$ onspaces -c spacename [-t] -p pathname -o offset -s size [-m path offset]

 

1.3 在用户自定义的数据库空间中建立数据库

启动isqldbaccess,选择Query-language后,再选择New项,输入

CREATE DATABASE stores IN workdbs1 WITH BUFFERED LOG

然后按ESC,运行这个SQL命令,一个带BUFFERED日志的数据库stores建立在数据库 空间workdbs1中。启动tbmonitoronmonitor,用户可以在Status中的Database项中看到自己所定义 的数据库。

 

第二节 增加数据储存实体 Chunck

数据库空间 Dbspace 仅仅是数据库存在的逻辑空间,数据库存在于真正的物理空间是数据储存块 Chunk, 因此它的空间总是有限的,当数据储存接近它的限度时,数据库管理员就要考虑 为这个数据库空间增加一个数据储存块 Chunk

增加一个数据存储块,其做法如下:

2.1 注册到 root;

# cd /usr/informix

# ln /dev/rdsk/1sa workdbs2_primary

# chown informix workdbs2_primary

# chgrp informix workdbs2_primary

# chmod 660 workdbs2_primary

# exit

2.2 注册到 informix

$ onmonitor

选择 Dbspaces 菜单后,再选择 Add_chunk,屏幕上显示出当前系统中所有的数据库空间, 移动光标上下键,将选中项移到需要增加 Chunk Dbsapce 上,按 Ctrl-B 键,在屏幕的Full Path- name 中输入/usr/informix/workdbs2_primary,并在Size项中输入100000,然后按ESC键。于是数据 库服务器系统为数据库空间 workdbs1 增加一个数据存储块 workdbs2_primary的定义。我们可以在 Status 菜单的 Spaces 选项中看到自己刚才为 workdbs1 定义的数据存储块 workdbs2_primary

Press ESC to build a new dbspace.

Press Interrupt to cancel the option and return to the Dbspace menu.

Press F2 or CTRL-F for field level help.

ADD CHUNKS

Dbspace Name [workdbs1 ] Mirror [N] Temp[N]

PRIMARY CHUNK INFORMATION:

Full Pathname [/usr/informix/workdbs2_primary ]

Offset [ ] Kbytes Size [ 100000] Kbytes

MIRROR CHUNK INFORMATION:

Full Pathname [ ]

Offset [ ]

或者通过命令形式增加chunk

$ onspaces -a spacename -p pathname -o offset -s size [-m path offset]

 

第三节 日志管理

日志是数据库服务器保证当数据库或Unix或主机服务器系统故障恢复后,用户数据库快速复原的安全机制。数据库服务器的日志有两种:物理日志 Physical Log和逻辑日志Logical Log。 当用户需要取数据而该数据又不在共享内存时,数据库服务器将它从磁盘读出并放入共享内存。这时,如果用户需要修改该记录,数据库服务器在该记录尚未被修改前,将该记录所在的数据页拷贝到物理日志,然后数据库服务器响应用户的修改要求,并将数据修改的轨迹写入逻辑日志。当用户想要滚回操作时,并且在数据修改的过程中数据库服务器没有做过Checkpoint, 数据库服务器将物理日志拷贝回该数据页,如果在数据修改的过程中数据库服务器已经做过Checkoint,数据库 服务器将根据数据修改时记录在逻辑日志中的数据变化轨迹来恢复原来的数据。不过大家要知道 这种机制只有在用户数据库是带日志的情形下才会起作用,由于需要比不带日志的数据库多写日志文件,因此它的效率会低于不带日志的数据库。但是一旦数据库服务器非正常关闭,在后一 次启动数据库服务器的时 候,数据库服务器会根据上次系统非正常关闭时留下来的日志文件来 恢复 数据的一致性,这种安全 机 制是以牺牲数据库操作效率为代价的。

物理日志保存数据在修改前的映像,一般情况下它占整个日志空间尺寸的1/4,当数据储存 实体空间增加后,日志空间的尺寸也需要调大。改变物理日志空间的大小可使用onmonitor 工具包, 启动 onmonitor,选择 Parameters菜单项后,再选择 Physical-log, 按回车,将物理日志的尺寸设置成需要的值,同时也可以将物理日志移到指定数据库空间中。

Press ESC to add physical log.

Press Interrupt to cancel the option and return to the Parameters menu.

Press F2 or CTRL-F for field level help.

 

ADDING PHYSICAL LOG

Physical Log Size [ 5000] Kbytes

Dbspace Name [rootdbs ]

或者通过命令形式改变物理日志文件的大小与位置:

$ onparams -p -d dbspace_name -s phy_log_size

 

逻辑日志保存数据在修改后的映像,一般情况下它占整个日志空间尺寸的3/4。逻辑日志空 间的尺寸为逻辑文件尺寸与逻辑日志文件个数的乘积。逻辑日志文件的个数不 得少于 3个。

启动 onmonitor,如果需要增加逻辑日志文件数选择 Parameters菜单项后再选择 Add-log,如果需要减 少逻 辑日志文件数选择 Parameter 菜单项后再选择Drplog。增加逻辑日志时只需在键盘上输入逻辑日志文件将加入的数据库空间名。如果用户需要将全部逻辑日志移到指定的数据库空间中去,则需要现在指定的数据库空间中加入足够的逻辑日志文件,然后作一次实际的0级备份和逻辑日志的自动备份(这两项备份将在下一节中讲述),最后将原来的数据库空间中逻辑日志文件删 除。

Press ESC to add a logical log.

Press Interrupt to cancel the option and return to the Parameters menu.

Press F2 or CTRL-F for field level help.

ADDING A LOGICAL LOG

Logical Log Size [ 5000] Kbytes

Dbspace Name [rootdbs ]

或者通过命令形式改变逻辑日志文件的大小,位置与个数:

$ onparams -a -d dbspace_name -s log_size (增加逻辑日志)

$ onparams -d -l log_id (删除逻辑日志)

 

第四节 数据备份和恢复

OnLine动态服务器7.1为数据库管理员提供一种联机的增量备份工具,在命令行时,数据库管理员可以用ontape来作数据备份和逻辑日志备份。还提供了一个具有交互界面和菜单驱动数据库 备份工具onarchive

OnLine 动态服务器7.1提供的增量的数据备份,它分成三级,即0 (Level 0)1 (Level 1)2(Level 2)0级备份为数据库空间的全备份,1级备份是最近一次的0 级备份以来的被修改数据备份,2级备份为最近一次0级备份或1级备份以来被修改数据的备份。在连续的两次同一级备份中,后一个备份将备份前一个备份已经备份了的数据,例如昨天和今天都做2级备份,则今天的备份必然包含昨天备份的数据。一次在同一个时候,数据库管理员所保留的数据备份磁盘最多应为三 个,即0级备份带、1级备份带和2级备份带。一套完整系统备份还应该包括逻辑日志备份带。

 

1 建立数据备份

OnLine动态服务器7.1的命令行数据备份的方法使用ontape命令,数据备份的参数选项为-s

$ ontape -s

这时数据库服务器会提示你将作哪一级的数据备份,你只需在键盘上输入012,然后按 回车即可。

2 恢复数据备份

OnLine 动态服务器7.1的数据恢复既可以在 offline 状态下进行也可以在 online 状态下进行。

OnLine动态服务器7.1采用ontape来恢复数据,在命令行状态下,数据恢复的选项参数为-r,

$ ontape -r

 

3 数据备份计划

有了一个良好的备份和恢复的工具以后,数据库管理员如何用好这个工具将是非常重要了。 能否用最少量的磁带、用最短的备份时间来保存最新的时间备份,其关键还在于数据备份的规划。

例如这样一个数据备份规划,每月的第一天作0级数据备份,每周的第一天作1级数据备份,每天作2级数据备份,当一天中同时需要作多个数据备份时,只做等级较低一级的数据备份。

 

第五节 数据储存实体镜象管理

数据储存块Chunk的镜像为数据库服务器系统的高可靠性和高可用性提供了必要的条件。数据储存块的镜像保证了数据库服务器系统在一部分数据磁盘或磁盘控制器故障的时候, 数据 不受损失和数据库服务器系统的继续运行。

1 为数据储存实体增加镜像实体

数据储存块Chunk的镜像必须首先在定义该实体所在的数据库空间Dbspace是镜像的,也就是说如果整个数据库空间Dbspace没有定义成镜像的话,那么组成这个Dbspace的数据存储块Chunk也就不能作镜像。

1.1 数据库空间首先被定义为镜像

这就需要在定义rootdbs和在增加Dbspace时将该Mirror定义成Y。那么对于那些在定义和在增加数据库空间Dbspace时没有定义MirrorY的情况怎样改成允许Mirror呢?这时需要数据库管理员首先将数据库服务器系统关闭,修改$ INFORMIXDIR/etc/onconfig中的MIRROR。当数据库服务器系统没有被定义为镜像的系统中,该项为0,而被定义为镜像的系统中,该项为1,因此对于那些需要 为没有定义成镜像的数据库服务器系统作数据库空间镜像时,数据库管理员必须首先将该项改成1

 

1.2 构造镜像

启动onmonitor,选择Dbspace菜单中的Mirror项打开数据库服务器系统镜像的开关。再选择同一菜单中的Status选项,这里列出了所有的数据库空间的镜像情况,刚才增加镜像的数据库空间的状态为X,说明这个数据库空间Dbspace增加了新的镜像数据存储块。移动上下光标键,将选中项移到MirrorX的行,按CtrlB,管理员可以看到原数据储存块的StatusPO,而刚才增加的镜像数据存储块的StatusMD,标识该镜像实体还没有激活。移动上下光标键,将选中项移到刚才增加的镜像数据存储块上,按Ctrl-B,这时数据库服务器系统自动进入recovery状态,在这个状态下,数据库服务器系统将完成将原数据存储块中信息拷贝到镜像数据存储块的操作。等到全部操作结束,数据库管理员完成了为一个数据库服务 器系统增加镜像的工作。

或者通过命令形式构造镜像。

$ onspaces -m spacename -p path -o offset -m path offset [-y]

 

2 恢复损坏的数据储存实体和镜像实体

当镜像中一对实体之一出现故障时,数据库服务器系统允许继续工作的,不必立即重构镜 像。数据库管理员在一个适宜时候对这对实体重构镜像。

恢复损坏的镜像,需要首先确认实体所对应的磁盘介质是否已经恢复。

当更换了实体对应的磁盘介质后,需要操作系统上重新定义这个磁盘介质。在一般情况下,用户所定义的数据储存实体和镜像实体的名字是逻辑的,因此只要重新将这个设备连接到原来的逻 辑名字即可。对于那些在数据库服务器系统中直接定义物理设备名为数据存储块的用户,则必须把新设备定义成原来损坏的设备名。

启动onmonitor,在 Dbspaces 菜单中选择Status项,这里列出了所有在数据库服务器系统中定义的数据库空间Dbspace 的状态,可以看到镜像损坏的数据库空间的Mirror项为M*。移动上下光 标键,将选中行移动改行 ,按Ctrl-B。这时管理员可以看到有损坏的数据存储块的 Status项为PD MD,前者表示原数据储存实体损坏, 而后者表示数据镜像实体损坏。

Press ESC to return to the Status Menu.

Move arrow keys to move the cursor

CHUNKS FOR account

Chunk Chunk Pages Pages Full Pathname of Chunk Status

id Offset In Chunk used

1 0 50000 25000 /usr/informix/workdbs1_primary PO

2 0 50000 50000 /usr/informix/workdbs1_mirror MD

---------------------------------------------------------------------------

移动上下光标键,将选中行移至损坏的数据存储块上(/usr/informix/workdbs1_mirror),按 Ctrl-B。这时数据库服务器系统自动进入recovery状态,StatusMR,在这个状态下,数据库服务器将完成这个数据库空间表的两个数据存储块的镜像重构的操作。完成这个操作后,数据存储块 /usr/informix/workdbs1_mirror的状态便从MR变成MO状态。

这样,数据库管理员完成了对损坏数据储存实体或数据镜像实体中数据的重构。

阅读(1579) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~