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

第三部分备份与恢复

阅读更多
[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]执行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'));
分享到:
评论

相关推荐

    数据库备份与还原

    3. 第三方工具:如Red Gate的SQL Backup、Quest的LTO等,提供更高级的功能和自动化解决方案。 五、备份存储与管理 1. 网络共享:将备份文件存储在局域网内的共享位置,方便多台服务器访问。 2. 云存储:利用AWS ...

    c++,SQL语句实现数据库备份与还原

    恢复SQL语句是数据库备份与还原的第二部分。使用T-SQL语句,可以实现数据库的恢复,例如: ```sql exec p_restoredb @bkpath='c:\',@bkfname='db_\DATE\_db.bak' ``` 这条语句将恢复指定的备份文件到当前数据库中。 ...

    北邮数据库实验五-数据库的备份与恢复.docx

    【数据库的备份与恢复】 数据库的备份与恢复是数据库管理中的关键环节,旨在保护数据免受意外删除、硬件故障或其他灾难性事件的影响。本实验针对的是IBM的DB2数据库管理系统,一个广泛应用于企业级的数据存储解决...

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

    在C#中,我们通常会借助Oracle的.NET数据提供者(Oracle Managed Data Access,ODP.NET)或者第三方库来操作数据库。 1. **备份过程**: - **完整备份**:通常包括所有数据文件、控制文件、重做日志文件和初始化...

    Thinkphp数据库备份和还原

    在开发和管理基于...总的来说,Thinkphp提供了灵活的数据库备份和还原机制,无论是使用内置工具还是第三方扩展,都能满足大多数开发需求。理解这些机制并结合最佳实践,将有助于保障你的Web应用数据的安全与稳定。

    安卓短信的备份与还原

    2. 第三方应用:市面上有很多第三方应用,如“SMS Backup & Restore”、“SMS Backup+”等,它们提供了方便的备份和恢复选项。用户可以将短信导出为XML、CSV或HTML格式,存储在Google Drive、Dropbox等云服务中。 3...

    DB2数据库备份与恢复

    - `TSM:[managementclassname]`: 使用特定的第三方软件(如IBM Tivoli Storage Manager)进行日志归档。 #### 三、脱机备份 脱机备份(也称为冷备份)是指在没有任何用户连接到数据库的情况下进行的备份过程。...

    sqlserver 数据库的备份与还原

    4. **监控备份状态**:利用SQL Server内置的监控工具或其他第三方解决方案监控备份任务的状态,及时发现问题并解决。 通过上述知识点的介绍,我们可以了解到SQL Server数据库备份与还原的具体方法及注意事项。正确...

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

    Oracle 12c 备份恢复-RMAN 工具技术手册 本文档旨在提供 Oracle 12c 备份恢复的技术手册,主要介绍 RMAN 工具的概念、架构、备份类型和使用方法。...RMAN 为 DBA 隐藏了管理第三方硬件的所有复杂性。

    CS系统下的数据库备份与还原功能

    - 自动化备份:通过编写脚本或使用第三方工具实现自动定时备份。 5. **数据库还原**: - 点到点恢复:选择特定时间点的备份文件,将数据库恢复到该时间的状态。 - 部分还原:在不影响其他数据的情况下恢复单个表...

    Informix备份与恢复指南 V9.4

    《Informix备份与恢复指南 V9.4》是针对Informix数据库系统的一个重要参考...主要的学习资料是“Informix备份与恢复指南 V9.4.pdf”,其中包含了详细的操作步骤和最佳实践,是深入学习Informix备份恢复技术的重要资源。

    Oracle 8i备份与恢复

    ### Oracle 8i备份与恢复知识点详解 #### 一、备份与恢复的概念 **1.1 什么是备份和恢复** 备份是指将数据库的关键部分(如数据文件和控制文件)复制成副本的过程。备份的主要目的是为了应对意外的数据丢失或程序...

    SQL2005备份与还原

    3. **自动化备份**:利用SQL Server Agent或其他第三方工具设置定时任务,实现备份过程的自动化,减轻DBA的工作负担,提高效率。 4. **恢复数据库**:在需要时,按照正确的顺序执行备份文件的恢复操作。根据不同的...

    delphi控件备份还原

    标签"delphi 备份还原"则直接指明了这个话题的核心内容:针对Delphi开发环境的备份和还原操作,特别是涉及到控件的部分。 在压缩包子文件"delphi控件备份还原+V1.0.0.5"中,我们可以推测这是一个工具的版本号,可能...

    IDS12.10备份与恢复指南

    ### IDS12.10备份与恢复指南 #### 一、引言 本文档旨在详细介绍IBM Informix Dynamic Server (IDS) 12.10版本中的备份与恢复机制。备份与恢复是数据库管理系统中非常重要的功能,对于确保数据的安全性和业务连续性...

    域控制器AD备份和恢复DOC

    3. 第三方工具:如Veeam、Acronis等专业备份软件,提供更高级的备份选项和调度功能。 三、AD恢复步骤 1. 确认恢复类型:根据实际情况选择完全恢复、部分恢复或时间点恢复。 2. 环境准备:在备用服务器上安装相同...

    MS SQL数据库系统备份与恢复

    确保数据的安全性至关重要,因此数据库的备份与恢复策略是任何组织不可或缺的部分。"MS SQL数据库系统备份与恢复"这一主题主要关注如何有效地保护SQL Server中的数据,以防数据丢失或系统故障。 SQL Server提供了...

    rman 备份与恢复

    6. **Media Management Library (MML)**:媒体管理层允许RMAN与第三方备份软件(如NetBackup、Tivoli等)集成,实现磁带备份和高级文件管理功能。 RMAN备份的基本概念包括: - **Backup Sets**:备份集合包含一个...

Global site tag (gtag.js) - Google Analytics