Oracle备份和恢复
2024-08-29 22:12:43
--什么是脱机备份
脱机备份也叫冷备份,首先管理员使用 shutdown immediate 命令关闭数据库的服务。
之后复制需要的文件,包括数据文件和控制文件等相关内容复制到磁盘的其他位置。当
数据库出现问题时,就可以在将复制出来的文件在恢复到原来的位置。 数据文件和日志文件位置:..\app\Administrator\oradata
控制文件可以查看init.ora的配置信息:安装目录下admin\orcl\pfile
控制文件也可以查询表
select name as 控制文件位置,status as 控制文件状态 from v$controlfile; --什么是联机备份
联机备份也叫热备份,是在数据库的归档模式下进行备份。 --查询数据库日志的命令,使用sql plus工具查看,
--而且还必须使用sys用户,其他用户没有权限。
connect sys/密码@orcl as sysdba;
archive log list; --设置数据库日志模式为归档模式
alter system set log_archive_start=true scope=spfile;--设置系统日志方式为归档模式
shutdown immediate;--关闭数据库
startup mount;--启动mount实例,但不启动数据库。
alter database archivelog;--修改数据库为归档日志模式。 --把数据库设置成归档模式后,就可以进行数据库的备份与恢复操作了。
--备份表空间
1、打开数据库
alter database open;
2、开始备份表空间
alter tablespace space_name begin backup;
3、将数据库中安装目录下的oradata文件夹(数据库对象都放在这里),
把文件复制到其他地方。
4、结束表空间备份
alter tablespace space_name end backup; --恢复表空间中的数据
1、对当前日志进行归档。
alter system archive log current;
2、切换日志文件,有几个日志文件,就执行几次
alter system switch logfile;--logfile是日志文件的位置。
3、关闭数据库服务
shutdown immediate;
4、删除数据库文件并重新启动数据库
select * from v$datafile;--查看数据库数据文件的位置
select * from v$recover_file;--确认缺少的数据文件
startup;
5、将数据文件设置成脱机状态并删除
alter database datafile 10 offline drop;
6、把数据库的状态设置成open
alter database open;
7、恢复数据文件
recover datafile 10;
注意:恢复数据时数据文件编号要一致。
8、设置数据文件为联机状态
alter database datafile 10 online; 注意:在恢复数据库中的文件时,把数据库文件设置成脱机状态后,就需要把之前
备份好的数据文件复制到原来的数据文件存放的位置,否则就会出现错误。
错误信息:ora-00283:恢复会话因错误而取消
ora-01110:数据文件10;
ora-01152:无法标识/锁定数据文件10 请参阅DBWR跟踪文件。 --逻辑备份和恢复数据库
exp工具可以到处表、空间、方案、数据库4个数据库对象。
1、导出表
打开Doc命令工具执行下面命令:
exp username/pwd@orcl
根据提示的选项选择要导出的对象。
2、导出表空间语法
exp username/password@orcl file='filename.dmp' tablespace='space_name'; --使用expdp导出数据
expdp是Oracle10g开始引用的数据泵技术,使用expdp时首先创建目录
对象,通过这个对象就可以找到要备份数据的数据库服务器,并且使用expdp
工具备份出来的数据必须存放在目录对象对应的操作系统的目录中。
1、创建目录对象
create directory directory_name as 'file_name';
directory_name:目录名称。
file_name:存放数据的文件夹名。 2、给使用目录的用户赋权限
grant read,write on directory directory_name to user_name; 3、导出表,使用do工具。
expdp username/password@orcl directory=directory_name
dumpfile=file_name tables=table_name; directory_name:存放导出数据的目录名称。
file_name:导出数据存放文件名称。
table_name:准备导出的表名,多个表用逗号隔开。 --使用imp导入数据
imp username/password@orcl
根据提示的选项选择要导入的对象。 将文件中数据导入到表
imp username/password@orcl file=file.dmp tables=table_name; --使用impdp导入数据
impdp username/password@orcl directory=directory_name
dumpfile=file.dmp tables=table_name;
最新文章
- ubuntu10.04编译安装LAMP
- MyEclipse+Tomcat 启动时出现A configuration error occured during startup错误的解决方法
- SharePoint 更新文档库文档标题(Title)字段
- [LeetCode]题解(python):030-Substring with Concatenation of All Words
- saiku-添加数据源以及保证数据源的一致性
- 共享内存shared pool (6):追踪sql语句
- codeforces 425B Sereja and Table(状态压缩,也可以数组模拟)
- C# 调用Java Webservice 加入SoapHeader 验证信息
- linux free命令建检查内存状态
- python : 批量下载R语言库包
- LOV里的值直接引用系统里定义的值集的值,且具有值集的安全性控制
- sharedpreferences如何保存对象
- word20170103除了busy,忙的10种英语说法!
- vue_组件间通信:自定义事件、消息发布与订阅、槽
- SAP abap 语句、命令 语法查询备用
- elaticsear no [query] registered for [filtered] 错误
- Python Numpy shape 基础用法(转自他人的博客,如涉及到侵权,请联系我)
- python基础2之字符串、列表、字典、集合
- html5实现拖拽上传头像
- SpringMVC工作原理2(代码详解)