存档
【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企业版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
————————————————————————————————————
昨天下午到现在已成功实现在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 自动 启动 脚本
————————————————————————————————————
当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 设备文件
————————————————————————————————————
此方法有一定的风险,请做好备份。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
————————————————————————————————————
前些天,培训的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命令来模拟一个在酒吧勾搭美妹的过程。
--------------------------------------------------------------------------------
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这小子有点黄。
今天下午在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 升级 补丁
————————————————————————————————————