Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

65

积分

0

好友

31

主题
1#
发表于 2013-3-5 10:40:18 | 查看: 5056| 回复: 5
本帖最后由 etl2007 于 2013-3-5 12:42 编辑

昨天晚上创建表空间的时候

执行了这样一条语句

CREATE BIGFILE TABLESPACE IT_USER_dat DATAFILE '/dev/vx/rdsk/vgit/lvdata';
/dev/vx/rdsk/vgit/lvdata 有1.5T

大约创建了1个多小时
都没有完成。

我急着回家,所以就将Seccrt的窗口直接点掉了
(因为我想CTRL+C直接关闭那个SQL命令行环境不成功 )

这里带来几个疑问
1)我如何知道创建表空间的进度呢?
    貌似这个Oracle是不提供的
    我去看了对应的alert日志,
    只有
    CREATE BIGFILE TABLESPACE IT_USER_dat DATAFILE '/dev/vx/rdsk/vgit/lvdata';
    这么一条记录
   
    我看了那些创建成功的表空间
    就是两条记录
    假设创建语句是
   
    CREATE TABLESPACE account_dat DATAFILE '/dev/vx/rdsk/vgdata/lvaccount';   
    那么日志就类似是
    “
     CREATE TABLESPACE account_dat DATAFILE '/dev/vx/rdsk/vgdata/lvaccount';
      Completed :  CREATE TABLESPACE account_dat DATAFILE '/dev/vx/rdsk/vgdata/lvaccount';
  
  ”
   
    根本无法知道创建表过程中的进度。对于创建1.5T这样的bigfile的表空间,我还是非常希望知道进度的
   
2)另外我是直接关闭了    Seccrt的窗口
    但是我到后台去查那个对应的操作系统系统进程还在的?
    我的疑问是
    这个对应的操作系统进程还在是否就表示
    CREATE TABLESPACE account_dat DATAFILE '/dev/vx/rdsk/vgdata/lvaccount';
     还在执行?还是没有呢?
     
     如果是还在执行
     我用kill -9 杀掉对应的进程
     是否就终止了
    CREATE TABLESPACE account_dat DATAFILE '/dev/vx/rdsk/vgdata/lvaccount';
     
     当然肯定是终止了。
     我想问的是
     
     如果我今天又想执行
     CREATE TABLESPACE account_dat DATAFILE '/dev/vx/rdsk/vgdata/lvaccount';
     
     需要有什么注意的话,因为我怕之前创建不成功留下一些脏的元数据,导致以后也创建不成功
     当然如果这个语句
     CREATE TABLESPACE account_dat DATAFILE '/dev/vx/rdsk/vgdata/lvaccount';
     每次都会讲目标存储做一次格式化,而不考虑从前的状态,那么我的担心就是多余了

3)刚刚我远程登录上去,之前那个进程已经不存在了,就是我之前关闭了    Seccrt的窗口
    但是到后台查操作系统进程还存在的那个
  我的疑问是: Oracle是如何判断一个会话超时的呢?
                我的印象中,当我登录到SQLPLUS 命令行,我不执行任何东东,只要不异常退出,
   那么进程就不会结束啊?我手动关闭seccrt的动作,Oracle是如何识别的呢?


     
     麻烦诸位大侠解答我上面的疑问啊
6#
发表于 2013-3-6 00:37:13
Maclean Liu(刘相兵 发表于 2013-3-5 19:46
每次都会讲目标存储做一次格式化,而不考虑从前的状态,那么我的担心就是多余了==>
大不了用 reuse,这个 ...


后来在日志中报了这么一个错


ORA-604 signalled during: CREATE BIGFILE TABLESPACE rpt_user_dat DATAFILE '/dev/vx/rdsk/vgphydb/lvdata'...
2013-03-04 00:57:27.826000 -03:00


在网上查了一下,说是ORA-604 是由recursive SQL call导致的。
创建表空间的时候会涉及很多系统表的递归调用吗?

回复 只看该作者 道具 举报

5#
发表于 2013-3-6 00:26:13
本帖最后由 etl2007 于 2013-3-6 00:33 编辑
Maclean Liu(刘相兵 发表于 2013-3-5 19:43
根本无法知道创建表过程中的进度。对于创建1.5T这样的bigfile的表空间,我还是非常希望知道进度的

==>  ...


能否提供一个可操作的方法,假如是linux系统?

回复 只看该作者 道具 举报

4#
发表于 2013-3-5 19:47:57
那么进程就不会结束啊?我手动关闭seccrt的动作,Oracle是如何识别的呢?

==》你可以搜一下 一个知识点 DCD , dead connection detection

回复 只看该作者 道具 举报

3#
发表于 2013-3-5 19:46:43
  每次都会讲目标存储做一次格式化,而不考虑从前的状态,那么我的担心就是多余了==>
大不了用 reuse,这个我觉得不必担心吧

回复 只看该作者 道具 举报

2#
发表于 2013-3-5 19:43:38
  根本无法知道创建表过程中的进度。对于创建1.5T这样的bigfile的表空间,我还是非常希望知道进度的

==> 确实目前版本是 没什么监控的, 我建议你 监控系统的IO情况,每秒花在建tablespace上的吞吐量有多少, 除以表空间大小

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 10:44 , Processed in 0.053201 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569