浅一下oracle热备份users表空间

数据库要运行在归档模式下:
archive log list
shutdown immediate
startup mount
alter database archivelog;
alter database open;
archive log list

热备份users表空间:

(1)实验环境相关信息查看

创建备份路径

mkdir -p /home/oracle/hotbk/

这里为了测试更改归档文件的路径

mkdir /home/oracle/arc_orcl_dest1/
alter system set log_archive_dest_1=‘location=/home/oracle/arc_orcl_dest1/‘;
select sequence#,name from v$archived_log;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
select sequence#,name from v$archived_log;

查看数据文件

SQL> select name from v$datafile;
NAME
----------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
Elapsed: 00:00:00.00

查看表空间

SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
Elapsed: 00:00:00.00

查看备份信息

SQL> select * from v$backup;
     FILE# STATUS         CHANGE# TIME
---------- ------------------ ---------- ---------
     1 NOT ACTIVE               0
     2 NOT ACTIVE               0
     3 NOT ACTIVE               0
     4 NOT ACTIVE         1027726 27-SEP-16
Elapsed: 00:00:00.00
SQL> select name,file# from v$datafile
  2  ;
NAME
----------------------------------------------------------------------------------------------------
     FILE#
----------
/u01/app/oracle/oradata/orcl/system01.dbf
     1
/u01/app/oracle/oradata/orcl/sysaux01.dbf
     2
/u01/app/oracle/oradata/orcl/undotbs01.dbf
     3
/u01/app/oracle/oradata/orcl/users01.dbf
     4
Elapsed: 00:00:00.00

查看文件号及其检查点的编号

SQL>  select file#,checkpoint_change# from v$datafile;
     FILE# CHECKPOINT_CHANGE#
---------- ------------------
     1          1027476
     2          1027476
     3          1027476
     4          1027726
Elapsed: 00:00:00.01
SQL>  select file#,checkpoint_change# from v$datafile_header;
     FILE# CHECKPOINT_CHANGE#
---------- ------------------
     1          1027476
     2          1027476
     3          1027476
     4          1027726
Elapsed: 00:00:00.01

(2)真正开始备份
这里备份users这个表空间。

alter tablespace users begin backup;
!cp -v /u01/app/oracle/oradata/orcl/users01.dbf /home/oracle/hotbk/
alter tablespace users end backup;

查看备份点

SQL> select * from v$backup;
     FILE# STATUS         CHANGE# TIME
---------- ------------------ ---------- ---------
     1 NOT ACTIVE               0
     2 NOT ACTIVE               0
     3 NOT ACTIVE               0
     4 NOT ACTIVE         1028454 27-SEP-16
Elapsed: 00:00:00.00

(3)模拟数据修改
SQL> select owner,table_name from dba_tables where tablespace_name=‘USERS‘;
create table scott.ob2 as select * from dba_objects;
select count(*) from scott.ob2;
commit;
alter system switch logfile;
查看数据变化情况

SQL> select file#,checkpoint_change# from v$datafile;
     FILE# CHECKPOINT_CHANGE#
---------- ------------------
     1          1028188
     2          1028188
     3          1028188
     4          1028454
Elapsed: 00:00:00.00
SQL>  select file#,checkpoint_change# from v$datafile_header;
     FILE# CHECKPOINT_CHANGE#
---------- ------------------
     1          1028188
     2          1028188
     3          1028188
     4          1028454
Elapsed: 00:00:00.00

和之前的比较,发现checkpoint_change发生了变化。

查看有没有修复的数据块:

SQL> select * from v$recover_file;
no rows selected
Elapsed: 00:00:00.00

模拟数据文件损坏

SQL> !rm -f /u01/app/oracle/oradata/orcl/users01.dbf

###### alter system flush buffer_cache;这里不要执行
## startup force

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 4041949184 bytes
Fixed Size            2259520 bytes
Variable Size          889193920 bytes
Database Buffers     3137339392 bytes
Redo Buffers           13156352 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: ‘/u01/app/oracle/oradata/orcl/users01.dbf‘

select * from v$recover_file;

SQL> select * from v$recover_file;
     FILE# ONLINE  ONLINE_ ERROR
---------- ------- ------- -----------------------------------------------------------------
   CHANGE# TIME
---------- ---------
     4 ONLINE  ONLINE  FILE NOT FOUND
     0
Elapsed: 00:00:00.01

备注:这里4号文件找不到

还原:使用备份的文件代替丢失的文件

cp /home/oracle/hotbk/users01.dbf /u01/app/oracle/oradata/orcl/users01.dbf

再查看一下情况:
SQL> select * from v$recover_file;

FILE# ONLINE  ONLINE_ ERROR
---------- ------- ------- -----------------------------------------------------------------
   CHANGE# TIME
---------- ---------
     4 ONLINE  ONLINE
   1028454 27-SEP-16
报ERROR错误

恢复:使用备份之后的日志对数据文件进行前滚(把数据修改重现)

recover datafile 4;

SQL> recover datafile 4;
Media recovery complete.
SQL> select * from v$recover_file;

no rows selected

Elapsed: 00:00:00.00

SQL> alter database open;

Database altered.

Elapsed: 00:00:01.43
SQL> select count(*) from scott.ob2;

COUNT(*)
----------
     86344

Elapsed: 00:00:00.02

到这里已经搞定了!!!!

写得不好,如果有什么错误请指出,谢谢!!!!

时间: 2024-10-13 02:04:42

浅一下oracle热备份users表空间的相关文章

Oracle数据库创建表空间

--Oracle数据库创建表空间 create tablespace new_taspace --表空间名 DATAFILE 'D:\NEWTABLESPACE.DBF'   --表空间关联的数据文件和位置 size 200M --文件初始大小 autoextend on next 20MB MAXSIZE 400MB; --文件大小可自动扩展,每次扩展20MB,最大400MB --创建表空间 create tablespace new_taspace1 --表空间关联的数据文件和位置 DATA

记一次ORACLE的UNDO表空间爆满分析过程

这篇文章是记录一次ORACLE数据库UNDO表空间爆满的分析过程,主要整理.梳理了同事分析的思路.具体过程如下所示: 早上收到一数据库服务器的UNDO表空间的告警邮件,最早一封是7:55发出的(监控作业是15分钟一次),从告警邮件分析,好像是UNDO表空间突然一下子被耗尽了. DB Tablespace Allocated Free Used % Free % Used 192.168.xxx.xxx:1521 UNDOTBS1 16384 190.25 16193.75 1.16 99 使用一

Oracle 10g创建表空间的完整步骤详解

本文我们主要介绍了Oracle 10g创建表空间的完整步骤,包括表空间的创建与删除.为应用创建用户以及权限的授予等操作,希望能够对您有所帮助. AD:WOT2014:用户标签系统与用户数据化运营培训专场 Oracle 10g数据库中,当在数据库中创建用户时,基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间. 那么创建表空间的步骤是怎样实现的呢?本文我们主要就介绍了这一部分内容,接下来就让我们一起来了解一下这部分内容吧. 1.创建表空间 不论是Lnux环境,还是Wndows环境,都要

oracle用户与表空间操作

oracle系统用户sys,system , sysman, scott 使用system用户登录[username/password][@server][as sysdba|sysoper]eg: system/123456 @orcl as sysdba 查看当前登录用户:show user 查看数据字典中的用户select username from dba_users; 启用禁用scott账户:alter user scott account unlock;alter user scot

Oracle数据创建表空间

一.直接在服务器端通过sqlplus命令行创建: 如果您用的是Linux系统,那么Oracle用户名为oracle.同时,您是在oracle服务器上操作. 如果是在Windows系统下, 请先点击"开始",然后点"运行",输入cmd并点击"确定",打开命令行窗口 如果是在Linux的图形窗口,请右键点击桌面并点击"打开终端",然后输入    su  -   oracl 做好上述准备工作以后,输入以下命令: sqlplus  

Oracle 10g bigfile表空间简介

Oracle 10g bigfile表空间简介 01. A Bigfile 表空间包含一个非常大的数据文件 02. SMALLFILE表空间和BIGFILE表空间可以在同一个数据库共存 1.创建一个bigfile表空间 SQL> CREATE BIGFILE TABLESPACE  big01 datafile '/oracle/oradata/orcl/big01.dbf' size 50M; Tablespace created. 1.2 查看数据库所有表空间bigfile属性,BIG01为

oracle 语句创建表空间、用户、授权

/*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace yuhang_temp tempfile 'D:\oracledata\yuhang_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间 */ create tablespace yuhang_data logging datafile 'D:\or

Oracle 10g bigfile表空间、smallfile 表空间

Oracle 10g bigfile表空间简介   01. A Bigfile 表空间包含一个非常大的数据文件 02. SMALLFILE表空间和BIGFILE表空间可以在同一个数据库共存 1.创建一个bigfile表空间     SQL> CREATE BIGFILE TABLESPACE  big01            datafile '/oracle/oradata/orcl/big01.dbf' size 50M; Tablespace created. 1.2 查看数据库所有表空

[转]Oracle DB 执行表空间时间点恢复

• 列出在执行表空间时间点恢复(TSPITR) 时会发生的操作 • 阐释TSPITR 使用的术语的定义 • 确定适合将TSPITR 用作解决方案的情况 • 确定时间点恢复的正确目标时间 • 确定不能使用TSPITR 的情况以及解决方法 • 执行自动TSPITR 表空间时间点恢复(TSPITR):概念 • 通过执行TSPITR 可将一个或多个表空间快速恢复到以前的某个时间. • 执行TSPITR 不会影响数据库中其它表空间或对象的状态. 使用RMAN 自动表空间时间点恢复(TSPITR) 可将Or