首先要明确的是,oracle数据库的备份可以分为逻辑备份和物理备份。
逻辑备份的是通过数据导出对数据进行备份,主要方式有老式的IMP/EXP和数据泵灯方式。适合变化较少的数据库,而对于高可用性数据库,由于这种方式备份的数据只能恢复到备份的时间点,所以并不适用。但由于逻辑备份具有平台无关性,所以更常见的是用来数据迁移及数据移动;
物理备份是通过复制数据文件、参数文件等数据库的物理文件来进行备份。物理备份可以分为冷备份和热备份。冷备份需要在关闭数据库后进行备份,目前在高可用的生产环境中,这种方式使用较少。而热备份可以在系统运行的情况下通过备份数据文件及归档日志就可以恢复,因此使用的范围更广泛。
热备份可以分为用户管理方式下的热备份(user-managed backup and recovery)和oracle管理(RMAN)的热备份(Recovery MANager-RMAN),要注意的是,数据库要进行热备份必须运行在归档模式下。
一、用户管理方式下的备份:
首先,备份数据文件:
1)查询数据文件有哪些:
SQL> select name from v$datafile;
2)将数据库置于备份模式下:
SQL> alter database begin backup;
3)备份数据文件:
SQL> host copy D:\ORACLE\ORCDATA\TIOD\SYSTEM01.DBF C:\oracle\backup;
SQL> host copy D:\ORACLE\ORCDATA\TIOD\SYSAUX01.DBF C:\oracle\backup;
SQL> host copy D:\ORACLE\ORCDATA\TIOD\UNDOTBS01.DBF C:\oracle\backup;
SQL> host copy D:\ORACLE\ORCDATA\TIOD\USERS01.DBF C:\oracle\backup;
SQL> host copy E:\ORACLE\ORCL\ODS\HH_TBS.DBF C:\oracle\backup;
4)结束数据文件备份并归档日志:
SQL> alter database end backup;
SQL> alter system archive log current;
第二,备份控制文件,此处使用备份到跟踪文件的方式:
1)将建立控制文件的命令信息记录到trace文件中:
SQL> alter database backup controlfile to trace;
2)确定跟踪文件位置和名称:
SQL> select a.spid from v$process a,v$session b where a.addr=b.PADDR and b.USERNAME='SYS'
SQL> show parameter user_dump_dest;
跟踪文件命名为<SID>_ora_<SPID>.trc。
3)打开vidi_ora_1260.trc,确定建立控制文件内容;
CREATE CONTROLFILE REUSE DATABASE "TIOD" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'D:\ORACLE\ORCDATA\TIOD\REDO01.LOG' SIZE 50M BLOCKSIZE 512,
GROUP 2 'D:\ORACLE\ORCDATA\TIOD\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
GROUP 3 'D:\ORACLE\ORCDATA\TIOD\REDO03.LOG' SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'D:\ORACLE\ORCDATA\TIOD\SYSTEM01.DBF',
'D:\ORACLE\ORCDATA\TIOD\SYSAUX01.DBF',
'D:\ORACLE\ORCDATA\TIOD\UNDOTBS01.DBF',
'D:\ORACLE\ORCDATA\TIOD\USERS01.DBF',
'E:\ORACLE\ORCL\ODS\HH_TBS.DBF'
CHARACTER SET ZHS16GBK
;
第三、备份归档日志:
确定需要备份的归档日志:
SQL> select name from v$archived_log where dest_id=1 and first_time>=sysdate-1;
使用copy命令备份到备份文件夹即可。
第四、备份参数文件:
SQL> CREATE PFILE='C:\oracle\backup\initelse.ora' from spfile;
二、使用备份文件复制数据库到另外一台机器:
当需要在另外一台机器克隆一套与生产环境同样的数据进行测试、学习时,我们可以使用上面备份的文件复制数据库。需要注意两点:
1)源机器和目标机器应为相同的操作系统平台;
2)复制数据库可以包含所有的数据文件也可以仅仅复制部分数据文件,但system表空间和undo表空间的数据文件必须有。
一)建立存放目标库的相关文件目录。比如tiod数据库建立D:\oracle\orcdata\tiod目录,及目录下BDUMP、UDUMP、ARCHIVE等目录。
二)建立实例服务:
C:\Users\Administrator>oradim -new -sid tiod -intpwd oracle;
三)建立参数文件:
1)编辑initelse.ora,修改以下参数:
*.db_name='tiod'
*.log_archive_dest_1='location=D:\oracle\orcdata\tiod\ARCHIVE'
*.user_dump_dest='D:\oracle\orcdata\tiod\udump'
*.background_dump_dest='D:\oracle\orcdata\tiod\bdump'
此处对应我们第一步建立起的相关文件目录
2)建立目标库参数文件:
SQL> create spfile='C:\oracle\product\11.2.0\dbhome_1\database\spfiletiod.ora' from pfile='C:\oracle\backup\initelse.ora';
四)将原库备份好的数据文件和归档文件复制到目标库的相应文件目录。
五)启动实例,修改并建立控制文件,控制文件可根据我们上述备份中的方法获得,并修改后执行即可。
C:\Users\Administrator>set oracle_sid=tiod
C:\Users\Administrator>sqlplus sys/oracle as sysdba
SQL> startup nomount spfile='C:\oracle\product\11.2.0\dbhome_1\database\spfiletiod.ora';
SQL>CREATE CONTROLFILE REUSE DATABASE "TIOD" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'D:\ORACLE\ORCDATA\TIOD\REDO01.LOG' SIZE 50M BLOCKSIZE 512,
GROUP 2 'D:\ORACLE\ORCDATA\TIOD\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
GROUP 3 'D:\ORACLE\ORCDATA\TIOD\REDO03.LOG' SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'D:\ORACLE\ORCDATA\TIOD\SYSTEM01.DBF',
'D:\ORACLE\ORCDATA\TIOD\SYSAUX01.DBF',
'D:\ORACLE\ORCDATA\TIOD\UNDOTBS01.DBF',
'D:\ORACLE\ORCDATA\TIOD\USERS01.DBF',
'E:\ORACLE\ORCL\ODS\HH_TBS.DBF'
CHARACTER SET ZHS16GBK
;
六)恢复目标库
1)指定要使用的归档目录(第一步所建ARCHIVE目录)并执行恢复操作:
SQL> set logsource 'D:\oracle\orcdata\tiod\ARCHIVE';
SQL> recover database using backup controlfile until cancel;
2)使用RESETLOGS选项打开数据库,并建立起目标库的所有重做日志
SQL> alter database open resetlogs;
这样就完成了对一个数据库的备份以及使用其备份复制数据库到另外一个机器上的过程,这个过程是用户管理方式下的备份和复制数据库,此外我们可以使用RMAN方式达到同样的目的。这个备份和恢复适用于在open状态下的归档模式数据库。
- Oracle—用户管理的备份(一)
用户管理的备份(一) 一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,d ...
- Oracle—用户管理的备份(二)
在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明:接下来说明几种特别情况和DBverify的使用. 一.如果在表空间在备份模式下,主机发生了异常关闭,会出 ...
- Oracle 用户管理权限
Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_AT ...
- Oracle—用户管理的完全恢复(四)
在用户管理的备份(三)中,最后打开数据库时,用了alter database open resetlogs;的命令,这里为什么用resetlogs命令? 一.resetlogs的作用 1.将当前的日志 ...
- Oracle—用户管理的完全恢复(一)
一.分类 可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写. 二.非归档的有关性质 1.在非归档 ...
- Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理
1.为什么学习oracle? 性能优越: 小型数据库 中型数据库 大型数据库 acess.foxbase mysql.sql server.informix sybase.oracle.db2 复杂量 ...
- 四、oracle 用户管理(Profile)
oracle 用户管理 :profile + tablespace + role + user 一.使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库时, ...
- 三、oracle 用户管理一
三.oracle 用户管理一 一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 ide ...
- Oracle 用户管理与权限控制
Oracle 用户管理与权限控制 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create ...
随机推荐
- Xstream之常用方式与常用注解
示例代码 Blog teamBlog = new Blog(new Author("Guilherme Silveira")); teamBlog.add(new Entry(&q ...
- Solr -- Solr Facet 1
一.Facet介绍 solr facet 是solr搜索的一大特色,facet不好翻译,有说是垂直搜索,有说是分片搜索,但都不是很好,还是懒得翻译了,就叫facet ,具体功能看下面的例子意会吧. 比 ...
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 警告: [SetPro ...
- C#中的四舍五入算法
最近在产品开发过程中遇到一个问题,就是在对数值进行截取,例如说保留两位小数时,最终得到的结果跟预期的在某些情况下会产生差异,这个差异的表现就是最后一位与预期的不一致,也就是说在"四舍五入&q ...
- 游戏开发Camera之Cinematic Camera-深度
人的视觉系统是二维的,它通过生理和心理的暗示来感知图像的深度,在现实世界中视觉系统会自动用深度线索depth cue来确定对象之间的距离游戏画面也是二维的,用x,y轴来定义,画面深度用z轴来定义,可以 ...
- [Linux&Vim]基础01
学习和使用Linux有一段时间了,作为这么长时间的学习应该是有一定收获的,可惜的是没有一股专研精神,只停留在皮毛. 阅读过一些大牛们学习Linux和Vim的过程,从命令.环境配置.使用个性化设置.编程 ...
- C_FORCE_ROOT linux环境变量设置
nano /etc/profile gedit 也可以 结尾追加 export C_FORCE_ROOT="true"
- margin设置为负数
1.为负margin“平反” 我们在CSS中都会使用margin,但将margin设置成负数,那可能就不大好处理了.在网页设计中,人们对负margin用法的态度大相径庭,有的人非常喜欢,而有的人则认为 ...
- ural 1333 化平面为点计算覆盖率
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1333 #include<cstdio> #include<cstrin ...
- Erasing Edges - SGU 136(构造多边形)
题目大意:已知一个多边形上的每条边的中点,还原出来一个多边形. 分析:因为偶数是不固定的,所以可以为任意起点,奇数只有一个,可以所有中点加减算出来第一个点,然后就是简单的向量计算点的位置了...... ...