3.5.4-SYBASE数据库系统内存分配(参考模板)
SYBASE系统参数调整

SYBASE系统参数调整1. max memory:此参数用于指定SYBASE数据库服务器在计算机中使用的最大内存量。
通过将此参数设置为较大的值,可以提高该数据库服务器的性能。
如果可用的内存较少,则应适当减小此值。
2. number of engines:此参数用于指定SYBASE数据库服务器使用的引擎数量。
增加此参数的值可以提高并发访问性能。
然而,将该值设置得太高可能会浪费资源。
一般来说,使用与服务器CPU数量相同的值是安全的做法。
3. max scan parallel degree:此参数用于指定SYBASE数据库服务器执行并行扫描时使用的最大并行度。
通过将此参数设置为较大的值,可以提高并行扫描的性能。
4. sys statistics:此参数用于指定数据库服务器在自动生成查询计划时使用的统计信息的有效期限。
适当设置此参数的值可以提高查询性能。
默认情况下,此参数的值设置为30天。
5. max degree of parallelism:此参数用于指定SYBASE数据库服务器在执行并行查询时使用的最大并行度。
增加此参数的值可以提高查询性能。
然而,将该值设置得太高可能会增加系统负载。
6. max worker processes:此参数用于指定SYBASE数据库服务器使用的最大工作进程数量。
适当增加此参数的值可以提高并发性能。
默认情况下,此参数的值设置为255,但在大型服务器上,可能需要适当增加此值。
7. tempdb设备数:tempdb是SYBASE数据库服务器用于处理临时数据的数据库。
将tempdb数据库分配到多个设备上可以提高临时数据处理的性能。
8. prefetch parallel degree:此参数用于指定SYBASE数据库服务器在执行预取操作时使用的并行度。
适当增加此参数的值可以提高查询性能。
9. max rows per stack:此参数用于指定SYBASE数据库服务器在语句执行期间允许的最大行数。
SYBASE数据库配置-配置

1.安装sybase时选择自定义方式配置sybase server,将页大小设置为大于4k2.服务器端:/opt/sybase/shared/sybcentral43/scjview.sh3.安装完毕后配置sybase sever,右健选择Properties,在打开的窗口中选择ServerCorfiguration,将lock scheme修改为datarows,如下图所示4.新建数据库,右健选择“新建-Database”,输入数据库名称,如下图5.点击下一步,点击Add,勾选Data后选择data_dev,并在界面的下方设置库的大小,确定保存6.然后勾选TransactiomLog后,选择log_dev,并在下方设置日志的大小,7.点击“下一步”后,点击完成,数据库创建成功8.新建完成后,修改该库属性的allow null by default和selectinto/balkcopy/pllsort为选中状态9.10.选择Logins,右健新建Logins,在打开的窗口中,输入用户名和密码,注意不要在createnew user页中选择任何数据库,如下图11.连续点击下一步后,在如下图的窗口中,去掉所有的勾选项,点击“完成”12.选择刚建成的用户,右健选择“Properties”后,在弹出窗口中选择Users,点击Add,将新建数据库的dbo添加到新的login中,并选择数据库,确定保存13.如果连接该数据库的用户比较多,比如用连接池连接,可以在配置数据库时将number ofremote connections和number of remote logins设置大一些,如果使用索引可以将number of open indexes设置大一些。
Sybase数据库空间扩容

Sybase 数据库空间扩容配置手册版本<V1.0>目 录1 扩容概述 ................................................................................................................ 1 2 Sybase 数据库备份 ............................................................................................. 1 3 Sybase 数据库扩容 (2)3.1 新增系统设备扩容数据库 ........................................................................................ 2 3.2数据库增加设备 (2)2Sybase 数据库备份错误!未定义书签。
3Sybase 数据库扩容错误!未定义书签。
3.1新增系统设备扩容数据库错误!未定义书签。
3.2数据库增加设备错误!未定义书签。
1 扩容概述该文档根据当前sybase 数据库设备对应的裸设备使用情况.(即:裸设备Unused 为0,可扩容的空间已不足),而定制一份扩容方案,扩容步骤即重新规划裸设备,初始化数据库裸设备,指定裸设备设备大小,为每个数据库指定新的设备,从而扩容该数据库空间。
2 Sybase 数据库备份master 数据库的备份与恢复.备注:需要在备份前启动sybase 的备份服务.主机操作编号 任务内容命令执行结果1启动SYBASE 服务与备份服务#startserver -f 服务名#startserver -f 备份服务名2 Master 数据库备份 dump database master to “D:/backup/xxx.dmp”3Master 数据库恢复load database master from “D:/backup/xxx.dmp”拟制 日期 审核 日期 批准日期3 Sybase数据库扩容3.1 新增系统设备扩容数据库1.外置存储方面,需要先在磁盘柜上划分对应的LUN设备。
SYBASE系统参数计算表V1.1

3920
ห้องสมุดไป่ตู้
CPU个数 取值
2
超线程(For Intel) 备注 11 100 100 20 根据实际情况调整 20 根据实际情况调整
否
allow sql server async i/o number of user connections number of open databases number of devices number of locks tcp no delay cpu grace time runnable process search count max online engine number of engines at startup number of worker processes total memory(max memory) procedure cache percent allocate max shared memory dynamic allocation on demand procedure cache size cache size number of open indexes number of open objects runnable process search count number of open objects 注:粉红底色的为自动计算项目
50000 20000,数据库内存1G以上可配置为50000 11 3000 3000 200(当CPU个数小于等于两个时才配置该 200 值) 1 cpu个数的一半 cpu个数的一半(只在SYBASE12.5版本中使 1 用) 1 cpu个数的一半 物理内存的3/5(2K为单位),小于shmmax 1204224 (SYBASE12.5使用max memory) 30 30(只在SYBASE12.0及11.92版本中使用) 1 1(只在SYBASE12.5版本中使用) 0 0(只在SYBASE12.5版本中使用) 物理内存的1/10,该配置值2K为单位(只在 200704 SYBASE12.5版本中使用) 物理内存的2/5,该配置以K为单位(只在 1605632 SYBASE12.5版本中使用) 5000 5000 5000 5000 反馈现场的值即可 反馈现场的值即可
Sybase配置参数

Sybase配置参数1Sybase配置参数1.1配置cpu个数sp_configure 'max online engines',4go1.2配置启动cpu个数sp_configure 'number of engines at startup',4go1.3配置最大内存数sp_configure 'max memory' ,2097151(拟分配内存/2K) go 1.4分配最大存储过程缓存sp_configure 'procedure cache',102400go1.5配置高速缓存sp_cacheconfig 'default data cache' , '700M'go1.6缺省缓存分配页大小sp_poolconfig 'default data cache','200M','16K'go1.7网络包大小sp_configure 'max network packet size',1024go1.8最大连接数sp_configure 'number of user connections',500go1.9最大打开对象sp_configure 'number of open object',9000go1.10最大索引sp_configure 'number of open index',10000go1.11最大锁数sp_configure 'number of locks',100000go1.12增加网络内存--sp_configure 'additional network memory',1024 go1.13锁内存sp_configure 'lock shared memory',512go1.14优化tempdbselect dbid, name,segmapfrom sysusages, sysdeviceswhere sysdevices.low <= sysusages.size +vstart and sysdevices.high >=sysusages.size+vstart -1 and dbid =2 and (status=2 or status=3)gouse tempdbgosp_dropsegment 'default',tempdb,mastergosp_dropsegment 'logsegment',tempdb,mastergoselect dbid, name,segmapfrom sysusages, sysdeviceswhere sysdevices.low <= sysusages.size +vstart and sysdevices.high >=sysusages.size+vstart -1 and dbid =2 and (status=2 or status=3)gosp_cacheconfig tempdb_cache, '100M'gosp_poolconfig tempdb_cache,'50M','16K'gosp_bindcache 'tempdb_cache',tempdbgosp_helpcache tempdb_cacheselect name,id from syscharsetsdbcc traceon(3604)dbcc memusage2数据库安装的优化2.1应用数据库使用裸设备若在UNIX(UNIXWARE)操作系统下安装数据库服务器,请将SYBASE应用数据库的设备(device)安装成裸设备。
sybase系统配置祥解

Sybase 安装及系统管理之上篇RAW Device(裸分区) VS Filesystem Device裸分区是指磁盘的一块物理分区,没有用作操作系统,其读写不通过操作系统缓冲。
传统的Unix安装ASE推荐使用RAW Device确保资料的完整性和较好的IO性能。
但在新版的Unix和Linux中UFS和JFS在资料完整性和读写性能的差距相较于裸设备已经非常微弱。
还有就是裸设备的管理比较复杂。
从ASE12.0开始Sybase提供dsync的属性对数据库设备禁止write-cache(写回缓冲)以确保资料的完整性和可恢复性。
裸设备的使用出于安全和资料完整性方面的考虑比性能考虑多。
Async I/O (异步I/O)异步IO是在一个IO动作未完成时同时可进行另外的动作。
异步IO对于数据库的IO性能有较大的影响。
在AIX和HP中都需要通过重新编译内核来支持。
二.关于内存:首先确定可用的总的物理内存然后减去操作系统,Backup, Monitor等Sybase相关软件的开销即为Sybase总的可用内存。
(建议服务器只做单纯的ASE服务器并要删除不必要的服务以减少开销,例如xwindow)在Unix及Linux中需要调整一些核心参数以支持较大的物理内存。
以下列出一些可能需要调整的参数: shmmax(最大共享内存段大小,单位为字节),shmall(可用内存的总数量,如果是字节同shmmax一样)。
其余的像shmmin等参数请参考操作系统手册。
Sybase利用max memory确定最大可用内存量,具体内存的分配方式取决于以下两个参数allocate max shared memory和dynamic allocation on demand。
Allocate max shared memory指定是否分配由max memory指定的最大内存,缺省不分配最大内存。
Dynamic allocation on demand指定是否在请求时立即分配资源还是仅需要时分配,缺省是需要时分配。
Sybase数据库优化建议书

Sybase数据库优化建议书修改记录主要针对sybase12.0和sybase sybase12.5一、操作系统核心参数Sybase12.0下面以使用操作系统管理员root用户身份,运行sam管理工具调整共享内存参数及共享内存段选择Kernel Configuration → Configurable Parameters→使用File菜单下的Search功能搜寻shmmax 参数,调整参数值为1024×1024×1400=1468006400(约1.4G),shmseg 参数使用默认值120 →退出返回sam上一级界面,在弹出的提示框中选择Defer Kernel Creation Until Later调整操作系统异步IO参数Kernel Configuration → Configurable Parameters→将swapmem_on参数设置为0 Kernel Configuration →选择Drivers项目→找到asyndsk →选择菜单上Action项目下的Add Driver(s) to Kernel,这是能够看到asyndsk 驱动程序Pending Status由out 变成了in。
重新启动HP主机,并在启动完毕后确认所配置参数已经生效。
设置操作系统异步IO使用root用户发出如下命令:/etc/mknod /dev/async c 101 4chmod 0660 /dev/asyncchown sybase:sybase /dev/async在操作系统/sbin/rc3.d目录下建立名为S700dsync脚本文件,或者在双机切换脚本的start.sh(/etc/cmcluster/pkg1/start.sh、/etc/cmcluster/pkg2/start.sh)中加入,内容如下/etc/setprivgrp sybase RTPRIO MLOCK CHOWN这个命令使操作系统重新启动后sybase用户仍然能够正常拥有async文件使用权限,确保数据库设备能够使用异步IO。
SYBASE 配置参数及优化

6
系统介绍部分
SYBASE 数据库内存如何分配?
1. 认识sybase数据库内 认识sybase数 a. 高 缓 b. 储过 c. 关内 参数 d. 共 内 ( 须 ;
适
空间 空间)
7
参数配置部分
SYBASE 数据库内存具体配置
2. SYBASE 数据库 参数 与 务器硬件 关, 内 况, 数据库参数时 ( 4颗4 CPU 16G 内 务器为 ): 赖 务器 CPU 务器硬件 关 。
11
优化参数部分
SYBASE 数据库参数配置
2. 优 工具 sp_helpconfig 说明报告有关配置参数的帮助信息。 语法 sp_helpconfig "configname", ["size"] 参数 configname 是要被查询的配置参数,或者是非唯一参数片段。 size 是内存的大小,指定 B 表示字节,指定 K 表示千字节,指定 M 表示 兆字节,指定 G 表示千兆字节,或者指定 P 表示页。在使用时如果 未指定大小的类型, size 将指定要使用此参数配置的实体的数目;例 如锁或打开的索引的数目等。如果 configname 不是唯一参数名,则 忽略 size。 siot@SYBASEDB ~]# top (u sybase)
4
系统介绍部分
2. 认识sybase数据库 运 认识sybase数 系统进 系统进 ;
5
系统介绍部分
SYBASE 数据库内存如何分配?
1. 系统 内 给sybase数据库;( sybase数 件/etc/sysctl.conf) 件/etc/sysctl.conf)
allocate max shared memory cis connect timeout lock scheme global cache partition number housekeeper free write percent heap memory per user max number network listeners max memory max parallel degree
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5.4 SYBASE数据库系统1. 系统内存的整体管理在SYBASE系统中,可以使用下列配置参数,对整个数据库系统的内存空间使用进行设置:(1)MAX MEMORY(最大内存):设定整个数据库系统实例可以使用的最大内存数量,包括缓冲数据、程序代码的内存空间。
(2)TOTAL LOGICAL MEMORY(总逻辑内存):显示整个数据库系统所需内存空间的总和。
该参数是一个只读的配置参数,用户无法更改。
它是数据库系统根据所有和内存分配有关的配置参数的设置,进行计算而得出的系统所需内存空间的总和。
这个配置参数的值必须小于或者等于最大内存,否则数据库系统无法启动。
(3)TOTAL PHYSICAL MEMORY(总物理内存):显示整个数据库系统在特定时刻使用的内存空间总和。
该参数是一个只读的配置参数,用户无法更改。
它显示数据库系统所有内存空间的总和,也即数据库系统实例在某个特定时刻所分配的内存空间总和。
(4)ALLOCATE MAX SHARED MEMORY:设定数据库系统启动时,是否立即为系统分配所要求的最大内存。
如果该参数被设置,在数据库系统启动时,将按照最大内存配置参数的设置,为数据库系统分配内存空间。
在这种情况下,总物理内存就等于最大内存,如果数据库系统需要的总逻辑内存小于最大内存,则为数据库系统分配的部分内存空间不会被使用。
(5)DYNAMIC ALLOCATION ON DEMAND:设定数据库系统启动时或者系统正常运行过程中改变了配置参数之后,是否立即按照配置参数,为系统的各个内存段分配所要求的空间。
如果该参数被设置,将根据配置参数的设置,进行内存空间的分配,不管这些内存是否被用到。
如果该参数没有被设置,将根据数据库系统的需要,为各个内存段分配空间。
在主机内存空间足够的情况下,为避免系统正常运行时动态的内存空间分配,导致内存空间不连续,影响到数据库系统的性能,可以设置配置参数ALLOCATE MAX SHARED MEMORY,从而在数据库系统启动时就为其分配连续的、可使用的最大内存空间。
需要说明的是,由于SYBASE系统在估计内存需求的方式和实际获取内存以供使用的方式上有一些差异,因此理论上在最大内存、总逻辑内存、总物理内存之间应当具有相等关系时,使用系统命令查看,这三个配置参数在数值上会有一些差别。
2. 系统内存的空间结构整个SYBASE系统的内存结构大体上可以分为四个部分:数据高速缓存(data cache)、过程高速缓存(procedure cache)、内核和服务器结构(kernel and server structure)、可执行代码,具体的结构见图1-6。
(1)数据高速缓存数据高速缓存用来存放用户数据、索引和事务日志,就是第3.2.3和第3.2.5两节中讲到的用户数据缓冲区和日志缓冲区。
在缺省情况下,日志缓冲区并没有被设置。
代理线程生成的事务日志存放在自己的私有内存空间中,由代理线程写入磁盘。
为提高数据库系统的性能,可以在数据高速缓存中配置日志缓冲区。
这样代理线程将事务日志写入日志缓冲区,最后由日志写线程统一写入磁盘,可以减少磁盘的I/O操作。
下列配置参数和数据高速缓存有关:TOTAL DATA CACHE SIZE:显示数据高速缓存的大小,是一个只读参数。
用户可以使用命令sp_cacheconfig、sp_poolconfig,配置和管理数据高速缓存。
(2)过程高速缓存过程高速缓存用来存放存储过程、触发器、SQL语句等已编译的执行计划,就是第3.2.4一节中讲到的SQL语句缓冲区。
下列配置参数和过程高速缓存有关:procedure cache size:设定过程高速缓存的空间大小。
(3)可执行代码内存区域可执行代码内存区域用来存放数据库各种线程的执行代码,这部分加上后面的线程控制信息及堆栈缓冲,就是第3.2.1一节中讲到的进程缓冲区。
这部分内存空间的分配,由用户连接数(也即代理线程数)和工作线程决定,有以下相关配置参数:NUMBER OF USER CONNECTIONS:设定数据库系统可以建立的用户连接数目。
该参数也同时决定了数据库系统可以启动的代理线程的数目。
NUMBER OF WORKER PROCESSES:设定数据库系统可以启动的工作线程数目。
(4)内核和服务器结构内存区域内核和服务器结构内存区域是SYBASE系统既关键又复杂的内存空间,除数据高速缓存、过程高速缓存、可执行代码内存区域所存放信息之外,所有其它系统信息都存放在这一内存空间。
SYBASE系统的技术资料中,没有对这部分内存的使用进行详细的描述。
大体上来说,这部分内存空间包括以下的内容:①线程的控制信息及堆栈缓冲线程的控制信息及堆栈缓冲用来存放线程的堆栈、控制信息等,这部分加上前面的可执行代码内存区域,就是第3.2.1一节中讲到的进程缓冲区。
这部分内存空间的分配,由用户连接数(也即代理线程数)和工作线程决定,有以下相关配置参数:NUMBER OF USER CONNECTIONS:设定数据库系统可以建立的用户连接数目。
该参数也同时决定了数据库系统可以启动的代理线程的数目。
NUMBER OF WORKER PROCESSES:设定数据库系统可以启动的工作线程数目。
STACK SIZE:设定每个线程使用的堆栈空间。
线程使用此区域存放线程环境及本地数据。
HEAP MEMORY PER USER:设定每个用户的堆内存量。
需要更多堆栈中内存的任务,可以从这里获取所需内存。
USER LOG CACHE SIZE:设定每个线程的日志高速缓存空间。
②数据字典(元数据)高速缓存数据字典高速缓存用来存放数据库以及表、索引、视图等信息,就是第3.2.2一节中讲到的数据字典缓冲区。
用户可以通过间接的方式,来配置该部分的内存空间。
下列配置参数和数据字典高速缓存有关:NUMBER OF OPEN DATABASES:设置能够同时打开的数据库的最大数量。
NUMBER OF OPEN INDEXES:设置能够同时使用的索引的最大数量。
NUMBER OF OPEN OBJECTS:设置能够同时打开的数据库对象的最大数量。
③锁表高速缓存锁表高速缓存用来存放数据库系统中的所有锁信息,就是第3.2.6一节中讲到的锁表缓冲区。
下列配置参数和锁表缓冲区有关:NUMBER OF LOCKS:设定数据库系统中所有用户可用锁的总数。
3. 用户数据缓冲区的管理在SYBASE系统中,数据高速缓存就是第3.2.3一节中讲到的用户数据缓冲区。
SYBASE 系统采用多缓冲区技术。
在最初的安装、配置完成后,系统中只有一个缺省的数据高速缓存。
随后用户可以根据自己的需要,创建多个数据高速缓存。
可以将经常需要访问的数据库对象绑定到特定的数据高速缓存中,在做了这样的绑定操作之后,该数据高速缓存就只供被绑定的数据库对象使用,从而避免和其它数据库对象的内存竞争。
没有明确进行绑定的数据库对象,就使用系统缺省的数据高速缓存。
用户可以使用以下两种方式,进一步深化对数据高速缓存的管理:(1)分区。
可以将数据高速缓存分区,相当于在系统中建立了多个数据高速缓存,每一个分区都具有相同的内存空间,并独立地进行管理和维护。
(2)划分缓冲池。
一个数据高速缓存可以被划分为多个缓冲池,每一个缓冲池对应不同的I/O读写尺寸。
例如:数据库的逻辑页为2K,可以在一个数据高速缓存中创建页尺寸分别为2K、4K、8K、16K的四个缓冲池。
由于系统一次最大可以从硬盘中将一个扩充(extent,8个数据页)读入内存,如果使用16K缓冲池,则一次可以从硬盘中读取128K的数据。
在SYBASE系统中,使用MRU/LRU链接表管理数据高速缓存中内存页的替换。
正在被访问的内存页被放入MRU的最前端,越靠近LRU端的内存页,就表明有更长的时间没有被访问。
在MRU/LRU链接表的中间有一个清洗标记,清洗标记和LRU端之间的内存页称为清洗区。
在清洗区中已经被更新的内存页,就要由页清除线程写入磁盘。
MRU/LRU链接表的结构见图3-2。
在该图中,整个数据高速缓存包含了21个内存页,数字表示内存页的指针。
代理线程在处理用户请求时,首先在整个数据高速缓存中查找所要处理的数据,有以下两种结果:(1)找到所需数据。
不管该数据存放在数据高速缓存的什么位置,系统把该内存页的指针联接到MRU的最前端,整个数据高速缓存链就相应地由左向右进行移动。
如果有内存页进入清洗区,并且内存页中的数据已经发生了更新,页清除线程开始把此内存页写入磁盘。
(2)没有找到所需数据。
代理线程从磁盘中读入数据。
如果需要一个内存页的空间,系统就取出LRU端的最后一个内存页指针,找到指针所指向内存页的位置,存入刚读入的数据,然后把这个内存页的指针联接到MRU的最前端。
在需要多个内存页时的处理方式,与此类似。
同样,进入清洗区的内存页如果已经被更新,页清除线程开始把此内存页写入磁盘。
以上是数据高速缓存缺省的管理模式,其中包含了数据高速缓存的两种管理策略:内存替换策略和MRU数据存放策略。
用户可以根据需要,改变这种管理方式。
(1)内存替换策略。
数据高速缓存的内存替换策略有两种:严格LRU(strict LRU)和宽松LRU(relaxed LRU),可以通过sp_cacheconfig命令来设置。
严格LRU是缺省模式。
在此模式下,数据库系统严格地维护内存页的MRU/LRU链接表,根据这个链接表分配内存空间。
在维护链接表时,由于内存页的移动而需要改变内存页的指针,从而需要对这个链接表加螺旋锁。
如果系统中有多个引擎时,尽管链接表被锁定的时间很短,仍旧会引起对链接表的竞争。
由于每个数据高速缓存、数据高速缓存中的每个分区、数据高速缓存中的每个内存池都需要建立一个链接表,因此可以通过建立多个数据高速缓存、将数据高速缓存分区、在数据高速缓存中建立多个内存池,来减少对链接表的竞争。
在宽松LRU模式下,系统并不会严格地维护这个链接表,尽可能地减少对MRU/LRU链接表的锁定竞争。
在数据高速缓存中的空间能够满足该数据高速缓存所绑定的对象,或者该数据高速缓存主要用做日志的缓冲时,可以设置数据高速缓存为此模式,从而减少由于维护链接表而需要消耗的开销。
(2)MRU数据存放策略。
通过表扫描、索引扫描访问数据时,系统会使用预读取功能,将随后要处理的数据事先读入内存。
对这些预先读取的数据,可以使用、也可以不使用MRU 数据存放策略。
如果使用MRU数据存放策略,被预先读入内存的数据首先链接在MRU/LRU链接表的MRU一端,被使用时就移动到清洗区。
这种数据使用方式,一方面可以让这些大批量、一次性的数据尽快移出内存,避免影响其它数据的LRU替换管理;另一方面也可以防止预先读入内存的数据,还没有使用就被移出内存。