LOB字段管理--LOB MOVE
今天进行了LOB数据的移植工作,先前LOB和其他的数据存储在一个表空间中,随着开发人员业务的变化和目前数据容量的持续增加现在考虑将LOB字段的数据移植到一个单独的表空间。在移植看注意研究了下ORACLE ALTER TABLE MOVE 的语法: ALTER TABLE table_name MOVE [ONLINE] tablespace_name;通过上面的语句可以移植表到新表空间,如果要移植LOB字典需要参考以下语法:ALTER ABLE table_name LOB (lob_item) STORE AS [lob_segment] ( TABLESPACE tablespace_name (STORAGE.....) ENABLE|DISABLE STORAGE IN ROW CHUNK integer
WITH 语句
WITH语句被称为子查询的选配语句,ORACLE9i中的新增功能。但从来都没有使用过,今天开发人员问起,我简单测试了下[@more@]查询一个表空间的使用情况: SELECT t.tablespace_name,d.bytesFROM dba_tablespaces t,(SELECT tablespace_name,sum(bytes) as bytes FROM dba_data_files GROUP BY tablespace_name) dWHERE t.tablespace_name = d.tablespace_name/TABLESPACE_NAME BYTES------------------------------ ----------USERS 5242880SYSAUX 325058560SYSTEM 492830720UNDOTBS1 146800640使用WITH语句后可以这样写WITH d AS (SELECT tabl
rman中压缩备份集
前两天在一个装有10G的PC SERVER上进行rman备份,进行了多次备份,都在备份脚本运行一段时间后就停止了,也不返回错误很是郁闷。但是发现CPU使用率很高。仔细看了看rman脚本,发现脚本中对备份集进行了压缩 as compressed backupset, 这是10G rman的新增功能。最后修改了备份脚本,去掉备份集压缩选项,备份成功。看来这压缩大有文章啊 今天对压缩和不压缩备份集进行了测试,在测试过程中用vmstat对系统进行了跟踪export ORACLE_SID=rac1[oracle@rac1 rman]$ rman target / Recovery Manager: Release 10.1.0.5.0 - ProductionCopyright (c) 1995
sql server 2000中的行列转换
今天有个朋友在sql server2000中想实现行列转换, 问我有没有类似oracle中DECODE的函数,我查了一下没有,但在sql2000种我们可以通过聚合函数(sum,max,min,avg...等)和case语句才实现行列转换 。 比如表t如下:班级(class) 性别(sex) 总数(total)1 1 101 2 302 1 202 2 263 1 303 2 18..........................................以上数据
ASM测试二:数据文件移植到ASM
今天试验了怎样将数据库文件从文件系统移植到ASM测试环境:Windows 2003 Server Oracle 10.2.0.1参考ORACLE文档:Oracle Database 10g Migration to Automatic Storage Management整个过程主要分为两部分:(1) ASM实例的创建 (2) 文件移植(1)ASM实例的创建详见http://shadowfalao.itpub.net/post/2483/303507(2)文件移植1)目前数据库运行环境运行于archivelog模式的单节点数据库,而且还起用了flashback功能。2)ASM磁盘组规划 需要将数据文件,redo日志文件,控制文件,以及将来的归档日志,FLASHBACK日志都用ASM来管理,最少需要两个ASM磁
oerr小工具研究
以前发新eygle大师它们在使用这个工具获取oracle的错误信息。最近仔细看了看$ORACLE_HOME/bin目录。才弄明白这个工具是oracle在linux/unix平台下提供的快送获取oracle错误信息的工具。他有两个参数:oerr <error_type> <error_code>比如我们有一个ora4031的错误,求助如下:[oracle@rac1 ~]$ oerr ora 403104031, 00000, "unable to allocate %s bytes of shared memory ("%s","%s","%s","%s")"// *Cause: More shared memory is needed than was allocated in the shared//
32位ORACLE与64位ORACLE
一直对32位ORACLE与64位ORACLE的一些概念比较的模糊,从来没有比较深入的去研究,今天将自己的学习总结一下。1) :从安装角度考虑,32bit的平台(操作系统和硬件系统)只支持32bitORACLE的安装;64bit平台既支持32bitORACLE的安装也支持64位ORACLE的安装;2):32位ORACLE中,SGA都有1.7G的限制,64bit可以跨越这个限制,一些平台(比如Linux)可以通过一些方法让32bitORACLE跨越这个限制;3): 数据文件大小的限制,这个不仅跟操作系统有关,还跟ORACLE的block size有关:根据ORACLE的block size可支持的文件大小block size(K) samllfile bigfile(O
利用dbms_metadata包获取对象元数据
dbms_metadata是oracle提供的从数据字典中获取数据库对象元数据(也就是对象的原始定义)的包。在这以前DBA还可以通过创建自定义SQL来获取对象定义,这个包的出现可以大大减少我们的工作。这个包提供了很多有用的工具,10g对这个包进行了更新加强,增加了许多新功能。常用的过程有dbms_metadata.get_ddl或dbms_metadata.get_xml(对象定义语句以XML的格式返回), 还可以利用dbms_granted_ddl或dbms_granted_xml获取对象的权限信息获取tablespace定义SQL> set linesize 200SQL> set pagesize 990SQL> set long 1000SQL> select dbm
tns-12541错误解决
tns-12541错误提示为:无监听程序,根据这个错误提示我们可能会从以下几个方面去解决问题1 、监听器是否启动2、监听器中是否配置了要访问的实例 3、多监听服务器上要访问实例所在的监听器没有启动(比如:一个服务器上有多个实例并配置了多个监听器的情况)今天从windows客户端tnsping 远程测试linux上的oracle时,也提示tns-12541错误,找了半天没有找着原因,最后看了一下我在windows上配置net service时是根据ip访问远程数据库的(HOST=IP),我的远程linux没有配置hosts解析文件,根据这个思路在linux服务器上配置了hosts文件后 ,客户端的t
新起点
离开西北,来到苏州,再次踏上自己的DBA之路,结束了以前的时光,从此开始新的生活。回想以前,整天的pl/sql..rman..arhivelog..文件copy等.总算是挺过来了,希望能在新的环境中锻炼自己,提高自己,充实自己,离开曾经奋斗过的同事,玩过的朋友,多少有点孤独感。呵呵.....希望以后能在DBA的道路上做出更好的成绩。[@more@]