Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

ORACLE使用RMAN对SYSTEM表空间进行介质恢复

Posted on 2023年5月6日 by hackdl

注意:数据库应该支持在归档模式。

1.对SYSTEMG表空间做一个备份

[oracle@bys001 ~]$ rman target /

Recovery Manager: Release 11.2.0.1.0 – Production on Tue Sep 17 10:42:18 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: BYS1 (DBID=3957527513)

RMAN> list backup;

using target database control file instead of recovery catalog

specification does not match any backup in the repository

RMAN> backup tablespace system;

Starting backup at 17-SEP-13

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=45 device type=DISK

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

input datafile file number=00001 name=/u01/oradata/bys1/system01.dbf

channel ORA_DISK_1: starting piece 1 at 17-SEP-13

channel ORA_DISK_1: finished piece 1 at 17-SEP-13

piece handle=/u01/flash_recovery_area/BYS1/backupset/2013_09_17/o1_mf_nnndf_TAG20130917T104438_93hjjqph_.bkp tag=TAG20130917T104438 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:02:26

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

including current control file in backup set

including current SPFILE in backup set

channel ORA_DISK_1: starting piece 1 at 17-SEP-13

channel ORA_DISK_1: finished piece 1 at 17-SEP-13

piece handle=/u01/flash_recovery_area/BYS1/backupset/2013_09_17/o1_mf_ncsnf_TAG20130917T104438_93hjok2q_.bkp tag=TAG20130917T104438 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03

Finished backup at 17-SEP-13

RMAN> exit

##################################################################################################

2.创建一个表空间,并在此表空间上建表

BYS@bys1>select log_mode from v$database;

LOG_MODE

————

ARCHIVELOG

BYS@bys1>select * from user_role_privs;

USERNAME                       GRANTED_ROLE                   ADM DEF OS_

—————————— —————————— — — —

BYS                            DBA                            NO  YES NO

建表空间和表

BYS@bys1>create tablespace rmantest datafile ‘/u01/oradata/bys1/rmantest.dbf’ size 10m;

BYS@bys1>create table test5 tablespace rmantest as select * from dba_objects where 1=0;

col file_name for a40

BYS@bys1>select file_name,tablespace_name,bytes/1024/1024 m from dba_data_files union select file_name,tablespace_name,bytes/1024/1024 m from dba_temp_files;

FILE_NAME                                TABLESPACE_NAME                         M

—————————————- —————————— ———-

/u01/oradata/bys1/example01.dbf          EXAMPLE                               100

/u01/oradata/bys1/rmantest.dbf           RMANTEST                               10

/u01/oradata/bys1/sysaux01.dbf           SYSAUX                                620

/u01/oradata/bys1/system01.dbf           SYSTEM                                690

/u01/oradata/bys1/temp01.dbf             TEMP                                  771

/u01/oradata/bys1/undotbs01.dbf          UNDOTBS1                              125

/u01/oradata/bys1/users01.dbf            USERS                             1703.75

BYS@bys1>select table_name,tablespace_name from user_tables where table_name=’TEST5′;

TABLE_NAME                     TABLESPACE_NAME

—————————— ——————————

TEST5                          RMANTEST

BYS@bys1>select df.tablespace_name,df.sum_df_m as space_m,df.sum_df_m-fs.sum_fs_m as used_m,fs.sum_fs_m as free_space,to_char(trunc((df.sum_df_m-fs.sum_fs_m)/df.sum_df_m,2)*100) as “used_%” from (select tablespace_name,sum(bytes/1024/1024) as sum_df_m from dba_data_files group by tablespace_name) df,(select tablespace_name,sum(bytes/1024/1024) as sum_fs_m from dba_free_space group by tablespace_name) fs where df.tablespace_name=fs.tablespace_name  and df.tablespace_name=’RMANTEST’;

TABLESPACE_NAME                   SPACE_M     USED_M FREE_SPACE used_%

—————————— ———- ———- ———- ———-

RMANTEST                               10     1.0625     8.9375 10

BYS@bys1>exit

################################################################

3.模拟SYSTEM表空间故障–这里是把SYSTEM表空间的数据文件改名

发现此时数据库还是正常运行,并且可以做DML操作。但是DDL或涉及数据字典表的操作会报错。

–也验证了删除系统表空间的数据文件数据库并不会SHUTDOWN.

使用shutdown immediate;关闭数据库时因为需要向数据文件中写入CHECKPOING相关信息,所以报错。使用ABORT选项关闭数据库。

此时打开数据库会报错,无法锁定数据文件。此时数据库是MOUNT状态

[oracle@bys001 bys1]$ pwd

/u01/oradata/bys1

[oracle@bys001 bys1]$ ls

control01.ctl  redo01.log  redo03.log    sysaux01.dbf  temp01.dbf     users01.dbf

example01.dbf  redo02.log  rmantest.dbf  system01.dbf  undotbs01.dbf

[oracle@bys001 bys1]$

mv system01.dbf system01.dbfa

[oracle@bys001 bys1]$ ls

control01.ctl  redo01.log  redo03.log    sysaux01.dbf   temp01.dbf     users01.dbf

example01.dbf  redo02.log  rmantest.dbf  system01.dbfa  undotbs01.dbf

[oracle@bys001 bys1]$ sqlplus / as sysdba

SYS@bys1>select open_mode from v$database;

OPEN_MODE

——————–

READ WRITE

SYS@bys1>conn bys/bys

Connected.

BYS@bys1>select * from test5;

no rows selected

BYS@bys1>insert into test5 select * from dba_objects where rownum

4 rows created.

BYS@bys1>commit;

Commit complete.

此时查询新建的表不报错:

BYS@bys1>select count(*) from test5;

  COUNT(*)

———-

         4

建表时报错–涉及数据字典,数据字典在系统表空间

BYS@bys1>create table test6 as select * from emp;
create table test6 as select * from emp
                                    *
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01116: error in opening database file 1
ORA-01110: data file 1: ‘/u01/oradata/bys1/system01.dbf’
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
ORA-00604: error occurred at recursive SQL level 1
ORA-01116: error in opening database file 1
ORA-01110: data file 1: ‘/u01/oradata/bys1/system01.dbf’
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3

BYS@bys1>select * from tab;
select * from tab
              *
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01116: error in opening database file 1
ORA-01110: data file 1: ‘/u01/oradata/bys1/system01.dbf’
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
ORA-00604: error occurred at recursive SQL level 1
ORA-01116: error in opening database file 1
ORA-01110: data file 1: ‘/u01/oradata/bys1/system01.dbf’
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3

BYS@bys1>conn / as sysdba

Connected.

SYS@bys1>shutdown immediate;

ORA-01116: error in opening database file 1

ORA-01110: data file 1: ‘/u01/oradata/bys1/system01.dbf’

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

SYS@bys1>select open_mode from v$database;

OPEN_MODE

——————–

READ WRITE

SYS@bys1>shutdown abort;

ORACLE instance shut down.

SYS@bys1>startup;

ORACLE instance started.

Total System Global Area  631914496 bytes

Fixed Size                  1338364 bytes

Variable Size             260047876 bytes

Database Buffers          364904448 bytes

Redo Buffers                5623808 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 1 – see DBWR trace file

ORA-01110: data file 1: ‘/u01/oradata/bys1/system01.dbf’

SYS@bys1>select status from v$instance;

STATUS

————

MOUNTED

######################################################

4,使用RMAN恢复系统表空间

RMAN> list backup;

List of Backup Sets

===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

——- —- — ———- ———– ———— —————

1       Full    596.67M    DISK        00:02:19     17-SEP-13      

        BP Key: 1   Status: AVAILABLE  Compressed: NO  Tag: TAG20130917T104438

        Piece Name: /u01/flash_recovery_area/BYS1/backupset/2013_09_17/o1_mf_nnndf_TAG20130917T104438_93hjjqph_.bkp

  List of Datafiles in backup set 1

  File LV Type Ckp SCN    Ckp Time  Name

  —- — —- ———- ——— —-

  1       Full 1646291    17-SEP-13 /u01/oradata/bys1/system01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

——- —- — ———- ———– ———— —————

2       Full    9.64M      DISK        00:00:10     17-SEP-13      

        BP Key: 2   Status: AVAILABLE  Compressed: NO  Tag: TAG20130917T104438

        Piece Name: /u01/flash_recovery_area/BYS1/backupset/2013_09_17/o1_mf_ncsnf_TAG20130917T104438_93hjok2q_.bkp

  SPFILE Included: Modification time: 16-SEP-13

  SPFILE db_unique_name: BYS1

  Control File Included: Ckp SCN: 1646360      Ckp time: 17-SEP-13

RMAN>

restore tablespace system;

Starting restore at 17-SEP-13

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=18 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_DISK_1: restoring datafile 00001 to /u01/oradata/bys1/system01.dbf

channel ORA_DISK_1: reading from backup piece /u01/flash_recovery_area/BYS1/backupset/2013_09_17/o1_mf_nnndf_TAG20130917T104438_93hjjqph_.bkp

channel ORA_DISK_1: piece handle=/u01/flash_recovery_area/BYS1/backupset/2013_09_17/o1_mf_nnndf_TAG20130917T104438_93hjjqph_.bkp tag=TAG20130917T104438

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:01:55

Finished restore at 17-SEP-13

RMAN>

recover tablespace system;

Starting recover at 17-SEP-13

using channel ORA_DISK_1

starting media recovery

media recovery complete, elapsed time: 00:00:01

Finished recover at 17-SEP-13

RMAN>

alter database open;

database opened

RMAN> exit

Recovery Manager complete.

########################################################################

6.登陆数据库,查看数据是否正常

[oracle@bys001 bys1]$ sqlplus / as sysdba

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SYS@bys1>select open_mode from v$database;

OPEN_MODE

——————–

READ WRITE

SYS@bys1>conn bys/bys

Connected.

可以看到,备份的SYSTEM表空间之后的创建表空间、建表插入数据的操作产生的数据都正常。

BYS@bys1>

select count(*) from test5;

  COUNT(*)

———-

         4

BYS@bys1>col file_name for a40

BYS@bys1>select file_name,tablespace_name,bytes/1024/1024 m from dba_data_files union select file_name,tablespace_name,bytes/1024/1024 m from dba_temp_files;

FILE_NAME                                TABLESPACE_NAME                         M

—————————————- —————————— ———-

/u01/oradata/bys1/example01.dbf          EXAMPLE                               100

/u01/oradata/bys1/rmantest.dbf           RMANTEST                               10

/u01/oradata/bys1/sysaux01.dbf           SYSAUX                                620

/u01/oradata/bys1/system01.dbf           SYSTEM                                690

/u01/oradata/bys1/temp01.dbf             TEMP                                  771

/u01/oradata/bys1/undotbs01.dbf          UNDOTBS1                              125

/u01/oradata/bys1/users01.dbf            USERS                             1703.75

服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net

Related posts:

  1. 租用服务器机柜价格一般多少
  2. “高效稳定的勐勐云服务器托管服务”
  3. 06.一文看懂并发编程中的锁
  4. 河南省云主机托管商:高效稳定的服务器解决方案
  5. 企业云服务器托管的益处

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: 数据字典简介
下一篇: 针对某个表使用高级复制进行数据同步示例

最新更新

  • 五月学习之keepalived 软件简介
  • Cibersort免疫浸润的在线分析及R语言代码实现
  • 阿里云的认证最有几个等级?考试费用是多少?
  • 京东APP百亿级商品与车关系数据检索实践 | 京东云技术团队
  • 【Hello Network】TCP协议 TCP协议 确认应答机制 (ACK) 超时重传机制 连接管理机制 流量控制 滑动窗口 拥塞控制 延时应答 捎带应答 面向字节流 粘包问题 TCP的异常情况 TCP小结 基于TCP的应用层协议

随机推荐

  • 可信赖的IDC服务器托管服务商
  • 自己买的服务器可以托管么
  • 重庆十强服务器托管云空间平台排名揭晓
  • 高效稳定的黑龙江电脑服务器托管服务
  • 服务器租用服务器维护北京

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 服务器租用
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8