Oracle 还原库
数据库一般有两种常见故障介质损坏人为失误 防止介质损坏一般使用Data Guard等技术防止人为失误,可以使用Oracle闪回功能. 但是人
数据库一般有两种常见故障
介质损坏
人为失误
防止介质损坏一般使用Data Guard等技术
防止人为失误,可以使用Oracle闪回功能.
但是人为失误一旦不能通过闪回恢复,就需要使用Rman恢复了。
使用Rman恢复,想想那个恢复速度和自己窘迫的样子还有里三层外三层的老板,领导,同事..
为了避免这个情况,可以使用另外一台服务器,做一个Oracle的还原库.
主库每隔一段时间,将归档日志推送至还原库的指定目录(scp,rsync,我们使用的是小花狸监控软件)
还原库每隔一段时间,应用归档日志.
也就是说,还原库的数据总是落后于生产数据库.类似于一个延迟的DataGuard。
我们配置的还原库落后于生产数据库6-9个小时.
从还原库恢复人为错误,一般可以控制在30分钟之内.
而从Rman异机恢复,估计需要4-5个小时.
制作还原库一般有下面几个步骤
1.卸载还原库已经存在的数据库(如果还原库存在数据库实例)
shutdown abort;
startup mount exclusive restrict;
alter system enable restricted session;
drop database;
2.使用Rman备份生产数据库
CONFIGURE DEVICE TYPE DISK PARALLELISM 5 BACKUP TYPE TO BACKUPSET;
sql 'alter system archive log current';
BACKUP AS COMPRESSED BACKUPSET DATABASE ;
3.在$ORACLE_HOME/dbs目录下,新建一个文件(init$SID.ora)
文件内仅仅有一行SID的配置
db_name=mvbox
4.恢复spfile
先从Rman备份中,恢复spfile
[oracle@localhost/data/IP/2015_09_25]$rman target /
Recovery Manager: Release 10.2.0.4.0 - Production on Fri Sep 25 17:26:40 2015
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database (not started)
RMAN> startup nomount;
Oracle instance started
Total System Global Area 171966464 bytes
Fixed Size 2082496 bytes
Variable Size 113248576 bytes
Database Buffers 50331648 bytes
Redo Buffers 6303744 bytes
RMAN> restore spfile to '/home/oracle/app/oracle/product/10.2.0/db_1/dbs/spfilemvbox.ora' from '/data/IP/2015_09_25/o1_mf_nnsnf_TAG20150925T134231_c09s9rq2_.bkp';
Starting restore at 25-SEP-15
using channel ORA_DISK_1
channel ORA_DISK_1: autobackup found: /data/IP/2015_09_25/o1_mf_nnsnf_TAG20150925T134231_c09s9rq2_.bkp
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 25-SEP-15
将spfile转换为pfile,然后修改相关的目录
create pfile='/tmp/pfile.ora' from spfile;
vim /tmp/pfile.ora 主要是修改相关路径
然后使用pfile启动数据库至nomount状态,由修改过的pfile再生成spfile
5.恢复控制文件
RMAN> restore controlfile from '/data/IP/2015_09_25/o1_mf_ncnnf_TAG20150925T134231_c09s9pms_.bkp';
Starting restore at 25-SEP-15
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1640 devtype=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
output filename=/data/oracledata/flash_recovery_area/control01.ctl
Finished restore at 25-SEP-15
RMAN> shutdown
Oracle instance shut down
RMAN> startup mount;
connected to target database (not started)
Oracle instance started
database mounted
Total System Global Area 53687091200 bytes
Fixed Size 2184048 bytes
Variable Size 4546628752 bytes
Database Buffers 49123688448 bytes
Redo Buffers 14589952 bytes
RMAN>
6.还原数据文件,并恢复
将生产数据库的归档日志也拷贝到指定的目录
RMAN> catalog start with '/data/IP';
生产数据库的文件都放在/dbdata/oracledata/mvbox/挂载点
而还原库的数据文件在/data/oracledata/oradata/mvbox/挂载点
在生产数据库运行查询
select
'set newname for datafile ' || file_id ||
' to ''' ||
replace(file_name,'/dbdata/oracledata/mvbox','/data/oracledata/oradata/mvbox')||''';'
from dba_data_files;
然后根据这个查询的结果,拼出还原库执行的命令
先还原数据文件
run{
CONFIGURE DEVICE TYPE DISK PARALLELISM 5 BACKUP TYPE TO BACKUPSET;
set newname for datafile 4 to '/data/oracledata/oradata/mvbox/users01.dbf';
set newname for datafile 3 to '/data/oracledata/oradata/mvbox/sysaux01.dbf';
set newname for datafile 1 to '/data/oracledata/oradata/mvbox/system01.dbf';
set newname for datafile 5 to '/data/oracledata/oradata/mvbox/system02.dbf';
set newname for datafile 6 to '/data/oracledata/oradata/mvbox/sysaux02.dbf';
set newname for datafile 7 to '/data/oracledata/oradata/mvbox/users02.dbf';
set newname for datafile 8 to '/data/oracledata/oradata/mvbox/users03.dbf';
set newname for datafile 9 to '/data/oracledata/oradata/mvbox/users04.dbf';
set newname for datafile 10 to '/data/oracledata/oradata/mvbox/users05.dbf';
set newname for datafile 12 to '/data/oracledata/oradata/mvbox/users06.dbf';
set newname for datafile 13 to '/data/oracledata/oradata/mvbox/system03.dbf';
set newname for datafile 14 to '/data/oracledata/oradata/mvbox/sysaux03.dbf';
set newname for datafile 27 to '/data/oracledata/oradata/mvbox/users19.dbf';
set newname for datafile 15 to '/data/oracledata/oradata/mvbox/users07.dbf';
set newname for datafile 16 to '/data/oracledata/oradata/mvbox/users08.dbf';
set newname for datafile 17 to '/data/oracledata/oradata/mvbox/users09.dbf';
set newname for datafile 18 to '/data/oracledata/oradata/mvbox/users10.dbf';
set newname for datafile 19 to '/data/oracledata/oradata/mvbox/users11.dbf';
set newname for datafile 20 to '/data/oracledata/oradata/mvbox/users12.dbf';
set newname for datafile 21 to '/data/oracledata/oradata/mvbox/users13.dbf';
set newname for datafile 22 to '/data/oracledata/oradata/mvbox/users14.dbf';
set newname for datafile 23 to '/data/oracledata/oradata/mvbox/users15.dbf';
set newname for datafile 24 to '/data/oracledata/oradata/mvbox/users16.dbf';
set newname for datafile 25 to '/data/oracledata/oradata/mvbox/users17.dbf';
set newname for datafile 26 to '/data/oracledata/oradata/mvbox/users18.dbf';
set newname for datafile 28 to '/data/oracledata/oradata/mvbox/users20.dbf';
set newname for datafile 33 to '/data/oracledata/oradata/mvbox/users21.dbf';
set newname for datafile 34 to '/data/oracledata/oradata/mvbox/users22.dbf';
set newname for datafile 35 to '/data/oracledata/oradata/mvbox/undotbs.dbf';
restore database;
switch datafile all;
}
找到生产数据库传输过来的归档日志文件,找到最后一个文件
恢复到最后一个归档日志文件序列.

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

要查询 Oracle 表空间大小,请遵循以下步骤:确定表空间名称,方法是运行查询:SELECT tablespace_name FROM dba_tablespaces;查询表空间大小,方法是运行查询:SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

数据导入方法:1. 使用 SQLLoader 实用程序:准备数据文件、创建控制文件、运行 SQLLoader;2. 使用 IMP/EXP 工具:导出数据、导入数据。提示:1. 大数据集推荐 SQL*Loader;2. 目标表应存在,列定义匹配;3. 导入后需验证数据完整性。

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

Oracle 安装失败的卸载方法:关闭 Oracle 服务,删除 Oracle 程序文件和注册表项,卸载 Oracle 环境变量,重新启动计算机。若卸载失败,可使用 Oracle 通用卸载工具手动卸载。

Oracle 视图加密允许您加密视图中的数据,从而增强敏感信息安全性。步骤包括:1) 创建主加密密钥 (MEk);2) 创建加密视图,指定要加密的视图和 MEk;3) 授权用户访问加密视图。加密视图工作原理:当用户查询加密视图时,Oracle 使用 MEk 解密数据,确保只有授权用户可以访问可读数据。

创建 Oracle 表涉及以下步骤:使用 CREATE TABLE 语法指定表名、列名、数据类型、约束和默认值。表名应简洁、描述性,且不超过 30 个字符。列名应描述性,数据类型指定列中存储的数据类型。NOT NULL 约束确保列中不允许使用空值,DEFAULT 子句可指定列的默认值。PRIMARY KEY 约束标识表的唯一记录。FOREIGN KEY 约束指定表中的列引用另一个表中的主键。请参见示例表 students 的创建,其中包含主键、唯一约束和默认值。

Oracle 乱码问题可以通过以下步骤解决:检查数据库字符集以确保与数据相匹配。设置客户端字符集以与数据库相匹配。转换数据或修改列字符集以匹配数据库字符集。使用 Unicode 字符集,并避免多字节字符集。检查数据库和客户端的语言设置是否正确。

在 Oracle 中查看实例名的方法有三种:命令行中使用 "sqlplus" 和 "select instance_name from v$instance;" 命令。在 SQL*Plus 中使用 "show instance_name;" 命令。通过操作系统的任务管理器、Oracle Enterprise Manager 或检查环境变量 (Linux 上的 ORACLE_SID)。
