当前位置:  数据库>oracle

Oracle数据库的备份与恢复技术方案

    来源: 互联网  发布时间:2017-03-16

    本文导语: Oracle数据库的备份与恢复技术方案[Q]如何开启/关闭归档 [A]如果开启归档,请保证log_archive_start=true开启自动归档,否则只能手工归档,如果是关闭了归档,则设置该参数为false 注意:如果是OPS/RAC环境,需要先把parallel_server = true...

Oracle数据库的备份与恢复技术方案
[Q]如何开启/关闭归档
[A]如果开启归档,请保证log_archive_start=true开启自动归档,否则只能手工归档,如果是关闭了归档,则设置该参数为false
注意:如果是OPS/RAC环境,需要先把parallel_server = true注释掉,然后执行如下步骤,最后用这个参数重新启动
1、开启归档
a. 关闭数据库shutdown immediate
b. startup mount
c. alter database archivelog
d. alter database opne
2、禁止归档
a. 关闭数据库shutdown immediate
b. startup mount
c. alter database noarchivelog
d. alter database open
归档信息可以通过如下语句查看
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination E:oracleora92databasearchive
Oldest online log sequence 131
Next log sequence to archive 133
Current log sequence 133
[Q]怎样设置定时归档
[A]9i以上版本,保证归档的最小间隔不超过n秒
设置Archive_lag_target = n
单位:秒 范围:0~7200
[Q]不同版本怎么导出/导入
[A]导出用低版本,导入用当前版本
如果版本跨越太大,需要用到中间版本过渡
[Q]不同的字符集之前怎么导数据
[A]a.前条件是保证导出/导入符合其他字符集标准,如客户环境与数据库字符集一致。
b.修改dmp文件的2、3字节为目标数据库的字符集,注意要换成十六进制。
参考函数(以下函数中的ID是十进制的):
nls_charset_name 根据字符集ID获得字符集名称
nls_charset_id 根据字符集名称获得字符集ID
[Q]怎么样备份控制文件
[A]再线备份为一个二进制的文件
alter database backup controlfile to '$BACKUP_DEPT/controlfile.000' [reuse];
备份为文本文件方式
alter database backup controlfile to trace [resetlogs|noresetlogs];
[Q]控制文件损坏如何恢复
[A]1、如果是损坏单个控制文件
只需要关闭数据库,拷贝一个好的数据文件覆盖掉坏的数据文件即可
或者是修改init.ora文件的相关部分
2、如果是损失全部控制文件,则需要创建控制文件或从备份恢复
创建控制文件的脚本可以通过alter database backup controlfile to trace获取。
[Q]怎么样热备份一个表空间
[A]Alter tablespace 名称 begin backup;
host cp 这个表空间的数据文件 目的地;
Alter tablespace 名称 end backup;
如果是备份多个表空间或整个数据库,只需要一个一个表空间的操作下来就可以了。
[Q]怎么快速得到整个数据库的热备脚本
[A]可以写一段类似的脚本
SQL>set serveroutput on
begin
dbms_output.enable(10000);
for bk_ts in (select t.ts#,t.name from v$tablespace t,v$datafile d where t.ts#=d.ts#) loop
dbms_output.put_line('--'||bk_ts.name);
dbms_output.put_line('alter tablespace '||bk_ts.name||' begin backup;');
for bk_file in (select file#,name from v$datafile where ts#=bk_ts.ts#) loop
dbms_output.put_line('host cp '||bk_file.name||' $BACKUP_DEPT/');
end loop;
dbms_output.put_line('alter tablespace '||bk_ts.name||' end backup;');
end loop;
end;
/
[Q]丢失一个数据文件,但是没有备份,怎么样打开数据库
[A]如果没有备份只能是删除这个数据文件了,会导致相应的数据丢失。
SQL>startup mount
--ARCHIVELOG模式命令
SQL>Alter database datafile 'file name' offline;
--NOARCHIVELOG模式命令
SQL>Alter database datafile 'file name' offline drop;
SQLl>Alter database open;
注意:该数据文件不能是系统数据文件
[Q]丢失一个数据文件,没有备份但是有该数据文件创建以来的归档怎么恢复
[A]保证如下条件
a. 不能是系统数据文件
b. 不能丢失控制文件
如果满足以上条件,则
SQL>startup mount
SQL>Alter database create datafile 'file name' as 'file name' size ... reuse;
SQL>recover datafile n; -文件号
或者
SQL>recover datafile 'file name';
或者
SQL>recover database;
SQL>Alter database open;
[Q]联机日志损坏如何恢复
[A]1、如果是非当前日志而且归档,可以使用
Alter database clear logfile group n来创建一个新的日志文件
如果该日志还没有归档,则需要用
Alter database clear unarchived logfile group n
2、如果是当前日志损坏,一般不能clear,则可能意味着丢失数据
如果有备份,可以采用备份进行不完全恢复
如果没有备份,可能只能用_allow_resetlogs_corruption=true来进行强制恢复了,但是,这样的方法是不建议的,最好在有Oracle support的指导下进行。
[Q]怎么样在恢复的时候移动数据文件,恢复到别的地点
[A]给一个RMAN的例子
run {
set until time 'Jul 01 1999 00:05:00';
allocate channel d1 type disk;
set newname for datafile '/u04/oracle/prod/sys1prod.dbf'
to '/u02/oracle/prod/sys1prod.dbf';
set newname for datafile '/u04/oracle/prod/usr1prod.dbf'
to '/u02/oracle/prod/usr1prod.dbf';
set newname for datafile '/u04/oracle/prod/tmp1prod.dbf'
to '/u02/oracle/prod/tmp1prod.dbf';
restore controlfile to '/u02/oracle/prod/ctl1prod.ora';
replicate controlfile from '/u02/oracle/prod/ctl1prod.ora';
restore database;
sql "alter database mount";
switch datafile all;
recover database;
sql "alter database open resetlogs";
release channel d1;
}




















































































































    
 
 

您可能感兴趣的文章:

  • 如何将Aix上的oracle 物理备份 然后再在linux 系统上还原oracle
  • Oracle数据库设置任务计划备份一周的备份记录
  • Oracle数据库备份和恢复工具 RMan
  • oracle10g 数据备份与导入
  • aix下自动备份oracle 的输出日志问题,急!!
  • hp unix下备份oracle表的问题
  • linux小白提问linux备份oracle数据库的问题
  • oracle不能自动备份
  • Oracle数据库逻辑备份的SH文件
  • Linux环境中Oracle数据导入与导出备份操作
  • oracle数据库备份急???????????
  • oracle定时备份压缩的实现步骤
  • Unix系统下如何将oracle数据库备份
  • 详解如何应用改变跟踪技术加速Oracle递增备份
  • Oracle中备份表的简单sql命令语句
  • 实战Oracle数据库备份与恢复
  • Linux下实现自动备份Oracle数据库
  • oracle备份恢复的具体方法
  • 利用windows任务计划实现oracle的定期备份
  • Oracle11g备份和恢复功能的提高
  • Oracle数据库恢复后心得
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • oracle drop table(表)数据恢复方法
  • oracle中误删除表后恢复语句(FLASHBACK)
  • oracle冷备份恢复和oracle异机恢复使用方法
  • 在Oracle 10gR2中设定指定的恢复点实现轻松闪回
  • Oracle重做日志文件损坏或丢失后的恢复
  • oracle下实现恢复一个丢失的数据文件的代码
  • 详解通过Backup Exec来实施Oracle灾难恢复
  • Oracle中备份表的简单sql命令语句 iis7站长之家
  • Oracle数据库文件恢复以及备份思路
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • ORACLE数据库常用字段数据类型介绍
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle收购TimesTen 提高数据库软件性能
  • 卸载oracle数据库
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle数据库运行Oracle form时避免出现提示信息
  • Oracle欲收购开源数据库MySQL未果
  • 如何在JBuilder中连接Oracle数据库?
  • Oracle数据库访问参数文件的顺序
  • 循序渐进学习Oracle数据库
  • 安装Oracle加载数据库错误areasQueries的解决
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3