[20210401]使用bbed读取数据块恢复注意6.txt

来源:这里教程网 时间:2026-03-03 16:36:54 作者:

[20210401]使用bbed读取数据块恢复注意6.txt --//昨天下午QQ竟然收到信息,问一下bbed读取数据块恢复问题,我实际上那个脚本意义不大,不实用,在实际的恢复过程中会遇到各种 --//无法预知的情况。比如行链接以及表中有lob类型等问题,不过在简单指导下对方回复竟然读取恢复成功了。 --//除了上面提到的问题外,还可能遇到的问题。 1.中文字符集问题。 --//一般数据块字符集ZHS16GBK,估计现在可能有一些使用UTF8之类的字符。bbed读取转换为中文。要设置: --//export NLS_LANG=AMERICAN_AMERICA.US7ASCII $ echo $NLS_LANG AMERICAN_AMERICA.ZHS16GBK SCOTT@book> create table tx (id number ,vc varchar2(30),vx varchar2(400)); Table created. SCOTT@book> insert into tx values (1,'为你文化','aaa'); 1 row created. SCOTT@book> commit ; Commit complete. SCOTT@book> select rowid from tx ; ROWID ------------------ AAAWWsAAEAAAALXAAA SCOTT@book> @ rowid AAAWWsAAEAAAALXAAA     OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT ---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------      91564          4        727          0  0x10002D7           4,727                alter system dump datafile 4 block 727 ; $ export NLS_LANG=AMERICAN_AMERICA.US7ASCII $ . fff.sh 4 727 727 91564 ncc 1|为你文化|aaa --//注完成后给修改回来。不要其它连接工具会显示乱码。 $ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 2.显示宽度问题。 --//bbed最大显示宽度是300,我测试最大275. BBED> set width 300         WIDTH           300 BBED> set width 301 BBED-00208: out of range WIDTH (301) SCOTT@book> insert into tx values (2,'测试',lpad('x',310,'Y')); 1 row created. SCOTT@book> commit ; Commit complete. SCOTT@book> alter system checkpoint ; System altered. BBED> x /rncc dba 4,727  *kdbr[1] rowdata[0]                                  @7845 ---------- flag@7845: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@7846: 0x02 cols@7847:    3 col    0[2] @7848: 2 col    1[4] @7851: 测试 col  2[310] @7856: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx $ . fff.sh 4 727 727 91564 ncc 1|为你文化|aaa 2|测试|YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY --//而我的脚本就截断了输出。实际上仅仅显示最大长度275.要解决这个问题脚本还要修改完善。 3.半个汉字的问题: --//即使解决了显示宽度问题,还可能遇到半个汉字的问题,这个也是很麻烦的情况。 SCOTT@book> insert into tx values (3,'测试x',lpad('测试',310,'文')); 1 row created. SCOTT@book> commit ; Commit complete. SCOTT@book> alter system checkpoint ; System altered. BBED> x /rncc dba 4,727  *kdbr[2] rowdata[0]                                  @7520 ---------- flag@7520: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@7521: 0x01 cols@7522:    3 col    0[2] @7523: 3 col    1[5] @7526: 测试x col  2[310] @7532: 文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文? 奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈牟馐? 4.分割符号问题,我脚本使用|作为分隔符,可能会遇到冲突的问题,建议使用ascii(6)或者ascii(7)代替。 --//在linux下vim的输入模式,使用如下方法输入,windows下使用ctrl+q代替ctrl+v ascii(7) 使用ctrl+v ctrl+g 输入。 ascii(6) 使用ctrl+v ctrl+f 输入。 5.最好做好备份才是最最重要的事情,备份大于一切。

相关推荐