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

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

2135

积分

502

好友

184

主题
1#
发表于 2012-3-15 16:10:41 | 查看: 6019| 回复: 0
SQL> col file_name for a90
SQL> set linesize 200 pagesize 1400



SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production



SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
TEMP                           ONLINE
USERS                          ONLINE
EXAMPLE                        ONLINE
MACLEAN                        ONLINE
UNDOMAC                        ONLINE

7 rows selected.


SQL>  select file_name,file_id,tablespace_name from dba_data_Files;

FILE_NAME                                                                                     FILE_ID TABLESPACE_NAME
------------------------------------------------------------------------------------------ ---------- ------------------------------
/s01/oradata/G10R21/datafile/o1_mf_users_7h6t717x_.dbf                                             16 USERS
/s01/oradata/G10R21/datafile/o1_mf_users_7h6t6yo0_.dbf                                             15 USERS
/s01/oradata/G10R21/datafile/o1_mf_users_7h6t6w5w_.dbf                                             14 USERS
/s01/oradata/G10R21/datafile/o1_mf_users_7h6t6stt_.dbf                                             13 USERS
/s01/oradata/G10R21/datafile/o1_mf_users_7h6t6qc2_.dbf                                             12 USERS
/s01/oradata/G10R21/datafile/o1_mf_users_7h6t6nxy_.dbf                                             11 USERS
/s01/oradata/G10R21/datafile/o1_mf_users_7h6t6fdt_.dbf                                             10 USERS
/s01/oradata/G10R21/datafile/o1_mf_users_7gvd5pwh_.dbf                                              9 USERS
/s01/oradata/G10R21/datafile/o1_mf_example_7ch81ch3_.dbf                                            5 EXAMPLE
/s01/oradata/G10R21/datafile/o1_mf_users_7ch80085_.dbf                                              4 USERS
/s01/oradata/G10R21/datafile/o1_mf_sysaux_7ch8004x_.dbf                                             3 SYSAUX
/s01/oradata/G10R21/datafile/o1_mf_system_7ch8004t_.dbf                                             1 SYSTEM
/s01/oradata/G10R21/datafile/o1_mf_maclean_7oxhwz5l_.dbf                                            6 MACLEAN
/s01/oradata/G10R21/datafile/o1_mf_undomac_7p4z84cz_.dbf                                            7 UNDOMAC

14 rows selected.



SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 1048576000 bytes
Fixed Size                  2026096 bytes
Variable Size             473957776 bytes
Database Buffers          566231040 bytes
Redo Buffers                6361088 bytes
Database mounted.
SQL> alter database datafile 7 offline;

Database altered.

SQL> alter database open;

Database altered.


SQL> select segment_name,status from dba_rollback_segs;

SEGMENT_NAME                   STATUS
------------------------------ ----------------
SYSTEM                         ONLINE
_SYSSMU11$                     OFFLINE
_SYSSMU12$                     OFFLINE
_SYSSMU13$                     OFFLINE
_SYSSMU14$                     OFFLINE
_SYSSMU15$                     OFFLINE
_SYSSMU16$                     OFFLINE
_SYSSMU17$                     OFFLINE
_SYSSMU18$                     OFFLINE
_SYSSMU19$                     OFFLINE
_SYSSMU20$                     OFFLINE

11 rows selected.



SQL> create table mac1(t1 int) tablespace users;
create table mac1(t1 int) tablespace users
*
ERROR at line 1:
ORA-01552: cannot use system rollback segment for non-system tablespace 'USERS'




SQL> alter tablespace undomac add datafile size 200M;

Tablespace altered.

SQL> create table mac1(t1 int) tablespace users;
create table mac1(t1 int) tablespace users
*
ERROR at line 1:
ORA-01552: cannot use system rollback segment for non-system tablespace 'USERS'


alter system set "_smu_debug_mode"=4;



SQL> create rollback segment roll1 tablespace undomac;

Rollback segment created.

SQL> select segment_name,status from dba_rollback_segs;

SEGMENT_NAME                   STATUS
------------------------------ ----------------
SYSTEM                         ONLINE
ROLL1                          OFFLINE                       ==> 新建的ROLLBACK SEGMENT 直接置为 OFFLINE
_SYSSMU11$                     OFFLINE
_SYSSMU12$                     OFFLINE
_SYSSMU13$                     OFFLINE
_SYSSMU14$                     OFFLINE
_SYSSMU15$                     OFFLINE
_SYSSMU16$                     OFFLINE
_SYSSMU17$                     OFFLINE
_SYSSMU18$                     OFFLINE
_SYSSMU19$                     OFFLINE

SEGMENT_NAME                   STATUS
------------------------------ ----------------
_SYSSMU20$                     OFFLINE

12 rows selected.

SQL> alter rollback segment roll1 online;

Rollback segment altered.






SQL>  select segment_name,status from dba_rollback_segs;

SEGMENT_NAME                   STATUS
------------------------------ ----------------
SYSTEM                         ONLINE
ROLL1                          ONLINE
_SYSSMU11$                     OFFLINE
_SYSSMU12$                     OFFLINE
_SYSSMU13$                     OFFLINE
_SYSSMU14$                     OFFLINE
_SYSSMU15$                     OFFLINE
_SYSSMU16$                     OFFLINE
_SYSSMU17$                     OFFLINE
_SYSSMU18$                     OFFLINE
_SYSSMU19$                     OFFLINE

SEGMENT_NAME                   STATUS
------------------------------ ----------------
_SYSSMU20$                     OFFLINE

12 rows selected.


SQL> alter rollback segment "_SYSSMU11$" online;
alter rollback segment "_SYSSMU11$" online
*
ERROR at line 1:
ORA-01545: rollback segment '_SYSSMU11$' specified not available



SQL> create table mac1(t1 int) tablespace users;

Table created.

SQL> alter rollback segment roll1 offline;

Rollback segment altered.

SQL>  create table mac2(t1 int) tablespace users;
create table mac2(t1 int) tablespace users
*
ERROR at line 1:
ORA-01552: cannot use system rollback segment for non-system tablespace 'USERS'



SQL> oradebug setmypid;
Statement processed.

SQL> oradebug event 1552 trace name errorstack level 4;
Statement processed.

SQL> create table mac2(t1 int) tablespace users;
create table mac2(t1 int) tablespace users
*
ERROR at line 1:
ORA-01552: cannot use system rollback segment for non-system tablespace 'USERS'

SQL> oradebug setmypid;
Statement processed.


SQL> oradebug event 10046 trace name context forever,level 12;
Statement processed.


SQL>
SQL> create rollback segment roll2 tablespace undomac;

Rollback segment created.

FROM 10046:


update undo$ set name=:2,file#=:3,block#=:4,status$=:5,user#=:6,undosqn=:7,xactsqn=:8,scnbas=:9,scnwrp=:10,inst#=:11,ts#=:12,spare1=:13 where us#=:1


Bind#0
  oacdty=01 mxl=32(05) mxlc=00 mal=00 scl=00 pre=00
  oacflg=18 fl2=0001 frm=01 csi=873 siz=32 off=0
  kxsbbbfp=9e29e402  bln=32  avl=05  flg=09
  value="ROLL2"
Bind#1
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7f771d428950  bln=24  avl=02  flg=05
  value=2
Bind#2
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7f771d428920  bln=24  avl=02  flg=05
  value=25
Bind#3
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7f771d4288f0  bln=24  avl=02  flg=05
  value=2
Bind#4
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7f771d4288c0  bln=24  avl=01  flg=05
  value=0
Bind#5
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7f771d428890  bln=24  avl=03  flg=05
  value=1135
  
  
  
status$=:5, ==> BIND #3   ==2  , 2 Means OFFLINE




DBA_ROLLBACK_SEGS:

select un.name,
       decode(un.user#, 1, 'PUBLIC', 'SYS'),
       ts.name,
       un.us#,
       f.file#,
       un.block#,
       s.iniexts * ts.blocksize,
       decode(bitand(ts.flags, 3),
              1,
              to_number(NULL),
              s.extsize * ts.blocksize),
       s.minexts,
       s.maxexts,
       decode(bitand(ts.flags, 3), 1, to_number(NULL), s.extpct),
       decode(un.status$,
              2,
              'OFFLINE',
              3,
              'ONLINE',
              4,
              'UNDEFINED',
              5,
              'NEEDS RECOVERY',
              6,
              'PARTLY AVAILABLE',
              'UNDEFINED'),
       decode(un.inst#, 0, NULL, un.inst#),
       un.file#
  from sys.undo$ un, sys.seg$ s, sys.ts$ ts, sys.file$ f
where un.status$ != 1
   and un.ts# = s.ts#
   and un.file# = s.file#
   and un.block# = s.block#
   and s.type# in (1, 10)
   and s.ts# = ts.ts#
   and un.ts# = f.ts#
   and un.file# = f.relfile#
下载专业ORACLE数据库恢复工具PRM-DUL  For Oracle http://www.parnassusdata.com/zh-hans/emergency-services

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638  QQ: 47079569   
您需要登录后才可以回帖 登录 | 注册

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

GMT+8, 2024-12-24 03:49 , Processed in 0.055161 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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