控制文件用于记录和维护数据库。当恢复数据库时,服务器进程和后台进程需要从控制文件中读取各种备份相关的信息。如果控制文件损坏,则会导致这些备份信息的丢失。尽管使用多元化控制文件可以防止控制文件损坏,但因为控制文件的重要性,应该定期备份控制文件。当数据库配置发生改变时,一定要备份控制文件。涉及到数据库配置改变的命令:
alter database [add|drop] logfile
alter database [add|drop] logfile member
alter database [add|drop] logfile group
alter database [noarchivelog|archivelog]
alter database rename file
create tablespace
alter tablespace [add|rename] datafile
alter tablespace [read write|read only]
drop tablespace
控制文件的备份,三种方式
1)使用OS命令进行拷贝
1)open状态下,使用alter database命令生成控制文件副本
2)open状态下,使用alter database backup controlfile to trace命令将控制文件备份到跟踪文件
控制文件的恢复,两种方式
1)mount状态下,使用RECOVER DATABASE USING BACKUP CONTROLFILE
2)mount状态下,生成跟踪文件并进行恢复
2--2示例:
[oracle@localhost ~]$ rlsqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 8月 1 21:40:03 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 528482304 bytes
Fixed Size 1220360 bytes
Variable Size 176161016 bytes
Database Buffers 343932928 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
--open状态下生成控制文件副本
SQL> alter database backup controlfile to
2 '/oracle/10g/oracle/bakup/database/oralife.ctl';
alter database backup controlfile to
*
ERROR at line 1:
ORA-01580: error creating control backup file
/oracle/10g/oracle/bakup/database/oralife.ctl
ORA-27038: created file already exists
Additional information: 1
SQL> alter database backup controlfile to
2 '/oracle/10g/oracle/bakup/database/oralife.ctl' reuse;
--reuse用于覆盖原有控制文件副本
Database altered.
--手动删除所有控制文件模拟文件丢失
SQL> ho rm /oracle/10g/oracle/product/10.2.0/oradata/oralife/*.ctl;
--使用evan登录,并添加数据
SQL> conn evan/evan
Connected.
SQL> select * from t_evan;
TEXT
--------------------------------------------------------------------------------
oracle
java
spring
hibernate
hibernate
SQL> insert into t_evan values('added');
1 row created.
SQL> commit;
Commit complete.
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/oracle/10g/oracle/product/10.2.0/oradata/oralife/control01.ctl'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
SQL> shutdown abort
ORACLE instance shut down.
--alter_oralife.log出现这样的信息:
Mon Aug 1 23:13:51 2011
ORA-00202: control file: '/oracle/10g/oracle/product/10.2.0/oradata/oralife/control01.ctl'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
--拷贝控制文件到目标路径
SQL>ho cp /oracle/10g/oracle/bakup/database/oralife.ctl /oracle/10g/oracle/product/10.2.0/oradata/oralife/control01.ctl
SQL> alter system set control_files='/oracle/10g/oracle/product/10.2.0/oradata/oralife/control01.ctl' scope = spfile;
--修改control_files参数,指定可用的控制文件
System altered.
SQL> startup force mount
ORACLE instance started.
Total System Global Area 528482304 bytes
Fixed Size 1220360 bytes
Variable Size 138412280 bytes
Database Buffers 381681664 bytes
Redo Buffers 7168000 bytes
Database mounted.
--生成trace文件
SQL> alter database backup controlfile to trace noresetlogs;
Database altered.
SELECT c.VALUE || '/' || d.instance_name || '_ora_' || a.spid || '.trc' TRACE
FROM v$process a, v$session b, v$parameter c, v$instance d
WHERE a.addr = b.paddr
AND b.audsid = USERENV ('sessionid')
AND c.NAME = 'user_dump_dest';
TRACE
--------------------------------------------------------------------------------
/oracle/10g/oracle/product/10.2.0/db_1/admin/oralife/udump/oralife_ora_4558.trc
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
--打开trace文件,去掉注释,在shutdown状态下执行脚本,创建控制文件
--用evan登录验证数据
SQL> conn evan/evan
Connected.
SQL> select * from t_evan;
TEXT
--------------------------------------------------------------------------------
oracle
java
spring
hibernate
hibernate
added
6 rows selected.
可见数据没有丢失。
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/oracle/10g/oracle/product/10.2.0/oradata/oralife/control01.ctl
这时
应该重建多个控制文件。
如何做?
--设置control_files参数,前提是使用spfile启动数据库
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /oracle/10g/oracle/product/10.
2.0/db_1/dbs/spfileoralife.ora
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/oracle/10g/oracle/product/10.2.0/oradata/oralife/control01.ctl
SQL> alter system set control_files='/oracle/10g/oracle/product/10.2.0/oradata/oralife/control01.ctl'
2 ,'/oracle/10g/oracle/product/10.2.0/oradata/oralife/control02.ctl'
3 ,'/oracle/10g/oracle/product/10.2.0/oradata/oralife/control03.ctl'
4 scope=spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
--拷贝控制文件到不同的磁盘
SQL> host
[oracle@localhost oralife]$ cp control01.ctl control02.ctl
[oracle@localhost oralife]$ cp control01.ctl control03.ctl
[oracle@localhost ~]$ rlsqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 2 21:02:57 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 528482304 bytes
Fixed Size 1220360 bytes
Variable Size 142606584 bytes
Database Buffers 377487360 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/oracle/10g/oracle/product/10.2.0/oradata/oralife/control01.ctl
/oracle/10g/oracle/product/10.2.0/oradata/oralife/control02.ctl
/oracle/10g/oracle/product/10.2.0/oradata/oralife/control03.ctl
已生效。
分享到:
相关推荐
Oracle 12c 备份恢复-RMAN 工具技术手册 本文档旨在提供 Oracle 12c 备份恢复的技术手册,主要介绍 RMAN 工具的概念、架构、备份类型和使用方法。 一、RMAN 概念 RMAN(Recovery Manager)是 Oracle 推荐的备份和...
数据库备份与恢复是数据库管理系统中非常重要的一部分。实验4 数据库备份与恢复实验旨在让学生掌握数据库备份与恢复的操作方法。 知识点1: 数据库备份 数据库备份是指将数据库中的数据复制到其他存储介质中,以便...
通过这次测试,我们可以了解到MySQL数据库的备份恢复流程,以及如何验证恢复的正确性。同时,也强调了恢复过程中服务器性能的重要性,以及备份策略对于数据保护的关键性。在实际环境中,企业应根据自身需求制定合适...
### PGConf.CN2019大会资料:培训PPT--9-石勇虎--遇见时光机-浅谈平安云上PG备份与恢复-final #### 一、传统的备份恢复方案 传统的备份恢复方案主要包括逻辑备份、物理备份以及PITR(Point-in-Time Recovery)恢复...
Oracle数据库是业界广泛使用的大型关系型数据库系统,其对象管理及备份与恢复机制对于数据库管理员来说至关重要。本文将详细介绍Oracle数据库的对象管理、数据类型、触发器、索引和分区策略,以及备份与恢复的相关...
关键词:Oracle RMAN备份恢复机制 数据库备份与恢复 RMAN组成结构 备份模式。 本文档的主要内容包括: 1. 基于RMAN的Oracle数据库备份与恢复机制的介绍 2. RMAN的组成结构和运行机制 3. RMAN的备份模式和恢复机制 ...
基于备份的恢复是指利用物理备份或逻辑备份文件来恢复数据库。当数据库发生物理损坏或数据丢失时,可以通过还原备份文件来恢复数据库。对于物理备份,可以直接将备份文件复制到原位置替换损坏的文件;对于逻辑备份,...
以上是对基于Web的数据库备份与恢复系统的基本介绍,它涉及到.NET框架的Web应用开发、SQL Server 2005的数据库管理和备份恢复机制等多个IT领域的知识点,对于信息安全专业学生来说,是一个很好的实践项目。
DELETE语句用于删除表中的行数据,而MySQLWorkbench同样提供了从备份恢复数据的能力。 【实验5-14】和【实验5-15】指导如何删除表或表中的数据,并用图形化工具恢复。 ### 使用mysqlbinlog进行基于时间点的恢复 ...
Oracle 11g 的备份与恢复是数据库管理中的关键环节,确保数据的安全性和可用性。在Oracle数据库中,恢复管理器(RMAN)是进行备份和恢复的主要工具。以下是对Oracle 11g基于RMAN的备份与恢复的详细说明: 1. 备份...
- 在发生介质故障(如硬盘损坏)时,使用物理备份恢复数据文件和控制文件。 - 当出现逻辑错误时,可以通过逻辑备份进行恢复,或者使用`FLASHBACK DATABASE`命令。 - 遇到系统崩溃,可以使用RMAN的`RESTORE ...
- **Ontape**: 是一种基于磁带的备份工具,主要用于将数据库的数据和日志文件备份到磁带上。它支持增量备份、完全备份等多种备份方式,并且可以实现备份的自动化管理。 - **Onbar**: 是一个更高级的备份和恢复工具,...
这种备份方式涉及到Percona XtraBackup工具,它提供了高效且可靠的InnoDB表的数据和日志文件备份功能。以下是对Xb文件物理备份恢复数据库的详细步骤和相关知识点: 1. **下载备份文件**: 在开始恢复之前,你需要...
### 基于Oracle的ArcSDE数据备份与恢复 #### 概述 本文主要探讨了如何对运行在Oracle关系数据库上的ArcSDE数据进行有效的备份与恢复操作。ArcSDE是一个服务器软件产品,用于访问存储在关系数据库管理系统(RDBMS)中...
基于Hadoop HDFS的分布式文件系统备份与恢复系统 内容概要 本项目是一个基于Hadoop HDFS的分布式文件系统备份与恢复系统。它包括备份节点(BackupNode)和数据节点(DataNode)的管理,以及与NameNode的通信。...
4. 数据文件备份:针对单个数据文件,RMAN也可以执行备份,适用于局部故障恢复。 二、RMAN恢复技术 RMAN恢复主要包括完整恢复、不完全恢复、数据文件恢复和闪回恢复。这些恢复技术依赖于合适的备份集、归档日志和...
6. 多种系统备份恢复方案:包括单机备份和恢复、组播(批量复制系统)等多种方案。 7. Img软件的应用:Img软件可以应用于油田生产单位、企业内部培训教室计算机等场景,解决了系统崩溃对生产带来极大的影响的问题。...
Oracle是全球领先的企业级关系型数据库管理系统之一,其10g和11g版本提供了强大的备份与恢复功能,主要通过Recovery Manager(RMAN)这一专用工具来实现。RMAN是Oracle数据库的备份和恢复解决方案,它提供了一系列...