NC系统运行环境维护手册V1.1

更新时间:2024-06-06 02:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

NC系统运行环境维护手册V1.1

应用版本:NC211(win2000 server 、AIX4.3.3系统) 数据库版本:oracle8i(不分操作系统平台);DB2 UDB7.2

咨询服务器 2003-3-10

第一章 应用服务维护 ...................................................................................... 5

1. 安装NC211应用 ................................................................................................... 5

1.1 1.2

WIN2000 server系统上安装 .................................................................. 5 IBM AIX系统上安装 .................................................................................... 5

2. 配置中间件启动参数 ....................................................................................... 6

2.1 可见的中间件参数 ............................................................................................. 6

2.2 可设置的参数列表 ............................................................................................................ 7

2.3 设置方法 ................................................................................................................... 8 2.4 影响性能的参数 ................................................................................................... 9

3. 应用可能出现的问题及解决办法: ................................................... 10

3.1 端口被占用 ........................................................................................................... 10 3.2 登录界面出现,但选择登录公司后无内容显示 ............................ 11 3.3业务操作过程中的错误定位: .................................................................. 11

4.常用的AIX系统管理工具及操作命令 .................................................... 12

4.1 smit(smitty)工具 ........................................................................................... 12 4.2 常用命令 ................................................................................................................. 12

4.2.1 pwd ........................................................................................................................ 12 4.2.2 ls .......................................................................................................................... 12 4.3.3 mkdir ................................................................................................................... 13 4.3.4 rm .......................................................................................................................... 13 4.3.5 cp .......................................................................................................................... 13 4.3.6 mv .......................................................................................................................... 13 4.3.7 find ...................................................................................................................... 13 4.3.8 type ...................................................................................................................... 14 4.3.9 more ...................................................................................................................... 14 4.3.10 ps ........................................................................................................................ 14 4.3.11 kill ................................................................................................................... 14 4.3.12 vi ........................................................................................................................ 15

4.3.13 ftp ...................................................................................................................... 15 4.3.14 chmod ................................................................................................................. 16

第二章 oracle8i数据库维护 ........................................................................ 16 1. 创建数据库 ............................................................................................................... 16

1.1 建库工具 ................................................................................................................. 16 1.2 初始化参数设置 ................................................................................................. 16

1.2.1 shared_pool_size .......................................................................................... 16 1.2.2 db_block_size ................................................................................................. 17 1.2.3 db_block_buffers .......................................................................................... 17 1.2.4 log_buffer ........................................................................................................ 17 1.2.5 large_pool_size ............................................................................................. 18 1.2.6 processes .......................................................................................................... 18 1.2.7 open_cursors .................................................................................................... 18 1.2.8 sort_area_size sort_area_retained_size ........................................ 18 1.2.9 共享服务模式(多线程服务) .................................................................... 18

2.管理表空间及数据文件 ...................................................................................... 19 3. 管理回滚段 ............................................................................................................... 19 4. 管理用户表 ............................................................................................................... 19 5. 使用索引 ..................................................................................................................... 20 6. Exp/Imp(导出/导入) ......................................................................................... 22

第三章 DB2 通用数据库系统管理 ........................................................... 22

1、创建数据库 ........................................................................................................................... 22 1.1创建数据库 ....................................................................................................................... 22 1.2表空间管理 ....................................................................................................................... 23 1.2.1系统管理表空间(SMS) ........................................................................................ 23 1.2.2数据库管理表空间(DMS) ................................................................................... 23 1.3 Buffer Pool管理 ............................................................................................................... 24 2、实例和数据库的参数配置 ................................................................................................... 25 2.1参数概述 ........................................................................................................................... 25 2.2主要参数说明: ............................................................................................................... 26

3.数据移动 ............................................................................................................................... 27 3.2 EXPORT ..................................................................................................................... 27 3.3 IMPORT ...................................................................................................................... 27 4、备份和恢复 ........................................................................................................................... 28 4.1备份 ................................................................................................................................... 28 4.1.1、................................................................................................................................. 28 4.1.2、命令行操作 ............................................................................................................. 28 4.1.3、注意事项 ................................................................................................................. 28 4.2恢复 ................................................................................................................................... 29 4.2.1、................................................................................................................................. 29 4.2.2、命令行操作 ............................................................................................................. 29

第四章 客户端维护 .................................................................................................. 29 1. 客户端经常出现的问题 ................................................................................... 29 2. 对客户端的配置要求 ......................................................................................... 29 3. 对客户端Java plug_in的调整 ............................................................... 29

第五章 网络维护 ........................................................................................................ 30 1. 网络设置调整 .......................................................................................................... 30 2. 网络设备配置要求 .............................................................................................. 30

第一章 应用服务维护

1. 安装NC211应用

WIN2000 server系统上安装

NC211在WIN2000 server系统下的安装因较为简单,请参见安装盘中附带的install.html文件中说明。

IBM AIX系统上安装

a. 安装jdk1.3.1 for AIX4.3.3

安装NC211之前我们要确认AIX4.3.3系统下安装的jdk版本为1.3.1。如何知道当前jdk的版本在AIX“控制台”或telnet窗口中输入: java –fullversion命令,系统会将jdk完整的版本信息打印出来。如果当前jdk版本不对,可以从新的AIX4.3.3安装盘或IBM网站上下载获得jdk131安装(jdk131.rte)文件集。

利用AIX系统自带的smitty 工具来进行jdk131的安装,在AIX“控制台”或telnet窗口中输入:smitty按以下步骤选择:

Software Installation and Maintenance->Install and Update Software-> Install and Update from LATEST Availabel Software 在 INPUT device/directory for software 项目中输入jdk131.rte所在的路径后回车确认,系统会自动将jdk131安装到系统。 b. 为AIX4.3.3系统安装IBM-eucCN语言环境

在AIX“控制台”或telnet窗口中输入:smitty按以下步骤选择: System Environments->Manage Language Environment->Add Additional Language Environments 选择 IBM-eucCN 安装。这个安装过程需要AIX4.3.3安装盘的支持。 c. 安装NC211

(1) 将安装盘中nc211.zip文件在客户机上用winzip文件解压缩。将你所需

的模块安装程序用ftp工具以ASCII方式上传到AIX机器上。

(2) NC安装需要X-WINDOWS图形界面支持,所以必须在AIX机器上安装或在

安装了类似于Xmanager工具的客户端上做安装。 (3) 安装客户化。在命令窗口下输入: cd /nc211 (NC安装程序所在路径) export LANG=zh_CN

export JAVA_HOME=/usr/java131/ cd KHH2.11 (客户化安装程序所在路径) ./ncsetup_needjdk.sh

此时客户安装界面启动,有关于界面的操作过程与win2000平台下的安

装相同。

(4) 安装业务模块。客户化安装完成后在同一窗口中,输入: cd ..

cd ARAP2.11(NC业务模块安装程序所在路径) ./ncsetup_needjdk.sh

重复以上三条命令将所需的模块一一安装完成 (5) 数据源配置。仍在同一窗口中输入:

cd /usr/ufsoft/newcentury (NC代码安装路径) ./sysdeploy_needjdk.sh

具体配置与在win2000平台下没有差别。

2. 配置中间件启动参数

2.1 可见的中间件参数

在中间件启动时,会显示中间件的当前运行参数设置,如下所示: 当前的运行参数值状态: InRuntimeMode = true DebugLevel = 0

EnableSqlTrace = false EnableSqlDebug = false

EnableFixJdbcOdbc = true SupportTimeStamp = true AutoInsertSpace = false EnableServletDebug = false

EnableLogInvalidServletCall = false EnableSqlTranslate = true

bEnablePreparedStatement2Statement = true SupportSqlExport = false EnableBODebug = false

EnableDeadLockDetect = false Temp Directory = C:/TEMP

UFMW ControlFile = C:/TEMP/UFMWControl.ini

2.2 可设置的参数列表

设置类别 JAVA缓存 控制项说明 初始java内存堆;最大java内存堆 是否打印SQL语句执行信息 是否启动SQL语句跟踪 是否修JdbcOdbcBug 正类型 数值 布尔 布尔 布尔 布尔 布尔 布尔 布尔 布尔 缺省 改变缺省 -Xms500m -Xms1024m –Xmx2048m –Xmx500m false false true true false false true false -DEnableSqlDebug=true -DEnableSqlTrace=true -DEnableFixJdbcOdbc=false -DEnableSqlTranslate=false -DSupportSqlExport=true -DEnableDeadLockDetect=true -DSupportTimeStamp=false -DEnableGlobalGUConvert=true 是否启动SQL翻译器 数据库操作设置是否输出SQL至文件 是否支持死锁检测 是否支持时间戳处理 数据库操作是否启动GBCode<--Unicode转换 数据库操作是否启动GBCode-->Unicode转换 BO&Servlet调试 布尔 false -DEnableGlobalUGConvert=true 是否输出BO级调试信息 是否Log各个非法SerlvetCall至文件 布尔 布尔 false false -DEnableBODebug=true -DEnableLogInvalidServletCall=true 设置类别 控制项说明 是否打印通过Servlet调用信息 中间件控制文件 类型 布尔 字符 缺省 false C:/TEMP/UFMWControl.ini(非Windows下为/usr/tmp/UFMWControl.ini) ./ejbXMLs ./ejbXMLs c:/temp 改变缺省 -DEnableServletDebug=true -DControlFile=D:/TEMP/UFMWControl.ini 文件和目录控制EJB的配置文件目录 中间件的外挂服务配置目录 临时文件目录 字符 字符 字符 -DEJBConfigDir=d:\\conf\\ejb -DExtServiceConfigDir=d:\\conf\\ExtService -DTempDir=d:/temp 2.3 设置方法

在产品状态下,可以在中间件的启动文件(startup.bat(win2000)/startup_needjdk.sh(AIX))中,设置中间件的一些运行时参数,具体设置方式如下:

用文本编辑程序打开启动文件,转至调用java命令启动中间件的文本行,如: ??

%JAVA_HOME%\\bin\\java –Xms500m –Xmx500m -cp %_CLASSPATH% -Dnc.install.home.path=%NC_EXT_DIR%

ufmiddle.start.tomcat.StartMiddle .\\ierp\\bin\\prop.xml -DEJBConfigDir=./ejbXMLs -DExtServiceConfigDir=./ejbXMLs

??

将需要改变的设置项加到命令行的最后,如现在需要打印SQL语句执行信息,则将“-DEnableSqlDebug=true”,以空格分隔,加在命令行的最后,如下所示

??

%JAVA_HOME%\\bin\\java –Xms500m –Xmx500m -cp %_CLASSPATH% -Dnc.install.home.path=%NC_EXT_DIR%

ufmiddle.start.tomcat.StartMiddle .\\ierp\\bin\\prop.xml -DEJBConfigDir=./ejbXMLs -DExtServiceConfigDir=./ejbXMLs -DEnableSqlDebug=true

令来启动:

cd /usr/ufsoft/newcentury (NC代码安装路径)

中间件的启动文件设置完成后,需要重启中间件。对于AIX系统通过以下命

export LANG=zh_CN

export JAVA_HOME=/usr/java131/ ./startup_needjdk.sh

2.4 影响性能的参数

(1) 初始java内存堆、最大java内存堆

对于NC211产品这两个参数缺省值均为500m。这两个参数应设多少为合适呢?从应用性能的角度讲并不是越大越好,需要找到一个平衡点,因这两个参数的大小是受你的服务器的物理内存限制的,同时还受到操作系统支持的限制。我们可以利用以下工式来估算这两个值: 2*-Xms=-Xmx=(50%~60%)*memory ,也就是说对于一台实际物理内存为2G的服务器来说这-Xms值应用为500m,-Xmx值为1024m,但是对于运行在win2000系统平台上的进程它最大所能获得的内存为2G。 (2) 数据库操作设置参数

这些参数多用于数据库操作的跟踪如-DEnableSqlDebug=true,

-DEnableSqlTrace=true,-DSupportSqlExport=true等,跟踪为定位问题带来了条

件,当然他也会牺牲一点效率,在不需要对SQL进行跟踪输出时最好不要设置这些参数。 (3) JAVA内存回收机制

-server,-XX:MaxTenuringThreshold=0以及-XX:NewSize=24m参数来优化JAVA内存的回收机制。如下所示 ????

%JAVA_HOME%\\bin\\java –server –Xms500m –Xmx1024m -XX:MaxTenuringThreshold=0 -XX:NewSize=24m

-cp

%_CLASSPATH%

-Dnc.install.home.path=%NC_EXT_DIR%

-DEJBConfigDir=./ejbXMLs

ufmiddle.start.tomcat.StartMiddle -DExtServiceConfigDir=./ejbXMLs ????

.\\ierp\\bin\\prop.xml

-server:默认的是使用-client jvm.在1.3.1及其后有了server jvm,该虚拟机对服务器端的java应用程序在性能上做了有关优化。

-XX:MaxTenuringThreshold=0:该选项确定对象在新生代中age的程度;设置其为0使所有在一次gc期间依然生存的对象全部被拷贝到旧生代中去,而不是先拷贝到新生代中的survivor空间中。(这样能节省gc用在copying上的时间)

NewSize 和 MaxNewSize 绑定新生代的长度的低端和高端。

3. 应用可能出现的问题及解决办法:

3.1 端口被占用

启动应用,等待一两分钟后当在客户端IE游览器中输入地址确定后,页面显示“找不到该页”,此时很有可能是tomcat加载的端口被占用而加载tomcat失败。我们可以通过NCLogs目录下的日志文件(找修改时间最近的一个)来进一步定位。系统正常时日志文件值为:

????

2002-12-12 09:06:14 SO|2002-12-12 09:06:14 - PoolTcpConnector: Starting HttpConnectionHandler on 80 2002-12-12 09:06:14 StartTomcat 服务启动完成

2002-12-12 09:06:14 SO|2002-12-12 09:06:14 - PoolTcpConnector: Starting Ajp12ConnectionHandler on 8007 2002-12-12 09:06:14 SocketService 服务启动完成 2002-12-12 09:06:14 SO|系统启动完成,开始正常运转 ????

端口被占用,错误提示为: ????

2002-12-12 09:06:14 SO|2002-12-12 09:06:14 - PoolTcpConnector: Starting HttpConnectionHandler on 80 2002-12-12 09:06:14 StartTomcat JVM address on used ????

出现JVM address on used 原因为 80端口被占用。对于windows系统可能是WIN2000自带的IIS服务被打开,手动停止它:“开始”->“程序”->“管理工具”->“Internet服务管理器”,将Internet信息服务中的“默认web站点”及“管理web站点”服务均停止,见下图:

对于unix系统可能是安装了其它的web服务,将该web服务停止。不同的

unix系统会做不同的缺省web服务,停止web服务的命令也会不同,这可以请用户的系统管理员来做。

对于不能允许使用80及8007端口的系统来说,我们也可以通过修改%NCHOME%/conf/server.xml文件中的端口号来解决。

3.2 登录界面出现,但选择登录公司后无内容显示

当系统出现主界面后,此时点击“公司”栏处的选择框如果跳出的“单位目录”框是空的说明此时应用与数据库的连接不正常,出现这种不正常现象的可能有如下情况:

(1) 该帐套还未建公司,属正常现象。 (2) 数据源配制不正确。

(3) 数据库服务器被关闭了或网络连接不通。我们可以通过ping 数据库主机

ip来验证,如ping不通就得去机房查看是否已关机、网络是否正常。 (4) 数据库停止了。可用与数据库有关的其它工具来验证数据库是否确已停

止,若确认则重新启动数据库。如果数据库启动执行不正常。看看错误提示,一般的可能性为某一数据文件受到了损坏,可以用备份的数据进行恢复。

3.3业务操作过程中的错误定位:

当业务操作过程中出现错误时,首先要验证操作是否正确?有没有流程性的错误或者操作性错误。

当确认操作无误时,我们要打开日志文件看一看更详细的错误原因,日志文件在NC产品安装目录下的NCLogs目录中,为修改日期最近的那一个。问题多为两类:

第一类:数据库错误

这样的错误在日志文件中会记录具体的数据库错误号。我们可以根据数据库错误号及数据库错误信息文档来查知详细的错误原因、建议性的解决办法。这一类问题在定位时因有章可循相对清晰、容易一些。

第二类:代码错误

类问题在日志文件中记录的较为杂乱,相关的类被一一列示出来,不过我们要找重点也就是找错误提示部份,错误一般有以下几种:a. classNotfound 这说明相关的类在产品安装目录中找不到,我们就要来查看一下文件是不是不存在,对于unix平台还有可能是文件名大小写不同而造成找不到文件; b. 空指针错误 这一般是代码有误造成的;c. 无此方法 这一般是代码中某个调用的方法语法有误。 对于b,c类问题我们只能提交产品支持部从而获得正确的代码,提交时要附加操作界面截图及完整的日志文件。

4.常用的AIX系统管理工具及操作命令

4.1 smit(smitty)工具

smit(smitty)是用于系统管理的工具集。在控制台窗口中输入smit或smitty命令便可调出该工具集。该工具集提供“软件安装及维护”、“设备管理”、“系统存储空间管理”、“用户管理”、“通信服务”、“系统环境”等一系列系统设置工具;同时也提供“问题确定”、“性能和资源规划”等一系列设备问题定位及系统性能定位工具。大家应很好的利用此工具。

4.2 常用命令

4.2.1 pwd

说明:该命令用于查看当前所在路径(目录)

语法:type 示例: 4.2.2 ls

说明:用于显示当前目录下的文件及目录信息

语法:ls[-lACFLNRabcdefgilmnopqrstux][文件…];使用较多的为-l(列示祥

细信息)参数 示列:ls –l 结果说明:

大小(字节) -rwxr----- 1 225 db2iadm1 254 Dec 2 12:03 .profile -rw------- 1 225 db2iadm1 44 Dec 2 12:06 .sh_history -rw-r--r-- 1 225 db2iadm1 1821 Dec 2 12:06 smit.log -rw-r--r-- 1 225 db2iadm1 523 Dec 2 12:06 smit.script 所有组 所有者 创建日期 文件名 操作权限

4.3.3 mkdir 说明:创建新目录

语法:mkdir [-p][-m方式] 目录..

示例:mkdir ufsoft (在当前目录下新建下级目录ufsoft) 4.3.4 rm

说明:删除文件或目录

语法:rm [-firRe] 文件,-i 删除文件时要求用户确认。-rR 删除目录 示例:rm –R ufsoft(将ufsoft目录及其子目录从当前目录中删除) rm UF3001_0.log (删除文件) 4.3.5 cp

说明:将一个文件的内容拷贝到另一个文件,目标文件存在则被覆盖。 语法:cp [-pi] [-r|-R] 源 目录

示例:cp file1 file2 (将当前目录下的file1文件拷贝生成file2文件)

cp file1 ufsoft/newcentury/ (将当前目录下的文件file1拷贝到目录下) cp –r direct1 direct2 (将当前目录下的direct1目录拷贝生成direct2目录) 4.3.6 mv

说明:移动文件或文件重命名 语法:mv [-i|-f] 源 目标

示例:mv file_name1 file_name2 (将文件的名称由1改为2) mv file ufosft/newcentury(将文件移至目录下) 4.3.7 find

说明:查找文件或目录。提供了多种方式(名字、大小、权限)的查找。 语法:find 路径列表 [表达式列表]

表达式列表选项:-atime n (查找n天前被访问过的文件)

-mtime n (查找n天前被访问过的文件) -group gname(查找属于指定的组的文件)

-name fname(查找名称为fname的文件,fname可含通配符) -print(输出当前目录名)

示例:find ./ -name apache –print (从当前目录开始包括子目录查找名为apache

的文件或目录,并将所在的目录完整路径显示出来)

4.3.8 type

说明:从当前目录查找命令所在路径 语法:type 命令

示例:type startup_needjdk.sh (查找startup_needjdk.sh命令所在位置,显示完

整路径)

4.3.9 more

说明:显示文件内容

语法:more [-Ncdeilsuvz][-t 标记][-x 制表长度][-p命令][-n数字][-W任选

项][文件…]

示例:more +number file1 (从文件第number行开始显示) 4.3.10 ps

说明:显示系统中有关进程的状态

语法:ps [-ANaedfklm][-n namelist][-F format][-p proclist][-G|-g grouplist][-t

termlist][-U|-u userlist][-c classlist]

示例:ps –efl (e:显示当前系统中所有进程的信息;f:输出完整信息;l:输出全

部信息)

ps –ef|grep java (只显示java进程的所有信息) 4.3.11 kill

说明:中止当前动行的进程 语法:kill [-signal] pid 示例:kill 1 (pid是要中止的)

4.3.12 vi

说明:文本编辑器 语法:vi filename 与vi有关的主要操作: 移动光标:

j :将光标向下称动一个位置; k :将光标向上移动一个位置 - :将光标移动到前一行的开始处; + :将光标移动到下一行的开始处 0 :将光标移动到当前行的开始处; $ :将光标移动到当前行的结尾 w :将光标向前移动到下一个单词的第一个字符处。 e :将光标向前移动到下一个单词的最后一个字符处。 b :将光标向后移动到前一个单词的第一个字符处 在编辑缓冲区中移动:(注^f为ctrl+F) ^F :向下移动一屏; ^B :向上移动一屏 ^D :向下移动半屏; ^U :向上移动半屏 插入数据:

i :切换到输入状态,在光标前插入。 a :切换到输入状态,在光标后插入。 修改数据:

r :仅仅替换一个字符; 删除数据:

x :删除光标所在处的字符 D :从光标处一直删除到行的结尾 dd :删除当前的行

无论你使用什么命令,通过使用u命令可以恢复以前进行的任何删除。 查找一个模式:

/ :例 /mike ,在编辑缓冲区中查找”mike”这个名字。 替换一个模式:

使用s (substitute)命令。 :s/pattern/replacepattern

:%s/mike/jack/g ------ ‘%’代表编辑缓冲区中的所有的行,’g’将所有的’mike’均替换。 保存、退出:

:q! 不保存文件,直接退出编辑器; :wq 保存文件,然后退出 4.3.13 ftp

说明:传递文件。我们可以借助图形化的ftp(如cuteftp,leaftp)工具来更容易

的完成与AIX系统之间传递文件的工作。

要求:对于代码文件来说上传时使用’ASCII’传递模式,而对于备份的数据文

件来说我们要采用binary模式。

4.3.14 chmod

说明:更改文件访问权限 语法:chmod 权限 文件

示例:chmod +x startup_needjdk.sh(为文件增加执行权限)

chmod 777 startup_needjdk.sh(使所有用户不受限的读、写、执行文件)

第二章 oracle8i数据库维护

1. 创建数据库

1.1 建库工具

对于oracle8i我们可以通过“Database Configuration Assistant”工具来创建新的数据库。无论在何操作系统平台下,都可用命令“DBAssist”来启动该工具。

1.2 初始化参数设置

初始化参数中只有db_block_size在建库后不可修改,其它均可修改,修改

可以通过直接改变$ORACLE_BASE/admin//pfile/initSID.ora文件中的相应参数值来实现。对于共享池(shared_pool_size)、数据缓冲区(db_block_buffers*db_block_size)、日志缓冲区(log_buffer)、排序区(sort_area)、共享服务模式等应是我们特别关注的 1.2.1 shared_pool_size

用户发出的SQL语句及PLSQL过程server进程分析后会将语句及执行方案存放于共享池中,当下一次server进程收到同样的语句时就不需对语句再做分

析,直接依照执行方案去执行。所以我们希望共享池足够大来装下我们所有已执行过的语句及他们的执行方案,省去了分析过程,缩短了响应时间。

共享池的大小是通过初始化参数shared_pool_size来设定的。Shared_pool_size大小在创建数据库时被指定,数据单位为字节数,建库之后我们同样可以修改这个参数。到底应设多大合适呢?可以依照以下估算公式:

估算公式:shared_pool_size=50%*60%*physical memory(字节) 1.2.2 db_block_size

db_block_size是数据文件读取的最小的I/O单元。它的大小选择对数据库性能有一定影响。

db_block_size 缺省为4K,8K最大为64K,这个参数一旦建库就无法再修改。

既然db_block_size的值有多个选择我们选什么值合适呢?

估算依据:对于内存资源有限,业务量不大(即业务数据表的行值不会太多)

的情况db_block_size应设为4k或8k

对于内存很充余,业务数据表的行值很多的情况db_block_size

应用设为12K或16K

1.2.3 db_block_buffers

db_block_buffers设定数据缓冲区中的数据块的数目。SQL语句执行时,Server进程首先会去数据缓冲区中找返回给用户的数据值。当缓冲区没有时通过DBWR进程将数据从数据文件中读取写入数据冲区再传给用户,这便增加了响应时间、影响了使用效率。这一值设多少合适呢?我们以以下公式来估算:

估算公式:db_block_buffers=40%*60%*physical memory(字节)/db_block_size 1.2.4 log_buffer

log_buffer设定日志缓冲区的大小。数据库操作生成的日志文件先存放在日志缓冲区中,达到log_buffer的1/3或检查点时再写入日志文件,频繁的写操

作会影响性能。建库默认的大小是32K,我们应将它设为:

log_buffer=3145728

log_checkpoint_interval (检查点间隔,单位为字节)= 20000 1.2.5 large_pool_size

当数据库设为共享服务模式时,部份排序公使用大池。这个值的大小我们应

设为:

large_pool_size=20971520 1.2.6 processes

processes参数用来设定能启动的最大进程数。一般我们将它的值设为200。

1.2.7 open_cursors

open_cursors 用于查询分配给用户进程的私有sql区,应用应及时关闭cursors来有效利用内存。我们的应用时常会出现“超出游标数”这样的错误,所以我们应将这一参数设大一些。

估算值:open_cursors=500~800

1.2.8 sort_area_size sort_area_retained_size

sort_area_size用于存放SQL语句中涉及到group by 等部份的临时数据。建库时缺省值为65536,我们应用把它设大一些为:

sort_area_size= 41943040

sort_area_retained_size= 10485760 1.2.9 共享服务模式(多线程服务)

在建库时我们应选择“共享服务模式”,“调度程序数量”设为5,“每个调度程序的最大连接数量”设为5,“调度程序的最大数量”设为10,“服务器进程数量”设为5,“最大服务器进程数量”设为10

2.管理表空间及数据文件

数据库创建完成后,我们需要利用DBA Studio -> ”存储管理”工具来为此数据库新创建一个数据表空间、一个索引表空间。 DBA Studio 的启动命令为:oemapp dbastudio,创建的工作我们也可以通过客户端的DBA STUDIO工具来做。

数据表空间及索引表空间创建时“存储”项应选择“本地管理”的区管理方式。

数据表空间及索引表空间所对应的数据文件应分别存放在不同的磁盘以避免I/O冲突的发生。需要定期察看文件的使用状况,当空间不够时及时扩充。

回滚表空间数据文件一般在800M ,临时表空间数据文件的大小一般为200-500M 。

3. 管理回滚段

建库过程中系统会自动创建6个回滚段,根据需要要新建一些表空间,配置参数应与已有的回滚段相同。多少个回滚段才合适呢?用你系统的最大并发用户数除以4 即是你的系统所需要的回滚段数。

4. 管理用户表

对于新建的NC数据用户,我们要确认该用户使用的默认数据表空间是第2节中讲到的新建的数据表空间,这样才能保存NC的表数据是物理存放在该表空间对应的数据文件中的。

当NC安装完成、所有的客户化表及业务表已建立后,我们要对这些表的存储做一些调整。调整的工作可以通过以下几步来做:

a. 通过Sql*PLUS以NC数据用户连接数据库 b. 输入:spool c:\\alt_table.txt

select ‘alter table ’||tname||’ pctfree 20 pctused 60 storage(pctincrease

0);’ from tab where tabtype=’TABLE’;

spool off

c. alt_table.txt文件生成后,我们来执行该文件:

@c:\\alt_table.txt

此文件执行成功后,所有的NC数据表的pctfree均被改为20%,pctused改为60%,pctincrease改为0%

5. 使用索引

NC数据表创建过程中,基于主键的唯一索引也会自动被创建。如果安装过程中没有给索引指定单独的索引表空间而是与表数据混杂在一起,下面我们就要来做将他们分离的工作:

a. 通过Sql*PLUS以NC数据用户连接数据库 b. 输入:spool c:\\alt_index.txt select

‘alter

index

’||index_name||’

rebuild

tablespace

pctfree 0 storage(pctincrease 0);’ from user_indexes;

spool off

注:红字部份由你第2节中所创建的索引表空间的名称来替代。 c. alt_index.txt文件生成后,我们来执行该文件:

@alt_index.txt

NC产品索引的建立并不完整,所以我们必须参照一定的依据为NC数据表字段创建新的索引。

依据一:对两个有关联关系的表建立单字段索引,如gl_voucher(凭证表)与gl_detail(凭证分录表)均有一字段pk_voucher,pk_voucher在gl_voucher表中是主键;pk_voucher在gl_detail表中具有外键约束于gl_voucher表的pk_voucher字段值。这两个表便叫做具有关联关系,gl_voucher为主表,gl_detail为子表。对于具有这种关联关系的表,我们需要在子表上对这个关联字段加一般索引。可以利用DBA Studio->’方案’工具来加这个索引,同样也可用命令来创建索引,命令参照如下:

create index I_pk_voucher on gl_detail(pk_voucher) tablespace pctfree 0 storage(pctincrease 0);

具体哪些表的哪些字节为子表的关联字段呢?我们可以通过一语句来查询

得到:

SELECT A.TABLE_NAME,A.COLUMN_NAME FROM USER_CONS_COLUMNS A,USER_CONSTRAINTS B

WHERE A.CONSTRAINT_NAME=B.CONSTRAINT_NAME

AND B.CONSTRAINT_TYPE='R'; 所以我们就可拼得建这一类索引的脚本: a. 通过Sql*PLUS以NC数据用户连接数据库

b. 输入: spool c:\\cre_index1.txt

select ‘create index I_’||a.column_name||’ on ‘||a.table_name||’(‘||a.column_name||’) tablespace pctfree 0 storage(pctincrease 0);’ from user_cons_columns a,user_constraints b where a.constraint_name=b.constraint_name and b.constraint_type=’R’; spool off

c. cre_index1.txt文件生成后,我们来执行此文件便可将索引建立起来:

@c:\\cre_index1.txt

依据二:对于SQL语句中的分组字段建组合索引。如以下语句:

select column1,column2,sum(column3) from table1 group by column1,column2

我们的索引就要这样建:

create index I_column1_column2 on table(column1,column2) tablespace pctfree 0 storage(pctincrease 0); 建索引的字段顺序是先column1后column2,与group by 子句中字段顺序一致不能打乱。

我们又如何知道NC业务操作过程中哪些SQL语句有类似的操作呢?一我们看能不能从NC事业部中获得相应的SQL语句文档;二我们可以借助于日志文件。在中间件启动文件中加入 -DEnableSqlDebug=true 参数后,日志文件中会打印SQL语句执行信息,包括SQL语句及执行时间。我们重点针对那些执行时间较长的语句进行处理。

依据三:对where条件子句所涉及到的字段上酌情加索引。

对于这一类问题,我们只能借助于日志文件。花一定时间(比如两至三天)跟踪SQL语句的执行信息对于执行时间较长的语句进行分析,看where子句中所

涉及到的字段是否未建立索引同时还要看他们是否是编码、金额类型的字段。满足以上两条件后考虑增加索引。索引加完后对业务操作仍需跟踪一段时间看性能是否得到提升,若无变化或某些点出现性能下降将此索引删除。

6. Exp/Imp(导出/导入)

我们经常利用exp/imp工具来做数据的备份/恢复及数据迁移工作。 命令:exp

userid=system/manager@

file=d:\\nc.dmp

owner=ncadmin log=d:\\expnc.log

imp

userid=system/manager@

file=d:\\nc.dmp

fromuser=ncadmin touser=ncadmin2 buffer=2048000 commit=y log=d:\\impnc.log

作用:1. 将NC用户(ncadmin)数据通过exp命令导出以固有格式存放在

d:\\nc.dmp文件中;再通过imp命令将nc.dmp文件中的数据导给ncadmin2用户,使ncadmin用户的数据得以恢复。

2. 优化存储性能的作用。在数据的导出/导入过程中,会压缩数据块

中的碎片、将数据行重新排列,从而减少了行链接及行迁移,提升了数据读取的效率。

第三章 DB2 通用数据库系统管理

1、创建数据库 1.1创建数据库

在windows服务器上安装DB2产品时要选择创建实例,安装结束后在该实例下面创建数据库,可以使用控制中心也可以使用命令行,下面是命令行的一个例子(分为3步,NC中有些表较宽,需要pagesize 足够大的表空间): STEP 1) 创建数据库 DB2 CREATE DATABASE DB1 ON C: USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM USER TABLESPACE MANAGED BY DATABASE USING (FILE 'C:\\dms\%user.dms' 256000) EXTENTSIZE 32 PREFETCHSIZE 32 CATALOG TABLESPACE MANAGED BY SYSTEM USING ('C:\\dms\\catalog') EXTENTSIZE 8 PREFETCHSIZE 8 TEMPORARY TABLESPACE MANAGED BY SYSTEM USING ('C:\\dms\\temp') EXTENTSIZE 32 PREFETCHSIZE 32 STEP 2) 创建PAGESIZE=8KB的BUFFERPOOL : DB2 CREATE Bufferpool BP8K SIZE 250 PAGESIZE 8 K STEP 3) 创建PAGESIZE=8KB的表空间: DB2 CREATE REGULAR TABLESPACE USER8K PAGESIZE 8 K MANAGED BY DATABASE USING ( FILE 'C:\\dms\%user8k.dms' 12800) EXTENTSIZE 32 PREFETCHSIZE 32 BUFFERPOOL BP8K 注释:运行db2cmd命令就进入了DB2的命令行,以上提到的命令都可以在此运行,注意每条命令前面要加db2字符。

1.2表空间管理

当创建数据库时,总要创建三个表空间,即系统编目表空间、临时表空间、用户表空间,它们分别用于存放数据字典。用户可以选择其特性,比如,这三个表空间的类型和大小。 几个概念:

数据页大小(pagesize):在缺省情况下,表数据存储在4KB的数据页上,在4KB页上行的宽度不能超过4005字节,一行不会横跨多页。Pagesize在表空间级别上定义,安装NC系统时需要执行上文step2、3来创建pagesize=8k的表空间。 区段大小(extentsize):在表空间容器内部给单个数据库对象分配的空间。此分配的空间由多页组成,默认值通常是16。表空间的区段大小不能事后更改。 预取装大小(prefetchsize),在被查询引用之前,预取装(操作)读取查询所需的数据以便在执行查询前不必等待 I/O。该参数大小影响可从表空间中读取数据的速度,稍后可更改预取装大小。该参数取值应该是extentsize的整数倍;

1.2.1系统管理表空间(SMS)

在操作系统中,SMS容器用目录 (directories)来表示;在SMS表空间中的容器不预先分配它的存储空间。在创建表空间期间分配少量的存储空间。

1.2.2数据库管理表空间(DMS)

当表空间没有剩余空间时,需要为该表空间增加容器,可以使用alter tablespace语句进行,该操作也可以起到均衡I/O负载作用;可以使用裸设备,对win2k来说DMS表空间可以直接使用未格式化的分区或磁盘。通常,精心调整的DMS表空间性能优于SMS表空间。所以NC系统的用户表空间推荐使用DMS表空间。

与SMS相比,DMS存储模型有重要的好处。下面列出它的主要优点: 1).用户可以根据数据库对象的类型对它们存放位置进行更多的控制。表可以被分散到多个 DMS表空间中存放,允许将表数据与它的索引分开。

2).用户对于诸如后备和恢复这样的操作任务在管理上有着更多的灵活性。用户可以控制那些不被经常访问的数据项,比如 BLOBs它们可以将映象存放在不同的表空间中。这些BLOBs 可以包含那些既不被经常访问又不被经常更新的数据。 3).使用DMS表空间具有性能一的优势,因为 DB2了解更多有关数据存放方面的知识。如果使用用于 DMS表空间的设备,那么用户就可以避免使用操作系统的文件系统所带来的开销。 4).DMS表空间提供了方便的可伸缩性,因为用户能够动态的把容器增加到表空间。当增加新的容器时, DB2可以自动地完成数据的平衡分布任务。 5).如果用户了解自己表空间的最大值,那么可以考虑使用 DMS表空间。当插入数据库对象时,DMS会为它们预分配存储空间。数据库不需要与其它的应用程序争夺磁盘空间。如果用户了解自己表空间的最大值,那么可以考虑使用 DMS表空间。当插入数据库对象时,DMS会为它们预分配存储空间。数据库不需要与其它的应用程序争夺磁盘空间。

SMS和 DMS用户表空间的特性对照表 特性 能够在表空间中动态地增加容器数目吗? 能够把索引数据存放到不同的表空间中码? 能够把长型数据存放到单独的表空间中码? 表可以分散存放到多个表空间中码? 仅在需要时才分配空间? 表空间可以被定向到不同类型的磁盘空间码? 创建之后,区段大小能够改变码?

SMS DMS 不能 能 不能 能 不能 能 不能 能 是 否 是 否 不能 不能 1.3 Buffer Pool管理

缓冲区(buffer pool)的大小决定分配给服务器作为数据库高速缓存使用的数据页的数目。这些内存空间是应用程序第一次与数据库连接时分配,并且在最后一个应用程序与该数据库断开时被释放。这一内存空间作为数据库存取的数据高速缓存使用。如果缓存区足够大,将可减少磁盘 I/O 次数。作为经验法则,如果机器是专用数据库服务器,用户开始可以先使用50%的可用物理内存量。可以把临时表空间放入单独的缓冲池,以便为需要临时存储器的查询尤其是执行大量排序的查询提供更佳性能。 DB2 CREATE Bufferpool Bp01 SIZE 250 PAGESIZE 4 K 注释:创建bufferpool后要重启实例才能生效。

2、实例和数据库的参数配置 2.1参数概述

图3.1显示 DBM和 DB配置参数和它们之间的关联关系。其中的一些参数用来确定分配给每个 DB2实例、数据库和应用程序的内存。

数据库活动涉及磁盘存取 (I/O)和内存存取 (CPU)。每个 DB2配置参数或是影响内存资源或是影响磁盘资源。因为访问磁盘要比访问内存慢得多,数据库性能优化的关键条件是减少访问磁盘的次数。如果用户能够消除 I/O等待时间,数据库请求则与 CPU紧紧相关,要增加性能将需要更快或更多的CPU 。

图 3.1给出了各种可配置的内存参数。内存可以在服务器上或客户机上分配,为 database global memory(数据库全局内存)分配的内存数量取决于当前活动数据库的数目。 数据库全局内存 服务程序堆 数据库堆

(util_heap_sz) 缓冲区(buffpage) (dbheap)

Backup Buffer LogBuffer

( backbufsz ) (logbufsz) 锁列表(locklist) 程序包高速缓存 (packcachesz) Restore Buffer Catalong Catche

(restbufsz ) (catalogcache _sz)

代理私用内存Agent private memory 应用程序堆 ( applheapsz ) 代理堆栈 (agent_stack_sz) DRDA堆 (drda_heap_sz) 统计堆 (stat_heap_sz) UDF内存 (udf_men_sz) 排序堆 (sortheap) 语句堆 (stmtheap) 客户I/O块 (rqrioblk) 查询堆 (query_heap_sz) JAVA堆 Java_heap_sz 代理/应用程序共享内存 应用程序 支持层堆 (aslheapsz) 应用程序共享内存 客户I/O块 (rqrioblk) 用户或应用程序进程(本地客户、远程客户)

图3.1 DB2 Database Manager (数据库管理器)使用的内存

更新这些配置参数使用如下命令:

UPDATE DB CONFIG FOR dbname USING LOCKIST 250 注释:更新数据库配置后要断掉所有连接,重新连库才能生效;

UPDATE DBM CONFIG USING QUERY_HEAP_SZ 2048 注释:更新后要重启实例才能生效; 2.2主要参数说明:

?BUFFPAGE 如果在sysibm.sysbufferpools视图中指定缓冲池大小为-1,则可用buffpage配置参数指定任何缓冲池大小,否则忽略此参数,使用alter bufferpool或create bufferpool来设置缓冲池大小。

?DBHEAP 每个数据库有一个数据库堆,并且数据库管理程序代表所有连接至数据库的应用程序使用数据库堆,它包括表、索引、表空间和缓冲池的控制块信息,还包括日志缓冲区(logbufsz)和目录高速缓存(catalogcache_sz)的空间。

?LOGBUFSZ 日志缓冲区大小参数决定分配多少数据库共享空间用来作为缓冲区,在把日志记录写到磁盘之前暂时将它们保留在缓冲区。如果发现频繁使用日志磁盘,则要增加此参数大小,注意它必须小于等于dbheap参数值。 ?UTIL_HEAP_SZ 此参数规定可由BACKUP、RESTORE等实用程序同时使用的最大内存量。

?LOCKLIST 规定分配给锁定列表的内存。每个数据库有一个锁定列表,并且锁定列表包含由并行连接至数据库的所有应用的锁定。每个锁定需要36或72字节的锁定列表。当一个应用的锁定列表的百分比达到maxlocks时,数据库管理程序对应用持有的锁定执行从行到表的锁定逐步升级,这将降低系统并发性。计算锁定列表大小的下限:(512*36*maxappls)/4096,其中512是估计每个应用的平均锁定数,可以根据实际情况调整;计算锁定列表的上限:(512*72*maxappls)/4096,估计数据将发生的并行量,为locklist在上下限之间选定初始值。

?STMTHEAP 指定SQL语句编译期间的工作空间的大小。

?QUERY_HEAP_SZ 指定为查询堆分配的最大内存,查询堆用来将每个查询存储在代理程序专用内存中。建议将query_heap_sz设置为至少大于aslheapsz五倍的值。

?AGENT_STACK_SZ 代理程序栈是为每个代理程序分配的虚拟内存,越复杂的查询将使用越多的栈空间。它和并行连接数成反比关系。

?ASLHEAPSZ 表示本地应用程序和其他关联的代理程序之间的通信缓冲区,此缓冲区被分配为每个已启动的数据库管理程序代理程序所共享的内存。

?AVG_APPLS 平均活动应用程序数,SQL优化器使用它来估计对于所选存取计划。 ?LOGFILSIZ 这个值决定当需要一个日志文件时,需要分配的页数。这个值与LOGPRIMARY和LOGSECOND一起决定支持日志存档工作所需要的磁盘空间。

?LOGPRIMARY 这个值表示被分配用于支持数据库日志存档工作的主日志文件的数目。每个主日志文件的大小是LOGFILSIZ。

?LOGSECOND 这个参数指定在需要时由系统创建的辅助日志文件的最大数目。当日志文

件被装满时,就在需要时一次分配一个大小为 LOGFILSIZ的辅助日志文件。辅助日志文件的默认数目为2。

3.数据移动在数据库的使用过程中,经常需要将一个数据库中的数据迁移到另外的

一个数据库中。这里介绍两个主要工具:EXPORT和IMPORT。其中EXPORT的功能是将表中的数据导出到外部文件中;而IMPORT是将外部文件中的数据导入到一个表中。

3.1 中间文件格式

DB2支持用作数据移动的中间文件的格式有四种:非定界ASCII码文件(ASCII)、定界ASCII码文件(DEL ASCII)、WSF文件和PC/IXF文件。其特点是:

ASCII:纯文本格式,每个数据列之间中有分隔符,但数据行之间没有分隔符。ASCII文件

不能被EXPORT支持。、

DEL:纯文本格式,数据列之间有分隔符,数据行之间也有分隔符。 WSF:Lotus 1-2-3工作表格式。

PC/IXF:一种非常通用的格式,被多种数据库管理系统所支持。可以用作在异种数据库中进行数据转移。

3.2 EXPORT

下面是EXPORT的一个例子:

db2 connect to mydb

db2 export to myfile of ixf messages msg select * from sm_user 用户数据将被输出到myfile文件中,该文件为PC/IXF格式。 注释:

?在做EXPORT之前,首先要连接到相应的数据库上。

?因为要对表或视图(EXPORT支持对视图进行操作)进行SELECT操作,执行EXPORT的用户至少要有相关表或视图上的SELECT权限。

?如果使用PC/IXF文件,文件中将包含表中的索引定义。

3.3 IMPORT

IMPORT可以被看作是EXPORT的逆过程,用于将数据从外部文件中导入到数据库之中。 下面是一个IMPORT的例子:

db2 connect to mydb

db2 import from myfile2 of ixf messages msg2 create into artists in index in

在该例中,myfile2文件的数据被导入到表artists中,这个表在IMPORT之前并不存在,系统将根据myfile2文件的格式创建表后,再进行数据导入。 注释:

?在做IMPORT之前,首先要连接到相应的数据库上。

?因为要对表或视图(IMPORT支持对视图进行操作)进行修改操作,执行EXPORT的用户至少要有相关表或视图上的相关权限(依据导入模式的不同而不同)。比如,使用INSERT

模式,至少要有相应表上的INSERT权限;如果使用CREATE模式,则需要数据库上的CREATETAB权限。如果使用CREATE模式,必须使用PC/IXF文件进行数据导入。

4、备份和恢复

这里介绍DB2使用循环日志的情况。数据库备份表示可复原的数据库的最新版本,这意味着备份之间的时间间隔长短表示可能永久丢失的工作量的大小。例如, 若每周星期五午夜备份一次数据库,则若数据库在星期五晚上 11:59 失败,则可能丢失整周的事务。因此越经常地备份,数据库就越安全。建议每天凌晨时定时备份,使用windows的计划任务调度即可。

4.1备份

4.1.1、

通过DB2控制中心图形界面备份,右键点击选中的数据库,选择备份数据库,根据提示操作即可;

4.1.2、命令行操作

db2 backup db dbname to backupdir 注释:该命令有丰富参数,可以使用命令db2 ? backup db查看。在命令行下输入db2 ? msg,msg可以是错误提示信息如SQL1013N,也可以是某个命令如backup db。

4.1.3、注意事项

?windows服务器的备份文件放在一个较深的目录结构下,注意复制时要保留目录结构, 例:C:\\MYDB.0\\DB2\\NODE0000\\CATN0000\\20030401\\120001.001

?备份如果提示有活动应用程序连接,则在确认事务都已经提交后,断调连接后再备份 db2 force application all 4.2恢复

4.2.1、

通过控制中心图形界面恢复,右键点击指定实例下面的数据库,选择“根据备份创建数据库”,根据提示操作;

4.2.2、命令行操作

db2 restore db dbname from backupdir 注释:该命令有丰富参数,可以使用命令db2 ? backup db查看。

第四章 客户端维护

1. 客户端经常出现的问题

客户端经常出现死机现象;操作性能明显较其它客户端慢。

2. 对客户端的配置要求

NC应用对客户端的内存要求比较高,我们建议内存配置一般在128M-256M; 从稳定性的角度考虑,建议将客户端的操作系统改为win2000 professional;将IE的版本升级到5.5或6.0

3. 对客户端Java plug_in的调整

第一步:进行入控制面板,双击Java plug_in(对于Java plug_in 1.3.1_01做同样的配置)

第二步:选中将jar高速缓存于内存中,同时在java运行参数中加入: -Xms 50m -Xmx100m

说明:此参数定义了JVM的最大可用内存,可随时调整。注意调整值应依据具体情况来定。如客户机内存为512M,可将最大可使用内存设为200M,即:

-Xmx100m –Xmx200m 第三步:应用后重启IE

第五章 网络维护

1. 网络设置调整

在服务器端网络设置中去掉netware,去掉所有NWLINK,NETWARE相关的协议。

在客户端对IE取消局域网的自动检测设置。Ie->属性->连接->取消自动检测;打开网络和拨号连接。 右键单击“本地连接”,然后单击“属性”。 在“此连接使用下列选定的组件”中,双击“Microsoft 网络的文件和打印机共享”。 在“优化”下,注意默认情况下可能被选中“最大化文件共享的数据吞吐量”,关闭该选项以减少内存页交换活动,请单击“最大化网络应用程序的数据吞吐量”。

保证网络系统中DNS解析服务的稳定及效率。如果该服务不正常或没必要使用,请将DNS、DHCP、WINS等服务停止。

2. 网络设备配置要求

首先,要有高性能、高吞吐量的路由器(交换路)与服务器相连。 其次,服务器(包括应用服务器与数据库服务器)的网卡速度要快,最好是100M或1000M光纤网卡

最后,要保证足够的可用带宽,通信要稳定不能时断时续。PING命令可以反映一些简单的性能问题。

在WINS平台有一些不错的开放工具能用于网络通信性能监测,这些工具可以在internet网上下载。我这里就下载了一个小工具叫Qchek,用起来还不错,它可以收集到网络响应速度及当前网络流量等情况。这些监测工作你同样可以请用户的网络管理员来帮你做,因为他们往往有较为完备的监测工具。

本文来源:https://www.bwwdw.com/article/g9d6.html

Top