热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle—用户管理的备份

首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,dba

首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,dba

Oracle—用户管理的备份(一)

一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,dba_tablespaces,dba_data_files可以用它们来查看表空间或者文件的位置和名字,其中dba_data_files可以查看到每个数据文件属于哪个表空间。

参考阅读:

Oracle教程:用户管理的备份

推荐阅读:

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

对于查看每个数据文件属于哪个表空间也可以用$datafile,v$tablespace来join一下。

例如:

SQL> select t.name tablespace,d.name datafile from v$tablespace t join v$datafile d on t.ts#=d.ts#;

TABLESPACE DATAFILE

------------------------------ -----------------------------------

SYSTEM /u01/oradata/wilson/system01.dbf

SYSAUX /u01/oradata/wilson/sysaux01.dbf

UNDOTBS1 /u01/oradata/wilson/undotbs01.dbf

USERS /u01/oradata/wilson/users01.dbf

EXAMPLE /u01/oradata/wilson/example01.dbf

PAUL /u01/oradata/wilson/paul01.dbf

SUN /u01/oradata/wilson/sun01.dbf

SMALLUNDO /u01/oradata/wilson/smallundo1.dbf

ASSM /u01/oradata/wilson/assm_1.dbf

MSSM /u01/oradata/wilson/mssm_1dbf

PAUL /u01/oradata/wilson/paul02.dbf

二.备份的方式

1.处于非归档模式

在非归档模式下,关闭数据库执行完整的备份是唯一的选择。

在上面给出的视图中找到每个文件的位置,要备份的有控制文件和整个数据文件集,最好把临时文件和spfile,password文件(它们在/u01/oracle/dbs中)一起也备份了。

在备份之前必须干净的关闭数据库,那么对于联机重做日志没有必要备份。但是如果是出现不干净的关闭数据库,那么必须备份联机重做日志,不然还原后无法打开数据库。(其实无论在什么情况下,最好都备份)

2.处于归档模式

在归档模式下,既可以在关闭数据库时备份也可以在打开数据库时备份;

(一)在关闭数据库时备份和非归档模式备份是一样,有一个差别就是不备份联机重做日志了,改为备份归档日志。

(二)在打开数据库时备份,备份是非一致性的,所以必须备份归档日志文件。

有下面三个步骤:

(1)备份控制文件

备份控制文件有两种方式,

alter database backup confile to ;

alter database backup confile to trace as ;

第一种形式生成一个二进制备份,输出文件将是当前控制文件的严格的读一致性副本;

第二种形式生成一个逻辑备份,在指定文件中使用一组SQL命令来创建一个新的控制文件,并且包含与当前的控制文件相同的数据库物理结构信息。

这里说明一下create controlfile命令,它必须在非加载模式下执行,,并且在control_files参数指定的位置生成一个新的控制文件;这个命令生成的新控制文件只包含与物理结构有关的数据;例如RMAN备份将会丢失。

在操作系统下建立个目录/tmp/con,用第一种形式备份控制文件;

SQL> alter database backup controlfile to '/tmp/con/c1.ctl';

Database altered.

SQL> !ls -l /tmp/con

total 9636

-rw-r----- 1 oracle oinstall 9846784 Aug 23 10:07 c1.ctl

用第二种形式备份控制文件;

SQL> alter database backup controlfile to trace as '/tmp/con/c2.ctl';

Database altered.

SQL> !ls -l /tmp/con

total 9648

-rw-r----- 1 oracle oinstall 9846784 Aug 23 10:07 c1.ctl

-rw-r--r-- 1 oracle oinstall 7107 Aug 23 10:11 c2.ctl

只要控制文件发生变化就要备份它,建议每次备份时都备份一下控制文件。

(2)关于归档日志文件备份

先执行alter system archive log current,再找到归档日志位置,复制到别的地方即可。

有关归档日志的设置请参照:归档模式

(3)当他们的表空间置于备份模式时复制数据文件;

有关备份模式请参照:oracle中backup模式

查看有哪些表空间;

SQL> select tablespace_name,contents from dba_tablespaces;

TABLESPACE_NAME CONTENTS

------------------------------ ---------

SYSTEM PERMANENT

SYSAUX PERMANENT

UNDOTBS1 UNDO

TEMP TEMPORARY

USERS PERMANENT

EXAMPLE PERMANENT

PAUL PERMANENT

MYTEMP TEMPORARY

SUN PERMANENT

SMALLUNDO UNDO

ASSM PERMANENT

TABLESPACE_NAME CONTENTS

------------------------------ ---------

MSSM PERMANENT

12 rows selected.

查看一下表空间中有哪些数据文件;

SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE_NAME FILE_NAME

------------------------------ -----------------------------------

PAUL /u01/oradata/wilson/paul01.dbf

USERS /u01/oradata/wilson/users01.dbf

UNDOTBS1 /u01/oradata/wilson/undotbs01.dbf

SYSAUX /u01/oradata/wilson/sysaux01.dbf

SYSTEM /u01/oradata/wilson/system01.dbf

EXAMPLE /u01/oradata/wilson/example01.dbf

SUN /u01/oradata/wilson/sun01.dbf

SMALLUNDO /u01/oradata/wilson/smallundo1.dbf

ASSM /u01/oradata/wilson/assm_1.dbf

MSSM /u01/oradata/wilson/mssm_1dbf

PAUL /u01/oradata/wilson/paul02.dbf

11 rows selected.

在备份前,先创建个目录/tmp/hb

把sun表空间改为backup模式下,

SQL> alter tablespace sun begin backup;

Tablespace altered.

备份表空间下的数据文件,

SQL> !cp /u01/oradata/wilson/sun01.dbf /tmp/hb

查看一下结果,

SQL> !ls -l /tmp/hb

total 20516

-rw-r----- 1 oracle oinstall 20979712 Aug 22 23:01 sun01.dbf

结束备份,

SQL> alter tablespace sun end backup;

Tablespace altered.

在数据库打开的情况下手动备份(在归档模式下),必须执行begin backup,虽然可以在操作系统层面上备份,但是其备份的将不能使用。

也可以使用SQL> alter database begin backup;

Database altered.

把所有的表空间一次性的全部处于backup模式。

还有一点就是不能备份临时表空间,甚至不能将他们置于备份模式。

SQL> alter tablespace temp begin backup;

alter tablespace temp begin backup

*

ERROR at line 1:

ORA-03217: invalid option for alter of TEMPORARY TABLESPACE

(4)备份参数文件和口令文件

对它们的备份不是必须的,但是为了方便的还原它们,最好还是备份了;

参数文件,为了备份spfile,使用下面的命令生成个文本文件。

SQL> create pfile='initwilson.ora' from spfile;

如果动态参数文件在某个时候受损,那么在非加载模式下使用该命令重新创建它或者在关闭实例时也可以执行,、

Create spfile from pfile=’initwilson.ora’;

口令文件,为了备份口令文件,保存用来创建它的命令的一个副本。如:

orapwd file=$ORACLE_HOME/dbs/orapwd password=oracle entries=5;

其中是实例名称。如果口令文件某个时刻被损坏,那么简单运行该脚本来重新创建它。

续:Oracle—用户管理的备份(二)


推荐阅读
  • 本文介绍 DB2 中的基本概念,重点解释事务单元(UOW)和事务的概念。事务单元是指作为单个原子操作执行的一个或多个 SQL 查询。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 如何将两个具有相同主键的Excel表格合并
    本文介绍如何将两个具有相同主键的Excel表格进行合并,通过左连接的方式将表2的数据插入到表1中。具体步骤包括在表1中添加新的列、使用VLOOKUP函数进行数据匹配,以及通过SQL语句实现数据库中的表连接。 ... [详细]
  • Spring 切面配置中的切点表达式详解
    本文介绍了如何在Spring框架中使用AspectJ风格的切面配置,详细解释了切点表达式的语法和常见示例,帮助开发者更好地理解和应用Spring AOP。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 结城浩(1963年7月出生),日本资深程序员和技术作家,居住在东京武藏野市。他开发了著名的YukiWiki软件,并在杂志上发表了大量程序入门文章和技术翻译作品。结城浩著有30多本关于编程和数学的书籍,其中许多被翻译成英文和韩文。 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 探索Web 2.0新概念:Widget
    尽管你可能尚未注意到Widget,但正如几年前对RSS的陌生一样,这一概念正逐渐走入大众视野。据美国某权威杂志预测,2007年将是Widget年。本文将详细介绍Widget的定义、功能及其未来发展趋势。 ... [详细]
  • 自Emacs 24.1版本起,Emacs引入了ELPA(Emacs Lisp Package Archive)作为其内置的包管理系统,用于管理和安装来自互联网的扩展插件。本文将指导您如何配置Emacs以使用MELPA这一知名且丰富的第三方插件源。 ... [详细]
  • 本文详细介绍了 ASP.NET 中用于文件上传的控件及其使用方法,包括常见的 FileUpload 控件和其他相关技术。 ... [详细]
  • 本文介绍如何使用命令行工具查看和解析 iOS 应用崩溃日志,包括 UUID 和错误代码位置的详细步骤。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文介绍了一种在ANSI C中动态分配二维数组的方法。通过创建指针数组并为每个指针分配连续空间,可以灵活地管理内存。文章还讨论了一些常见的错误和注意事项。 ... [详细]
  • `valueOf` 方法(即 `Object.valueOf`)用于返回指定对象的原始值。如果该对象没有对应的基元值,则直接返回对象本身。此方法在需要将对象转换为基本类型时非常有用,例如在数值运算或字符串拼接等场景中。通过深入了解 `valueOf` 的工作原理及其应用场景,开发者可以更好地处理数据类型转换问题,提高代码的健壮性和可读性。 ... [详细]
author-avatar
电筒_574
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有