-
七02
undo相关的sql
Posted in Database, 8 views
-
查UNDO统计信息语句:
SELECT TO_CHAR(BEGIN_TIME,'HH24:MI:SS') BEGIN_TIME,
TO_CHAR(END_TIME,'HH24:MI:SS') END_TIME,
UNDOBLKS
FROM V$UNDOSTAT;
-------------------------------------------结果--------------------------------------------------------------
begin_time end_time undoblocks
9:48:30 9:53:07 76293
9:38:30 9:48:30 143670
9:28:30 9:38:30 130921
9:18:30 9:28:30 122500
9:08:30 9:18:30 149030
8:58:30 9:08:30 144586
8:48:30 8:58:30 108095
8:38:30 8:48:30 63533
8:28:30 8:38:30 72819
8:18:30 8:28:30 23321
8:08:30 8:18:30 2026
7:58:30 8:08:30 15480
7:48:30 7:58:30 91111
7:38:30 7:48:30 15810
7:28:30 7:38:30 56922
7:18:30 7:28:30 30449
7:08:30 7:18:30 6096
6:58:30 7:08:30 15022
6:48:30 6:58:30 91904
6:38:30 6:48:30 38794
6:28:30 6:38:30 111884
----------------------------------------------------------------------------------------------------------
查UNDO表空间的使用情况:
select
a.a1 表空间名,
substr(b.b2/1024/1024/1024,1,5) 表空间大小G,
substr(a.a2/1024/1024/1024,1,5) 剩余表空间G,
substr((b.b2-a.a2)/1024/1024/1024,1,5) 实际使用表空间G,
substr((b.b2-a.a2)/b.b2*100,1,5) 利用率,
c.c2 类型,
c.c3 区管理方式
from
(select tablespace_name a1,sum(Nvl(bytes,0)) a2 from dba_free_space group by tablespace_name) a,
(select tablespace_name b1,sum(bytes) b2 from dba_data_files group by tablespace_name) b,
(select tablespace_name c1,contents c2,extent_management c3 from dba_tablespaces) c
where a.a1=b.b1 and b.b1=c.c1
order by c.c2 desc
-------------------------------------------------结果--------------------------------------------------------------------
表空间名 表空间大小(G) 剩余(G) 使用 利用率 表空间类型 管理方式
UNDOTBS1 17.24 1.124 16.12 93.48 UNDO LOCAL
----------------------------------------------------------------------------------------------------------------------------
建议UNDO峰值:
select ur undo_retention,dbs db_block_size, ((ur * (ups * dbs)) + (dbs * 24)) / 1024 / 1024 as "M_bytes"
from (select value as ur from v$parameter where name = 'undo_retention'),
(select (undoblks / ((end_time - begin_time) * 86400)) ups from v$undostat where undoblks in (select max(undoblks) from v$undostat ) ),
(select value as dbs from v$parameter where name = 'db_block_size');
----------------------------------------------结果------------------------------------------------------------------
undo_retention db_block_size M_bytes
10800 8192 33,376.96875 -
Comments oracle SQL undo
-
七02
用插件解决wordpress引号问题
Posted in Program, 5 views
-
Wordpress默认会将英文标点转换为中文全角标点,单纯写文字的话这是个不错的功能,但是如果文章中包含各种代码,尤其是单双引号,就惨不忍睹了……
Quotmarks Replacer 是一个通过禁用 wptexturize 函数,解决 WordPress 自动将半角的单引号、双引号和省略号转换为全角标点的问题。使后台输入的标点格式与前台读者浏览的标点格式保持一致的插件。
这里下载:http://wordpress.org/extend/plugins/quotmarks-replacer/
-
Comments quotmarks-replacer wordpress 引号
-
七02
compatible参数
Posted in Database, 12 views
-
用rman复制数据库时,遇到ORA-01130错误,如下:
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: Duplicate Db 命令 (在 07/02/2009 00:40:44 上) 失败
RMAN-06136: 来自辅助数据库的 ORACLE 错误: ORA-01503: CREATE CONTROLFILE 失败
ORA-01130: 数据库文件版本 10.2.0.1.0 与 ORACLE 版本 10.2.0.0.0 不兼容
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\AUXILIARY\SYSTEM01.DBF'这是因为auxiliary库的compatible参数被设定为默认值10.2.0:
SQL> alter system set compatible='10.2.0.1.0' scope=spfile;
系统已更改。然后重启数据库即可。
-
Comments compatible duplicate ora-01130 oracle
-
七02
windows平台上的LRM-00116
Posted in Database, 10 views
-
建auxiliary数据库时,照《Creating and Updating Duplicate Databases with RMAN》中的例子建立init.ora。
示例文件:
DB_NAME=newdb
CONTROL_FILES=(/dup/oracle/oradata/trgt/control01.ctl,
/dup/oracle/oradata/trgt/control02.ctl)
# note that the following two initialization parameters have equivalents
# on the DUPLICATE command itself
DB_FILE_NAME_CONVERT=(/oracle/oradata/trgt/,/dup/oracle/oradata/trgt/)
LOG_FILE_NAME_CONVERT=(/oracle/oradata/trgt/redo,/dup/oracle/oradata/trgt/redo)改为Windows平台适用:
DB_NAME=auxi
CONTROL_FILES=(D:\oracle\product\10.2.0\oradata\auxiliary\control01.ctl,
D:\oracle\product\10.2.0\oradata\auxiliary\control02.ctl)
# note that the following two initialization parameters have equivalents
# on the DUPLICATE command itself
DB_FILE_NAME_CONVERT=(D:\oracle\product\10.2.0\oradata\test\,D:\oracle\product\10.2.0\oradata\auxiliary\)
LOG_FILE_NAME_CONVERT=(D:\oracle\product\10.2.0\oradata\test\,D:\oracle\product\10.2.0\oradata\auxiliary\)SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 7月 1 23:23:04 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
SQL> create spfile from pfile;
create spfile from pfile
*
第 1 行出现错误:
ORA-01078: failure in processing system parameters
LRM-00116: syntax error at 'LOG_FILE_NAME_CO' following 'D:\oracle\produc'修正init.ora中表达式,给路径加上双引号:
DB_FILE_NAME_CONVERT=("D:\oracle\product\10.2.0\oradata\test\","D:\oracle\product\10.2.0\oradata\auxiliary\")
LOG_FILE_NAME_CONVERT=("D:\oracle\product\10.2.0\oradata\test\","D:\oracle\product\10.2.0\oradata\auxiliary\")SQL> create spfile from pfile;
文件已创建。
-
Comments LRM-00116 oracle pfile spfile
-
六29
Palm Mojo SDK keyboard & mouse controls
Posted in Program, 29 views
-
Palm Pre 采用的web OS系统的SDK(Mojo)已经发布,其中包含有web OS模拟器。Palm Pre的操作有多种形式,本文列出SDK中用键盘和鼠标操作模拟器的方法。
Mojo SDK keyboard & mouse controls
--------------------------------------------------------------------------------
Here's my Q&D notes on emulator. Thanks to others for some info.
--Keyboard
Escape is Back Gesture,
Home is Center Button,
End is the Flick Up Gesture (like to bring up card view or the launcher),
Left/Right arrows switch applications,
Shift is Shift (duh!),
Alt is Option (orange),
Left Ctrl+letter does Sym for that letter,
and of course there's the keyboard too.--Mouse
Left Mouse click is "touching screen".
Left Mouse drag is "dragging on screen". Useful in card view to "swipe up" (close),and drag left right (card view, launcher, etc.).
Left Mouse click and hold will select card in card view for shuffling cards, or changing out Quick Launch applications.
Double left mouse click, is zoom in/out on selected paragraph in browser. Not same as two finger zoom?
To bring up the Quick Launch "wave", drag up from the bottom of the screen. Note that this is hard to get to work, as one has to start in the exact bottom row of pixels.--Emulator
The "Host" key defaults to Right Ctrl, used for accessing emulator menus. Following is a short list:
Tap and release Host key to return keyboard capture to PC (i.e. done using emulator). Note if using "Activation follows mouse (X-Mouse)", this is not required (see "Tweak UI", MS Power Toy, for info).
Host+F Full screen toggle
Host+N Session information dialog
Host+S Take a snapshot (from emulator)
Host+Q Close emulator--Helper Batch Files, in "C:\Program Files\Palm\SDK\bin" (I've not tried, YMMV):
palm-emulator.bat - Starts emulator.
palm-generate.bat - Create Application template. Will create directory if it doesn't exist.
palm-inspector.bat - Runs Palm inspector. Appears to be the debugger interface.
palm-install.bat - Installs App on USB connected Prē (usb), or emulator (tcp).
palm-launch.bat - Launch App on USB connected Prē (usb), or emulator (tcp). With debugging options.
palm-package.bat - Package App into ipk format.
Open up "DOS" command shell to use. Installing SDK adds bin directory to your path.Run batch file with no arguments to get usage.
--Mojo API
TBD
See sample code in "C:\Program Files\Palm\SDK\share\samples" for now. -
Comments emulator keyboard mojo mouse palm pre sdk
-
六24
Oracle 10g 手动建库
Posted in Database, 142 views
-
本文系转载,原作者不详
在Oracle中建库,通常有两种方法。一是使用Oracle的建库工且DBCA,这是一个图形界面工且,使用起来方便且很容易理解,因为它的界面友好、美观,而且提示也比较齐全。在Windows系统中,这个工具可以在Oracle程序组中打开(”开始”—“程序”—“ Oracle - OraDb10g_home1”—“ Configuration and Migration Tools”—“ Database Configuration Assistant”),也可以在命令行(”开始”—“运行”—“cmd”)工具中直接输入dbca来打开。另一种方法就是手工建库,这也就是下面所要讲的内容。
手工建库比起使用DBCA建库来说,是比较麻烦的,但是如果我们学好了手工建库的话,就可以使我们更好地理解Oracle数据库的体系结构。手工建库须要经过几个步骤,每一个步骤都非常关键。它包括:
1、 创建必要的相关目录
2、 创建初始化参数文件
3、 设置环境变量Oracle_sid
4、 创建实例
5、 创建口令文件
6、 启动数据库到nomount(实例)状态
7、 执行建库脚本
8、 执行catalog脚步本创建数据字典
9、 执行catproc创建package包
10、 执行pupbld
11、 由初始化参数文件创建spfile文件
12、 执行scott脚本创建scott模式
做完了以上的步骤之后就可以使用“SQL>alter database open;”打开数据库正常的使用了。下面,我将具体地把以上的几个步骤用实验展开来讲。 Read more...
-
Comments 10g create database oracle 建库 手动
-
六22
ubuntu9下flock与输入法的不兼容问题
Posted in Linux, 39 views
-
升级到ubuntu9后,在flock中无法调出输入法,用下面这个方法可以解决问题
编辑flock脚本,在前端添加一行:
export GTK_IM_MODULE=xim
保存退出
Blogged with the Flock Browser -
Comments
-
五18
为Blog添加了Picasa相册插件
Posted in 未分类, 118 views
-
这个插件叫做KPICASA_GALLERY,使用非常简便。
- Unzip the archive to your
wp-content/plugins/folder. - Activate the plugin through the
Pluginsmenu in WordPress - Go in the
Optionsmenu and selectkPicasa Gallery. Set your parameters. - Create post or a page with
KPICASA_GALLERYas the only content. - Browse to that post or page, voilà!
若遇到“Error: kPicasa Gallery tried to connect to Picasa Web Albums using file_get_contents() and failed. Your web host is probably blocking outgoing requests”的问题,请检查:
- 插件设置中Picasa用户名是否正确
- php.ini中allow_url_fopen是否开启
- 对外网络是否连通
- Unzip the archive to your
-
Comments Gallery Picasa 插件 相册
-
五06
断开windows共享连接
Posted in Program, 110 views
-
当通过windows共享访问其他机器后,如果不重启、不注销,windows会保持这个共享的连接状态,再次访问这个共享的时候不需要提供密码。
有时我们并不希望别人可以不用密码就访问共享,可以用net命令来断开连接。
如:
net use \\192.168.1.1\IPC$ /del
net use * /del
-
Comments net windows 共享 断开
-
三20
ORA-01555错误
Posted in Database, 193 views
-
ORA-1555错误简单的说就是针对一个数据块产生一致读时发生了错误。一致读就是指ORACLE利用回滚段来临时重构一个和事务或查询开始时的块状态相同的快照块的过程。如果一个块改变了多次,可能就会有多个快照块的。
一个事务或查询开始执行时,ORACLE会产生一个SCN来记录这个开始时刻点,这个SCN也就叫做SNAPSHOT SCN。ORACLE仅仅看基于SNAPSHOT SCN的快照记录。如果块中有活动的事务或BLOCK SCN> SNAPSHOT SCN时,就产生了一致读。如果是没有活动的事务但没有产生COMMIT SCN的块 ,先产生DELAY BLOCK CLEANOUT,再比较COMMIT SCN与SNAPSHOT SCN的大小,如果COMMIT SCN小于SNAPSHOT SCN则直接使用该块,否则要产生一致读。产生ORA-1555的可能情况:
1 一个长时间运行的查询,并同时针对查询需要的块有DML处理(主要是update和delete)
2 当查询和插入并发时
3 延迟块清除
4 交叉fetch和commit
5 回滚段发生错误情况1 一个长时间运行的查询,并同时针对查询需要的块有DML处理(主要是update和delete)
当一个查询开始之后,正好某一个update更改了其中的一个记录,当查询扫描到该记录时,就需要一致读,回滚空间中去查找原值。如果这个查询的时间非常长,而那条记录修改之后,很快就被提交了,导致回滚空间中的记录可以被清除,并且这个数据库事务本身也比较多,回滚空间的覆盖比较块,在查询结束之前,回滚段中的记录空间就被新的记录覆盖占用了,导致查询找不到原值,从而产生ORA-1555错误。Solution:
1、业务控制,禁止对同一个表的长时间查询和更新处理同时进行,要分开执行
2、增大回滚段的大小
3、增加回滚段的个数
4、不使用OPTIMAL选项,已经被使用的空间就不会很快收缩回来,可以使commit之后的记录保持尽可能长的时间
5、推迟对DML语句的COMMIT
6、优化查询语句,比如并行查询,目的是减小查询的时间
7、为要查询的表建立只读SNAPSHOT,这样对表记录的修改就不会影响到查询,但该表不能是太大的表情况2 当查询和插入并发时
一般情况下,当我们查询一个表,同时对这个表作插入,这时是不需要一致读的。当然这种情况下也不可能产生ORA-1555错误。
当作全表扫描的时候,oracle会扫描所有位于HWM之下的空间,而对于HWM之上的空间将忽略。也正因为如此,当我们插入的数据位于HWM之下的时候,如果同时还有例如全表扫描这部分空闲的空间,就会产生一致读,就有可能会导致ORA-1555错误。特别是在VLDB和OPS系统中,因为在这些系统中,很多时候都会对表作pre-allocate,当作了预分配之后,如果作一次大批量的delete,将会有非常多的可用空间位于HWM之下。
Solutions:
1、情况1的所有解决方法这里同样适用
2、不要预分配区(pre-allocate extent)
3、使用tuncate来删除表记录,使HWM收缩。
4、使用直接路径选项导入数据,使插入的数据在HWM之上。情况3 延迟块清除
关于延迟块清除的概念,可以参考后面的附录。
Solution:
1、使用oracle并行服务器OPS,将DML操作分割到不同的实例上执行
2、在批处理中使用SET TRANSACTION USE ROLLBACK SEGMENT为事务单独指定一个回滚段。
3、可以在DML之后,立即执行一个全表扫描和analyze indexes来强制立即进行块清除。情况4 交叉fetch和commit
这种比较典型的情况是在一个过程中使用了如下的结构:
cursor c1 is select * from bigemp;
begin
for c1rec in c1 loop
update mydual set a=a;
commit;
end loop;
end ;Solution:
1、检查过程,避免这种交叉提取和提交的情况出现。
2、延迟commit
3、在查询语句中,增加" order by 1 "的语句,这样会在临时段中保留ORDER BY的结果,可以避免一些一致读。情况5 回滚段发生错误的解决方法:
由这种原因导致的ORA-01555错误是极少数的。一般情况下,也只有在那些不支持大文件的操作系统会发生这种情况。
Solution:
1、检查init.ora中的参数文件,show parameter CORRUPT,可以将结果提交给ORACLE SUPPORT SERVICES。如果这样的参数存在,建议重 建数据库。
2、检查操作系统是否支持ORACLE。检查操作系统的错误日志和ORACLE的错误日志。
3、向Oracle Support Services寻求帮助。补充情况6:
在oracle 9i之后,使用auto的undo,就很少出现ORA-1555错误了,但是也不能完全排除这个错误,比如以下错误:
ORA-01555 caused by SQL statement below (Query Duration=11952 sec, SCN: 0x0842.1a1d737c)
这种情况下,主要是查询的时间超长,超过了undo_retention设置的时间10800秒,从而产生前面的情况1和情况2的错误。
Solution:
主要的解决方法,还是优化查询,包括语句的优化和索引的优化。 -
Comments 1555 ora- rollback

Comments
Thomas Barrasso
MojoForecast
Sunshow
nb 评论还支持ajax
Sunshow
我记得以前弄过这个,需要php json decode的支持 我那个f ...
99读书人
您好 想和你博客做个链接不知道行不? 已经做好了你的连接哦 ^_^ ...
chijiao
多谢,怪不得,ubuntu 8.04 安装 eva可以用,到了8.10就 ...