Chinaunix首页 | 论坛 | 博客
  • 博客访问: 627653
  • 博文数量: 152
  • 博客积分: 3857
  • 博客等级: 中校
  • 技术积分: 1702
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-29 18:14
文章分类

全部博文(152)

文章存档

2017年(1)

2016年(1)

2015年(8)

2014年(2)

2013年(5)

2012年(15)

2011年(12)

2010年(24)

2009年(18)

2008年(24)

2007年(24)

2006年(14)

2005年(4)

分类: Sybase

2007-03-20 11:32:13

我向来懒得写总结的,慢慢发现记性已大不如全,还是用“烂笔头”记下这一过程吧!
 
目的:对已经跑了三年多的旧系统进行改造,对数据库磁阵做条带化!
 
原因:系统运行较慢,当年建数据库时没对磁阵做“条带化”!(领导说的,俺没仔细考证,呵呵。。)
 
环境:HP superdome ,hp-ux 11i.11 , sybase ASE 12.0.0.8, cics 4.3.3 ,EMC Symmetrix 磁阵
 
过程:1,dump备份数据库
 
     2,重建数据库设备
 
     3,load回数据库。(因load回数据库,后认为结构没有变化,后改为bcp回数据库,第一步也改为
        dump,bcp双重备份 )。
 
总结:1,dump备份很重要!,bcp数据最好,异地备两份(呵呵。。,建好库后,用改过的bcp out脚本bcp
        in 时,没有把out 参数改为in,导致所有bcp文件都变为空 ,dump的重要性就表现出来了!)
     
     2,底层磁阵的条带化,是这次调整的重点。EMC的工程师,说底层没做条带化(我们没要求,我晕,
        领导联系的呀。只有os层做了。
        个人理解:条带化的要求就是尽可能的跨更多的盘,这些盘又不能同时在同一个大的物理盘上。
        尽可能的盘数量:其实就是lun的个数;不超过lun的个数,建立的lv就不会在同一个物理盘上。
        AIX,HDS磁阵,HDS工程师会告诉你,lun数,lun的分布,建lv时,选定物理盘,
        跨盘的时候INTER-POLICY 选maximum,就会跨该选定物理盘,性能最优,十分方便;
        hp-ux,EMC磁阵,工程师不晓得lun,只告诉我,顺序用就性能最好,沟通后,就告诉他,
        我选定多少块盘会选在同一物理大盘上?最后告诉我一个很大的数24
        最后,建lv 的时候,用了lvcreate -i 8 -I 64 -L 32768  -n lvsybdat1 /dev/vg01
        -i 8 跨8块盘,-I64 用64K的size条带化!
        (当然,不知道,这是否是最优的条带化方案)
 
     3,因为重建server,要导入syslogins表。在用sa登陆的情况下,为防止重复, 
       从syslogins表中删除了sa用户,才发现就不可能导入syslogins表了!(想想为什么。。?)
       处理步骤:1,sa登陆的删除的那一屏一定不退出!
                2,删除之前做了个select ,然后根据select的结果,insert syslogins一条sa
                   的记录,明明一样,可惜还是不能登陆。(密码有变化了)
                3,sp_password更改sa的密码,不成功!(再想想,为什么?)
                4,添加一用户ssa;授予sa_role,sso_role角色;执行sp_addalias ssa ,sa
                  让其在master库就成为sa;用ssa更改sa的口令!
                  哈哈。。。,sa就恢复成功了。这就是sa被删除的处理办法
    
     4,bulk copy的时候,日志比想象中用的大的多。没有删除index,bcp,因为,12.0建index
        速度较慢,时间不可控。所以,选择有index的bcp,之后做update all statistics即可。
       如果,是bcp 2G的数据,日志空间可能要4-5G,十分消耗日志的。所以,建议bcp in 时,
       加 -b选项。还有就是,bcp in 没加-b选项,日志空间又满的情况下,千万不要中断bcp进程
       ,先扩日志,让其继续导,因为中断了也不会释放日志,而且也不会回滚日志,除非你重启数据库,
       但,这就耗费你巨大的recovery时间...
    
     5,如果一个数据库recovery 的时间较长,想不恢复,重建。那么,将数据库的状态改为-32768
       重启server后,用drop database就可以删除了!
 
     6,字符集,又是字符集!!
        字符集的问题也是个头痛的问题。有各种各样的可能改server端的或者是client的字符集。
        AIX,默认安装的字符集是iso_1;hp-ux,默认安装的是roman8。
        server端字符集更改:根据sybase安装目录下的init/sample_source_file/sqlloc.rs
        里面的注解,根据需要设置后执行sqllocrs -r sqlloc.rs即可更改。前提是你安装了该字符集
        clinet端字符集更改:$SYBASE/locales/locales.dat根据需要更改。
         eg:你是hp,LANG=C,要将isql的字符集改为iso_1 ,只要更改locales.dat 中的hp中的
            locale = C, us_english, iso_1 即可!
 
       
       
       
阅读(1694) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~