4. Oracle数据库用户管理备份与恢复
一. Oracle用户管理备份介绍
Oracle物理备份核心就是将物理文件拷贝一份副本;存放在磁盘上。物理文件指的是:数据文件,控制文件,日志文件,参数文件等等。
- 根据数据库状态而分:备份可分为热备份和冷备份。区别是Oracle数据库是否启动。
- 根据备份的状态而分:备份可分为一致性备份和不一致性备份。区别是数据文件和控制文件SCN是否一致。
二. Oracle用户管理恢复介绍
Oracle物理恢复就是在Oracle服务器由不定的因素造成崩溃;这时需要根据备份文件进行Oracle恢复。根据恢复状态而分:恢复可分为完全恢复和不完全恢复。区别在于是否恢复到最新的时间点。
三. Oracle冷备份
数据库在关闭状态下完成所有物理系统文件拷贝的过程,也称脱机备份。场景适合于非归档模式下,数据库处于一致性状态。
3.1 备份操作原理
- 在运行的库中得到数据库运行的所有的物理文件位置
- 关闭数据库(shutdown)
- 拷贝物理文件到备份路径或备份设备
- 启动数据库(open)
3.2 冷备份脚本
来源于Oracle 冷备份
set feedback off
set heading off
set verify off
set trimspool off
set pagesize
set linesize
define dir = '/home/oracle/cool'
define script = '/home/oracle/cool/sql/coolbak.sql'
spool &script
select 'ho cp ' || name || ' &dir' from v$controlfile
union all
select 'ho cp ' || name || ' &dir' from v$datafile
union all
select 'ho cp ' || member || ' &dir' from v$logfile
union all
select 'ho cp ' || name || ' &dir' from v$tempfile
/
create pfile = '&dir/initorcl.ora' from spfile;
ho cp /u01/app/oracle/dbs/orapwora235 &dir
spool off
shutdown immediate
start &script
ho rm &script
startup
四. Oracle热备份
Oracle 热备份是指数据库处于open状态下,对数据库的数据文件、控制文件、参数文件、密码文件等进行一系列备份操作;设置归档模式
archive log list
alter system set log_archive_dest_1 = 'LOCATION=/data/arch' scope = spfile;
shutdown immediate;
startup mount
alter database archivelog;
alter database open;
4.1 备份原理
参考于Oracle 热备份
- 热备的过程
- 冻结块头-->控制SCN在备份时不发生变化
- 进行物理拷贝
- 解冻块头-->让SCN可以变化(当对SCN解冻后,系统会自动更新SCN至最新的状态)
- 基于数据库的热备
- alter database begin backup;
- 拷贝所有的datafile到备份目录
- alter database end backup;
- 基于表空间的热备
- alter tablespace tablespace_name begin backup;
- 拷贝tablespace_name表空间的数据文件到备份目录
- alter tablespace tablespace_name end backup;
4.2 热备份脚本
set feedback off
set heading off
set verify off
set trimspool off
set pagesize
set linesize
define dir = '/home/oracle/hotbak'
define script = '/tmp/hotbak.sql'
spool &script
select 'ho cp ' ||name|| ' &dir' from v$datafile;
spool off
alter database begin backup;
start &script
alter database end backup;
alter database backup controlfile to '&dir/controlbak.ctl';
create pfile = '&dir/initorcl.ora' from spfile;
五.Oracle用户管理恢复
Oracle数据库恢复;分为 数据还原 和 数据恢复 两步。
首先使用备份还原数据,然后再应用归档日志、重做日志的恢复方式称为介质恢复。介质恢复能将一个经过还原的数据更新到当前的时间点或之前的某个时间点。通常介质恢复这个术语专指对数据文件进行恢复的过程。数据块的介质恢复指数据文件中的个别数据块出现错误时进行的特殊恢复操作。
介质恢复通常又可以分为 完全恢复 和 不完全恢复
- 完全恢复
使用数据库,表空间或数据文件的备份进行还原,再使用归档,重做日志或增量备份将数据更新到当前时间点;用户可以实现基于对数据库、表空间、数据文件执行完全恢复;
对整个数据库实现完全恢复的步骤
- 启动数据库到mount 状态
- 确保所有需要被恢复的数据文件处于联机(online)状态
- 还原数据库或需要恢复的数据文件
- 应用联机重做日志或/与归档重做日志
对表空间及数据文件实现完全恢复的步骤
- 如果数据库处于打开状态,应将需要恢复的表空间或数据文件置为脱机(offline)状态
- 还原需要恢复的数据文件
- 应用联机重做日志或/与归档重做日志
- 使表空间或数据文件联机
- 不完全恢复
与完全恢复是同样的步骤,只不过不完全恢复仅仅是将数据恢复到某一个特定的时间点或特定的SCN,而不是当前时间点。下列情况通常需要进行不完全恢复:
- 不完全恢复的步骤
介质故障(media failure)导致部分或全部联机重做日志(online redo log)损坏,用户操作失误(user error)导致数据丢失,例如,用户由于疏忽而移除了表,提交了无效的数据到表,由于归档重做日志(archived redo log)丢失而无法进行完全恢复(complete recovery),当前控制文件(control file)丢失,必须使用备份的控制文件打开(open)数据库
- 关闭数据库并备份数据库(以防止恢复失败)
- 启动数据库到mount 状态
- 还原所有受损的数据文件,同时可以选择还原控制文件
- 将数据库恢复至某个时间点、序列、或系统改变号
- 使用RESETLOGS关键字打开数据库
5.1 模拟完全恢复
完全恢复必要条件是:有完整的备份和完整的日志。
场景:某个数据文件所在的磁盘被清理或者挂掉了。但是联机重做日志和归档日志是完整。这是需要根据备份恢复到最新的时间点。
- 先创建表t_lottu;并插入5条记录
SQL> create table t_lottu as select level as id from dual connect by level <= 5;
Table created.
- 模拟故障;删除数据文件lottu01.dbf,system01.dbf。
[oracle@oracle235 ~]$ rm /u01/app/oradata/ora235/system01.dbf
[oracle@oracle235 ~]$ rm /data/oracle/data/lottu01.dbf
- 这时数据库虽然可以连;但是执行命令会报某个数据文件不存在。
SQL> conn lottu/li0924
Connected.
SQL> insert into t_lottu values (6);
insert into t_lottu values (6)
*
ERROR at line 1:
ORA-01116: error in opening database file 5
ORA-01110: data file 5: '/data/oracle/data/lottu01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
- 重启数据库;会报1号数据文件不存在?因为我们前面删除了system01.dbf
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup
ORACLE instance started. Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
Database mounted.
ORA-: cannot identify/lock data file - see DBWR trace file
ORA-: data file : '/u01/app/oradata/ora235/system01.dbf'
- 查看哪些数据文件需要恢复?
SQL> select FILE#,ONLINE_STATUS from v$recover_file; FILE# ONLINE_
---------- -------
1 ONLINE
5 ONLINE
- 数据还原;将备份好的文件拷贝到对应的目录
[oracle@oracle235 hotbak]$ cp system01.dbf /u01/app/oradata/ora235
[oracle@oracle235 hotbak]$ cp lottu01.dbf /data/oracle/data
- 数据恢复;并打开数据库。验证数据恢复情况。
SQL> recover datafile 1,5;
Media recovery complete.
SQL> alter database open; Database altered. SQL> conn lottu/li0924
Connected.
SQL> select * from t_lottu; ID
----------
1
2
3
4
5
5.2 模拟不完全恢复-PITR
是将数据恢复到某一个特定的时间点或特定的SCN,而不是当前时间点。
场景:模拟用户误操作删除某个表;恢复到表删除之前。这场景用Oracle闪回技术很好实现。
- 误删表t_lottu
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'YY
-------------------
2018-08-08 00:11:46 SQL> drop table t_lottu; Table dropped.
- 关闭数据库
SQL> shutdown abort;
ORACLE instance shut down.
- 用备份中的数据文件替换数据库中数据文件
[oracle@oracle235 ora235]$ rm *.dbf
[oracle@oracle235 ora235]$ rm /data/oracle/data/lottu01.dbf
[oracle@oracle235 ora235]$ cd /home/oracle/hotbak/
[oracle@oracle235 hotbak]$ cp *.dbf /u01/app/oradata/ora235
[oracle@oracle235 hotbak]$ mv /u01/app/oradata/ora235/lottu01.dbf /data/oracle/data/lottu01.dbf
- 数据恢复
SQL> startup mount
ORACLE instance started. Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
Database mounted.
SQL> recover database until time '2018-08-08 00:11:46';
Media recovery complete.
SQL> alter database open;
alter database open
*
ERROR at line :
ORA-: must use RESETLOGS or NORESETLOGS option for database open SQL> alter database open resetlogs; Database altered. SQL> conn lottu/li0924
Connected.
SQL> select * from t_lottu; ID
----------
若是模拟的场景;还可以采用TSPITR恢复也可以;但需要涉及rman。
六. 总结
用户管理的备份方式是使用操作系统复制相关文件。
- 备份效率不高。特别是拥有大量的数据的数据库。
- 备份和恢复比较繁琐。由于相关文件存在不同的系统路径。还需要通过数据字典找到对应的路径。
参考文献
4. Oracle数据库用户管理备份与恢复的更多相关文章
- Oracle 数据库用户管理
Oracle 数据库用户管理 Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限 ...
- oracle数据库管理--用户管理
一.oracle数据库用户管理 1.sys和system用户区别 (1)存储的数据的重要性不同: sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于or ...
- Oracle数据库用户数据完整备份与恢复
使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1 PL/SQL->工具->导 ...
- Oracle 基于用户管理恢复的处理
================================ -- Oracle 基于用户管理恢复的处理 --================================ Oracle支持多种 ...
- Oracle数据库---用户与角色
Oracle数据库---用户与角色 2019年02月26日 10:56:10 俊杰梓 阅读数:21 标签: 数据库 更多 个人分类: 数据库 版权声明:版权所有,转载请注明出处.谢谢 https: ...
- Oracle数据库用户的密码过期问题处理
SQL> select username, user_id, account_status,expiry_date, profile from dba_users where username ...
- 简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS
简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS:1.Toad工具用oracle最大权限用户登录system2.查看正在使用UPAY3LINGXI_YS的进程select * fr ...
- 删除oracle数据库用户
手工删除ORACLE数据库用户时常会出现会话进程仍在使用导致删除失败的情况.需要查询会话并将会话删除才能成功将数据库用户删除,比较不方便. 适用场景 自动删除oracle数据库用户 基本知识 orac ...
- Linux删除ORACLE数据库用户失败提示ORA-01940解决方法
操作环境 SuSE11+Oracle11gR2 问题现象 删除ORACLE数据库用户失败,提示ORA-01940: cannot drop a user that is currently conne ...
随机推荐
- What’s Brewing for .NET Developers
Microsoft hosted its premier fall developer event – Connect(); // 2016 in New York on November 16-17 ...
- python 路径和文件的遍历
python发现文件夹下所有的jpg文件,并且安装文件排放的顺序输出 glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.查找文件 ...
- 奇怪吸引子---RayleighBenard
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- CentOS7 下 keepalived 的安装和配置
安装前准备:yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl opens ...
- [Canvas]双方战机展示
源码点此下载,用chrome浏览器打开index.html观看. 图例: 代码: <!DOCTYPE html> <html lang="utf-8"> & ...
- Android性能优化-App启动优化
原文地址:https://developer.android.com/topic/performance/launch-time.html#common 通常用户期望app响应和加载速度越快越好.一个 ...
- Android中使用adb访问SQLite的方法
(1)打开命令提示符,输入:adb,按回车,如果得到下面一大堆命令说明(如图 1),表示adb的配置是成功的,如果提示"不是内部或外部命令,也不是可运行的程序或批处理文件",那么需 ...
- 最简单的社交分享代码,无需注册OpenID
包含新浪微博.QQ空间.人人网一键分享,无需注册各个开放平台的OpenID,简单易用. //分享 function share() { var shareLink = location.href; v ...
- Linux-文件描述符的本质及与文件指针的区别
文章参考:文件描述符的本质.文件描述符和文件指针的区别.文件描述符fd和文件指针flip的理解 推荐:task_struct 和文件系统的关系 系统中文件相关表 右侧的表称为i节点表,在整个系统中只有 ...
- MVC项目实践,在三层架构下实现SportsStore-11,使用Knockout实现增删改查
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...