游客:
注册
|
登录
|
帮助
网友俱乐部
»
数据库操作
»
Oracle教程
» ORA-00701warmstarting对象的另类解决方法
网友生活网
|
网友学堂
如何获得金币?
诚招斑竹
IP归属地查询 PR查询 收录查询 whois查询
免费超短2级域名,your.jpy.cc
传世私服
|
传奇世界私服
注册亚洲交友中心,找个人来同居吧!
免费存储空间,免费网络硬盘
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: ORA-00701warmstarting对象的另类解决方法
lonjew
元帅
UID 73191
精华
1
积分 30615
帖子 14941
威望 3
金币 14931
热心 12
阅读权限 100
注册 2008-1-28
状态 离线
#1
使用道具
发表于 2008-4-2 08:46
资料
个人空间
主页
短消息
加为好友
ORA-00701warmstarting对象的另类解决方法
ORA-00701warmstarting对象的另类解决方法
有朋友在ITPUB问到一个问题,如何resize一个SYSTEM表空间。
从常规来说,如果我们希望resize一个文件,这个文件能够resize的部分必然是没有数据,未被使用的,也就是说,我们需要找到一个文件最高的Extent号,这个Extent之外的空间是可以被resize的,以下一个查询可以帮我们找到一个文件最末端的对象:
col segment_name for a30
col owner for a10
SELECT *
FROM (SELECT owner, segment_name,segment_type,block_id, blocks
FROM dba_extents
WHERE tablespace_name = 'SYSTEM' and file_id='&fileid'
ORDER BY block_id DESC)
WHERE ROWNUM < 11;
看一下我的一个数据库:
SQL> col segment_name for a30
SQL> col owner for a10
SQL> SELECT *
2 FROM (SELECT owner, segment_name,segment_type,block_id, blocks
3 FROM dba_extents
4 WHERE tablespace_name = 'SYSTEM' and file_id='&fileid'
5 ORDER BY block_id DESC)
6 WHERE ROWNUM < 11;
Enter value for fileid: 1
old 4: WHERE tablespace_name = 'SYSTEM' and file_id='&fileid'
new 4: WHERE tablespace_name = 'SYSTEM' and file_id='1'
OWNER SEGMENT_NAME SEGMENT_TYPE BLOCK_ID BLOCKS
---------- ------------------------------ ------------------ ---------- ----------
SYS EYGLE_IP TABLE 25609 128
SYS EYGLE_IP TABLE 25481 128
SYS EYGLE_IP TABLE 25353 128
SYS I_H_OBJ#_COL# INDEX 25305 8
SYS TEST TABLE 25297 8
SYS I_TEST INDEX 25289 8
SYS TEST TABLE 25281 8
SYS T TABLE 25273 8
SYS EYGLE_IP TABLE 25265 8
SYS EYGLE_IP TABLE 25257 8
10 rows selected.
我们注意到高水位上有些索引是可以通过rebuild来改变其位置的,但是在正常模式下,
Oracle
不允许rebuild这些索引:
SQL> alter index I_H_OBJ#_COL# rebuild;
alter index I_H_OBJ#_COL# rebuild
*
ERROR at line 1:
ORA-00701: object necessary for warmstarting database cannot be altered
有两种方式可以使得这些对象允许被重建:
1.通过migrate模式
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup migrate;
ORACLE instance started.
Total System Global Area 139531744 bytes
Fixed Size 452064 bytes
Variable Size 121634816 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> alter index I_H_OBJ#_COL# rebuild;
Index altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 139531744 bytes
Fixed Size 452064 bytes
Variable Size 121634816 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
2.通过一个内部事件
SQL> alter system set event='38003 trace name context forever, level 10' scope=spfile;
System altered.
SQL> startup force;
ORACLE instance started.
Total System Global Area 139531744 bytes
Fixed Size 452064 bytes
Variable Size 121634816 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> alter index i_h_obj#_col# rebuild;
Index altered.
38003事件的作用是:CBO Disable column stats for the dictionary objects in recursive SQL
也就是说可以将部分对象从启动的bootstrap$需要里剥离出来,从而可以被在线rebuild.
这个事件能够影响的对象很有限,这类操作也是极其危险的,所以不在这里详细列出。
-The End-
网友
lonjew
签名 - 网友社区
==
[广告]
免费域名(Free Subdomain)
免费空间(Free hosting)
PR查询(Google Pagerank)
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
当前时区 GMT+8, 现在时间是 2008-10-7 19:55
信产部ICP备案:
京ICP备05066424号
北京市公安局网监备案:1101050648号
Powered by
Discuz!
5.5.0
TOP
清除 Cookies
-
联系我们
-
网友俱乐部
-
Archiver
-
WAP