实战:从Oracle standby数据库端备份数据库并在异机恢复一个新的数据库

导读

为减少主库的备份压力,在standby备库备份数据库,由于测试需要,现在在异机恢复一个数据库的测试环境,即利用standby数据库的备份恢复一个新的数据库。

1、查看standby 数据库备份脚本

复制代码
#!/bin/sh
. ~/.bash_profile
DATE=`date +%Y-%m-%d-%H-%M-%S`
export ORACLE_SID=ORCLADG
rman target / log=/backup/log/rmanfull_ORCLADG_log_$DATE <<eof
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as compressed backupset database format '/backup/data/dwprodadg/rmanfull_ORCLADG_%d_%T_%s_%p.bak';
backup archivelog all format '/backup/data/dwprodadg/archfull_ORCLADG_%T%U.bak';
backup spfile format '/backup/data/dwprodadg/spfile_dwprodadg_%d_%T_%s_%p.bak';
backup current controlfile format '/backup/data/dwprodadg/control_ORCLADG_%d_%T_%s_%p.bak';
crosscheck archivelog all;
delete force noprompt archivelog until time='sysdate-1';
crosscheck archivelog all;
delete noprompt expired archivelog all;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
eof

2、新服务器恢复数据库

新建一个服务器,安装好数据库软件,创建与standby数据库一样的数据目录和备份目录,归档目录,把备份的文件拷贝到新服务器。

注意:从standby备份来恢复一个数据库,需要使用主库备份的控制文件,否则恢复会失败。

主库备份控制文件

2.1、准备初始化参数文件

复制代码
*.audit_file_dest='/u01/app/oracle/admin/ORCLADG/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/data/oradata/ORCLADG/ORCLADG.ctl'
*.db_block_size=32768
*.db_create_file_dest='/data/oradata/ORCLADG'
*.db_domain=''
*.db_file_name_convert='+DATA/ORCLADG/datafile','/data/oradata/ORCLADG'
*.db_name='ORCL'
*.db_recovery_file_dest_size=644245094400
*.db_recovery_file_dest='/arch/ORCLADG/flashback'
*.db_unique_name='ORCLADG'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLADGGXDB)'
*.fal_client='ORCLADG'
*.fal_server='ORCL'
*.log_archive_config='DG_CONFIG=(ORCL,ORCLADG)'
*.log_archive_dest_1='LOCATION=/arch/ORCLADG/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCLADG'
*.log_archive_dest_2='service=ORCL ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL'
*.log_archive_dest_state_2='defer'
*.log_file_name_convert='+DATA/ORCL/onlinelog','/data/oradata/ORCLADG'
*.open_cursors=300
*.pga_aggregate_target=300m
*.processes=800
*.remote_login_passwordfile='exclusive'
*.sessions=885
*.sga_max_size=1g
*.sga_target=1g
*.standby_file_management='AUTO'
*.undo_retention=7200

2.2、将数据库启动到nomount

复制代码
export ORACLE_SID=ORCLADG
sqlplus / as sysdba
create spfile from pfile;
startup nomount

2.3、恢复控制文件

复制代码
rman target /
backup current controlfile format '/home/oracle/pri_ctl.bak';

2.4、将数据库启动到mount

复制代码
alter database mount;

2.5、注册备份文件:

复制代码
rman target /
catalog start with '/backup/data';

2.6、修改备份的并行度

复制代码
RMAN> show all;

RMAN configuration parameters for database with db_unique_name DWPRODADG are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+HFDATA/dwprod/snapcf_DWPROD.f';

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;

new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored
released channel: ORA_DISK_1

RMAN> show all;

RMAN configuration parameters for database with db_unique_name DWPRODADG are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+HFDATA/dwprod/snapcf_DWPROD.f';

RMAN>

2.7、还原数据库

复制代码
restore database;

2.8、恢复数据库

复制代码
recover database;

2.9、以只读方式打开数据库

复制代码
alter database open resetlogs;
相关推荐
NCIN EXPE1 天前
redis 使用
数据库·redis·缓存
MongoDB 数据平台1 天前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路1 天前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家1 天前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE1 天前
开启mysql的binlog日志
数据库·mysql
yejqvow121 天前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO1 天前
nacos2.3.0 接入pgsql或其他数据库
数据库
m0_743623921 天前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python
pele1 天前
Angular 表单中基于下拉选择动态启用字段必填校验的完整实现
jvm·数据库·python