在AnySQL.net中搜索标签(Tags) 'DBA' 的结果:

致命的人为错误

    在所有的错误中, 人为错误是最难恢复的, 尤期是要到达99.9%的恢复, 最近就有三个这样的例子.     一个国外的200G的数据库, 使用的是Oracle ASM, 有一天突然起不来的, 上去看了后, 居然是将一块ASM中的盘加到了操作系统的卷管理系统中了, 因此硬盘上部分数据被覆盖, 导致了Oracle ASM起不来. 后来找来找去, 说是有一个dmp格式的备份, 接近200GB, 这么大的dmp文件能成功导入的可能性很少了, 果然, 导入35GB的数据后, imp报错了. 最后的结果可想而知, 从这里可以看出文档(要指明那块盘被那个系统使用了), 方法(加盘前检查一下有没有正被别的系统使用)和简单性(同一台机器用ASM和OS VG做什么呢?)的重要性.     第二个例子, 人家用PL/SQL Developer工具以DBA权限登录, 一不小心选中了所有用户选项, 然后按了删除操作, 虽然发现后按了取消键, 并强行关闭数据库, 还是导致了上百个表被删除. 在删除的过程中, 又有部分数据进入到系统中,...

如何防止大的DML语句?

    开发人员在开发库上更新某个表的记录时总忘了添加限制(Where)条件, 而错误地更新了数据, 几个小时或几天后来求助DBA, 给DBA制造了不少麻烦, 有没有办法限制他们一句话能更新的记录的条数呢? 下面的方法可以用来限制一条语句能更新的记录数, 首先来创建一个包. create or replace package temppkg as     rowcount number := 0; end; /     创建一个语句级(执行前)的触发器, 初始化包中的变量. create or replace trigger trg_before_update_NOTEINFO before update on NOTEINFO begin    temppkg.rowcount := 0; end;...

容易遗忘的手工并行

    去查询一个大表时, 大家都不会忘记Oracle的并行(Parallel)操作, 比如: CREATE TABLE xxx PARALLEL 4 AS SELECT /*+ PARALLEL(...) */ SELECT /*+ PARALLEL(...) */ FROM ...     但手工并行则易被忘记, 一个朋友花了28小时导出300多G的带BLOB的表, 我的第一反应就是为什么不用并行? 这时是指手工并行. 使用exp的Query参数. exp ... query=\"where mod(pk,4) = 0\" exp ... query=\"where mod(pk,4) = 1\"...

保持好习惯不容易

    前几天体会到保持好的习惯不容易, 在一个几十个GB的分区表上建一个索引, 为了加快速度, 就用了并行. 命令如下所示: CREATE INDEX ... ON ... (...) PARALLEL 2 LOCAL ONLINE; ALTER INDEX ... NOPARALLEL; ANALYZE INDEX ... ESTIMATE STATISTICS SAMPLE 10000 ROWS; ANALYZE INDEX ... ESTIMATE STATISTICS SAMPLE 2 PERCENT;     其实这样也算不错了,...

Rename Table的语法

    谁都知道在SQL*Plus中重命名(Rename)一个表的命令, 如下所示: RENAME old_name TO new_name     但需要注意的是这个命令是SQL*Plus的命令, 如果将它放在你自已的程序(如:Java, Perl等)中, 则是会报错的. 这时应当用标准的重命名语法: ALTER TABLE old_name RENAME TO new_name     重命名索引时, 就必须用标准的数据库命令了. ALTER INDEX old_name RENAME TO new_name     有些SQL*Plus的命令, 在前面加上ALTER之类的就成了标准的数据库命令了, 如: RECOVER STANDBY DATABASE UNTIL...

SQL Server Express 2005

    为了抵抗开源数据库(MySQL, PostgreSQL等)的进攻, 为了拉拢开发人员, 各家数据库都出了Express版本, 今天突发兴趣地装了一个Microsoft SQL Server Express Edition 2005, 发现很小巧, 安装软件才36MB, 比Oracle 10g Express小巧多了. 想当年我还做过MCDBA中的SQL Server管理和开发课程老师呢, 去年还帮一家房产网站(用的也是SQL Server)去解决性能问题, 最近又看到有人问如何从SQL Server向Oracle迁移图片数据, 因此装一个玩玩吧! 顺便测试一下我的asyncdata数据迁移角本.     安装的过程很简单, 因为是Express版本, 所以根本不让你有选择的余地, 就装完了. 装完后要改两处, 一是允许远程连接, 二是要改监听端口. 前者在Surface Area Configuration中改, 选择配置服务和连接, 再点中远程连接, 允许允许本地和远程连接,...

分析用户所有表之后

    随着Oracle对CBO的进一步增强和改进, 对表进行分析已经成为一种常用的调优的手段, 当发现某个表的相关SQL语句的执行计划有问题时, 首先会想是不是统计信息过旧的问题, 如果的确是过旧, 则对这个表进行分析, 以让Oracle重新选择准确的最优执行计划, 以达到调优的目标. 用不合适的方式对表进分析, 则会造成十分严重的后果, 如对一个用户下的所有表进行分析, 或一下子分析多个表. 看到网友的一篇贴子, 让我想起二年多前帮别人处理过的一个案例, 有位DBA对某用户下的所有表进行了分析.     基本情况是, IBM P570, 16CPU, 32GB内存, 24GB的SGA, 支持不了一个50G的9i数据库(OLTP类型), 二百个以内的会话. 在分析之前CPU利用率是50-70%左右, 在分析后则一直是100%. 面临这样的情况后, 由于没有做统计信息(Statistics)的备份, 因此无法恢复以前的情况, 首先做的是删除所有非分区表的统计信息, 对分区表做更精确的统计信息分析, 使之运行于RULE方式, 情况稍有好转, 但用户还是不能接受, 相信Oracle的CBO没有那么差, 因此性能问题的关键并不在于统计信息了. 在处理了以下几个问题之后,...

推荐Piner的新书

    周末去参加了IT168 / ITPub / IXPub在北京九华山庄举行的2008中国IT技术精英年会, 第二个(第一个是eygle, 前后脚关系, 应当说是不分先后的)拿到了piner花了一整年时间仔细编写的图书 -- Oracle高可用环境.     在侯车室里, 在回程的路上, 我已经看了四分之一的篇幅, 可以告诉大家谁应当看这本书.     1, 我应当看这本书. 由于目前公司的分工详细, 接触的范围较狭小, 看这本书可以开拓我的视界. 其他想扩大知识面的人也应当看这本书.     2, 企业的IT部门经理及相关人员应当看, 看淘宝如何选择平台及解决方案, 从而成功地合理地部署企业的信息平台.     3, 广大的IT技术支持工程师应当看, 可以学习如何专业的提供支持, 以为公司接到淘宝这样级别的大客户打下技术基础.  ...

Oracle DBA By ......

    昨天关注了一下公司股票, 顺便去Forbes(福布斯)看了一下外界对公司的有关评测, 没什么看到好消息. 到是Forbes(福布斯)网页的最下面, 有个地方引起了我的注意. Powered By ...... Oracle DBA by ......     "Powered By"到是常常在网站上见到, 而"Oracle DBA By"则是第一次见到, 由此可见DBA在国外网站的重要性. 对于广大的DBA来说, 看到这个应当会热血沸腾一下吧. 想想如果有网站如下面这样写, 我会有多高兴啊! Powered By ...... Oracle DBA by AnySQL     顺便建议广大DBA在做技术服务后, 让你的客户打上这样的标识. 你提过这样的要求吗?...

难以忘怀DBA误操作

    最近流行自我恢过, 有人在ITPub上有人问DBA生涯中最难人忘怀的误操作. 最常见的有如下几类:     rm误删除文件, 解决办法可以参考Fenng的贴子, 这其中良好的习惯和权限管理显得很重要, 必要时写些角本来进行删除操作, 不容易范错.     连错数据库, 这种事发生的事也比较多. 如要连Standby的连到Primary了, 结果将生产库关闭了(这事这儿也发生过). 要连本机的连到生产库了, 要连测试库的连到生产库了, 连错库后用初始化角本去初始化造成了大问题.     拷贝粘贴问题, 很习惯将命令粘贴到窗口中去跑, 结果拷的不是想要跑的命令, 而是拷了错误的DROP或TRUNCATE命令, 这个错误我也范过, 还好只是得到一堆ORA-00942(表或视图找不到)错误, 后来就不这么做了, 都是拷到一个SQL文件中, 然后cat检查一下再跑.     不够小心, 如要DROP以TEMP结尾的表, 结果忘了打最后的TEMP, 将正式表删除了.    ...

怎么升级Oracle的?

    有人在Itpub上问Oracle 817建分区表怎么出错了? 错误如下: ORA-00604: error occurred at recursive SQL level 1 ORA-00904: invalid column name     通过设置SQL跟踪, 发现了引起错误的SQL语句. PARSE ERROR #5:len=127 dep=1 uid=0 oct=2 lid=0 tim=0 err=904 insert into partcol$ (obj#, intcol#, col#, pos#, spare1, segcol#,  ...

国外Oracle专家服务报价

    服务越来越重要, 来看一个国外Oracle专家提供技术服务的报价, 都是以美元为单位的. 服务提供者为高级的具有OCP证书的DBA专业人员, 按服务地点可分为远程和现场, 按服务时间可分为临时服务和不小于多少小时的包时服务.     1, 远程服务价格, 临时: 每小时175 USD. 保证80小时: 每小时165USD, 至少13200美刀.     2, 现场服务, 临时: 每小时275 USD. 保证80小时: 每小时265USD, 至少21200美刀.     对于Oracle RAC的服务, 收费要贵一些了, 看来得好好学学RAC了.     1, 远程服务价格, 临时: 每小时200 USD. 保证80小时:...

SQL DBA兼管Oracle库

    前段时间, 一个澳大利亚的网友说他的Oracle库中某个表空间只留下了几个数据文件, 还能不能恢复. 在这儿不讨论如何恢复数据的问题, 要关注引起这个问题的根源.     根本原因是他们请了一个SQL Server DBA, 兼职(顺便)管管Oracle数据库, 当某些数据过时了, 要归档起来, 这个SQL DBA就将表空间从Oracle中删除了. 原因是SQL Server中是可以这样做的, 只要数据文件存在, 就可以挂到新SQL Server数据库中, 不幸运地是, 他这个猜测错了. 后来他们的客户再来要求查询过去的数据时, 就发生了这个问题.     有两个方面的问题, 值得思考. 从DBA个人角度来说, 不应当这么随便地只根据自已的猜测, 就去做删除数据这样的操作, 这个思界, Google一下, 有这么难吗? 如果DBA有这种想法或倾向, 那么你很难被大公司录用. 从公司角度来说, 让不懂的人去做重要的事,...

使用图形工具, 极需要加强权限管理

    又见图形工具引起的灾难, 在PL/SQL中用SYS用户登录, 不小心把所有的视图都删除了.     我已经见过好多次OEM上误删表/用户/表空间的问题, 都是因为在图形工具上按错了键或点错了鼠标, 这些工具在有权限时, 要删除什么东西总是默认以CASCADE方式进行的, 因此才造成的问题. 在这个例子中, 后来发现不单单是一些视图没有了, 还有一些SYS用户下的系统表被删除了. 在运行catalog重建系统视图时, 遇到了以下错误. CREATE OR REPLACE VIEW exu81approle ( role, schema, package) AS SELECT u$.name, r$.schema, r$.package FROM sys.user$ u$, sys.approle$ r$ WHERE u$.user# = r$.role#...

[转贴] DBA-我激情不再

    先给出原文出处, 是从ITPub上看到的, 我也是一名DBA, DBA只是工作不是兴趣了. 对于一大群想进入DBA行业的人来说, 可能是一种打击. 想纯粹地做点技术, 谋求个安定的生活, 真是不容易!     99年刚毕业进公司,看着公司那些老大们熟练的操作ORACLE数据库:安装,备份,导数据.羡慕不已.心想:要是我也有那么熟练就好了.于是,凭借刚进公司的热情和新鲜感,凭借年轻人的血气方刚和充沛的精力,很快的迈进的ORACLE的大门.当时使用的ORACLE7 ,还是ORACLE的SQL FORM 来做开发.想想当初,为能够在当时DIGITAL主机上安装ORACLE734的OPS而激动不已.(估计现在没有几个人会) , 后来掌握了ORACLE8 ( 开始使用RECOVER MANAGER ) ,ORACLE8I (真正用JAVA开发的ORACLE版本,ORACLE815害我很深,STANDBY DATABASE),ORACLE9I (DATAGUARD DATABASE) .     时光流失,日月如梭,岁月慢慢的磨蚀了我的激情和动力.我再也不会为某个问题也通宵达旦的思考和实验.而是听之任之. 面对那么的多的新特性,那么多的新方法我已经失去了学习的驱动力.看到被我招进公司的新手一个一个超过我,正象我当时超越我的前辈一样.有时候想:几年之后,我还能干什么?     每次完成一个任务,做完一个项目,安装,升级,备份恢复,性能调整... 我再也没有成功的喜悦,而是内心的失落空虚,svrmgrl 这个命令可能已经敲过不下2万次. 天天和这些东西打交道.我已经倍感无聊.难道这就是我养家糊口的全部? 敢问,有5年以上经验的DBA,难道你没有这种感觉?...

为如何搭建DBATools.net发愁中...

    申请了这个域名后, MSN上多方咨讯我的好友, 都认为这个域名不错, 更加适合我现在的情形. 接下来是要想想如何来将这个站建起来? 首先面临的问题是用什么样的平台? 这个主要有几个要求: 1, 要支持静态发布, 这样做是为了节约流量. 2, 有一定的交互性. 3, 要方便管理及简单易用.     首先想到的是用现在正在使用的Blog平台Movable Type, 满足所有的条件, 只是我不爽于设计新的模板, 直接用现在的模板好象有些重复, 心中不是很甘心! 另外可以考虑的是Wiki平台, 同事推荐使用dokuwiki, 好象是不满足第一条, 可这一条是很重要的. 大家有什么可以推荐的吗? 或好看的MT模板也行.     还没有彻底想清楚, 到底是应当用中文呢, 还是纯英文. 作为一个DBA后, 你会不会习惯去看英文网站呢? 从现在来看, 历害的DBA都是看了很多英文的文档或网站的....

申请了新的网站 -- DBATools.net

    AnySQL始终是不知道什么意思, 因此申请了个新的域名玩玩, 一开始还是想过一场.com的梦, 虽然IamDBA这个域名是很失败的. 在oratools.com和DBATools.net中间挣扎了一个小时左右的时间, 最后还是选择了后者, 原因是前者的范围太窄了, 不能老吃Oracle的饭, 也可以玩玩其他的数据库.     初步决定将我所开发的名费的工具全都放上去, 再努力宣传其他人开发的一些有用的数据库方面的免费工具, 以方便广大的DBA使用. 从我个人角度来讲, 现在这个站点上的很多内容都是和DBA工具有关, 再搞个域名就是由于这个原因.     还没有想好用什么平台来搭建这个新的站点, 以及将这个站放在什么地方, 有可能做成一个纯英文的站点, 因为我的个人工具, 外国人用的比国内的多.     健康是很重要的, 因此将网站的字体调大了, 好不好看请评论, 但我想肯定有利于眼睛. 在格局上没有变动, CSS还是很不懂, 因为Firefox的Height:100%问题, 还真搞了很长时间.     你有好的DBA工具要推广一下吗?...

Oracle需要手工启动, 无法自动启动

    02年做在一公司作Oracle DBA支持时, 我也经常在客户那儿写开机后自动启动数据库, 关机前自动停止数据库的角本, 那时也特强调要实现自动化, 但经过最近三年半的大公司的DBA经验, 经过三年管理OLTP型的数据库的生涯, 如今我不会再去写这样的角本了, 不是写不出来, 而是不愿写.     最近的三年中, 唯一自动启动和关闭的数据库是我笔记本上的库, 用来自已玩和做些研究的, 最近还是改成了手工启动. 对于DBA来讲, 数据库的重启是一件很重要的事, 必须要亲自去操心一下的; 数据库的重启还是一种机会, OLTP型的数据库很难得有重启的机会的, 在重机时你可以调整一些参数, 或顺便做一些维护性质的工作, 有时侯为了作一些调整, 如移动文件位置等操作, 等重起的机会还得等几个星期呢. 你说这样的机会能放过吗?     这几天又在网上看见有人问, 机器重起后, 数据库和监听器不能自动重启了怎么办? 我的回签是, 不能自动重启就手工启吧! 当然你可以写几行角本, 然后双击鼠标(Windows)或是手工执行(Linux/Unix)来启动数据库.    ...

丢失Redo, 如何不用resetlogs打开数据库?

    今收到一个控制文件和一堆数据文件, 要在我的笔记本上打开这个库, 我是很不愿意用open resetlogs选项的, 因为控制文件和数据文件是一致的, 是在关闭数据库的情况下备份出来的. 结果发现日志文件原来是在E盘, 而我的笔记本上只有C盘, 直接Clear是不行的, 直接重命名也是不行的, 通过添加新日志组和删除旧日志组也不行, 因为其中有一组是当前Active的, 因此根本就不让删除. SQL> SELECT MEMBER FROM V$LOGFILE; MEMBER --------------------------------------------- E:\ORACLE\PRODUCT\ORADATA\PROD\REDO01.LOG E:\ORACLE\PRODUCT\ORADATA\PROD\REDO02.LOG E:\ORACLE\PRODUCT\ORADATA\PROD\REDO03.LOG     没办法了? 当然是有办法的了, 我们可以简单地骗过Oracle, 方法是我在C盘的相应目录中建了三个空文本文件, 大小全是0, 只是名字和日志文件的一样, 然后就启动到Mount方式, 进行重命名日志文件, 然后再清除每一个日志文件组, 最后就直接打开了数据库, 没有使用open resetlogs选项.  ...

庆祝oramon不停顿运行一周

    要写一个能跑的程序不难, 用C写一个能跑的程序就不易, 写一个能不停顿跑一周的C程序就有点难了. 为了达到理想的效果, 历经周折, 终于搞明白了线程问题, 而我写的程序也已经在服务器上不停顿地运行了一周, 最怕的两个问题, 一个是内存汇漏, 另一个是Segment Fault(core dump), 都没有发生. C程序就有点象Unix小型机, 要出问题则会很快就体现出来, 要不出问题则可以很稳定.     当然测试还要续继, 看看一个月后, 或三个月后, 或半年后, 程序是不是还在不停顿的跑? 队了程序本身要稳定之外, 占用的资源也不能多, 否则那么多的DBA在管理数据库, 总会被发现最后被kill掉, 很多的程序都有这种下场的, 要逃过这一劫才算真正成功的程序.     用有自已的工具来监控数据库的性能是件很有意思的事, 会不停地改进你对数据库的直观认识, 然后你又会再次改进工具, 这个过程就象是炼金一样, 何况是在这样的一个单位呢? 最近在OTop和OPMon中去掉了Wait Event和Latch的输出,...

到低数据是谁的? 是DBA的吗?

    今天在MSN有一个人说他将数据库搞坏了, 我问他如何搞坏的, 没有细说, 有可能是在练习dd或bbed这样的软件时搞坏的吧, 总之现在的SYSTEM表空间上有坏块了. 不想让公司知道, 要不然面子上过不去. 问我如何出售AUL的许可证, 他已经用AUL试过了, 可以读出部份数据.     个人以为, 不管发生什么情况, 数据还是公司的, 如果要恢复这些数据, 应当是公司来承担恢复的成本, 而不是让DBA偷偷地去处理掉. 发生这种情况, 作为公司要重新审视很多的事情: 1, 信息对你的公司有多重要? 2, 对你的职业和未来有多重要? 3, 用什么制度来保证数据的安全性和可靠性? 4, 了解手下或公司的DBA常要处理的重要工作吗? 5, 提供了足够的资源来进行数据备份吗? 6, 是否给手下的人提供了培训的机会, 让他们可以轻松胜任工作? 7, 是否有思考, 那些已经存贮信息是最重要的, 那些是次要的?  ...

ORA-30175: invalid type given for an argument

    今天朋友遇到一个比较郁闷的问题, 想了一段时间还没有想出来, 于是在网上问我. 下面这一段代码报了这个错误: declare    l_max_date VARCHAR2 (50) := '2999-12-31 23:59:59';    l_format   VARCHAR2 (50) := 'YYYY-MM-DD HH24:MI:SS'; begin   INSERT INTO ...   SELECT ....  FROM tab1@link1 A, tab2@link2 B   WHERE join_condition     AND A.COL1 > TO_DATE (l_max_date, l_format); end;...

SQL*Plus出现段错误及Core dump

    当你的SQL语句很长(估计是2048个字节)并写成一行时, 用SQL*Plus去运行这个角本时, 就会出现这个错误. 原因是SQL*Plus中用一个有最大行长度限制的单行缓冲区去读取一行, 当读到的一行比这个单行缓冲区长时就出问题, 整成多行就没有问题. 每读入一行就将这一行的SQL拼接到更大的(如64K)SQL缓冲区中.     这种Overflow的方法就是一开始黑客用的攻击手段, 想出来的对册是在内核的代码及程序中, 一律改成有长度限制的函数调用, 这样一改后, 通过这种方法攻击的成功率就降低很多了.     遇到这个问题后, 突然记起我的AUL/MyDUL工具也遇到过, 它的行缓冲区是1024, 当时有一个外国人去恢复表时, 因为表的定段太多了, 在指定列的类型后, 这个UNLOAD命令长得刚好超出了1024个字节, 也是想了好久才想到的. 后来建议将一行折成两行就没事了.     正在手工将这个SQL折成多行运行呢!...

如何取得Oracle当前会话的编号(Session ID)?

    下面这个应当是大家常用的. SQL> SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;        SID ----------      19949     下面一个更简单, 但只能在Oracle 10g及以上版本中使用. SQL> SELECT USERENV('SID') FROM DUAL; USERENV('SID') --------------          19949     下面这个方法我有时也用, 因为不想用最上面的SQL去写一个子查询, 发现在Oracle 9i上很正常, 但在Oracle 10g上常常返回两行, 因此不能再使用它了. SQL>...

open resetlogs何时成了第一招? 唯一一招?

    今天在QQ上遇这样一件事情, 大约是这样的. 一个运行在Linux上的Oracle数据库, 在正常关闭数据库后, 将磁盘从一台机器挂到另一台机器后, 磁盘的顺序发生了变化, 比如/dev/sdb变成了/dev/sdc, /dev/sdc变成了/dev/sdb, 由于这是在正常关闭数据库的情况下做的, 因此只要准确地改变软链接的映射关系(用了磁盘分区方式的裸设备), 是完全可以正常打开的, 结果一个负责安装RAC的公司, 应当是在没有完全搞对映射关系时, 直接进行了open resetlogs操作. 当然这时是启不来的了.     接下来, 多次open resetlogs失败之后, 用了一个旧的system文件的备份(用dd备份出来的), 再dd回去了, 拷回去后才知道, 因为磁盘空间的问题, 所有的归档日志文件已经被另一队人员干掉了. 最后我让他查了一下v$datafile中的checkpoint_scn#一列, 发现有两个文件的scn号非常小, 从文件名称来看一个是索引一个是数据表空间的, 不知道他们做了什么, 是不是混乱地进行了dd in和dd out了.     于是我问他是不是有数据库的备份, 他说有, 不过没有拷Redo和Undo文件,...

通过改写SQL来优化性能, 如何做?

    网友说这个SQL语句跑了两上小时, 没有什么思路去解决. select tbilltrace_43.bno,tbilltrace_43.SAVETIMESTAMP from    ( select bno,SAVETIMESTAMP      from tbilltrace      where  SAVETIMESTAMP>=monitor_start_date        and SAVETIMESTAMP<=monitor_end_date and opcode=43    ) tbilltrace_43 where not exists (select bno    from ( select bno from tbilltrace           where SAVETIMESTAMP>=monitor_start_date               and SAVETIMESTAMP<=monitor_end_date...

为什么到二十一世纪还要改sys.props$呢?

    很久没有人去改sys.props$表了, 今天却出了一个, 在9i以前的话, 改错了NLS_CHARACTERSET的值是不行的, 数据库就起不来了. 但到了9i后, 是可以的, 也许有人知道了这一点所以放心地去做了. 为了慎重起见, 我重做了如下实验: SQL> UPDATE PROPS$ SET VALUE$='WE8ISO8859PP'   2  WHERE NAME='NLS_CHARACTERSET'; 1 row updated.     单改这一个值是可以起来的, 接下来我改其他所有的值呢? SQL> UPDATE PROPS$ SET VALUE$='WE8ISO8859PP'; 27 rows updated.     这样改了就是起不来的, 另外eygle在同一时间测试, 发现单改错了NLS_NCHAR_CHARACTERSET就不行了. SQL>...

手工删除DBA_TABLESPACES中的记录后...

    最初是在ITPub上看到人家这样的误操作的, 估计谁也没有遇到过这样的事, 不好作出回答. 今天我在自已的机器上试了一下, 10g的数据库, 如下所示: SQL> delete from dba_tablespaces where tablespace_name='USERS'; 1 row deleted. SQL> commit; Commit complete. SQL> alter system checkpoint; System altered.     决定重启一下数据库, 之前当心打不开数据库, 结果数据库还是能打开的, 这样就好多了. 当去查询这个表空间上的数据时, 出现了600错误, 如下所示: SQL> select * from...

OR引起的性能问题, 在表上进行行过滤

    对SCOTT用户EMP表的DEPTNO和ENAME字段建了一个复合索引. 在SQL的WHERE子句中用了一个OR条件, 看Plan: SQL> SELECT /*+ first_rows no_expand */ * FROM EMP    2 WHERE deptNO=10 AND (ENAME IS NULL OR ENAME > 'A'); --------------------------------------------------------------- | Id  | Operation                   | Name    | Rows  | Bytes | --------------------------------------------------------------- |   0 | SELECT...

今日中午时分收到的一封求救信

    最近范错的人比较多, 这不? 就收到了一封求救信. 内容如下: anysql,你好:     我是山东的革命老区临沂人, 非常冒昧打扰你, 我把单位的一个ORACLE数据库弄坏了. 从网上搜索到你开发的工具aul可以直接从DBF中读取数据, 因此就很冒昧的给你这个邮件, 还是关于注册码的事情, 不知道你能否.... 我们这里经济很不好, 尤其是这几年物价飞涨, 能否给个注册码.     非常感谢!     一个希望获得你帮助的小人物.     请大家建议我应当如何做?...

和Biti_rainy一起成为Oracle ACE

    第一次Fenng引荐我时, 没有打电话, 因此没成为第一批. 后来Jack Han在MSN上主动找我, 真是不好意思. 发现我和Biti大师的情况差不多. 用的126的邮箱, 用Web方式登录才发现确认信居然跑到垃圾邮件列表中了, 因此在本地用Foxmail收时怎么也没有收下来, 什么规则也没有设, 就这样了! 其实信昨天就到达了, 没有在外漂泊一个月.     Biti被特意推荐到第100位, 不知道我是多少位? 第99位或第101位也是很好的位置, 我喜欢.     当Oracle ACE的好处: 1, 在OTN上有显著ACE标志(显示个人简介, 有ACE图标) 2, 礼物, 应当是一个水晶和一件很温暖的衣服 3, 受邀参加Oracle ACE的聚会     要成为ACE, 请考虑以下几方面: 1,...

最有价值的键盘一击, 值220700美金

    这个最有价值的一击出自Alaska州政府税收部门, 工程师在做维护工作时, 意外地删除了一个石油公司的帐户, 并且恰好将备份的磁带也格式化了一下. 等发现问题时, 却发现所作的备份根本就不可用. 从300箱纸质档案上重新输入数据. 技术员意外删除数据及格式化含有备份的磁带 被删除数据和石油业的税收有关 70个人花了6个星期来重新录入数据 失误的代价超过220000美金     如果中国公司出现这样的事故, 估计就没有这么值钱了, 因为找重新录入的人员很便宜, 而且可以强制加班. 另外也未必有这么重要的数据.     从DBA的角度, 怎么样就算高级DBA了呢? 我想不需要懂得很多, 如RAC/复制/Streams等知识, 要求对常用的知识了解得比较深刻, 可以将这些常用的知识在特定的场合下自由地运用出来, 做事细心认真, 具有良好的习惯, 能够想到任务可能造成的额外影响, 并提前作好对策, 不能时不时地捅些乱子出来, 有一天和chao_ping聊天时, 我发表了上面的看法.     希望看到这篇后, DBA至少要学会备份和恢复, Tom...

Copy和Paste中遇到的两个问题

    Copy和Paste是个谁都会遇到的大问题, 众多的Blog遇到了被别的网站Copy和Paste引起的版权问题, 如: Chedong, Fenng和Eygle, 访问量较高的个人网站上的网站纷纷被很多的网站简单地Copy和Paste过去, 影响了很多人的创作积极性.     不过这儿要讲的是另一个意思上的问题, 前不久有个朋友在逻辑灾备的机器上不小心删除了一个表, 其原因就是Copy和Paste, 从UltraEdit上拷贝到Secure CRT的屏幕上去执行, 却不知为什么Copy没有成功, 而Paste了上一次Copy的内容, 一个回车后将一个表删除了. 后来总共花了大约6个小时的时间去修复这个逻辑灾备. 这就是Copy和Paste引起的第二种问题, 试想这个问题如果发生成主库上, 而且没有备份的话, 服务将会被迫停止多久?     解决问题的方法是, 需要更改Copy和Paste的习惯. 对于第一个问题来说, 在Copy和Paste后, 请将原文出处加入进去, 并保留一个链接指向原文. 对于第二个问题, 则请你在Copy和Paste时, 不要带上最后的分号, 或拷贝到一个临时的文件中, 并进行检查, 确认无误后再执行角本.    ...

华为万件专利没有原创, 中国的DBA呢?

    在Tom新闻上看到, 中国通信业的龙头企业华为在过去的18年中申请了将近万项专利, 却没有一项是自已原创的. 居然是闹得全世界纷纷扬扬的03-04年同思科的专利纠纷为华为带来了国际名声. 更多的只是在购买(有折扣, 要不就不会有纠纷了)的专利基础上进行简单的加工, 然后再销向国外.     作为一个Oracle DBA, 我首先想到我们的Oracle DBA行业有多少原创性呢? 其实DBA同样可以走向国际. 在中国, 搞Oracle DBA的人数已经不少了, 也不乏顶尖高手, 可是原创性的东西还是太少, 不光是图书还是工具. 比如Statspack这样功能的脚本, 其实我想中国的DBA高手们也可以做出来. 从原创性上来讲我首推Huang Yong的站点, 上面放了几个独家原创的工具, 并且访问量很高, 原创性也是有回报的, 提高了他在国外同行中的知名度. 当然国内的DBA们正在向这个方向走, eygle已经开始出自已的书了, 并取得不俗的成绩. Snowywolf前段时间写了个OraExplore, 不过好久没有更新了, 好象是读研去了. 而我自已是坚定不移地在走这条路的, 可惜天资有限.    ...

系统的安全问题, 如何才能最好?

    今天和一个很出名的DBA聊起安全问题, 缘于他发现Perl的DBI程序在编译成机器码时, 不能执行, 我在网上花了一点时间想找解决方案, 结果没有找到. 当我问他为什么要编译成机器码时, 回答是他想将数据库的用户名和口令加密掉, 以确保安全. 我回答说建一个只读的用户, 随便这么聊了几句后, 就转到如何确保系统安全的话题上来了.     现在的情况是, 很多的公司DBA兼SA, 知道root用户的密码, 这就是知道了一切. 当团队在迅速扩展时, 如何保证系统的安全性? 这个问题其实很复杂, 他现在面临的环境, 主要还是在内部人员的访问控制上面, 我想到的有几下几点: 1, 内部人员的素质问题, 包括人品和技术能力. 2, 所有操作都应当有Log, 每个人以不同的ID登录. 3, 控制外部对内部系统的访问. 4, 收回root权限. 5, 足够的备份.     在这几点中,...

性能调整等对于企业将越来越重要

    象Oracle这样的数据库, 在License上面的监管将越来越严历, 随着业务的增长而导致的数据库性能问题, 将如何得到解决? 在过去的相当长的一段时间内, 我们的企业都不惜在硬件升级上大花血本, 但这种简单的解决方法将变得越来越困难, 原因以下几个方面:     1, License的费用增长     当你用硬件升级的道路(如增加CPU)来解决性能问题时, 势必会引起Licence的增加, 你将付出硬件的成本, 同时也得支付License的费用, 并且Oracle这样的原产服务成本也随着License的增加而增加. 现在许多行业还在用盗版的Licence, 如买了标准版, 但用了企业版; 没有买Replication或RAC, 但却正在用他们. 但这种情况还能走多久呢?     2, 硬件升级并不能解决问题     我们大部份的企业现在用的系统业务量还少, 增长速度没有硬件技术提高的速度来得快, 因此在过去的这些年中, 通过硬件升级的方法还是帮他们解决了系统的性能问题. 但这种方法的效率正在变得越来越低, 甚至根本不起作用. 我遇到过IBM...

杭州一行, 见到了几位Taobao及Alibaba的DBA...

    周六去了一次杭州, 虽然离上海这么近, 可以却一直没有时间去, 有好几个DBA的朋友在哪儿工作. 这回算是去看了他们一次了, 从相互交谈的言语中体会了一下他们的DBA生活和精神状态. 说说对他们的印象吧, 先是总体上的:     1, 周末早上很能睡     我7点种就醒了, 然后刷牙洗脸再吃早饭, 赶到上海南京时是8:30, 买到了9:30的车, 然后给他们发了短信. jametong回短信说要不要接, 我就说发个地扯就行了. 结果11:30打车到目的地后, 居然没有一个人是正式起床了的, jametong没有洗脸就下来接我了. 其他人也一样, fenng还在床上不想起呢!     看来他们晚上不轻松啊, 有比较多的维护工作要在晚上做.     2, 居然都可以走路上班     除了有车的那一些人, 其他的几个早上都可以走路上班,...

帮助我成为DBA的一些重要书籍

    Fenng发贴调查DBA最重要的书是一个很好的贴子, 从很多人的回复中看到Oracle Document CD中的官方文档(10g/9i)在人们心目中的位置. 从个人讲我看得最多的文档是下面的四个: 1, Oracle Concept(Oracle 7的看了两次, 8i的看了三次吧, 9i的一次) 2, Administrator Guide (8i的三次, 9i的一次) 3, Performance Reference and Guide (9i的三次) 4, Developer Fundermental (8i的两次, 9i的一次)     我从Developer 2000开发做起, 做了1年对于PL/SQL早就很熟了, 这为我打下了很好的基础, Performance Tuning我是看得比较晚的. 其他的我还看了Backup and Recover...

如何用英文读出键盘上的各种符号?

~ tilde (sounds like til-da); be prepared to explain to computer-illiterate people saying "you know, the wave-shaped thingy" ! exclamation; commonly read as bang in case of #!/bin/sh @ at # pound; but commonly read as shee in case...

Linux/Unix下的虚拟屏幕, 你开始用了吗?

    作为一个DBA, 我经常要连到数据库服务去执行角本或做其他事情, 当然网络突然断开的事情也是经常有的, 因此我们都使用一个共享软件screen, 允许你在服务上使用虚拟屏幕, 这样的话就可以不怕网络断开的情况了. 下面介绍一下最常的几个命令:     1, 创建一个虚拟屏幕. screen -S screen_name     2, 退出屏幕, 你可以同时按下Ctrl+A+D.     3, 列出所有的虚拟屏幕. $> screen -ls There are screens on:         10786.anysql_screen1    (Detached)         10793.anysql_screen2    (Detached) 2 Sockets in /tmp/screens/S-oracle.    ...

只有失去了才知道珍惜......

    有一个DBA没有做备份,数据损毁, 无法恢复, 以至于他的上司(IT经理)引咎辞职(详情).     这已经不是第一次. 原任DBA走后还从香港找了一个DBA, 一个月几万块, 没想到才没有多久就出了这么大的事情. 以前也有客户的DBA损毁资料库而且也没有做备份导致工厂停产半个月, IT经理走人的教训, 现在不敬业的人还是那么多.     这里面真是只有失去了才知道珍惜....... 公司: 只有丢失了数据才知道系统的生要性. 公司: 只有丢失了数据, 才知道平时多关心IT部门的重要性. 经理: 只有丢了数据, 才知道当经理也要懂一些技术的重要性. DBA: 只有丢了几万一个月的工作, 才知道好好做DBA的重要性.     这种事情, 只能怪他们对IT部门不重视, 只能说是管理不爽, 不能怪DBA, 为什么不招个合格的DBA?     还有公司的承诺没有兑现, DBA将数据库系统损坏的同时, 连操作系统一起搞坏....

根据标记(Tags)来查找: