标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 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-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 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,773)
- DB2 (22)
- MySQL (77)
- Oracle (1,612)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (166)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (593)
- Oracle安装升级 (98)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (32)
- pdu工具 (6)
- PostgreSQL恢复 (10)
- SQL Server (32)
- SQL Server恢复 (13)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (39)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (22)
-
最近发表
- pg_wal中文件的名称中的logseq和实际文件中的logseq不匹配
- 由于空间满导致PostgreSQL数据库异常处理
- 一次非常幸运的ORA-600 16703(tab$被清空)故障恢复
- Oracle 19c 202507补丁(RUs+OJVM)-19.28
- 2025年的Oracle 8.0.5数据库恢复
- ORA-600 kokiasg1故障分析(obj$中核心字典序列全部被恶意删除)
- ORA-00756 ORA-10567故障数据0丢失恢复
- 数据库文件变成32k故障恢复
- tcp连接过多导致监听TNS-12532 TNS-12560 TNS-00502错误
- 文件系统格式化MySQL数据库恢复
- .sstop勒索加密数据库恢复
- 解决一次硬件恢复之后数据文件0kb的故障恢复case
- Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib’问题处理
- ORA-01171: datafile N going offline due to error advancing checkpoint
- linux环境oracle数据库被文件系统勒索加密为.babyk扩展名溯源
- ORA-600 ksvworkmsgalloc: bad reaper
- ORA-600 krccfl_chunk故障处理
- Oracle Recovery Tools恢复案例总结—202505
- ORA-600 kddummy_blkchk 数据库循环重启
- 记录一次asm disk加入到vg通过恢复直接open库的案例
分类目录归档:Oracle
lob类型数据转换为系统文件
1.插入一条blob数据
SQL> create directory ULTLOBDIR as '/home/oracle'; Directory created. SQL> create table blobtest(col1 BLOB); Table created. SQL> declare a_blob BLOB; 2 3 bfile_name BFILE := BFILENAME('ULTLOBDIR','tt.txt.bak'); 4 begin 5 insert into blobtest values (empty_blob()) 6 returning col1 into a_blob; 7 dbms_lob.fileopen(bfile_name); 8 dbms_lob.loadfromfile(a_blob, bfile_name, dbms_lob.getlength(bfile_name)); 9 dbms_lob.fileclose(bfile_name); 10 commit; 11 end; 12 / PL/SQL procedure successfully completed. SQL> select dbms_lob.getlength(col1) from blobtest; DBMS_LOB.GETLENGTH(COL1) ------------------------ 4829 SQL> !pwd /home/oracle SQL> !ls -l tt.txt.bak -rw-r--r-- 1 oracle oinstall 4829 03-19 17:26 tt.txt.bak
2.创建存储过程
CREATE OR REPLACE PROCEDURE RETRIEVE_LOB_TO_FILE(TEMP_BLOB IN BLOB, FILE_PATH IN VARCHAR2, FILE_NAME IN VARCHAR2) IS DATA_BUFFER RAW(32767); POSITION INTEGER := 1; FILEHANDLE UTL_FILE.FILE_TYPE; ERROR_NUMBER NUMBER; ERROR_MESSAGE VARCHAR2(100); BLOB_LENGTH INTEGER; CHUNK_SIZE BINARY_INTEGER := 32767; BEGIN BLOB_LENGTH := DBMS_LOB.GETLENGTH(TEMP_BLOB); FILEHANDLE := UTL_FILE.FOPEN(FILE_PATH, FILE_NAME, 'wb', 1024); WHILE POSITION < BLOB_LENGTH LOOP DBMS_LOB.READ(TEMP_BLOB, CHUNK_SIZE, POSITION, DATA_BUFFER); UTL_FILE.PUT_RAW(FILEHANDLE, DATA_BUFFER); POSITION := POSITION + CHUNK_SIZE; DATA_BUFFER := NULL; END LOOP; UTL_FILE.FCLOSE(FILEHANDLE); EXCEPTION WHEN OTHERS THEN BEGIN ERROR_NUMBER := SQLCODE; ERROR_MESSAGE := SUBSTR(SQLERRM, 1, 100); DBMS_OUTPUT.PUT_LINE('Error #: ' || ERROR_NUMBER); DBMS_OUTPUT.PUT_LINE('Error Message: ' || ERROR_MESSAGE); UTL_FILE.FCLOSE_ALL; END; END; /
3.测试读取blob到系统
SQL> declare 2 tmp_blob blob default empty_blob(); 3 begin 4 dbms_lob.createtemporary(tmp_blob, true); 5 select col1 into tmp_blob from blobtest; 6 retrieve_lob_to_file (tmp_blob, 'ULTLOBDIR','xifenfei.txt'); 7 end; 8 / PL/SQL procedure successfully completed. SQL> !pwd /home/oracle SQL> !ls -l xifenfei.txt -rw-r--r-- 1 oracle oinstall 4829 03-20 23:44 xifenfei.txt
发表在 Oracle 开发
评论关闭
坏块分类与检测
很多人都对oracle都知道oracle坏块有逻辑坏块和物理坏块之分,其实根据物理和逻辑坏块的分类,还可以继续分下去;对于坏块的检查,很多人知道物理和逻辑坏块使用dbv和rman检测,那其他种类的坏块该怎么办呢?这篇文章整理自MOS,给大家整理个分析坏块的思路,在后续文章中,会给出各种坏块的解决思路
//www.xifenfei.com/wp-content/uploads/2012/03/Corruption_block_type_and_analysis.pdf
附件:hout和hcheck
发表在 Oracle
评论关闭
IP=FIRST作用说明
我相信细心的朋友,估计都会发现我们在使用netca创建rac(10g/11g)的监听的时候,会发现 IP=FIRST,如下面展示
LISTENER_VENUS = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1521)(IP = FIRST)) (ADDRESS = (PROTOCOL = TCP)(HOST = racnode1)(PORT = 1521)(IP = FIRST)) ) ) )
那么 IP=FIRST表示什么含义呢?我通过下面的试验证明
1. 主机相关配置
[oracle@localhost ~]$ hostname localhost.localdomain [oracle@localhost ~]$ more /etc/hosts 127.0.0.1 localhost.localdomain localhost [oracle@localhost ~]$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:15:17:67:9C:39 inet addr:192.168.8.121 Bcast:192.168.15.255 Mask:255.255.248.0 inet6 addr: fe80::215:17ff:fe67:9c39/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:378351781 errors:0 dropped:0 overruns:0 frame:0 TX packets:357773718 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:65412948319 (60.9 GiB) TX bytes:92608894986 (86.2 GiB) Base address:0x1100 Memory:88020000-88040000 eth0:0 Link encap:Ethernet HWaddr 00:15:17:67:9C:39 inet addr:202.91.244.3 Bcast:202.91.247.255 Mask:255.255.248.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Base address:0x1100 Memory:88020000-88040000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:40636368 errors:0 dropped:0 overruns:0 frame:0 TX packets:40636368 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3385490475 (3.1 GiB) TX bytes:3385490475 (3.1 GiB)
2. 当前监听配置
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = mcrm) (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1) (GLOBAL_DBNAME =mcrm) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521) ) ) )
3. 监听状态
[oracle@localhost ~]$ lsnrctl status LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 20-MAR-2012 00:17:04 Copyright (c) 1991, 2007, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production Start Date 03-MAR-2012 23:56:18 Uptime 16 days 0 hr. 20 min. 45 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /opt/oracle/product/10.2.0/db_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521))) Services Summary... Service "mcrm" has 2 instance(s). Instance "mcrm", status UNKNOWN, has 1 handler(s) for this service... Instance "mcrm", status READY, has 1 handler(s) for this service... Service "mcrmXDB" has 1 instance(s). Instance "mcrm", status READY, has 1 handler(s) for this service... Service "mcrm_XPT" has 1 instance(s). Instance "mcrm", status READY, has 1 handler(s) for this service... The command completed successfully
这里可以看出来监听的还是(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521))),也就是说监听的是主机名
4. 当前监听IP和端口
[oracle@localhost ~]$ netstat -an |grep 1521|grep LISTEN tcp 0 0 0.0.0.0:1521 0.0.0.0:* LISTEN
这里看出来,监听所有网卡
5. 修改监听文件
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = mcrm) (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1) (GLOBAL_DBNAME =mcrm) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521) (IP=FIRST) ) ) )
6. 重启监听
[oracle@localhost ~]$ lsnrctl stop LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 20-MAR-2012 00:18:42 Copyright (c) 1991, 2007, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)(IP=FIRST))) The command completed successfully [oracle@localhost ~]$ lsnrctl start LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 20-MAR-2012 00:18:47 Copyright (c) 1991, 2007, Oracle. All rights reserved. Starting /opt/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.4.0 - Production System parameter file is /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora Log messages written to /opt/oracle/product/10.2.0/db_1/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)(IP=FIRST))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production Start Date 20-MAR-2012 00:18:48 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /opt/oracle/product/10.2.0/db_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Service "mcrm" has 1 instance(s). Instance "mcrm", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
通过(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))),已经发现,这里只监听127.0.0.1
7. 查看监听IP和端口
[oracle@localhost ~]$ netstat -an |grep 1521|grep LISTEN tcp 0 0 127.0.0.1:1521 0.0.0.0:* LISTEN
这里进一步验证监听的ip地址已经只有了127.0.0.1而没有了其他网卡的地址
总结说明
通过这里的试验证明IP = FIRST的作用使得当我们使用主机名为监听中的host配置的时候,它只会监听hostname解析出来的ip地址,而不是默认情况下所有网卡地址。