提供7*24专业Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,
请联系手机:(微信),QQ:289965371!
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices.
Please contact us:
Phone:
Wechat: 13811580958
QQ: 289965371

DBA的酸甜苦辣[转]

【IT168 评论】最近一直在从事DBA的ETL工作,虽然时间不长但是还是有点心得愿意与大家分享。就我个人的观点来讲,DBA是一个非常辛苦的工作,是仅次于程序员的IT民工。甚至在有些方面比程序员还要辛苦,做程序写代码编程序还有个生命周期而DBA却不一样,很多时候都是客户提出需求马上数据就要提出来。压力是很大的,做dba一定要有过硬的心理素质,面对压力百折不挠!如果您还致力于此行业,那么看看我所认为一个优秀dba需要具备的素质吧:

  1.DBA一定是要忠于自己的单位,永远不做破坏!不要让事情更糟!!!这是最为重要的!DBA一般是单位自己培养的,这样忠诚度非常高,忠心耿耿!也正是因为数据是一个单位的命脉所在,要做dba必须保证数据的安全,保证不扰乱数据的完整性!要忠于自己的单位首先要对自己忠诚,对自己忠诚才不会对别人背叛!要对自己百分之百的忠诚,才能对自己所负责的数据忠诚!!!保证数据的保密性,保证数据不泄漏、丢失、不遭到人为破坏!这是你作为dba最基本的职责!!也是这个岗位的职业道德!如果有一天对自己不够忠诚了,或者你的上司对你有怀疑了,那么趁早离开这个岗位!!!

  2.为人低调。正是因为您做dba就已经掌握了一个公司的数据命脉,而且从事这个岗位的人必然痴迷于自己的技术而不善于人际交流。如果为人高调,事事爱出风头,难免树大招风,遭人忌恨!无心得罪了别人自己还不知道,这样即使自己的能力再高也很难在一个团队里生存!所以要想做一个优秀的dba一定要做人低调,耐得住寂寞,吃的了苦,肯下功夫不断的学习,提高自己的技术水平!!时刻保证自己的沉着冷静!与其搞那些人际关系不如潜心于提高自己的技术水平!

  3.在不考虑时间的前提下,能不写存储过程就不写。能用t-sql写就不要想用存储过程来展示你的才华。实践证明同等情况下写t-sql的更能以最快的速度满足所有人提出的需求!

  下面说说酸甜苦辣:

  酸:很多时候dba是孤独的,需要能够享受孤独。在遇到困难的时候没有人能帮助你,也没有人愿意帮你!!!况且求人不如求己!只有自己依靠自己来解决问题。要对自己不断鼓励自己说:我一定能行!我一定能做的到!!!一定要在较长时间不断沉淀,学十分可能只用到一分,但是一定要相信艺多不压身!!!

  甜:只为解决问题满足需求时那瞬间的成就感!!!愿意付出百倍的努力!!

  苦:孤独、面对问题的无从下手、苦恼,在不能满足需求时需要面对的压力,在网上都找不到解决问题的办法。在这时候只能聊以自慰的对自己说:该休息的时候就休息,dba也是人不可能永远保持清醒的头脑,在实在或者现阶段自己的能力无法满足需求的时候果断的寻求帮助!!!

  辣:无论哪个职位都需要在不断提高自己专业的情况下还需要和周围一切你喜欢与不喜欢的人打交道!这就是你必须遵守的规则!无奈也是你必须经历的过程!

  这些都是我最近作dba的一些非常肤浅的体会!如果再有机会深入的做下去,我相信我的感受会更深,到时候再拿出来与大家分享吧!如果在看了上面的话,您仍然致力于做一个优秀的dba,那么选择权在您手中,我祝福您,天堂和地狱的大门同时像您敞开!!!!

linux Enterprise5.4下启动sybase时不能分配端口的问题解决

在linux企业版5.4上用两个不同的账号建立了两个sybase数据库服务器。

15.0.3版本的服务器能够正常启动,12.5.4版本的sybase数据库启动时提示:

cannot allocate resources for listener protocol tcp ,host xxx.xxx.xxx.xxx ,port 5000,engine 0.

cannot start any network listeners.

 上网查找原因:

将/etc/hosts中原来的

127.0.0.1 localhost.localdomain localhost

改为:

127.0.0.1 localhost

192.168.2.178 localhost.localdomain

问题解决,能够用端口5000启动数据库服务器了。

将参考文档放在这里以备后来使用。

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

sybase不能访问服务器解决办法

[ 2009-6-5 12:59:00 | By: 梦精灵 ]

不能远程访问fedora平台上的ase的问题

问题的提出:
问题一:
a机:fedora4+ase15
安装后没有修改ase的任何配置(初次使用sybase的东西,全是缺省配置)
b机:win2003+ase125
a机的sybase central可以连接b机的ase
b机不能访问a机的ase
a机的防火墙以及selinux都关闭了
在a机telnet b 5000没问题
在b机或者a机本机上telnet ip 5000:
正在连接到172.20.53.26...不能打开到主机的连接, 在端口 5000: 连接失败
但在a机telnet localhost 5000是可以连接的

问题二:
在interfaces文件中将机器名改为ip地址后
启动服务时出现:
00:00000:00008:2006/04/28 11:32:19.49 kernel ninit: cannot find host 172.20.53.26
00:00000:00008:2006/04/28 11:32:19.49 kernel Cannot allocate resources for listener with protocol tcp, host 172.20.53.26, port 5000, engine 0.
00:00000:00008:2006/04/28 11:32:19.49 kernel Cannot start any network listeners.
但使用hostname、localhost、172.0.0.1都没问题。就是会出现前一个问题,不能远程访问,呵呵。

经过一天的上网搜索,发现了一些好的东西。看来internet还真是个好东西。

问题的解决:

问题最终出在hosts文件上。我个人认为应该是ase利用fedora的hosts文件时,ase的不完美的地方
(因为其它的软件没有出现此类问题。呵呵,个人愚见)
fedora4的hosts文件中有一行:
127.0.0.1 localhost hostname
按照ase的说法,这种写法是incorrect
应该是分为两行:
127.0.0.1 localhost
***.***.***.*** hostname
这里是ip地址对应hostname

这样,前面的问题就解决了。呵呵,就这么简单
还有其它的解决办法。下面是我找到的解决办法的原文:
Can't connect to server from different host You've installed Sybase on your linux machine, and you're certain that it's running. You can ping the host where Sybase is running from other hosts on your net, but you can't connect to the database server itself.
Chances are you are on a Red Hat 6.x system, where the standard installation creates an incorrect /etc/hosts file with the hostname as an alias on the localhost line, instead of on a line by itself. You can use netstat -a -n | grep <sybase port> (where sybase port is the port that Sybase is listening on) to verify that Sybase is listening to the correct IP address.

Check your /etc/hosts file - if it looks like this:

127.0.0.1 localhost my_host

then you have a problem - change your /etc/hosts file to look like this instead:
127.0.0.1 localhost
192.168.0.1 my_host

(obviously you need to use the correct IP address for your host, and the correct host name!)
This should fix the problem.

An alternative solution is to change the hosts: entry in /etc/nsswitch.conf so that DNS or NIS is used before /etc/hosts for hostname lookups. By default /etc/nsswitch.conf has the following:

hosts: files nisplus dns
If you change that to something like
hosts: nisplus dns files
host name lookups should only access /etc/hosts if the information isn't available anywhere else, and therefore give the correct IP address for the hostname.

————————————————————————————————————
——— 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
——— 转载务必注明原始出处 : http://www.dbainfo.net
——— 关键字: ASE 15.0.3 启动 端口 hosts
————————————————————————————————————

在linux5.4enterprise下安装sybase成功

昨天下午到现在已成功实现在linux 5.4 Enterprise下安装两个版本sybase数据库。ase12.5.4和ase15.0.3

两个版本的数据库使用不同的账户创建,并且已经配置了开机自动启动和关机自动结束服务。

ln -s /etc/init.d/autostartsyblinux /etc/rc5.d/S98autostartsyblinux

vi /etc/init.d/autostartsyblinux

su - sybase -c /etc/init.d/startsyblinux

vi /etc/init.d/startsyblinux

cd /sybase/ASE-12_5/install

startserver -f RUN_syblinux -f RUN_syblinux_bs

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

ln -s /etc/init.d/autostopsyblinux  /etc/rc5.d/K98autostopsyblinux

vi /etc/init.d/autostopsyblinux

su  - sybase -c /etc/init.d/stopsyblinux

vi  /etc/init.d/stopsyblinux

isql -Usa -P -Ssyblinux -i/etc/init.d/shutdown.sql >> /sybase/autoshutdown_erro.log

vi  /etc/init.d/shutdown.sql

shutdown SYB_BACKUP

go

shutdown with nowait

go

————————————————————————————————————
——— 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
——— 转载务必注明原始出处 : http://www.dbainfo.net
——— 关键字: ASE 15.0.3 linux RedHat 自动 启动 脚本
————————————————————————————————————

sybase启动报master时间戳不一致的问题

当master设备文件正在被二进制编辑器修改时,数据库服务器不能正确读取文件报错:

00:00000:00000:2009/12/14 17:21:11.79 kernel  dopen: open 'D:\sybase\data\master.dat', No error

错误日志中仅仅有这么一条(ase15.0.3esd2#).

每次启动的时候老是报00:00000:00011:2009/12/14 17:26:02.50 server  Error: 12315, Severity: 21, State: 1
00:00000:00011:2009/12/14 17:26:02.50 server  Corrupt page, Internal error: Mismatch between tail timestamp '0b7b' and the low two bytes of timestamp in the page header 'c9d3' while accessing page '2291' of object '3' in database '1'. Please contact Sybase Technical Support.类似的错误,一个一个的修改很麻烦。

启动时打开flag=3607,所有数据库均处于bypass mode。这是截断master的日志报错

1> dump tran master with no_log
2> go
Msg 4237, Level 16, State 1:
Line 1:
Cannot dump master database's log as distributed transaction resolution is not complete ye
t. Please retry later.
1> dump tran master with truncate_only
2> go
Msg 4237, Level 16, State 1:
Line 1:
Cannot dump master database's log as distributed transaction resolution is not complete ye
t. Please retry later.

即使对master数据库进行全备也不能截断日志。

dbcc checkdb(master),dbcc checktable(sysobjects),dbcc checktable(syslogs)等等之后。重启sybase就能够正常启动了。

————————————————————————————————————
——— 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
——— 转载务必注明原始出处 : http://www.dbainfo.net
——— 关键字: ASE 15.0.3 时间戳 二进制  修复 master 设备文件
————————————————————————————————————

ASE15.0.3升级时导致数据库不能启动问题的解决方法

此方法有一定的风险,请做好备份。you do it at your own risk!

以前的版本为:
Adaptive Server Enterprise/15.0.3/EBF 16550 ESD#1/P/NT (IX86)/Windows 2003/ase1503/2680/32-bit/OPT/Thu Mar 05 00:21:40 2009
在用mon表的时候报:NT storage access violation in omni_closetable destroyRemoteAccess. 怀疑是bug562998 。

于是打了ebf16738补丁。打补丁的过程和初次安装的过程一样只是wizard显示ASE15.0.3ESD#2,没有新建任何服务就选择完成了。
但是启动数据库的时候报错,很让人崩溃。难道我升级的方法有问题?

启动错误信息如下:

00:00000:00000:2009/12/14 14:55:34.59 kernel  engine 0, os pid 2404  online
00:00000:00000:2009/12/14 14:55:34.59 server  No active traceflags
00:00000:00001:2009/12/14 14:55:34.59 kernel  libomni1 - Component Integration Services: using 'Sybase Client-Library/15.0/P-EBF16074 ESD #15/PC Intel/BUILD1500-111/OPT/Thu Jul 31 20:59:50 2008'
00:00000:00001:2009/12/14 14:55:34.59 server  Opening Master Database ...
00:00000:00001:2009/12/14 14:55:34.71 server  Loading ASE's default sort order and character set
00:00000:00001:2009/12/14 14:55:34.73 server  Recovering database 'master'.
00:00000:00001:2009/12/14 14:55:34.75 server  Started estimating recovery log boundaries for database 'master'.
00:00000:00001:2009/12/14 14:55:34.75 server  Database 'master', checkpoint=(3779,8), first=(3779, 8), last=(3779, 31).
00:00000:00001:2009/12/14 14:55:34.75 server  Completed estimating recovery log boundaries for database 'master'.
00:00000:00001:2009/12/14 14:55:34.75 server  Started ANALYSIS pass for database 'master'.
00:00000:00001:2009/12/14 14:55:34.75 server  Completed ANALYSIS pass for database 'master'.
00:00000:00001:2009/12/14 14:55:34.75 server  Log contains all committed transactions until 2009/12/14 14:42:57.56 for database master.
00:00000:00001:2009/12/14 14:55:34.75 server  Started REDO pass for database 'master'. The total number of log records to process is 24.
00:00000:00001:2009/12/14 14:55:34.78 server  Error: 3474, Severity: 21, State: 1
00:00000:00001:2009/12/14 14:55:34.78 server  During redo the page timestamp value is less than old timestamp from log. Page #=348, object id = 37, page timestamp=0000 00000b20. Log old timestamp=0000 0000dbc2. Log record marker = (3779, 12).
00:00000:00001:2009/12/14 14:55:34.78 server  Cannot recover the master database, exiting.
00:00000:00001:2009/12/14 14:55:34.78 kernel  ueshutdown: exiting

又启动了一次,同样的错误信息。日志的意思是当前时间戳比日志中的时间要小,正常的应该为0000 0000dbc2,而redo中的时间戳为:0000 00000b20。以前日志都记录到(3779, 12).页面上了,升级后不知道什么原因却记到348页面上了?

原因没有搞清楚,但是sybase数据库不能用了。以前研究并且实现了对sybase日志设备的解析工作。通过修改设备文件修改一下时间戳看看能不能奏效吧?

用二进制工具打开master设备文件,根据错误信息中的可疑页号348定位到1433600(350*4096,@@maxpagesize=4096),找到

时间戳0000 00000b20将其修改为0000 0000dbc2。让咱们也来欺骗一下sybase服务器。^_^

0015E000 | 5C 01 00 00 00 00 00 00 5A 01 00 00 25 00 00 00 | \.......Z...%...
0015E010 | 20 0B 00 00 45 00 00 04 00 00 F7 09 02 08 02 00 |  ...E..........
0015E020 | 13 00 02 01 45 00 00 00 00 00 00 00 02 A8 01 4C | ....E.........L
0015E030 | 01 00 00 17 00 1C 70 65 72 63 65 6E 74 20 64 61 | ......percent da
0015E040 | 74 61 62 61 73 65 20 66 6F 72 20 68 69 73 74 6F | tabase for histo
0015E050 | 72 79 02 0E 00 02 AA 01 4C 01 00 00 19 00 1B 70 | ry.....L......p
0015E060 | 65 72 63 65 6E 74 20 64 61 74 61 62 61 73 65 20 | ercent database 
0015E070 | 66 6F 72 20 6F 75 74 70 75 74 02 0E 00 02 A9 01 | for output.....
0015E080 | 4C 01 00 00 18 00 14 70 65 72 63 65 6E 74 20 68 | L......percent h
0015E090 | 69 73 74 6F 72 79 20 66 72 65 65 02 0E 00 02 AB | istory free....

上红色的 20 0B  改为C2 DB 后,启动sybase服务器,成功!日志如下:

00:00000:00001:2009/12/14 15:27:44.29 server  Opening Master Database ...
00:00000:00001:2009/12/14 15:27:44.39 server  Loading ASE's default sort order and character set
00:00000:00001:2009/12/14 15:27:44.40 server  Recovering database 'master'.
00:00000:00001:2009/12/14 15:27:44.40 server  Started estimating recovery log boundaries for database 'master'.
00:00000:00001:2009/12/14 15:27:44.42 server  Database 'master', checkpoint=(3779, 8), first=(3779, 8), last=(3779, 31).
00:00000:00001:2009/12/14 15:27:44.42 server  Completed estimating recovery log boundaries for database 'master'.
00:00000:00001:2009/12/14 15:27:44.42 server  Started ANALYSIS pass for database 'master'.
00:00000:00001:2009/12/14 15:27:44.42 server  Completed ANALYSIS pass for database 'master'.
00:00000:00001:2009/12/14 15:27:44.42 server  Log contains all committed transactions until 2009/12/14 14:42:57.56 for database master.
00:00000:00001:2009/12/14 15:27:44.42 server  Started REDO pass for database 'master'. The total number of log records to process is 24.
00:00000:00001:2009/12/14 15:27:44.46 server  Redo pass of recovery has processed 2 committed and 0 aborted transactions.
00:00000:00001:2009/12/14 15:27:44.46 server  Completed REDO pass for database 'master'.
00:00000:00001:2009/12/14 15:27:44.48 server  Recovery of database 'master' will undo incomplete nested top actions.
00:00000:00001:2009/12/14 15:27:44.48 server  Started recovery checkpoint for database 'master'.
00:00000:00001:2009/12/14 15:27:44.53 server  Completed recovery checkpoint for database 'master'.
00:00000:00001:2009/12/14 15:27:44.53 server  Started filling free space info for database 'master'.
00:00000:00001:2009/12/14 15:27:44.65 server  Completed filling free space info for database 'master'.
00:00000:00001:2009/12/14 15:27:44.65 server  Started cleaning up the default data cache for database 'master'.
00:00000:00001:2009/12/14 15:27:44.67 server  Completed cleaning up the default data cache for database 'master'.
00:00000:00001:2009/12/14 15:27:44.75 server  Checking external objects.
00:00000:00001:2009/12/14 15:27:45.26 server  Database 'master' is now online.

呵呵,问题解决了。出现该问题的原因还未搞清楚!

————————————————————————————————————
——— 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
——— 转载务必注明原始出处 : http://www.dbainfo.net
——— 关键字: ASE 15.0.3 ESD#2 补丁 二进制 设备 dat
————————————————————————————————————

PowerDesigner破解的两种方法[转]

前些天,培训的sybase工程师留下了试用版的powerdesigner12.5,现在适用期限到了。在网上找到两种破解方法。

第一种用破解文件:

1.安装软件后,解压破解压缩包,将pdflm12.dll复制到PD 安装目录下。

2打开PowerDesigner,菜单Tools -> License Parameters..

3.选择Standalone Seat - Local License

4导入license.lic即可破解。

详细请参考:

http://blog.csdn.net/gangqinjiawang/archive/2009/07/15/4349093.aspx

第二种修改dll文件(一个很牛的方法):

在PowerDesigner安装目录下,找到pdflm12.dll,用记事本或其它编辑工具打开,显示的应该是一些二进制的内容.找到83 C4 14 8B 85 E4 FE FF FF,把这一段改成:83 C4 14 33 C0 90 90 90 90.重新打开PowerDesigner,会发现已可以正式使用.PS:本人的是版本12,测试可行,其它版本没有测试过.不知道是否可行.

我在12.5版本上测试能够使用。但是,感觉启动PD的时间很长。不知道这是否和破解有关。还有一网友说用了一段时间就不能用了。不知道自己是否能遇到该问题?

unix命令在酒吧勾引美妹

这是一个用unix命令来模拟一个在酒吧勾搭美妹的过程。

--------------------------------------------------------------------------------
By Wing, 出处:bbs.mit.edu

find
talk
whoami
whatis
uname
quota
set
mv
whereis
unzip
strip
touch
finger
top
mount
compress
!!
more
yes
jobs
umount
sleep

...

StartX

unix这小子有点黄。

遇到Sybase ASE15 shutdown无法进行的问题

今天下午在shutdown数据库服务器的时候,只有两个isql连接。在其中一个isql连接上发命令 shutdown后然后退出了另一个会话。

一直报SHUTDOWN is waiting for 5 process(es) to complete.的错误,一直一直写。我看了一下。所有的系统进程都处于sleep状态,包括发shutdown命令的进程。在errorlog中没有任何信息。通过sp_who查看到进程里面有DEADLOCK TUNE,HOUSEHOLDER,JOB SCHEDULER等;发送shutdown命令的进程好像在执行checkpoint。不知道为什么?

最后通过另一个session中强制关闭数据库才算完事。shutdown with nowait. 感觉很奇怪!

ASE版本15.0.3/esd#1,网上说好像有一个是:562998 - NT storage access violation in omni_closetable destroyRemoteAccess

我的确遇到了这个bug在使用mon表的时候!

感觉sybase升级到了15.0版本了怎么系统还不是很稳定?

————————————————————————————————————
——— 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
——— 转载务必注明原始出处 : http://www.dbainfo.net
——— 关键字: ASE 15.0.3 shutdown 升级 补丁
————————————————————————————————————