sybase碎片

合集下载

sybase基础知识(新手必看)

sybase基础知识(新手必看)
配置Java环境变量。 编写Java代码连接Sybase数据库,包括加载驱动程序、创建连接、执行
SQL语句等。 处理连接过程中的异常和错误。
常用客户端工具介绍及使用方法
Sybase Central 管理Sybase ASE、IQ、SQL Anywhere等数据库。 提供图形化界面进行数据库操作,如创建表、查询数据等。
02
SQL语言基础
数据类型与变量定义
数值型
包括整数、浮点数等。
变量定义
使用DECLARE语句定义变量,指定变量名 和数据类型,可以使用SET或SELECT语句 为变量赋值。
布尔型
表示真或假的值。
字符型
包括定长字符、变长字符等。
日期型
包括日期、时间、日期时间等。
运算符和表达式使用
算术运算符
进行数值计算,如加、减、乘、 除等。
表空间管理策略
创建表空间
使用`CREATE TABLESPACE`语句,指定 表空间名称、数据文件路径及大小等参数,
创建新的表空间。
A 表空间概念
表空间是Sybase数据库中用于存储 数据的逻辑容器,可以包含一个或
多个数据文件。
B
C
D
删除表空间
使用`DROP TABLESPACE`语句,可以删 除指定的表空间及其包含的所有数据。
安装步骤及注意事项
安装步骤
下载适用于目标操作系统的Sybase安装程序。
运行安装程序并按照提示进行安装,选择安装类 型(如典型安装、自定义安装等)。
安装步骤及注意事项
01
配置数据库服务器参数,如端口号、数据库文件存 储路径等。
02
创建数据库实例并启动数据库服务。
03

Sybase数据库备份方案

Sybase数据库备份方案

Sybase数据库备份方案ybase数据库产品自从1987年问世以来,它的客户机/服务器(client/server)工作模式、分布处理的基础体系结构、完善的安全保密性能、高速快捷的运行方式、多平台跨操作系统的广泛应用等优点,迅速被IT界接受并推广应用。

我们作为金融业的用户,也在1995年开始使用Sybase10版本。

在具体的使用中,发现集中式的数据管理有其优点,就是数据风险范围大为缩小,但是作为Sybase的服务器一端,数据风险比较集中,如何做好数据库的数据备份,成为至关重要的问题。

在实际应用中,我们总结出了两种全量备份方案:一、使用Sybase的Backup Server(备份服务器),做Dump 备份转储数据库(Dump database),就是为整个数据库(包括数据、表结构、触发器、游标、存储过程、事务日志等)做一次物理备份。

转储数据库时,系统自动执行一次checkpoint,即将日志和数据从缓冲区拷贝到硬盘(只拷贝脏页),把已被分配的页(日志和数据)转储到设备。

命令格式为:dump database 数据库名 to 设备文件名 with 参数如果备份到硬盘的文件上,可以不预先估算备份文件的大小,只要硬盘有足够的存储空间就可以。

如果是备份到dds磁带上,那么就要估算一下备份后的大小,90米的dds磁带压缩存储空间为4G,120米的磁带压缩存储空间为8G,如果数据库的备份文件超过了这个尺寸,就要考虑多文件转储,使用stripe 参数。

命令格式为:dump database 数据库名 to 设备文件名1stripe on 设备文件名2stripe on 设备文件名3……with 参数这种数据备份方式是将整个数据库的运行环境完整的复制一份,包括数据库的脏页和碎片,在使用load命令恢复时,只能恢复到同样大小的数据库中(数据和日志的大小都只能和原来完全一致),适用于在每天的日终营业网点下班后的日常备份。

创智_DRMS_操作手册_sybase数据库BCP导入导出

创智_DRMS_操作手册_sybase数据库BCP导入导出

Sybase数据库BCP导入导出操作手册目录1。

常用数据库备份类型12.BCP数据导出使用情况 (2)3.BCP数据导入导出操作方法 (2)3。

1。

生成BCP导出语法23。

2.BCP数据导出33.3.BCP数据导入 (3)3.4。

分段导入以及日志清理33。

5.前后台BCP out&in语法生成器44。

注意事项51.常用数据库备份类型●使用Sybase的Backup Server(备份服务器),做Dump备份。

●转储数据库(Dump database),就是为整个数据库(包括数据、表结构、触发器、游标、存储过程、事务日志等)做一次物理备份。

转储数据库时,系统自动执行一次checkpoint,即将日志和数据从缓冲区拷贝到硬盘(只拷贝脏页),把已被分配的页(日志和数据)转储到设备。

这种数据备份方式是将整个数据库的运行环境完整的复制一份,包括数据库的脏页和碎片,在使用load命令恢复时,只能恢复到同样大小的数据库中(数据和日志的大小都只能和原来完全一致),适用于在每天的日终营业网点下班后的日常备份。

优点是数据库完整无误,缺点是不能直接查看备份内容.●●BCP数据库备份● BCP(bulk copy)是SYBASE公司提供专门用于数据库表一级数据备份的工具,一般存放在所安装的ASE或者Open Client 的BIN目录中。

利用这个命令来处理数据的备份和恢复,比软件中提供的数据备份、恢复要快的多,因为该命令对数据的操作不产生日志.2.BCP数据导出使用情况●如果数据库受到硬伤(如数据库挂起无法恢复、或者系统表结构损坏等),造成数据不能通过备份服务器进行正常备份,或者正常备份的数据库也一样是损坏的,就要通过BCP数据导出方式,把数据库所有表数据导出来,再进行恢复。

●通过bcp备份恢复可以去掉原数据库的碎片,减小数据库大小,提高数据库的存储效率和运行速度:Sybase数据库作为联机事务处理应用服务器,每天应用程序都对数据库做大量的插入、修改和删除等操作,不可避免的在数据库的物理存储介质上留下页碎片和扩展单元碎片,从而影响数据库的存储效率和运行速度。

sybase 性能优化经验谈

sybase 性能优化经验谈

sybase 性能优化经验谈使用sybase数据库多年,有些经验,在数据库部署配置得当,平时监控维护做到位情况下,除此之外数据库的性能问题80%将会是由sql语句引起。

在编写sql语句时候,个人经验,以下几个问题中有大部分跟编写sql有关,必须引起重视。

经验一、where 条件左边最好不要使用函数,比如:select ... where datediff(day,date_column,getdate())>0这样即使在date_column列上建立了索引,也可能不会使用索引,而使用全表扫描。

这样的语句要重新规划设计,保证不使用函数也能够实现。

通过修改,一个系统过程的运行效率提高大约几十倍甚至上百倍!此外不要使用诸如like '%ab',不能充分利用索引,而要在%前加字符。

经验二、两个比较字段最好使用相同数据类型,而不是兼容数据类型。

比如int 与numeric(感觉一般不是太明显)。

经验三、复合索引的非前导列做条件时,基本没有起到索引的作用。

比如create index idx_tablename_ab on tablename(a,b)update tablename set c = XX where b>= XXX and ...在这个语句中,只用了索引列b而没用索引列a做查询条件,基本上索引没有发挥作用。

导致表扫描引起blocking 甚至运行十几分钟后报告失败。

一定要认真检查改正措施:在接口中附加条件update tablename set c = XX where a = XXX and b>= XXX或者建立索引类似于create index idx_tablename_ba on tablename(b,a)经验四、多个大表的关联查询,如果性能不好,并且其中一个大表中取的数据比较少,可以考虑将查询分两步执行。

先将一个大表中的少部分数据select * into #tmp from large_tablewhere ...然后再用#tmp 去做关联,效果可能会好不少。

sybase 学习

sybase 学习

首页| 请您留言Free Advertising from [数据库技术]->[Sybase]技术文摘| 程序下载| 书籍与资料| 网络资源| 讨论区一、Sybase数据库简介1.版本1984年,Mark B. Hiffman和Robert Epstern创建了Sybase公司,并在1987年推出了Sybase数据库产品。

SYBASE主要有三种版本,一是UNIX 操作系统下运行的版本,二是Novell Netware环境下运行的版本,三是Windows NT环境下运行的版本。

对UNIX操作系统目前广泛应用的为SYBASE 10 及SYABSE 11 for SCO UNIX。

2.Sybase数据库的特点(1)它是基于客户/服务器体系结构的数据库一般的关系数据库都是基于主/从式的模型的。

在主/从式的结构中,所有的应用都运行在一台机器上。

用户只是通过终端发命令或简单地查看应用运行的结果。

而在客户/服务器结构中,应用被分在了多台机器上运行。

一台机器是另一个系统的客户,或是另外一些机器的服务器。

这些机器通过局域网或广域网联接起来。

客户/服务器模型的好处是:●它支持共享资源且在多台设备间平衡负载●允许容纳多个主机的环境,充分利用了企业已有的各种系统(2)它是真正开放的数据库由于采用了客户/服务器结构,应用被分在了多台机器上运行。

更进一步,运行在客户端的应用不必是Sybase公司的产品。

对于一般的关系数据库,为了让其它语言编写的应用能够访问数据库,提供了预编译。

Sybase数据库,不只是简单地提供了预编译,而且公开了应用程序接口DB-LIB,鼓励第三方编写DB-LIB接口。

由于开放的客户DB-LIB允许在不同的平台使用完全相同的调用,因而使得访问DB-LIB的应用程序很容易从一个平台向另一个平台移植。

(3)它是一种高性能的数据库Sybase真正吸引人的地方还是它的高性能。

体现在以下几方面:●可编程数据库通过提供存储过程,创建了一个可编程数据库。

Sybase12.5 数据库的安装、卸载、备份、还原全集资料

Sybase12.5 数据库的安装、卸载、备份、还原全集资料

一、Sybase 数据库服务器端的安装由于以前一直用sql server数据库,早已熟悉了sql 环境,最近突然接触sybase数据库,不免有些陌生,各种不习惯呀。

个人感觉sql比sybase好用多了,也许是我习惯sql了吧,但是有一点是可以肯定的,sql的视觉效果比sybase强的不是一点半点。

不过吧,sql比sybase强(这是对于用户或是小型企业而言,对于大型企业来说,咱也不晓地,没准sybase比较适合大型企业)也是理所应当的,毕竟sql是在sybase的基础上发展起来的,怎么说也算是站在巨人的肩膀上吧。

好了,不多说了,开始具体介绍sybase 安装。

sybase数据库的安装分为服务器端和客户端,本文先介绍一下服务器端的安装。

1、和其他程序一样,双击setup.exe.2、出现欢迎界面,直接点击next即可。

3、下面选择相应国家的协议,咱是中国人,当然选择“中华人民共和国”啦,并选择下面单选钮“我同意”,next。

4、选择Sybase数据库的主目录,我选择的E盘,因为这个盘是NTFS格式的,数据库文件都比较大(单个文件),如果单个文件超过4G,FAT32格式的磁盘就会出错。

大家可根据磁盘空间分配进行改动,但目录名Sybase,最好不要改动,方便日后维护,若改动注意不要用中文,请使用英文字母名。

5、点击【Next】后,若路径名不存在,会提示创建,选[是]即可。

6、接下来选择自定义(custom)安装7、选择你要安装的文件,服务器端嘛,最好全选。

8、接下来,next即可。

9、接下来你将看到安装进度条,这个过程比较漫长,大家耐心等待……10、接下来复选框全选。

11、选中[自定义配置新的Adaptive Server]选项和自定义配置新的Backup Server选项,对Adaptive Server、Backup Server服务进行手工设置,点击【Next】下一步,屏幕显示窗口12、Adaptive Server配置如下,Backup server端口号为5001。

【sybase】bcp 问题总结

【sybase】bcp 问题总结

【sybase】bcp 问题总结标签:sybase bcp分类:数据库技术2010-12-29 23:04一. Bcp 错误ct_connect(): network packet layer: internal net library error: Net-Lib protocol driver call to connect two endpoints failedEstablishing connection failed.无法连接远程服务器cs_convert: cslib user api layer: common library error: Theconversion/operation was stopped due to a syntax error in the source field. CSLIB Message: - L0/O0/S0/N36/1/0:导入表对应的列数量不正确cs_convert: cslib user api layer: common library error: Theconversion/operation was stopped due to a syntax error in the source field.导入数据存在自增长列,但数据源不存在自增长列blk_rowxfer(): blk layer: internal BLK-Library error: Data truncated while doing local character set conversion. col = 3导入表对应的字段长度不足ct_sendpassthru(): network packet layer: internal net library error: Net-Library operation terminated due to disconnectCTLIB Message: - L5/O3/S5/N5/5/0:字符集错误二. Bcp 导入不同字符集数据bcp in到字符集是utf8的数据库时使用以下的参数,这样就可以解决java程序使用utf8字符集看中文是乱码的问题:bcp dbname..tabname in filename -Uxx -Pxx -Sxx-Jcp936 -c -Y三. 注意事项1. Tempdb的大小当Sybase执行bcp in脚本时,会占用导入数据2倍的tempdb空间,因此在执行前要仔细估计最大的table的大小,保证有足够的tempdb空间。

Linux平台下Sybase数据库备份的方法分析

Linux平台下Sybase数据库备份的方法分析

Linux平台下Sybase数据库备份的方法分析作者:刘君尧王辉静刘云霞来源:《无线互联科技》2018年第01期摘要:对于从事信息系统管理的人员来说,掌握数据库的备份方法在工作中尤为重要。

当本地数据出错或者磁盘损坏时,可以利用备份的数据恢复数据库系统,从而保证系统的正常运行。

文章以Linux平台下的Sybase数据库为例,给出两种不同备份的实现方法。

关键词:Linux平台;Sybase;数据库备份对于从事信息管理系统的人员来说,掌握数据库的备份是必备的技能。

当本地数据出错、人为误操作或者磁盘/文件损坏时,可以利用备份的数据进行恢复,从而保证系统的正常运行[1]。

本文以Linux平台下Sybase数据库的备份为例,给出两种备份的实现方法,并对这两种方法实现的操作专业程度、时间性能、可扩展性等方面进行比较说明,以供信息系统管理人员进行相应管理操作使用。

Linux平台下Sybase数据库备份的方法主要有两种:(1)整库二进制备份;(2)整表文本备份。

下面针对这两种备份方法进行详细描述,并给出客观的对比结论。

1 整库二进制备份恢复1.1整库二进制备份整库二进制备份主要采用转储数据库的方式进行,就是为整个数据库(包括数据、表结构、触发器、游标、存储过程、事务日志等)做一次完整的物理备份。

Sybase进行数据库转储时,Sybase系统自动执行一次Checkpoint(所谓的Checkpoint是将日志和数据从内存缓冲区写入到硬盘中(只针对改动过的数据进行写入,即脏页写入),把己被分配的日志页和数据页也写入到磁盘中,确保进行数据库转储时数据的正确性。

通过整库二进制备份,可以将整个数据库的运行环境完整复制一份,包括数据库的结构、脏页和碎片,在使用load命令恢复时,只能恢复到同样大小的数据库中(数据和日志的大小都只能和原来完全一致),可以确保真正地还原,恢复后数据库准确无误。

可以采用如下的方式进行Sybase的整库二进制备份:使用Sybase数据库提供的isql命令登录数据库服务器,并使用dump命令进行备份。

SYBASE数据库常见的问题总结

SYBASE数据库常见的问题总结

SYBASE 数据库常见问题总结SYBASE 数据库常见问题总结1. SYSLOGS日志满了进不了系统,如何清除日志启动系统2. 数据库日志损坏时重建日志启动数据库的解决办法3. 数据库处于可疑状态的解决方法4.Sybase系统崩溃了,没有备份,但设备文件还存在,如何恢复数据库?5.不小心直接删除了日志的设备文件,如何恢复数据库?6.sa密码忘记了导致isql -Usa -P******进不去怎么办?7.关于sybase的配置-(数据库慢的请留意)8.设备路径更改的方法9. dump文件load后数据库访问不了解决办法10.sybase数据库备份方案11.master数据库状态被置为-32768后的处理方法1. SYSLOGS日志满了进不了系统,如何清除日志启动系统业务系统数据库不能正常启动,对于这一类问题,我们按照如下步骤解决:第一步,启用allow updates to system tables,这样可以使具有系统管理员角色的用户能够改变系统表并可创建和修改系统表的存储过程,其中系统表包括master数据库中所有Sybase提供的表以及用户数据库中所有以“sys”开头的表和在sysobjects表中其ID值小于或等于100的表。

系统表的不正确变更会导致数据库损坏和数据丢失,修改系统表时务必要使用begin transaction来保护数据库不受可能损坏数据库的错误影响,完成修改后应立即禁用allow updates to system tables。

1>sp_configure "allow update",12>go第二步,Adaptive Server中的每个数据库在sysdatabases中都有相应的一行,安装Adaptive Server后,master数据库、model数据库、sybsystemprocs和tempdb数据库在sysdatabases中都将有相应的条目,如果已经安装审计功能,sybsecurity数据库也将在其中有相应的条目。

Sybase清理海量历史数据

Sybase清理海量历史数据

Sybase清理海量历史数据Sybase清理海量历史数据(单张表几亿数据真实环境使用中)之前在试验了bcp,传统的正向delete方法皆不可取的情况下,考虑使用select into 反向做法,把要保留的数据通过select into 法重新创建对象,达到了数据快速进入新表,并对新表进行索引默认值重建,即达到了数据清理,也达到了数据清理后索引不会失效的目的,还腾出了碎片空间。

前期采用了静态的处理方式,在由于不同地方部署版本不同导致数据库结构也不完全相同情况下,需要ddlgen方式拿回外网的ddl脚本然后对静态清理程序进行对比修改,非常繁琐,头晕眼花对的,后来考虑到sybase的对象定义信息都保留的系统数据字典中,通过分析数据字典的方式进行对象的动态重构,从而省去了程序对照修改的累事。

以下看我实际处理的步骤思路以及具体脚本:1.清理程序基本保证在深夜时间可以清理完毕,但是为了保证第二天海量数据运营级的数据库能够正常运行,所以做到了清理程序支持断点续清,清理未完也不影响第二天应用正常使用的目的。

所以额外增加了清理日志表:IF EXISTS (SELECT 1 FROM sysobjects o WHERE = 'dba_delete_history_data' AND o.type = 'U')drop table dba_delete_history_datagocreate table dba_delete_history_data (id char(32)not null ,--流水idtable_name varchar(100)not null ,--表名start_time datetimenull ,--清理开始时间end_time datetimenull ,--清理结束时间status intnot null, --清理结果状态default_fail_sql varchar(7000) null --默认值加了注释,导致语句过长产生问题)lock datarowsgo-----------------------------------------------------------------------------------------------2.单个对象表的清理封装过程up_delete_history_tableif exists (select 1from sysobjectswhere id = object_id('up_delete_history_table')and type = 'P')drop procedure up_delete_history_tablegocreate procedure up_delete_history_table@objname varchar(100),--对象表名@condition_name varchar(1000),--清理条件@is_bak varchar(1),--清理后是否备份原表@server_lock_scheme varchar(50) --服务的锁级别配置asdeclare @start_time datetimedeclare @end_time datetimedeclare @indid intdeclare @keys varchar(1024)declare @msg varchar(1024)declare @create_tmp_str varchar(1024)declare @drop_temp varchar(1024)declare @lock_datarows_str varchar(100)declare @pk_str varchar(1024)declare @start_str varchar(100)declare @default_str varchar(8000)declare @index_str varchar(1024)declare @grant_str varchar(1024)declare @ddl_str varchar(1024)declare @rename_str varchar(1024)declare @end_str varchar(100)declare @column_name varchar(1024)declare @pre_column_name varchar(1024)declare @default_name varchar(255)declare @new_id char(32)declare @data_str varchar(10)declare @sysstat2 intdeclare @tab_lock_scheme varchar(50)beginset nocount onset @start_time=getdate()set @data_str=right(convert(varchar(10),getdate(),112),4)select @new_id =newid()insert into dba_delete_history_dataselect @new_id,@objname,@start_time,null,0,''set @start_str =@objname+' data cleaning start......'print @start_strset @drop_temp="if exists(select 1 from sysobjects where type='U' and name='"+@objname+"_tmp') begin truncate table "+@objname+"_tmp drop table "+@objname+"_tmp end"exec (@drop_temp)set @create_tmp_str='select * into '+@objname+'_tmp from '+@objname+' '+@condition_nameexec (@create_tmp_str)if @@error != 0return -1create table #temp(id int identity,column_name varchar(200),default_name varchar(7500))declare @n intdeclare @rows intselect @n=1insert #temp(column_name,default_name)select ,d.textfrom syscomments d,sysprocedures p ,syscolumns c,sysobjects owhere d.id = c.cdefault and p.id=d.id and c.id=o.id and o.type='U' and =@objnameand p.sequence=0 and p.status & 4096 =4096order by d.id,d.colidselect @rows = @@rowcountselect @pre_column_name=''while @n <= @rowsbeginselect @column_name=column_name,@default_name=default_name from #temp where id=@nif @n=1select @default_str ='alter table '+@objname+'_tmp replace '+@column_name+' '+@default_nameif @n>1 and @column_name!= @pre_column_namebeginexec (@default_str)if @@error != 0beginupdate dba_delete_history_dataset default_fail_sql=default_fail_sql+left(@default_str,400)+' 'where table_name=@objnameendselect @default_str ='alter table '+@objname+'_tmp replace '+@column_name+' '+@default_nameendif @n>1 and @column_name = @pre_column_nameselect @default_str=@default_str+@default_nameselect @pre_column_name=@column_nameselect @n = @n + 1endif @rows >0exec (@default_str)if @@error != 0beginupdate dba_delete_history_dataset default_fail_sql=default_fail_sql+left(@default_str,400)+' 'where table_name=@objnameenddrop table #tempif @@trancount = 0begin set chained off endset transaction isolation level 1if @objname like "%.%.%" and substring(@objname, 1, charindex(".", @objname) - 1) != db_name()begin raiserror 17460 endif not exists (select id from sysobjects where id = object_id(@objname)) begin raiserror 17461 endselect @indid = min(indid)from sysindexes where id = object_id(@objname) and indid > 0 and indid < 255 if @indid is nullbeginexec sp_getmessage 17640, @msg outputprint @msgendwhile @indid is not nullbegindeclare @i intdeclare @lastindid intselect @keys = "", @i = 1while @i <= 31beginselect @thiskey = index_col(@objname, @indid, @i)if (@thiskey is null)begingoto keysdoneendif @i > 1beginselect @keys = @keys + ", "endselect @keys = @keys + @thiskeyselect @sorder = index_colorder(@objname, @indid, @i)if (@sorder = "desc")select @keys = @keys + " " + @sorderselect @i = @i + 1endkeysdone:if exists(select 1 from sysindexes where id = object_id(@objname) and indid = @indid and status & 2048 = 2048)beginselect @pk_str='alter table '+@objname+'_tmp add constraint '+name+' primary key nonclustered ('+@keys+')'from sysindexes where id = object_id(@objname) and indid = @indid and status & 2048 = 2048exec (@pk_str)endif exists(select 1 from sysindexes where id = object_id(@objname) and indid = @indid and status & 2048 <> 2048)beginselect @index_str='create index '+name+' on '+@objname+'_tmp('+@keys+')'from sysindexes where id = object_id(@objname) and indid = @indid and status & 2048 <> 2048exec (@index_str)endselect @lastindid = @indidselect @indid = nullselect @indid = min(indid) from sysindexes where id = object_id(@objname) and indid > @lastindid and indid < 255endcreate table #temp_protect(id int identity,table_name varchar(200),user_name varchar(200),action int,protecttype int)declare @protect_n intdeclare @protect_rows intdeclare @protect_str varchar(200)select @protect_n=1insert #temp_protect(table_name,user_name,action,protecttype)select ,,p.action,p.protecttypefrom sysprotects p,sysobjects o,sysusers u where p.id=o.id and u.uid=p.uid and =@objnameselect @protect_rows = @@rowcountwhile @protect_n <= @protect_rowsbeginselect @protect_str=(case when protecttype=0 then 'grant with grant 'when protecttype=1 then 'grant 'when protecttype=2 then 'revoke ' end) +(case when action=151 then 'references'when action=167 then 'set proxy'when action=187 then 'set statistics on'when action=188 then 'set statistics off'when action=193 then 'select'when action=195 then 'insert'when action=196 then 'delete'when action=197 then 'update'when action=198 then 'create table'when action=203 then 'create database'when action=205 then 'grant'when action=206 then 'revoke'when action=207 then 'create view'when action=221 then 'create trigger'when action=222 then 'create procedure'when action=224 then 'execute'when action=228 then 'dump database'when action=233 then 'create default'when action=235 then 'dump transaction'when action=236 then 'create rule'when action=253 then 'connect'when action=282 then 'delete statistics'when action=317 then 'dbcc'when action=320 then 'truncate table'when action=326 then 'update statistics'when action=347 then 'set tracing' end) +' on '+table_name+'_tmp to '+user_namefrom #temp_protect where id = @protect_nexec (@protect_str)select @protect_n = @protect_n + 1enddrop table #temp_protectif(lower(@is_bak)='y')beginset @drop_temp="if exists(select 1 from sysobjects where type='U' and name='"+@objname+'_'+@data_str+"') begin truncate table "+@objname+'_'+@data_str+" drop table "+@objname+'_'+@data_str+" end"exec (@drop_temp)set @rename_str='exec sp_rename '+@objname+','+@objname+'_'+@data_strexec (@rename_str)set @rename_str=''----更改备份表的lock schema以达到重新编译表对象的目的select @sysstat2 = sysstat2 from sysobjects where name = @objname+'_'+@data_str and type = 'U'if @sysstat2 & 8192 = 8192 --原为allpagesbeginset @lock_datarows_str='alter table '+@objname+'_'+@data_str+' lock datarows'exec (@lock_datarows_str)endelse if @sysstat2 & 16384 = 16384 --原为datapagesbeginset @lock_datarows_str='alter table '+@objname+'_'+@data_str+' lock datarows'exec (@lock_datarows_str)endelse if @sysstat2 & 32768 = 32768 --原为datarowsbeginset @lock_datarows_str='alter table '+@objname+'_'+@data_str+' lock datapages'exec (@lock_datarows_str)set @lock_datarows_str='alter table '+@objname+'_'+@data_str+' lock datarows'exec (@lock_datarows_str)endendif(lower(@is_bak)='n')beginset @ddl_str='truncate table '+@objnameexec (@ddl_str)set @ddl_str='drop table '+@objnameexec (@ddl_str)endset @rename_str='exec sp_rename '+@objname+'_tmp,'+@objnameexec (@rename_str)--更改新的正式表的lock schema以达到重新编译表对象的目的select @sysstat2 = sysstat2 from sysobjects where name = @objname and type = 'U' if @sysstat2 & 8192 = 8192 --原为allpagesbeginset @lock_datarows_str='alter table '+@objname+' lock datarows'exec (@lock_datarows_str)endelse if @sysstat2 & 16384 = 16384 --原为datapagesbeginset @lock_datarows_str='alter table '+@objname+' lock datarows'exec (@lock_datarows_str)endelse if @sysstat2 & 32768 = 32768 --原为datarowsbeginset @lock_datarows_str='alter table '+@objname+' lock datapages'exec (@lock_datarows_str)set @lock_datarows_str='alter table '+@objname+' lock datarows'exec (@lock_datarows_str)endset @end_str=@objname+' data cleaning complete!'print @end_strset @end_time=getdate()update dba_delete_history_dataset status=1,end_time=@end_timewhere id=@new_id and default_fail_sql =''set nocount offendgosp_procxmode up_delete_history_table, anymodegogrant execute on up_delete_history_table to smsgogrant execute on up_delete_history_table to webgo----------------------------------------------------------------------------------------------------------3.多表传入解放人机交互时间作为整体任务,进行同一分割时间点的批任务清理过程up_delete_history_dataif exists (select 1from sysobjectswhere id = object_id('up_delete_history_data')and type = 'P')drop procedure up_delete_history_datagocreate procedure up_delete_history_data@objnames varchar(8000), --多表字符串,表名间用逗号隔开@history_time varchar(20), --清理时间点@is_bak varchar(1) --是否备份原表标记asdeclare @condition_name varchar(1000)declare @objname varchar(50)declare @lock_scheme varchar(50)select @objnames=','+@objnames+','beginif(lower(@is_bak) not in ('n','y'))beginprint "the third parameter means is bakup all source tables, must be 'n' or 'y'"return -1endif @objnames is null or char_length(@objnames)=0beginprint "please input source tables"return -1endif @history_time is null or @history_time>getdate()beginprint "please input history_time and histroy_time must less than current date"return -1endselect @lock_scheme=value2 from master..sysconfigures where config=327 and name='lock scheme'if charindex(',ew_sending_queue,',@objnames) > 0beginset @objname='ew_sending_queue'set @condition_name='where send_time > convert(char(10),dateadd (dd ,-5,getdate()),111)'exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',sms_sending,',@objnames) > 0beginset @objname='sms_sending'set @condition_name='where send_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',sms_receiving,',@objnames) > 0beginset @objname='sms_receiving'set @condition_name='where receive_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',sms_timing,',@objnames) > 0beginset @objname='sms_timing'set @condition_name='where creation_time > convert(char(10),dateadd (dd ,-5,getdate()),111)'exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_schemeendif charindex(',si_record,',@objnames) > 0beginset @objname='si_record'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',msg_comment,',@objnames) > 0beginset @objname='msg_comment'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',msg_homework,',@objnames) > 0beginset @objname='msg_homework'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',msg_notice,',@objnames) > 0beginset @objname='msg_notice'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',msg_sending,',@objnames) > 0beginset @objname='msg_sending'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',msg_receiving,',@objnames) > 0beginset @objname='msg_receiving'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',ex_fjabt_student_record,',@objnames) > 0beginset @objname='ex_fjabt_student_record'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',ex_fjabt_teacher_record,',@objnames) > 0beginset @objname='ex_fjabt_teacher_record'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',adc_interface_log,',@objnames) > 0beginset @objname='adc_interface_log'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',adc_userbind_log,',@objnames) > 0beginset @objname='adc_userbind_log'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',fee_pay_detail,',@objnames) > 0beginset @objname='fee_pay_detail'set @condition_name='where pay_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',log_card_login,',@objnames) > 0beginset @objname='log_card_login'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',sys_operation_log,',@objnames) > 0beginset @objname='sys_operation_log'set @condition_name='where operated_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_student_signin,',@objnames) > 0beginset @objname='st_student_signin'set @condition_name='where statistic_date > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_teacher_signin,',@objnames) > 0beginset @objname='st_teacher_signin'exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_device,',@objnames) > 0beginset @objname='st_device'set @condition_name='where stat_date > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_fjabt_student_record,',@objnames) > 0beginset @objname='st_fjabt_student_record'set @condition_name='(index pk_st_fjabt_student_record) where statistic_date > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_fjabt_teacher_record,',@objnames) > 0beginset @objname='st_fjabt_teacher_record'set @condition_name='(index pk_st_fjabt_teacher_record) where statistic_date > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_school,',@objnames) > 0beginset @objname='st_school'set @condition_name='where statistic_date > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_user,',@objnames) > 0beginset @objname='st_user'set @condition_name='where statistic_date > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',log_module_access,',@objnames) > 0beginset @objname='log_module_access'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',log_user_operation,',@objnames) > 0beginset @objname='log_user_operation'exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',eb_login_log,',@objnames) > 0beginset @objname='eb_login_log'set @condition_name='where login_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',fp_call_bill,',@objnames) > 0beginset @objname='fp_call_bill'set @condition_name='where creation_time > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_card_class,',@objnames) > 0beginset @objname='st_card_class'set @condition_name='(index pk_st_card_class) where stat_date > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_student_class,',@objnames) > 0beginset @objname='st_student_class'set @condition_name='(index pk_st_student_class) where stat_date > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_sms_analysis_class,',@objnames) > 0beginset @objname='st_sms_analysis_class'set @condition_name='(index pk_st_sms_analysis_class) where stat_date > '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',st_student_record,',@objnames) > 0beginset @objname='st_student_record'set @condition_name='(index idx_school_id) where month >= convert(int,datepart(year,+'''+@history_time+'''))*100+convert(int,datepart(mon th,+'''+@history_time+'''))'exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endif charindex(',ew_score_detail,',@objnames) > 0beginset @objname='ew_score_detail'set @condition_name='where process_time> '''+@history_time+''''exec up_delete_history_table @objname,@condition_name,@is_bak,@lock_scheme endendgosp_procxmode up_delete_history_data, anymodego(注:可编辑下载,若有不当之处,请指正,谢谢!)。

2024sybase建库sybase数据库使用教程

2024sybase建库sybase数据库使用教程

sybase建库sybase数据库使用教程contents •Sybase数据库简介•Sybase数据库安装与配置•Sybase数据库基本操作•Sybase数据库高级功能•Sybase数据库性能优化•Sybase数据库备份与恢复•Sybase数据库安全管理目录01Sybase数据库简介Sybase 数据库提供了高性能的数据处理能力,支持大量并发用户和数据操作。

高性能Sybase 数据库具有良好的可伸缩性,可以根据业务需求进行扩展或缩减。

可伸缩性Sybase 数据库提供了多种安全机制,包括身份验证、访问控制、数据加密等,确保数据的安全性和完整性。

安全性Sybase 数据库提供了丰富的开发和管理工具,使得数据库的开发、部署和维护变得更加容易。

易用性Sybase 数据库特点03互联网应用Sybase 数据库也适用于互联网应用,如电商、社交等,能够应对高并发、大数据量的挑战。

01企业级应用Sybase 数据库适用于大型企业级应用,如ERP 、CRM 等,能够满足复杂业务流程和数据处理需求。

02移动应用Sybase 数据库支持移动应用的后端数据库,为移动应用提供高效、稳定的数据存储和处理能力。

早期阶段发展壮大被收购与整合Sybase数据库最早由Sybase公司开发,是一款基于关系型数据库的管理系统。

随着市场需求的不断增长,Sybase数据库不断进行技术创新和产品升级,逐渐发展成为一款功能强大的企业级数据库产品。

后来,Sybase公司被SAP公司收购,Sybase数据库也成为了SAP产品线中的重要组成部分,与SAP的其他产品进行了深度整合和优化。

02Sybase数据库安装与配置安装Sybase 数据库软件按照安装向导的指示完成软件的安装过程,选择适当的安装选项和配置设置。

验证安装安装完成后,可以通过命令行界面或图形用户界面验证Sybase 数据库软件是否成功安装。

下载Sybase 数据库软件安装包从官方网站或可信赖的下载站点获取适用于您的操作系统的Sybase 数据库软件安装包。

sybase 12[1].5 安装手册(图形界面)

sybase 12[1].5 安装手册(图形界面)

Sybase 12.5 for win2000 安装手册(图形界面)把sybase12.5 for win2000 的安装光盘放入光驱,安装程序会自动启动java安装程序:选择完全安装:选择安装目录:显示要安装的产品列表:提示创建sybase主目录:copy软件到硬盘:注册sybase的lisence点击“yes”,不注册lisence点击“no”:输入sybase产品序列内容:注册完毕,点击“继续安装”,系统提示需重启操作系统,使得sybase变量生效:操作系统启动后,安装程序自动引导到配置sybase服务器的界面:选择“创建adaption server”创建sybase服务:输入sybase服务名选择服务器页面大小,页是sybase存储的最小单位,缺省2K,如非特殊要求(海量数据存储)160,168应用使用缺省2K以减少碎片,有效利用磁盘空间。

输入master数据库的设备文件位置及大小(100M~200M),单机使用缺省路径,双机sybase 应用需把master库建立在共享盘目录下(磁盘阵列)。

输入systemproc数据库的设备文件位置及大小(100M~200M),单机使用缺省路径,双机sybase应用需把systemproc库建立在共享盘目录下(磁盘阵列)sybase错误日志的路径(使用缺省),,点击“网络地址”配置syabase服务的监听端口点击“增加”输入本机ip地址(单机)或浮点ip(双机)及sybase监听的端口(5000):点击确定,配置xpserver的监听程序:点击“配置缺省XP Server”:点击“网络地址”:点击“增加”输入本机ip地址(单机)或浮点ip(双机)及xp server监听的端口(5004)点击“确定”点击“继续”,安装程序开始build sybase server:提示server配置、安装完成,点击“继续”:点击“配置Adaption server”,进入配置sybase服务的字符集程序:选择服务,点击继续:点击继续进入配置页面:点击“语言”点击字符集下的“设置缺省”:选中“ISO 8859-1……..”即设置iso_1为sybase服务的缺省字符集.点击保存,退出配置界面,点击“退出”,退出配置界面。

SYBASE常见问题

SYBASE常见问题

SYBASE常见问题1.Sybase数据库日志满碰到这种情况,常会出现能查询数据,但无法更新数据,启动事务等。

在代码中跟踪可以发现,连接能够打开,但事务却无法开启。

常会提示“Connection to Sybase server has been lost. All active transactions have been rollbacked”的错误信息。

解决办法:若是开发数据库,则直接清除日志即可。

若是正式数据库:建议备份当前日志再清空日志,扩日志设备及日志数据库。

清空日志的语句为『dump transaction database_name with no_log 』2.Sybase中文乱码出现这种情况的原因是sybase的服务器字符集不支持中文或是客户端的字符集与服务端字符集不一致。

可以考虑更改sybase的默认字符集。

在Sybase12.5的版本中支持中文的字符集有CP936、EUCGB、UTF-8和GB18030。

这里我们针对Sybase 服务器字符集不支持中文给出解决办法:解决办法(安装cp936字符集):假设sybase的安装路径为"D:\Sybase"。

(1)D:\>cd \sybase\charsets\cp936(2) D:\sybase\charsets\cp936> charset -Usa -Psa_pass -Sserver_name binary.srt cp936(3) 在InterActiveSQL中执行『select name,id from syscharsets』,需注意的是这里要选择在“master”数据库下执行,第4步也是。

找到name为cp936的ID,假定是171。

(4)在InterActiveSQL中执行『sp_configure 'default character set id',171』(5) 重启Sybase服务两次。

Sybase数据库维护快速参考手册

Sybase数据库维护快速参考手册

1. 安装指导 (3)1.1 ASE安装一般指导 (3)1.2 ASE11.9.2简易安装手册(for Unix) (4)安装概述 (4)预下载任务: (5)下载 (6)IBM AIX (6)HP UX (6)Digital Unix (6)预安装任务: (7)开始安装: (8)安装后任务: (10)1.3 ASE12.0 简易安装手册 (10)1.3.1 SYBASE ASE12.0 For HP-9000/800 HP-UX安装指南 (10)1.3.2 SYBASE ASE12.0 For SUN SOLARIS安装指南 (13)1.3.3 SYBASE ASE12.0 For IBM RS/6000 AIX 安装指南 (16)1.3.4 SYBASE ASE12.0 For DIGITAL UNIX 安装指南 (19)1.4 SYBASE ASE12.0 For UNIX 双机切换设置指南(standby方式) (22)2. 技术专刊 (24)2.1 关于Backup Server (24)2.2 Backup Server的名字 (26)2.3 Sybase的数据库设备 (27)2.4 数据库选项(dboptions)的使用与管理 (28)2.5 Index & Performance (31)2.6 SQL Server 事务日志 (34)2.7 阀值管理(Threshold Management) (39)2.8 日常后备数据库 (42)2.9 使用dump transaction with no_log的危险性 (43)2.10 在ASE 11.9.2版中采用了行级加锁机制以提高性能 (44)2.10.1 所支持的加锁机制 (44)2.10.2 对小量数据的多次并发访问 (48)2.10.4 死锁 (51)2.11 DBCC (55)2.12 在SCO OPENSERVER 5上安装SQL SERVER 11.0.x (59)2.13 在SCO Unixware7.1上安装ASE11.92 (61)2.14 ASE 11.9.2 for Linux安装步骤 (63)3.常见问题 (66)3.1 初级篇 (66)3.1.1 在SQL Server中表大小是否有限制? (66)3.1.2 一旦客户突然退出或系统重启,SQL Server如何回滚事务? (66)3.1.3 为什么有时候数据库事务日志满了,使用Dump transaction with no-log仍不能截断日志? (66)3.1.4 即使表上没有建立索引,为什么BCP操作仍记日志? (66)3.1.5 如何生成bcp命令文件(以pubs2为例)? (66)3.1.6 如何后备数据量大于2GB的数据库 (67)3.1.7 如何查找数据库启动失败原因 (67)3.1.8 如何在NT、UNIX下启动关闭ASE (68)3.1.9 如何在Windows操作系统上安装Open Client12.0 (69)3.1.10基本的ASE 数据库管理命令 (70)3.1.11简单故障及排除方法 (71)3.2 中级篇 (71)3.2.1 IP地址改变后如何修改interfaces文件 (71)3.2.2 如何解决数据库被挂起的问题 (72)3.2.3 如何终止数据库恢复过程 (74)3.2.4 如何删除坏的用户数据库?(以pubs2为例) (75)3.2.5 如何检查数据库中数据的一致性 (77)3.2.6 如何更改SQL Server名称(在UNIX、OPENVMS平台上) (78)3.2.7 如何在HP平台BCP OUT超过2G的数据 (79)3.3 高级篇 (80)3.3.1如何配置SQL Server来做远程备份? (80)3.3.2 如何配置SQL Server 11,使得快速BCP具有更好的性能? (80)3.3.3如何将SQL/ASE SERVER移植到同种平台(相同操作系统)的系统上 (81)3.3.4 如何做Rebuild Master (82)3.3.5 如何移植master设备 (84)3.3.6 如何重建sybsystemprocs系统数据库 (86)3.3.7 如何做 rebuild log (87)3.3.8 如何恢复master数据库 (88)3.3.9 Replication Server 12.0如何支持字符集为eucgb的ASE数据库? (89)4. SYBASE培训服务 (91)4.1 SYBASE培训概述 (91)4.2 SYBASE主要数据库课程介绍 (92)1. 安装指导1.1 ASE安装一般指导一. 检查 Release Bulletin 安装相应的OS版本/css/techinfo.nsf/Release+Bulletinshttp://www-edm/cgi/websql/functions/cert/hts/AdvSearch/SEARCH.hts六. 设置SYBASE 用户环境变量1. SYBASE2. DSQUERY3. PATH八. 修改设备权限和属主chown uid:gid /device/..........1.2 ASE11.9.2简易安装手册(for Unix)安装概述一、安装分为两部分:Unload 部分–使用sybsetup or sybload应用程序从安装介质卸载ASE产品到机器上Install 部分–使用srvbuild应用程序来安装配置ASE产品在Install部分,用srvbuild来安装新的服务。

Sybase IQ监控与常见问题解答

Sybase IQ监控与常见问题解答
14- 4
© 2002 Sybase, Inc. and its subsidiaries. All rights reserved.
监控Loads/Deletes/Inserts

在事务结束时,会输出总结信息:
100000 records were inserted into 'customer' Insert for 'customer', completed in 86 seconds.
监控数据装载信息

在数据装载的第一阶段, 显示从数据源读数据的统 计信息

统计当前使用内存 (IQ caches + Heap)/ 装载总内存 的 比例
Mem: 30mb/M31

显示数据表空间与临时表空间的使用状况, 数据块的 使用情况以及上锁情况
Main Blks: U5872/28%, Buffers: U6392/L9 Temporary Blks: U13677/33%, Buffers: U3121/L116


当这些选项存在非零 值时,数据库可能存 在较为严重的错误

为了使此存储过程获 得准确的结果,必须 在运行此存储过程之 前提交检查点
(continued…)
© 2002 Sybase, Inc. and its subsidiaries. All rights reserved.
14- 11
使用系统提供存储过程监控数据库
© 2002 Sybase, Inc. and its subsidiaries. All rights reserved.
监控数据装载信息

在装载的过程中存在三个阶段
Phase 1 – 从文本文件读数据,然后向磁盘写LF, HNG, and FP索引数据 Phase 2 – 对HG索引数据进行排序; 同时继续将其它类 型的索引数据写到磁盘上 Phase 3 – 将HG索引数据写到磁盘上

SYBASE常见问题

SYBASE常见问题
Explanation: An internal locking/synchronization rule was broken. Report the error to your System Administrator. Shut down and restart Adaptive Server. 5216 26 DUMP DATABASE for database %d failed: trailing piece in not-full list proved not-empty. Explanation: An internal locking/synchronization rule was broken. Report the error to your System Administrator. Shut down and restart Adaptive Server. 5217 20 DFL Manager failed to sleep. Explanation: Adaptive Server encountered an internal error affecting the current process. Report the error to your System Administrator.
Explanation: An internal locking/synchronization rule was broken. Report the error to your System Administrator. Shut down and restart Adaptive Server. 5211 26 Failure concurrent with dump in database %d: does not possess flushlist lock. caller

【计算机应用】_sybase公司_期刊发文热词逐年推荐_20140726

【计算机应用】_sybase公司_期刊发文热词逐年推荐_20140726

科研热词 并行化 节点 服务器 性能 分布式查询 共享 高性能 连续性 行锁定 线程 索引键 碎片 横向扩展 查询操作 查询优化器 查询 架构 智能 数据库选项 数据库管理系统 插入点 执行查询 开发人员 并行执行 平台 工作负载 实时数据 实时分析 实时信息 大规模并行处理 复杂查询 商业环境 可扩展性 升级 分析结果 分析应用 分布式查询处理 分区表 分区模式 任务单元 事件处理 临时存储
推荐指数 3 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
推荐指数 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2010年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1定义 用户数据库 版本 数据迁移 数据库管理员 数据库服务器 操作系统 技术支持 开发人员 应用程序 复制服务器 发展历程 升级方法 内存数据库 停机时间 临时数据库
推荐指数 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2011年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
2008年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

SYBASE数据库常见的问题总结

SYBASE数据库常见的问题总结

SYBASE 数据库常见问题总结SYBASE 数据库常见问题总结 (1)1. SYSLOGS日志满了进不了系统,如何清除日志启动系统 (1)2. 数据库日志损坏时重建日志启动数据库的解决办法 (3)3. 数据库处于可疑状态的解决方法 (5)4.Sybase系统崩溃了,没有备份,但设备文件还存在,如何恢复数据库? (8)5.不小心直接删除了日志的设备文件,如何恢复数据库? (13)6.sa密码忘记了导致isql -Usa -P******进不去怎么办? (15)7.关于sybase的配置-(数据库慢的请留意) (15)8.设备路径更改的方法 (19)9.dump文件load后数据库访问不了解决办法 (20)10.sybase数据库备份方案 (20)11.master数据库状态被置为-32768后的处理方法 (26)1. SYSLOGS日志满了进不了系统,如何清除日志启动系统业务系统数据库不能正常启动,对于这一类问题,我们按照如下步骤解决:第一步,启用allow updates to system tables,这样可以使具有系统管理员角色的用户能够改变系统表并可创建和修改系统表的存储过程,其中系统表包括master数据库中所有Sybase提供的表以及用户数据库中所有以“sys”开头的表和在sysobjects表中其ID值小于或等于100的表。

系统表的不正确变更会导致数据库损坏和数据丢失,修改系统表时务必要使用begin transaction来保护数据库不受可能损坏数据库的错误影响,完成修改后应立即禁用allow updates to system tables。

1>sp_configure "allow update",12>go第二步,Adaptive Server中的每个数据库在sysdatabases中都有相应的一行,安装Adaptive Server后,master数据库、model数据库、sybsystemprocs和tempdb数据库在sysdatabases中都将有相应的条目,如果已经安装审计功能,sybsecurity数据库也将在其中有相应的条目。

网络运维方案

网络运维方案

目录1 综合管理的必要性32 系统概述33 系统结构33.1 系统逻辑结构33.2 系统组网53.2.1 集中管理模式53.2.2 分级管理模式64 主要功能64.1 网络拓扑管理64.1.1 网络拓扑发现64.1.2 IP地址分布图及管理错误!未定义书签。

4.1.3 支持跨地域的多层网络监控9链路的管理84.1.4 故障检测94.2性能监测管理104.2.1 网络性能参数的监视错误!未定义书签。

4.2.2 服务器性能监测管理124.2.3 数据库性能监测管理154.2.4 网络设备监测管理104.2.5 性能参数的统计图表及报表174.2.6 性能预警204.2.7 性能监视参数的拓展214.3 故障管理214.3.1 警的自动通知214.3.2 告警分析与统计224.3.3 告警处理23故障告警源254.4 设备管理25形象直观的设备图标264.4.2 设备快照及设备管理提示信息26设备活动进程及安装软件的查看28设备机架面板28网络设备端口分布管理查询29交换机端口详细信息查询304.4 桌面安全管理304.4.1 储存设备管理304.4.2 终端外设控制314.4.3 终端操作监控314.5 报表管理315 系统特点331 综合管理的必要性随着IT的不断发展,众多行业从其自身业务发展的角度出发,加强了网络信息化建设力度,在其网络基础上开展电子商务、企业资源计划 (ERP)、办公自动化(OA)等业务容。

而在这一发展过程中,逐步发现除了要依靠网络设备本身和网络架构的可靠性之外,管理和安全成为了关键环节。

当前,网络系统的结构复杂和规模庞大,即要保证网络系统的正常运作,又需要保证业务系统的正常工作,传统的各自独立的"分立式”系统已经无法满足复杂的IT系统的管理要求,综合管理平台已经成为大势所趋的方向。

2 系统概述网运维综合管理系统是我司完全自主开发的一套全中文网络运维与安全管理系统,是一套在充分调研了国网络现状以及网络管理方式,采用目前为止最先进的网络管理技术,以用户的网络、线路以及服务器、路由器、交换机、计算机等等的日常运作管理为着眼点,独立研发的完全适应于高、中端网络管理软件领域需求的一套优秀、可靠、先进的网络设备资源与应用服务资源、全中文、通用管理系统,为广大客户从根本上解决了困扰已久的网络管理难的棘手问题,并且很有效的帮助网络管理人员从根本上提高网络利用率和网络服务的质量。

浅谈Sybase封锁原理和解决

浅谈Sybase封锁原理和解决

第一部分锁的有关概念一、锁的类型ASE有三种封锁类型:排它锁(exclusive lock),简称X锁);共享锁(share lock,简称S锁);更新锁(update lock,简称U锁)。

这三种锁的相容矩阵表如下:×:表示不兼容。

∨:表示兼容。

ASE是自动决定加锁类型的。

一般来说,读(select)操作使用S锁,写(update,insert和delete)操作使用X锁。

U锁是建立在页级上的,它在一个更新操作开始时获得,当要修改这些页时,U锁会升级为X锁。

二、锁的粒度ASE支持三种锁粒度:表锁(Table Lock)、页锁(Allpage Lock—锁数据页和索引页, Datapage Lock—只锁数据页)和行锁(Datarow Lock—只锁数据行)。

通常行锁比页锁、表锁的限制更少(或更小)。

行锁只对某一数据行锁定,页锁对本页的所有行进行锁定,而表锁则锁定整个表。

为了减小用户间的数据争用和改进并发性,ASE试图尽可能地使用行锁。

当ASE决定一个语句将访问整个表或表的大多数页时,它用表锁来提供更有效的锁定。

锁定策略直接受查询方案约束,如果update或delete语句没有可用的索引,它就执行表扫描或请求一个表锁定。

如果update或delete语句使用了索引,它就通过请求页锁来开始,如果影响到大多数行,它就要请求表锁。

一旦一个语句积累的页锁超过锁提升阈值,ASE就设法给该对象分配一个表锁。

如果成功了,页锁就不再必要了,因此被释放。

表锁也在页层提供避免锁冲突的方法。

对于有些命令ASE自动使用表锁。

三、死锁(DEADLOCK)简单地说,有两个用户进程,每个进程都在一个单独的页或表上有一个锁。

而且每个进程都想在对方进程的页或表上请求不相容锁时就会发生“死锁”。

在这种情况下,第一个进程在等待另一进程释放锁,但另一进程要等到第一个进程的对象释放时才会释放自己的锁。

ASE检查是否死锁,并终止事务中CPU时间积累最小的用户(即最后进入的用户)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

碎片与数据库性能北京寰信通科技有限公司北京寰信通科技有限公司 Beijing Global Technology Co. LTD 寰信通技术资料汇编-1-目 录第一节 前言 (2)第二节 为什么需要考虑碎片 (2)第三节 什么是碎片 (4)1. 术语定义 (4)2. 碎片定义 (5)第四节 碎片的类型 (6)1. 不规则页链(Messy Page Chains) (6)2. 页面利用率低下(Poor Page Utilization) (9)3. 扩展级碎片(Extent Fragmentation) (11)4. 行碎片(Row Fragmentation) (12)第五节 解决碎片的问题 (13)1. 分析删除操作的影响 (13)2. 分析插入操作的影响 (13)3. 分析更新操作的影响 (15)4. 预防扩展单元碎片 (15)5. 整理碎片的容量规划 (16)6. 使用固定长度的行尺寸 (18)7. 使用单调递增的聚簇索引键 (18)8. 使用唯一聚簇索引键 (18)9. 使用大块I/O 时的考虑 (19)第六节 整理碎片的效果 (20)第七节 结论 (21)北京寰信通科技有限公司 Beijing Global Technology Co. LTD 寰信通技术资料汇编-1-北京寰信通科技有限公司 Beijing Global Technology Co. LTD寰信通技术资料汇编-2-第一节 前言这个白皮书试图帮助DBA 和管理者解决如何保证在生产环境中的Sybase 数据库系统运行在高性能下。

本书假定读者已经比较熟悉Sybase 数据库服务器的有关知识。

因为Microsoft SQL Server 6.5和Sybase 11.9.2以前的版本具有相同的数据结构,所以这个白皮书中的大部分内容也适于Microsoft SQL Server 。

第二节 为什么需要考虑碎片Client/Server 应用开发者有时会关心数据库对象(也就是表)的长期储存。

DBA 作为生产系统的支持者,必须保障应用系统每天的正常运行,因此他们需要监控数据库对象,如磁盘设备、段、表的尺寸及索引使用情况。

开发者在设计数据库应用时,首先需要创建逻辑模型,以满足应用的需求。

下一步是要创建一个良好的物理模型,以保证逻辑设计模型优化工作。

物理设计阶段的工作包括:为表选择正确的数据类型、确定适当的规范化程度、考虑数据库中数据的长期增长情况及对Sybase 服务器和数据库的维护。

Sybase DBA 需要保持高性能的RDBMS 环境。

包括OLTP 应用、批处理有较快响应时间及维持较高的吞吐量。

虽然Sybase ASE 和SQL Server 是RDBMS 保持高性能的引擎,但是数据库性能的好坏很大程度上依赖于应用。

在开发过程中要认真规划性能问题标准的TPC-C 性能测试表明,只有在应用开发阶段经过很好考虑和设计的应用,才会有较好的性能。

整理碎片和表设计性能问题,一直以来不是Sybase ASE 和其它RDBMS 产品主要考虑的问题。

Sybase 数据库表碎片整理的需求也没有纳入Sybase 和Sybase DBA 的考虑范围之内,因为Sybase 数据库中的表没有预先设定的尺寸参数,比如北京寰信通科技有限公司 Beijing Global Technology Co. LTD 寰信通技术资料汇编-3-其它厂商的RDBMS 引擎出现的扩展单元(extent)尺寸和尺寸增长因子等。

最佳的数据库设计会降低硬件投资很多情况都会导致Sybase 数据库中的表出现碎片。

大多数DBA 发现即便是设计很好的数据库也必须通过整理碎片才能使Sybase DBA 维持数据库服务器的高性能,保持硬件投资的价值,并且在不增加硬件投资的情况下维持生产系统的高性能。

目前,大多数厂商的RDBMS 引擎不会自动维护数据结构的紧密性,因为额外的动态维护会加重生产服务器的负担。

Sybase 总是为用户提供高性能的RDBMS 服务器,并且最新的ASE 12.5将继续坚持这一宗旨。

从Sybase SQL Server System 11开始引入了Housekeeper 任务,以支持动态维护。

这个任务将减少数据库checkpoint 的次数,并且从ASE 11.9.2开始这个任务将会在后台自动执行DOL (data-only locked )表的整理工作。

数据碎片的自动整理和索引统计的自动更新是DBA 实现日常工作自动化的第一步。

这个白皮书将阐述表碎片整理对于Sybase 数据库服务器实现高性能的重要性。

这一点对于Sybase 11.0及以后的版本更为重要,因为这些版本具备处理大块I/O 的能力,从ASE 11.9.2之后对于在DOL 表上执行基于OAM 的表扫描将使用扩展I/O 。

对于早期版本的SQL Server ,恰当地整理碎片也会改进数据库服务器的性能。

北京寰信通科技有限公司 Beijing Global Technology Co. LTD寰信通技术资料汇编-4-第三节 什么是碎片这部分内容中,我们假设读者熟悉Sybase 数据存储结构的知识。

这个白皮书适用于那些关心生产环境下Sybase 数据库支持问题的DBA 。

同样也适用于那些关心数据库容量计划以及碎片相关问题的开发者。

Sybase 数据库结构的更多细节信息,可以参考下面资料:White Sands Technology 的ProActive DBA 用户手册第二章(SQL Server数据存储概述);Sybase Adaptive Server Enterprise Performance & Tuning Guide 第三章(数据存储)和第四章(索引如何工作);Sybase Internals (Kirkwood 、John 编写,International Thomson Computer出版社1996年出版)第八章(存储)。

1. 术语定义下面将会列出本书中出现的基本数据结构和术语。

页(Page)页有时也叫做块(block ),它有2K 大小(在Sybaes ASE 12.5及以后的版本中会大些,会达到16K )。

数据或索引页可以包含一行或多行数据,数据行不能跨页,也就是说一个数据行只能位于一个数据页中。

扩展单元(Extent)一个扩展单元是8个连续页组成的。

若该扩展单元为某一个分配单元的第一个extent 时,则该extent 只有7个页可以存放数据,扩展的首页(页号是256的倍数),被保留用作分配映射页。

扩展单元回收(Extend Reclaim)在扩展单元上所有的数据页都未使用的情况下回收扩展单元;数据库扩展单元将被从其所属的表中移去,然后被放入数据库扩展单元空闲列表中。

北京寰信通科技有限公司 Beijing Global Technology Co. LTD 寰信通技术资料汇编-5-保留页(Reserved Page)是指已经分配给特定数据库表的扩展单元中的页,它不一定存放了数据。

数据页(Data Page)是扩展单元中的一页,它已经存放了至少一行数据。

未使用页(Unused Page)是指Reserved Page 中没有存储行的页。

溢出页(Overflow Page)是数据页的一种,用于维护可重复的聚簇索引,用来存储重复的索引行。

缓冲器(Cache Buffer)是指位于数据库服务器缓存中的页。

段(Segment)是一个或多个数据库逻辑块,经常被用于控制表在存储设备上存放的位置。

寻道时间(Seek Time)是指磁头移动到需要的数据片断准备开始读写数据所需要的时间。

2. 碎片定义碎片(fragmentation)是指在访问表时,导致比最优的磁盘I/O 次数多的或比最优的I/O 时间长的任何情况。

在数据库中数据页尽可能地连续、尽可能地满时,select 查询性能最优。

注意,实现优化的查询性能可能会影响插入、删除和更新操作,在白皮书的后面会对此进行讨论。

整理碎片(Defragmentation)是指DBA 所执行的一套操作。

这些操作将回收浪费的存储空间、保持存储空间的连续性,使得在特定的数据行、页、扩展单元、段、数据库和缓存中的信息有最优的顺序。

这些操作会优化系统资源使用,提高性能。

北京寰信通科技有限公司 Beijing Global Technology Co. LTD寰信通技术资料汇编-6-第四节 碎片的类型在数据库中,会有多种形式的碎片产生。

1. 不规则页链(Messy Page Chains )这种类型的碎片发生在表或索引的物理页链不连续的情况下。

当执行全表或索引扫描、范围查询时,这种类型的碎片会导致大量的磁盘寻道操作。

1.1 碎片页链下图说明了页链中不连续的页:如上图所示,页链物理结构不连续,因此当读取页链中页的时候,会导致较多耗时的磁盘寻道操作。

1.2 整齐的页链如果页链中的页(见下图)是如下排序的,便是最佳状态,不会有磁盘寻道对于访问相同尺寸的数据,随机I/O (需要磁盘寻道)的时间一般会比顺序I/O 的时间长10-20倍。

因此,对于全表扫描和范围查询来说,这种碎片类型对性能的影响比其它类型要大。

这种碎片可能由下面的原因引发:聚簇索引表的插入导致页分裂;在更新表记录时数据行尺寸增长而导致的页分裂;北京寰信通科技有限公司 Beijing Global Technology Co. LTD 寰信通技术资料汇编-7-对表频繁的执行删除操作,在大量被删除的页面周围就会有数据页的不连续。

在Sybase ASE 11.9.2以上的版本中DOL 表在数据级方面不用页链,但是索引(DOL 伪聚簇索引和非聚簇索引)是利用页链的,所以不规则页链会危害这些索引的全部或部分扫描,例如使用索引进行查询。

为满足表的存储空间需要,新的数据库页被分配时(比如插入数据和页分裂),新的数据页就会先从已分配给该表却未使用的数据页中分配,或者从数据段中空闲的扩展单元中分配。

1.3 页分裂引起页链排序不规则随机得到未使用页也会导致数据库页不连续,见下图:第三页和第四页原本是连续的,但是在页分裂之后页链的连续性被打破了。

数据页的零乱分布会导致表扫描、索引扫描和范围查询等操作耗费较长时间。

较长的寻道时间会降低查询和OLTP 操作的响应时间。

1.4 检测页链的零乱分布要想掌握页随机性的情况,可以使用ProActive DBA 的页链顺序报告,它显示了页顺序情况以及对于使用不同I/O 尺寸(2K 到16K )的影响。

ProActive DBA 也提供了有关表和数据库碎片程度的概要报告。

另外,通过使用DBCC pglinkage 命令,可以得到页链中页顺序的信息。

相关文档
最新文档