> 文章列表 / Page 320

2009-09-04

RMAN内部原理介绍

RMAN实用程序由两部分组成:可执行文件和recover.bsq文件。recover.bsq文件实质上是库文件,可执行文件从recover.bsq文件中析取代码来创建在目标数据库上执行的PL/SQL调用。recover.bsq文件是整个操作的中枢。这两个文件始终保持链接,并从逻辑上构成RMAN客户端实用程序。需要指出的是,recover.bsq文件和可执行文件的版本必须相同,否则就不能正常工作。 RMAN实用程序有一种独特的,有序的,可预测的用法:解释在目标数据库中远程执行的PL/SQL调用中的命令。RMAN的命令语言比较独特,需要具备一定经验才能掌握。实质上,RMAN实用程序完成了我们需要做的所有备份,还原,恢复,和处理备份工作。由可执行解释程序负责解释这些程序命令,并且使这些命令与recover.bsq文件中的PL/SQL块匹配。RMAN随后将这些RPC传递给数据库,并基于用户的请求收集信息。如果命令要求I/O操作(可能是备份或还原操作),RMAN会在返回信息时准备另一个过程块,并将这个过程块传递回目标数据块。这些过程块负责执行OS的系统调用以进行指定的读或写操作。 10.2.0.1版本中的recover.bsq文件
#POST 2 MIN READ
2009-09-04

在32位的linux平台上为Oracle配置>1.7GB的SGA

在没有任何附加改动的情况下,32位linux上Oracle对SGA的默认配置最大为1.7GB 。在微小改动的情况下,可以分配最大占用2.7GB RAM空间的SGA。如果大小要超过4GB就要做其他改动。 注意{运行hugemem kernel模式时,相应的限制分别是2.7GB和3.7GB。由于hugemem内核存在额外开销,因此只有在系统RAM不低于16GB的情况下才运行hugemem内核。} 为了分配大于1.7GB小于2.8GB的SGA,在Oracle启动时必须减小基地址,称之为映射基地址(mapped base)。可以采取下面的步骤减少基地址的映射: (1)  cd $ORACLE_HOME/rdbms/lib (2)利用genksms命令创建一个汇编文件: genksms  -s 0x15000000 > ksms.s (3)生成对象文件 make -f    ins_rdbms.mk …
#POST 2 MIN READ
2009-09-03

10.2.0.1 db console启动失败问题一例

帮网友诊断10.2.0.1数据库安装后配置EM的问题一例,主要是在EM启动过程中遇到了错误,日志如下: 2009-7-7 20:11:39 oracle.sysman.emcp.EMConfig perform 严重: 启动 Database Control 时出错 有关详细资料, 请参阅 oracle\product\10.2.0\db_1\cfgtoollogs\dbca\orcl\emConfig.log 中的日志文件。 2009-7-7 20:11:39 oracle.sysman.emcp.EMConfig perform 配置: Stack…
#POST 5 MIN READ
2009-09-02

ORA-00600 [3756]内部错误一例

一套Linux上的10.2.0.4系统出现3756内部错误: Wed Sep 2 23:56:51 2009 ORA-00600: internal error code, arguments: [3756], [1], [2], [2149767406], [2], [2149796313], [], [] ORA-600…
#POST 2 MIN READ
2009-09-02

在PL/SQL中获取操作系统环境变量

Oracle 10g引入了 DBMS_SYSTEM包中的一个过程GET_ENV。这个过程获得一个环境变量名称并返回环境变量的值。但是它不会返回环境变量PATH的值: set serveroutput on; create or replace PROCEDURE dump_osenvs as buffer varchar2(300); begin sys.dbms_system.get_env(‘ORACLE_HOME’, buffer); dbms_output.put_line(‘ORACLE_HOME: ‘|| buffer);…
#POST 2 MIN READ
2009-09-02

利用SQL DEVELOPER导入EXCEL数据到Oracle数据库中

日常工作中往往涉及到数据导入工作,平时办公中excel应用十分广泛,导入工作我们一般都是将excel内容复制到文本文件中然后利用sqlldr工具导入。较新版本的Sql Developer提供了直接excel导入到表的功能,下面我们来尝试一下: 需要导入的excel的数据如下: 在Oracle数据库中建立实验所需要的表: 其中t1为主键; 点中创建好的表右键选择导入数据,选择需要导入的excel文件(目前仅支持xls格式不支持xlsx格式): 若表格中有列名,则钩上”标题?”选项: 单击下一步,选择需要的列: 选择完成后单击下一步,将源数据列与目标表列一一对应: 单击下一步,选择导入前验证导入参数,出现以下条目: 验证表名 SUCCESS 验证源列是否映射了目标列 SUCCESS 验证源列是否定义了数据类型 SUCCESS 验证列的大小字段 SUCCESS 针对列大小检查数据 SUCCESS…
#POST 2 MIN READ
2009-09-01

Oracle TNS协议中数据包的内部结构

在线路上看到的包绝大多数是数据包(类型6)。对数据包而言,TNS包头后面的一个字(WORD)用来存储数据标志位(data flag)。如果这个包是一个断开连接包,那么这个字(WORD)被设为0x0040–否则,一般设为0x0000。 注意: 所有的Oracle版本中都存在一个故障(bug):在服务器处理一个数据包(类型6)的时候,该数据包的数据标志位的第2个比特已被设置,但第1个(最不重要的)比特没有被设置(例如,数字2,6,10,14等)。如果服务器受到这样的包,它就会花费点所有可利用的CPU处理时间,以一个死循环而告终。很明显,这对服务器性能会产生消极的影响。 数据标志位后面的一个字节(第11个字节)决定了数据包里的内容: 0x01表示协议商议。这里,客户机降可以接受的协议版本发送给服务器–他们是6,5,4,3,2,1和0.服务器回复一个通用的版本(例如,6或5),不过它还会发送一些额外的信息,如它使用的字符集,这个集合共有多少个字符,版本字符串和服务器标志。 0x02表示交换数据类型表示法。 0x03表示一次双任务接口(Two-Task Interface,TTI)函数调用。下面的表列出了一些函数: 0x02   Open 0x03   Query 0x04  Execute oxo5   Fetch oxo8   Close 0x09  …
#POST 2 MIN READ
2009-09-01

Building a RAC Test Environment on VMWare For Free

•VMWare Orientation •Importance of prerequisite checking •Configuring node #1 •Cloning (VM) node #1 •Installing Clusterware •Installing ASM and Database •Creating…
#POST 1 MIN READ