Home Database Mysql Tutorial Oracle 还原库

Oracle 还原库

Jun 07, 2016 pm 02:58 PM
oracle database

数据库一般有两种常见故障介质损坏人为失误 防止介质损坏一般使用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  主要是修改相关路径

Oracle 还原库

然后使用pfile启动数据库至nomount状态,由修改过的pfile再生成spfile

Oracle 还原库

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

找到生产数据库传输过来的归档日志文件,找到最后一个文件

Oracle 还原库

恢复到最后一个归档日志文件序列.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How long will Oracle database logs be kept? How long will Oracle database logs be kept? May 10, 2024 am 03:27 AM

The retention period of Oracle database logs depends on the log type and configuration, including: Redo logs: determined by the maximum size configured with the "LOG_ARCHIVE_DEST" parameter. Archived redo logs: Determined by the maximum size configured by the "DB_RECOVERY_FILE_DEST_SIZE" parameter. Online redo logs: not archived, lost when the database is restarted, and the retention period is consistent with the instance running time. Audit log: Configured by the "AUDIT_TRAIL" parameter, retained for 30 days by default.

How much memory does oracle require? How much memory does oracle require? May 10, 2024 am 04:12 AM

The amount of memory required by Oracle depends on database size, activity level, and required performance level: for storing data buffers, index buffers, executing SQL statements, and managing the data dictionary cache. The exact amount is affected by database size, activity level, and required performance level. Best practices include setting the appropriate SGA size, sizing SGA components, using AMM, and monitoring memory usage.

Oracle database server hardware configuration requirements Oracle database server hardware configuration requirements May 10, 2024 am 04:00 AM

Oracle database server hardware configuration requirements: Processor: multi-core, with a main frequency of at least 2.5 GHz. For large databases, 32 cores or more are recommended. Memory: At least 8GB for small databases, 16-64GB for medium sizes, up to 512GB or more for large databases or heavy workloads. Storage: SSD or NVMe disks, RAID arrays for redundancy and performance. Network: High-speed network (10GbE or higher), dedicated network card, low-latency network. Others: Stable power supply, redundant components, compatible operating system and software, heat dissipation and cooling system.

Oracle scheduled tasks execute the creation step once a day Oracle scheduled tasks execute the creation step once a day May 10, 2024 am 03:03 AM

To create a scheduled task in Oracle that executes once a day, you need to perform the following three steps: Create a job. Add a subjob to the job and set its schedule expression to "INTERVAL 1 DAY". Enable the job.

How much memory is needed to use oracle database How much memory is needed to use oracle database May 10, 2024 am 03:42 AM

The amount of memory required for an Oracle database depends on the database size, workload type, and number of concurrent users. General recommendations: Small databases: 16-32 GB, Medium databases: 32-64 GB, Large databases: 64 GB or more. Other factors to consider include database version, memory optimization options, virtualization, and best practices (monitor memory usage, adjust allocations).

How much memory does an oracle database require? How much memory does an oracle database require? May 10, 2024 am 02:09 AM

Oracle Database memory requirements depend on the following factors: database size, number of active users, concurrent queries, enabled features, and system hardware configuration. Steps in determining memory requirements include determining database size, estimating the number of active users, understanding concurrent queries, considering enabled features, and examining system hardware configuration.

Detailed tutorial on establishing a database connection using MySQLi in PHP Detailed tutorial on establishing a database connection using MySQLi in PHP Jun 04, 2024 pm 01:42 PM

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

How to start the listening program in oracle How to start the listening program in oracle May 10, 2024 am 03:12 AM

Oracle listeners are used to manage client connection requests. Startup steps include: Log in to the Oracle instance. Find the listener configuration. Use the lsnrctl start command to start the listener. Use the lsnrctl status command to verify startup.

See all articles