Rman异机恢复

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:Rman异机恢复

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

一、查看数据库的dbid
select dbid from v$database;

二、修改参数文件
create pfile=’/tmp/pfile’ from spfile;
直接恢复spfile

三、rman操作
1.rman target /
2.startup nomount pfile=’xxxxxx’
3.set DBID=XXXXXXX
4.恢复控制文件

run{
allocate channel c1 type disk;
restore controlfile from '控制文件rman备份路径';
release channel c1;
}

5.加载控制文件
alter database mount;
6.恢复

run{
allocate channel c1 type disk;
[Set newname for datafile 1 to '新数据文件路径';]
restore database;
[switch datafile all;]
--rman中修改控制文件中datafile path
--sql "alter database rename file ''/opt/oracle/oradata/test/xff_02.dbf'' to ''/opt/oracle/oradata/test/xifenfei02.dbf''"
recover database;
release channel c1;
}

rman创建Standby Data Guard

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:rman创建Standby Data Guard

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

一、primary数据库
1、主库准备工作
1.1)设置强制日志
alter database force logging;
1.2)开启归档模式
ALTER DATABASE ARCHIVELOG;
1.3)添加standby logfile
–添加standby log文件(数量取决于(redo file number+1)*(thread number))
alter database add standby logfile group 3 ‘/u01/oradata/orcl/st_redo03.log’ size 5m reuse;
alter database add standby logfile group 4 ‘/u01/oradata/orcl/st_redo04.log’ size 5m reuse;
alter database add standby logfile group 5 ‘/u01/oradata/orcl/st_redo05.log’ size 5m reuse;
2、修改参数文件(主要参考oracle 官方文档)

DB_UNIQUE_NAME=orcl
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,xff)'
LOG_ARCHIVE_DEST_1=
'location=/u01/archive/orcl/
 VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
 DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_2=
'SERVICE=xff ASYNC
 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
 DB_UNIQUE_NAME=xff'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
FAL_SERVER=xff
DB_FILE_NAME_CONVERT='/u01/oradata/xff/','/u01/oradata/orcl/'
LOG_FILE_NAME_CONVERT='/u01/oradata/xff/','/u01/oradata/orcl/'
STANDBY_FILE_MANAGEMENT=AUTO

3、rman备份database和控制文件(主库)
3.1)使用rman 复制库方式建立dg
rman target /
backup full format=’/tmp/FULL_%U’ database include current controlfile for standby
plus archivelog format=’/tmp/arch_%U’;
3.2)使用rman恢复方式建立dg
rman target /
backup full format=’/tmp/FULL_%U’ database plus archivelog;
ALTER DATABASE CREATE STANDBY CONTROLFILE AS ‘/tmp/control01.ctl’;–sqlplus中
3.3)拷贝备份文件到备份库与主库相同位置
Note:如3.2中的备库控制文件需要拷贝到备库的参数文件指定位置
4、使用修改的参数文件启动数据库之open
二、standby数据库
1、准备密码文件
直接拷贝/u01/oracle/dbs/orapwdorcl 并重命名为orapwdxff
注:密码必须和primary数据库的sys的相同
2、创建相关文件夹 mkdir
3、创建参数文件(注意db_name 要和primary的相同)

*.db_name='orcl'
DB_UNIQUE_NAME=xff
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,xff)'
LOG_ARCHIVE_DEST_1=
'location=/u01/archive/xff/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=xff'
LOG_ARCHIVE_DEST_2=
'SERVICE=orcl ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
FAL_SERVER=orcl
DB_FILE_NAME_CONVERT='/u01/oradata/orcl/','/u01/oradata/xff/'
LOG_FILE_NAME_CONVERT='/u01/oradata/orcl/','/u01/oradata/xff/'
STANDBY_FILE_MANAGEMENT=AUTO
--修改文件夹路径的没有标出

4、配置tns和LISTENER相关参数
5、建立data guard
5.1)使用rman 复制库方式建立dg
5.1.1)使用修改的参数文件启动standby至nomount状态
5.1.2)使用rman恢复数据库
rman target sys/xifenfei@orcl auxiliary /
duplicate target database for standby dorecover nofilenamecheck;
5.2)使用rman恢复方式建立dg
5.2.1)使用修改的参数文件启动standby至nomount状态
5.2.2)开启数据库至mount状态
alter database mount standby database;
5.2.3)使用rman开始还原数据库
restore database;
6、备库添加必要文件
查看v$standby_log决定是否需要添加standby logfile
–添加standby log文件(数量取决于(redo file number+1)*(thread number))
alter database add standby logfile group 3 ‘/u01/oradata/xff/st_redo03.log’ size 5m reuse;
alter database add standby logfile group 4 ‘/u01/oradata/xff/st_redo04.log’ size 5m reuse;
alter database add standby logfile group 5 ‘/u01/oradata/xff/st_redo05.log’ size 5m reuse;
7、开启日志应用
alter database open;–11g支持redo apply状态下open
–开启归档日志应用
alter database recover managed standby database disconnect from session;
–开启实时应用
alter database recover managed standby database using current logfile disconnect from session;

数据文件位置调整

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:数据文件位置调整

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

1、关闭数据库
shutdown immediate;
2、移动数据文件
mv /u01/ora10g/oradata/ggtarget /u02/ora10g/oradata
3、数据库至于nomount状态
startup nomount;
4、创建pfile
create pfile from spfile;
5、修改pfile中control_files
6、使用pfile把数据库至于mount状态
shutdown immediate;
startup mount pfile=/u01/ora10g/product/10.2.0/db_1/dbs/initggtarge.ora;
7、修改文件位置

--查询select name from v$datafile;
alter database rename file '/u01/ora10g/oradata/ggtarge/system01.dbf' to '/u02/ora10g/oradata/ggtarge/system01.dbf';
alter database rename file '/u01/ora10g/oradata/ggtarge/undotbs01.dbf' to '/u02/ora10g/oradata/ggtarge/undotbs01.dbf';
alter database rename file '/u01/ora10g/oradata/ggtarge/sysaux01.dbf' to '/u02/ora10g/oradata/ggtarge/sysaux01.dbf';
alter database rename file '/u01/ora10g/oradata/ggtarge/users01.dbf' to '/u02/ora10g/oradata/ggtarge/users01.dbf';
 --查询select member from v$logfile;
alter database rename file '/u01/ora10g/oradata/ggtarge/redo01.log' to '/u02/ora10g/oradata/ggtarge/redo01.log';
alter database rename file '/u01/ora10g/oradata/ggtarge/redo02.log' to '/u02/ora10g/oradata/ggtarge/redo02.log';
--查询select name from v$tempfile;
alter database rename file '/u01/ora10g/oradata/ggtarge/temp01.dbf' to '/u02/ora10g/oradata/ggtarge/temp01.dbf';

8、创建spfile
create spfile to pfile;
9、重启数据库使用spfile启动
shutdown immediate;
startup;

rman之catalog管理

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:rman之catalog管理

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

1、catalog配置

--创建表空间
create tablespace cata datafile 'C:\oracle\product\10.2.0\oradata\rmanxff\cata01.dbf' size 1024m;
--创建用户
 create user cata identified by cata default tablespace cata quota unlimited on cata;
--授权用户
grant create session,resource,recovery_catalog_owner to cata;
--rman连接到catalog数据库rmanxff上
rman catalog cata/cata@rmanxff
--建立恢复目录
create catalog;
--rman连接到target数据库orcl上
connect target sys/xifenfei@orcl
--注册目标数据库
register database;
--catalog登录
rman target sys/xifenfei@orcl catalog cata/cata@rmanxff
--同步catalog
resync catalog;

控制文件中rman信息保存的时间由control_file_record_keep_time参数决定
2、rman的脚步管理

--创建脚步
create script b{
 backup incremental level 0
 format 'c:\temp\l0_%U.bak' database;
 sql 'alter system archive log current';}
--执行脚本
run{execute script b;}
--print脚步
print script b;
--修改脚本
 replace script b
{backup database format 'c:\temp\11_%U.bak';
sql 'alter system archive log current';}
--删除脚本
delete script b;
--列车脚本
list script names;
--脚本导出到文件
print script b to file 'c:\a.txt';
--文件导入成脚本
create script a from file 'c:\a.txt';
--通过文件修改脚步
replace script b from file 'c:\a.txt';

oracle之数据备份恢复——不完全恢复

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:oracle之数据备份恢复——不完全恢复

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

一、用户管理备份的数据库
1、restore备份的数据库
2、startup nomount/mount(看具体情况,如果和控制文件要nomount)
3、三种恢复方式选择
recover database until change scn
recover database until time ‘yyyy-mm-dd hh24:mi:ss’
recover database until cancel
如果利用备份控制文件恢复
在3的后面加上using backup controlfile
4、alter database open resetlogs
二、rman备份的数据库
run{
startup mount;
sql “alter session set nls_date_format =”yyyy-mm-dd hh24:mi:ss””;
set until time=’2010-09-01:20:25:29′;
restore database;
recover database;
alter database open resetlogs;}
使用set until time “to_date(‘2010-09-01:20:25:29′,’yyyy-mm-dd hh24:mi:ss’)”

oracle之备份恢复——数据库备份完全恢复

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:oracle之备份恢复——数据库备份完全恢复

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

一、noarchive模式下
1、如果不是磁盘损坏或者像转移数据文件路径,直接拷贝datafile、logfile、controlfile,tempfile文件到原来相对应目录即可
2、如果是磁盘损坏或者要转移路径(备份了全部文件)
1)创建pfile文件,并修改pfile中的controlfile的路径,指到新的控制文件路径,再使用pfile创建spfile(在nomount状态下)
2)启动数据库到mount状态,使用alter database rename file ‘oldname’ to ‘newname’,主要修改datafile、logfile、controlfile文件路径和文件名
3)alter database open
3、没有备份redo file文件
1)创建pfile文件,并修改pfile中的controlfile的路径,指到新的控制文件路径,再使用pfile创建spfile(在nomount状态下)
2)启动数据库到mount状态,使用alter database rename file ‘oldname’ to ‘newname’,主要修改datafile、tempfile,controlfile文件路径和文件名
3)recover database until cancel using backup controlfile;
4)alter database open resetlogs;重建日志文件
二、archive模式
如果是system、undo表空间,要在mount模式下恢复,其他表空间可以在open模式下,使用offline进行恢复,然后online
对表空间对应的datafile执行offline和online操作效果同tablespace
recover database(只能用于mount)
recover datafile(mount和open均可)
recover tablespace(只能用于open)
三、恢复没有备份的数据文件
1、非system表空间文件
2、该数据文件创建后的所有日志文件均存在
3、使用 alter database create datafile ‘filepath’创建文件
4、recover datafile 恢复
四、利用老controlfile文件在表空间有变动的情况下恢复
1、恢复老的controlfile文件到原来控制文件位置
2、recover database using backup controlfile ;尝试着恢复
3、利用日志文件(包括联机在线和归档日志)输入filename,先利用归档日志,然后利用联机日志,然后有数据文件错误的提示
4、查看v$datafile,利用alter database rename file修改奇怪命名的数据文件
如:alter database rename file ‘C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED0
0007’ to ‘C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\FF01.DBF’;
5、recover database using backup controlfile until cancel;
尝试归档日志和联机日志文件
6、alter database open resetlogs;成功
五、rman备份恢复(本脚本是datafile恢复实例)
run{set newname for datafile 7 to ‘C:\ORACLE\PRODUCT\10.2.0\ORADATA\xifenfei\FF01.DBF’;
restore datafile 7;
switch datafile 7;
recover datafile 7;
alter database open;}

oracle 之rman备份数据库

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:oracle 之rman备份数据库

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

1、备份整个数据库
backup database format ‘c:\rman\all_%U.bak’;
2、备份表空间
backup tablespace abc format ‘c:\rman\t_%U.bak’;
3、备份数据文件
1)backup datafile 5 format ‘c:\rman\d_%U.bak’;
2)backup datafile ‘C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ABC.DBF’
format ‘c:\rman\d_%U.bak’;
4、备份控制文件
backup current controlfile format ‘c:\rman\ctr_%U.ctl’;
5、备份数据文件同时备份控制文件
backup datafile 5 format ‘c:\rman\d_c_%U.bak’
include current controlfile;
6、备份spfile文件
backup spfile format ‘c:\rman\sp_%U.sp’;
7、备份日志文件
backup archivelog sequence between 38 and 41 format ‘c:\rman\ar_%U.log’
delete all input(可选项,表示备份日志文件后,删除原来日志文件);
8、备份数据库和日志文件
backup database plus archivelog format ‘c:\rman \d_ar_%U.d_a’;
9、copy功能(相当于用户管理备份)
backup as copy database format ‘c:\rman\%U.cy’;
copy datafile 5 to ‘c:\rman\d_%U.cy’;
note:backup as copy可以备份整个数据库
copy只能备份current controlfile、datafile、tablespace等,这个数据库不支持

oracle之用户管理备份

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:oracle之用户管理备份

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

一、冷备份
1、shutdown immedate
2、copy datafile/redofile/contorfile/spfile(pfile)/pwdfile
3、startup

--备份脚本(没备份spfile/pwdfile等文件)
sqlplus / as sysdba
set feedback off heading off verify off trimspool off
set pagesize 0 linesize 200
define dir='c:\user'
define ws='c:\user\user.sql'
spool &ws
select 'host copy '||name|| ' &dir' from v$datafile order by 1;
select 'host copy '||name|| ' &dir' from v$controlfile order by 1;
select 'host copy '||name|| ' &dir' from v$tempfile order by 1;
select 'host copy '||member|| ' &dir' from v$logfile order by 1;
select 'host copy '||value' &dir' from v$parameter where name like '%spfile%';--backup spfile
spool off
shutdown immediate
@&ws
startup

二、热备份
1)备份表空间
alter tablespace tabalepsacename begin backup;
copy
alter tablespace tabalepsacename endbackup;
2)备份整个数据库
alter database begin backup;
copy
alter database end backup;

--脚本备份表空间
set feedback off heading off verify off trimspool off
set pagesize 0 linesize 200
define dir='c:\user'
define ws='c:\user\user.sql'
define ts=&tablespace
alter tablespace &ts begin backup;
spool &ws
select 'host copy '|| file_name || ' &dir' from dba_data_files where tablespace_name =UPPER('&ts');
spool off
@&ws
alter tablespace &ts end backup;
--脚本备份整个数据库
set feedback off heading off verify off trimspool off
set pagesize 0 linesize 200
define dir='c:\user'
define ws='c:\user\user.sql'
alter database begin backup;
spool &ws
select 'host copy '||name|| ' &dir' from v$datafile order by 1;
select 'host copy '||name|| ' &dir' from v$controlfile order by 1;
select 'host copy '||name|| ' &dir' from v$tempfile order by 1;
select 'host copy '||member|| ' &dir' from v$logfile order by 1;
select 'host copy '||value' &dir' from v$parameter where name like '%spfile%';--backup spfile
spool off
@&ws
alter database end backup;

3)备份数据文件
alter datafile 4 begin backup;
copy
alter datafile 4 end backup;
三、查看backup状态
select * from v$backup;

oracle之archive模式

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:oracle之archive模式

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

1、查看是否归档
archive log list;
2、开启归档模式

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

3、ARCn进程的数量
alter system set log_archive_max_processes=3;(最多十个)
4、自动归档
alter system set log_archive_start=true;(10g之后默认为true)
5、停止/启动归档(10g好像不行)
ALTER SYSTEM ARCHIVE LOG STOP;
alter system archive log start to ‘c:\temp’;
6、常用的归档操作
alter system archive log current ;
alter system switch logfile;
7、log_archive相关参数

alter system set log_archive_dest_1='location=c:\temp mandatory reopen=500';
--mandatory必须归档成功,optional表示归档不一定要求成功
--reopen每5秒重试一次
--log_archive_dest_n最多可以配置10个,从1开始(可以是service)
Alter system set log_archive_min_succeed_dest=2;
--表示要求最少的归档成功的数目,如果mandatory大于该值,就以mandatory为准
Alter system set log_archive_dest_state_3=defer;
--defer表示延迟启用,enable表示启用

oracle 之instance recovery

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:oracle 之instance recovery

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

1、设置mttr(两次故障时间间隔)
fast_start_mttr_target=300
2、通过设置checkpoint相关参数
log_checkpoint_interval(checkpoint发生的块数)
log_checkpoint_timeout(checkpoint发生的时间间隔)
3、instance recovery相关视图
v$instance_recovery(相关信息汇总)
v$fast_start_servers(相关slaves进程信息)
v$fast_start_transactions(相关回滚事务信息)
4、恢复时的进程并发数
recovery_parallelism(前滚)可选值为int
fast_start_parallel_rollback(回滚)可选值为string类型:high/low/false