`
xy_z487
  • 浏览: 277892 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE FAQ - PART 3 备份与恢复

阅读更多

ORACLE FAQ - PART 3 备份与恢复

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://workspace.blogbus.com/logs/474812.html

[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:\oracle\ora92\database\archive
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 distinct 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]怎么样创建RMAN恢复目录
[A]首先,创建一个数据库用户,一般都是RMAN,并给予recovery_catalog_owner角色权限
sqlplus sys
SQL> create user rman identified by rman;
SQL> alter user rman default tablespace tools temporary tablespace temp;
SQL> alter user rman quota unlimited on tools;
SQL> grant connect, resource, recovery_catalog_owner to rman;
SQL> exit;
然后,用这个用户登录,创建恢复目录
rman catalog rman/rman
RMAN> create catalog tablespace tools;
RMAN> exit;
最后,你可以在恢复目录注册目标数据库了
rman catalog rman/rman target backdba/backdba
RMAN> register database;

[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;
}

[Q]怎么从备份片(backuppiece)中恢复(restore)控制文件与数据文件
[A]可以使用如下方法,在RMAN中恢复备份片的控制文件
restore controlfile from backuppiecefile;
如果是9i的自动备份,可以采用如下的方法
restore controlfile from autobackup;
但是,如果控制文件全部丢失,需要指定DBID,如SET DBID=?
自动备份控制文件的默认格式是%F,这个格式的形式为
c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII就是DBID
至于恢复(restore)数据文件,oracle 816开始有个包dbms_backup_restore
在 nomount 状态下就可以执行,可以读 815甚至之前的备份片,读出来的文件用于恢复
可以在SQLPLUS中运行,如下
SQL>startup nomount
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype := dbms_backup_restore.deviceallocate('', params=>'');
6 dbms_backup_restore.restoresetdatafile;
7 dbms_backup_restore.restorecontrolfileto('E:\Oracle\oradata\penny\control01.ctl');
8 dbms_backup_restore.restoreDataFileto(1,'E:\Oracle\oradata\penny\system01.dbf');
9 dbms_backup_restore.restoreDataFileto(2,'E:\Oracle\oradata\penny\UNDOTBS01.DBF');
10 dbms_backup_restore.restoreDataFileto(3,'E:\ORACLE\ORADATA\PENNY\USERS01.DBF');
11 dbms_backup_restore.restorebackuppiece('D:\orabak\BACKUP_1_4_04F4IAJT.PENNY',done=>done);
12 END;
13 /
PL/SQL 过程已成功完成。
SQL> alter database mount;

[Q]Rman的format格式中的%s类似的东西代表什么意义
[A]可以参考如下
%c 备份片的拷贝数
%d 数据库名称
%D 位于该月中的第几天 (DD)
%M 位于该年中的第几月 (MM)
%F 一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列
%n 数据库名称,向右填补到最大八个字符
%u 一个八个字符的名称代表备份集与创建时间
%p 该备份集中的备份片号,从1开始到创建的文件数
%U 一个唯一的文件名,代表%u_%p_%c
%s 备份集的号
%t 备份集时间戳
%T 年月日格式(YYYYMMDD)

[Q]执行exec dbms_logmnr_d.build('Logminer.ora','file directory'),提示下标超界,怎么办
[A]完整错误信息如下,
SQL> exec dbms_logmnr_d.build('Logminer.ora','file directory')
BEGIN dbms_logmnr_d.build('Logminer.ora','file directory'); END;
*
ERROR 位于第 1 行:
ORA-06532: 下标超出限制
ORA-06512: 在"SYS.DBMS_LOGMNR_D", line 793
ORA-06512: 在line 1
解决办法为:
1.编辑位于"$ORACLE_HOME/rdbms/admin"目录下的文件"dbmslmd.sql"
改变行:
TYPE col_desc_array IS VARRAY(513) OF col_description;

TYPE col_desc_array IS VARRAY(700) OF col_description;
并保存文件
2. 运行改变后的脚本
SQLPLUS> Connect internal
SQLPLUS> @$ORACLE_HOME/rdbms/admin/dbmslmd.sql
3.重新编译该包
SQLPLUS> alter package DBMS_LOGMNR_D compile body;

[Q]执行execute dbms_logmnr.start_logmnr(DictFileName=>'DictFileName')提示ORA-01843:无效的月份,这个是什么原因
[A]我们分析start_logmnr包
PROCEDURE start_logmnr(
startScn IN NUMBER default 0 ,
endScn IN NUMBER default 0,
startTime IN DATE default TO_DATE('01-jan-1988','DD-MON-YYYY'),
endTime IN DATE default TO_DATE('01-jan-2988','DD-MON-YYYY'),
DictFileName IN VARCHAR2 default '',
Options IN BINARY_INTEGER default 0 );
可以知道,如果TO_DATE('01-jan-1988','DD-MON-YYYY')失败,将导致以上错误
所以解决办法可以为
1、Alter session set NLS_LANGUAGE=American
2、用类似如下的方法执行
execute dbms_logmnr.start_logmnr (DictFileName=> 'f:\temp2\TESTDICT.ora', starttime => TO_DATE(
'01-01-1988','DD-MM-YYYY'), endTime=>TO_DATE('01-01-2988','DD-MM-YYYY'));
分享到:
评论

相关推荐

    ORACLE之FAQ -- 备份与恢复

    ### ORACLE之FAQ -- 备份与恢复:深入解析 #### 知识点一:ORACLE备份模式切换 在Oracle数据库中,切换归档模式(Archivelog Mode)与非归档模式(NoArchivelog Mode)是进行备份与恢复的基础步骤之一。归档模式下...

    Oracle 12c-备份恢复学习实践手册合集

    Oracle 12c 闪回技术 Flashback Database.pdf Oracle 12c 闪回技术 Oracle Flashback技术.pdf ...Oracle 12c RMAN备份与恢复数据库.pdf Oracle 12c EXPDP和IMPDP指令详解.pdf Oracle 12c EXP和IMP指令详解.pdf

    Oracle-database-备份与恢复.doc

    Oracle Database 备份与恢复技术研究 Oracle 数据库备份与恢复是数据库管理中非常重要的一部分。它能够保证数据库的安全性、一致性和完整性。 oracle 数据库备份与恢复技术的研究在国内外非常热门,因为 oracle ...

    Oracle-database-备份与恢复论文.doc

    Oracle 数据库备份与恢复论文 Oracle 数据库备份与恢复是当前信息化时代中非常重要的一项技术。随着信息化的发展,数据对我们日常生活中有着举足轻重的影响。生活不能缺少数据,因此数据的备份和恢复在当前至关重要...

    Oracle Database 19c (oracle-database-ee-19c.x86_64.part1.rar)

    Oracle Database 19c (oracle-database-ee-19c.x86_64.part3.rar) https://download.csdn.net/download/weixin_43800734/33194515 Oracle Database 19c (oracle-database-ee-19c.x86_64.part2.rar) ...

    01-Oracle数据库备份与恢复教程

    ### Oracle数据库备份与恢复教程知识点概述 #### 一、Oracle数据库备份基础知识 ##### 1.1 备份文件类型及命名规范 - **备份文件**:主要包括两类文件,分别是用户对象文件(*.sql)和数据文件(*.dmp)。 - **...

    Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part1.rar)

    Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part3.rar) https://download.csdn.net/download/weixin_43800734/33207929 Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part2.rar) ...

    Oracle 11g R2 Rman备份与恢复_刘耀龙的博客-CSDN博客_rman备份.pdf

    Oracle 11g R2 的 RMAN (Recovery Manager) 是 Oracle 数据库管理系统中的一个关键工具,主要用于数据库的备份和恢复。RMAN 提供了一种高效且灵活的方式来管理和保护数据库,确保在数据丢失或系统故障时能够快速恢复...

    Oracle-RMAN增量备份恢复测试记录.docx

    Oracle-RMAN增量备份恢复测试记录提供了对Oracle数据库进行增量备份和恢复的测试记录,涵盖了增量备份的概念、备份策略、恢复命令、备份过程和恢复结果等方面,为数据库管理员提供了有价值的参考资料。

    Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part3.rar)

    Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part3.rar) https://download.csdn.net/download/weixin_43800734/33207929 Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part2.rar) ...

    循序渐进Oracle----数据库管理、优化与备份恢复.pdf

    《循序渐进Oracle——数据库管理、优化与备份恢复》这一资源聚焦于Oracle数据库的核心管理技术,涵盖了数据库的日常管理、性能优化以及备份与恢复的关键知识点。以下是对这些主题的详细解析,旨在帮助读者深入理解...

    oracle10g-rman备份与恢复

    ### Oracle 10g RMAN备份与恢复 在Oracle数据库管理中,RMAN(Recovery Manager)是一个重要的工具,用于数据库备份、恢复以及灾难恢复。本文将基于提供的标题、描述和部分上下文内容来深入探讨Oracle 10g环境下...

    《Oracle Database 11g RMAN备份与恢复》PDF版本下载.txt

    《Oracle Database 11g RMAN备份与恢复》PDF版本下载

    oracle实现数据库的备份与还原

    本主题将深入探讨如何使用C#编程语言来实现Oracle数据库的备份与还原过程。 首先,理解Oracle数据库的备份原理是必要的。Oracle提供多种备份方式,包括物理备份(如数据文件、控制文件的拷贝)和逻辑备份(如导出/...

    福建省电力公司oracle培训教材--ORACLE的备份与恢复

    Oracle数据库的备份与恢复是确保数据安全和业务连续性的重要环节。在福建省电力公司的Oracle培训教材中,重点讲解了逻辑备份和物理备份两种主要方法。 逻辑备份,顾名思义,是通过读取数据库的逻辑结构,即记录集,...

    Study-Oracle-08-ORACLE备份与恢复

    备份恢复指南

    Oracle 12c备份恢复-RMAN工具技术手册

    Oracle 12c 备份恢复-RMAN 工具技术手册 本文档旨在提供 Oracle 12c 备份恢复的技术手册,主要介绍 RMAN 工具的概念、架构、备份类型和使用方法。 一、RMAN 概念 RMAN(Recovery Manager)是 Oracle 推荐的备份和...

    Oracle-RMAN增量备份恢复测试记录

    Oracle-RMAN增量备份恢复测试记录 Oracle-RMAN增量备份恢复测试记录是指使用Oracle Recovery Manager(RMAN)工具对Oracle数据库进行增量备份和恢复的测试记录。本记录涵盖了增量备份的基本概念、备份策略及恢复、...

    Oracle应用教程-数据库备份与恢复.pptx

    本文档提供了 Oracle 数据库备份与恢复的详细教程,涵盖了备份与恢复的基本概念、类型与策略、备份与恢复的重要性、冷备份与热备份、逻辑备份与恢复、完全备份与部分备份、物理备份与逻辑备份、恢复机制等内容。...

    Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part2.rar)

    Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part3.rar) https://download.csdn.net/download/weixin_43800734/33207929 Oracle Database 21c (oracle-database-ee-21c-1.0-1.ol8.part2.rar) ...

Global site tag (gtag.js) - Google Analytics