标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 obet ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-600 kcratr_nab_less_than_odr ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle碎片 OSD-04016 YOUR FILES ARE ENCRYPTED 比特币加密文章分类
- MongoDB (1)
- MongoDB恢复 (1)
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (112)
- 数据库 (1,884)
- DB2 (22)
- MySQL (82)
- Oracle (1,709)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (73)
- Oracle Bug (8)
- Oracle RAC (56)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (662)
- Oracle安装升级 (108)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (91)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (5)
- 达梦恢复 (3)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (51)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (34)
- MongoDB (1)
-
最近发表
- 记录19c ASM磁盘掉线触发ORA-59048故障处理
- aix平台Oracle数据库由于断电无法启动故障处理
- 断电引起ORA-600 3005故障处理
- 记录一次云存储资源到期之后引起的数据库恢复
- Firebird 损坏数据库数据抢救工具—firebirdext
- Oracle 19c 202610补丁(RUs+OJVM)-19.33
- 由于con$.con#值达到极限,触发数据库增加约束报ORA-600 12807错误
- MongoDB 离线提取工具—mongoext
- .bres勒索病毒加密数据库dmp文件可恢复
- ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
- 记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复
- 不当数据库恢复操作导致一个月数据丢失
- obet快速修复oracle 位图损坏块
- 不太常见的10.2.0.1的oracle redo损坏恢复
- obet forcecopy功能抢救硬件故障中的数据文件
- kcratr_nab_less_than_odr和system坏块故障处理
- 通过obet 恢复system坏块,打开数据库
- obet dbv功能完整说明
- 分享一例运行在aix上的sap系统数据库恢复过程
- OBET-Oracle Block Editor Tool使用说明
分类目录归档:数据库
ORACLE 十进制与二进制互转函数
十进制转换二进制
CREATE OR REPLACE FUNCTION NUMBER_TO_BIT(V_NUM NUMBER)
RETURN VARCHAR IS V_RTN VARCHAR(8);--注意返回列长度
V_N1 NUMBER;
V_N2 NUMBER;
BEGIN
V_N1 := V_NUM;
LOOP
V_N2 := MOD(V_N1, 2);
V_N1 := ABS(TRUNC(V_N1 / 2));
V_RTN := TO_CHAR(V_N2) || V_RTN;
EXIT WHEN V_N1 = 0;
END LOOP;
--返回二进制长度
SELECT lpad(V_RTN,8,0)
INTO V_RTN
FROM dual;
return V_RTN;
end;
SQL> select NUMBER_TO_BIT(208) from dual;
NUMBER_TO_BIT(208)
-----------------------------
11010000
二进制转换十进制
CREATE OR REPLACE FUNCTION BIT_TO_NUMBER(P_BIN IN VARCHAR2) RETURN NUMBER AS
V_SQL VARCHAR2(30000) := 'SELECT BIN_TO_NUM(';
V_RETURN NUMBER;
BEGIN
IF LENGTH(P_BIN) >= 256 THEN
RAISE_APPLICATION_ERROR(-20001, 'INPUT BIN TOO LONG!');
END IF;
IF LTRIM(P_BIN, '01') IS NOT NULL THEN
RAISE_APPLICATION_ERROR(-20002, 'INPUT STR IS NOT VALID BIN VALUE!');
END IF;
FOR I IN 1 .. LENGTH(P_BIN) LOOP
V_SQL := V_SQL || SUBSTR(P_BIN, I, 1) || ',';
END LOOP;
V_SQL := RTRIM(V_SQL, ',') || ') FROM DUAL';
EXECUTE IMMEDIATE V_SQL
INTO V_RETURN;
RETURN V_RETURN;
END;
SQL> SELECT BIT_TO_NUMBER('11010000') FROM DUAL;
BIT_TO_NUMBER('11010000')
-------------------------
208
发表在 Oracle 开发
评论关闭
ORACLE ROWID 分析
ROWID知识补充
Rowid改为:OOOOOOFFFBBBBBBRRR,占用10个字节(32bit data_object_id +10bit rfile# +22bit block +16bit)。其中,O是对象ID,F是文件ID,B是块ID,R是行ID。
Rowid对应值对应10十进制值
A-Z <==> 0 - 25 (26) a-z <==> 26 - 51 (26) 0-9 <==> 52 - 61 (10) +/ <==> 62 - 63 (2)
模拟环境
SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for Linux: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production SQL> create table t_xff (id number,name varchar2(100)); Table created. SQL> insert into t_xff values(1,'www.xifenfei.com'); 1 row created. SQL> commit; Commit complete. SQL> alter table t_xff move; Table altered. SQL> select rowid,a.* from t_xff a; ROWID ID NAME ------------------ ---------- ------------------------------ AADye6AAEAAAtCcAAA 1 www.xifenfei.com
相关值计算
Data Object number = AADye6 File = AAE Block = AAAtCc ROW = AAA DATA_OBJECT_ID AADye6 58*64^0+30*64^1+50*64^2+3*64^3+0*64^4+0*64^5 58+1920+204800+786432+0+0=993210 RFILE# AAE 4*64^0+0*64^1+0*64^2 4+0+0=4 BLOCK AAAtCc 28*64^0+2*64^1+45*64^2+0*64^3+0*64^4+0*64^5 28+128+184320+0+0+0=184476
验证结果
SQL> select object_id,data_object_id from dba_objects where object_name='T_XFF';
OBJECT_ID DATA_OBJECT_ID
---------- --------------
993209 993210
SQL> select dbms_rowid.rowid_object('AADye6AAEAAAtCcAAA') data_object_id#,
2 dbms_rowid.rowid_relative_fno('AADye6AAEAAAtCcAAA') rfile#,
3 dbms_rowid.rowid_block_number('AADye6AAEAAAtCcAAA') block#,
4 dbms_rowid.rowid_row_number('AADye6AAEAAAtCcAAA') row# from dual;
DATA_OBJECT_ID# RFILE# BLOCK# ROW#
--------------- ---------- ---------- ----------
993210 4 184476 0
dump方式分析
SQL> select rowid,dump(rowid) from t_xff; ROWID DUMP(ROWID) ------------------ ------------------------------------------ AADye6AAEAAAtCcAAA Typ=69 Len=10: 0,15,39,186,1,2,208,156,0,0 DATA_OBJECT_ID 0,15,39,186 15*256*256+39*256+186=993210 RFILE# 1,2(取前10位) 000000001 00 =4 BLOCK 2,208,156(取后22位) 000010 11010000 10011100 2^17+208*256+156=184476
发表在 Oracle
评论关闭
DB2远程登录配置
1.服务器端操作
[db2inst2@xifenfei ~]$ netstat -nap |grep db2sysc (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:55554 0.0.0.0:* LISTEN 8072/db2sysc 0 [db2inst2@xifenfei ~]$ db2 list db directory System Database Directory Number of entries in the directory = 1 Database 1 entry: Database alias = XIFENFEI Database name = XIFENFEI Local database directory = /home/db2inst2/xifenfei Database release level = c.00 Comment = Directory entry type = Indirect Catalog database partition number = 0 Alternate server hostname = Alternate server port number = --配置监听协议 [db2inst2@xifenfei ~]$ db2set db2comm=tcpip --配置实例端口 [db2inst2@xifenfei ~]$ db2 update dbm cfg using svcename 5000 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. --重启生效 [db2inst2@xifenfei ~]$ db2stop 04/02/2012 12:33:36 0 0 SQL1064N DB2STOP processing was successful. SQL1064N DB2STOP processing was successful. [db2inst2@xifenfei ~]$ db2start 04/02/2012 12:33:41 0 0 SQL1063N DB2START processing was successful. SQL1063N DB2START processing was successful. [db2inst2@xifenfei ~]$ netstat -nap |grep db2sysc (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:50000 0.0.0.0:* LISTEN 8462/db2sysc 0
2.客户端配置
C:\Windows\system32>db2 catalog tcpip node vm_xff remote 192.168.1.90 server 50000 DB21061E 未初始化命令行环境。 --DB21061E错误解决 C:\Windows\system32>db2cmd --编目节点 C:\Windows\system32>db2 catalog tcpip node vm_xff remote 192.168.1.90 server 50000 DB20000I CATALOG TCPIP NODE命令成功完成。 DB21056W 直到刷新目录高速缓存之后,目录更改才生效。 --编目数据库 C:\Windows\system32>db2 catalog db xifenfei as xifenfei at node vm_xff DB20000I CATALOG DATABASE命令成功完成。 DB21056W 直到刷新目录高速缓存之后,目录更改才生效。 C:\Windows\system32> db2 list node directory 节点目录 目录中的条目数 = 1 节点 1 条目: 节点名 = VM_XFF 注释 = 目录条目类型 = LOCAL 协议 = TCPIP 主机名 = 192.168.1.90 服务名称 = 50000 --terminate使操作生效 C:\Windows\system32>db2 terminate DB20000I TERMINATE命令成功完成。
3.验证登陆
[db2inst2@xifenfei sqldbdir]$ db2 connect to xifenfei user db2inst2 using xifenfei
Database Connection Information
Database server = DB2/LINUX 9.5.0
SQL authorization ID = DB2INST1
Local database alias = XIFENFEI
[db2inst1@xifenfei ~]$ db2 list applications
Auth Id Application Appl. Application Id DB # of
Name Handle Name Agents
-------- -------------- ---------- -------------------------------------------------------------- -------- -----
DB2INST2 db2bp.exe 45 192.168.1.1.38849.120411160214 XIFENFEI 1
DB2INST2 db2bp 50 *LOCAL.db2inst1.120402072313 XIFENFEI 1
发表在 DB2
评论关闭

加我微信(17813235971)
加我QQ(107644445)

