RMAN duplicate 方式 做个备库
采用RMAN duplicate 方式做备库 可以说是ORACLE 公司对 以前做DATA GUARD 方式的 用户友好性的提升.
这样我们不用去 备份数据文件,然后网络传送, 再还原恢复操作了.
这里就一个简单的命令搞定一切
那就是
duplicate target database for standby from active database nofilenamecheck;
0 前提是你已经搞定了 LISTENER.ORA TNS_NAME.ORA 和环境变量`/.bash_profile
里面的名字关系.
1 设置主库归档模式和强制模式
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE FORCE LOGGING;
2 修改主库参数
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DBMAST,DBSALVE,DBSALVE2)' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=DBSALVE LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DBSALVE' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='SERVICE=DBSALVE2 LGWR ASYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DBSALVE2' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='DEFER' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3='DEFER' SCOPE=BOTH;
ALTER SYSTEM SET FAL_SERVER=DBSALVE SCOPE=BOTH;
ALTER SYSTEM SET FAL_CLIENT=DBMAST SCOPE=BOTH;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=BOTH;
2 创建备用库参数文件
create pfile='/home/oracle/initDBSALVE.ora' from spfile;
3 把监听,密码文件 TNSNAME.ORA 传到备库
3.5 重新创建密码方法: orapwd file=orapwdbt password=lotery1401 entries=10
创建完了后要从主库复制过去,才能保持一致,并且备库要重启才能应用新的密码文件
4 备库操作
修改监听文件,改名密码文件,修改TNSNAME.ORA
创建相应的目录,审计目录,数据文件目录,日志目录
修改备用库参数文件
注意各个名字,除了DB_NAME 跟主库一样外.如果只是复制一个数据库,则全部都不一样.
日志文件转换,数据文件转换,目录要重新检查一遍.
*.audit_file_dest='/u01/app/software/oracle/admin/DBSALVE/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u04/DBSALVE/control01.ctl','/u02/fast_recovery_area/DBSALVE/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='DBMAST'
*.db_unique_name='DBSALVE'
*.service_names='DBSALVE'
*.db_file_name_convert='/u04/DBMAST','/u04/DBSALVE'
*.log_file_name_convert='/u01/online_log_flash/DBMAST','/u02/onlinelog/DBSALVE'
*.db_recovery_file_dest='/u02/fast_recovery_area'
*.db_recovery_file_dest_size=1073741824
*.diagnostic_dest='/u01/app/software/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=DBMASTXDB)'
*.fal_client='DBSALVE'
*.fal_server='DBMAST'
*.log_archive_config='DG_CONFIG=(DBMAST,DBSALVE,DBSALVE2)'
*.log_archive_dest_1='LOCATION=/u05/arch_backup'
*.log_archive_dest_2='SERVICE=DBMAST LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DBMAST'
*.LOG_ARCHIVE_DEST_3='SERVICE=DBSALVE2 LGWR ASYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DBSALVE2'
*.log_archive_dest_state_2='DEFER'
*.log_archive_dest_state_3='DEFER'
*.log_archive_format='%t_%s_%r.archlog'
*.memory_target=445644800
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
5 启动实列
ORACLE] sqlplus / as sysdba
startup nomount pfile=$ORACLE_HOME/dbs/initDBSALVE.ora;
6 开始复制
ORACLE] rman target sys/oracle@DBMAST auxiliary sys/oracle@DBSALVE
--该命令只是复制出一个一样的数据库
duplicate target database to DBSALVE from active database nofilenamecheck;
--这个是复制出一个备用库
duplicate target database for standby from active database nofilenamecheck;
--如果数据库很大的话
run
{
allocate channel p1 type disk;
allocate channel p2 type disk;
allocate auxiliary channel a1 type disk;
duplicate target database for standby from active database nofilenamecheck;
};
注意 这里最好不用把参数放进这里面跑,如果参数不对要重跑一次,另外不要在RMAN这里
执行SQL语句和shutdown操作. 因为你不清楚目前连接的是什么数据库.
6.5 运行信息参考后面
6.6 执行完了后它会把备库启动在MOUNT下
7 备库添加日志
alter database add standby logfile group 4 '/u02/onlinelog/DBSALVE/standby_redo04.log' size 50m;
alter database add standby logfile group 5 '/u02/onlinelog/DBSALVE/standby_redo05.log' size 50m;
alter database add standby logfile group 6 '/u02/onlinelog/DBSALVE/standby_redo06.log' size 50m;
alter database add standby logfile group 7 '/u02/onlinelog/DBSALVE/standby_redo07.log' size 50m;
8主库添加日志
alter database add standby logfile group 4 '/u01/online_log_flash/DBMAST/standby_redo04.log' size 50m;
alter database add standby logfile group 5 '/u01/online_log_flash/DBMAST/standby_redo05.log' size 50m;
alter database add standby logfile group 6 '/u01/online_log_flash/DBMAST/standby_redo06.log' size 50m;
alter database add standby logfile group 7 '/u01/online_log_flash/DBMAST/standby_redo07.log' size 50m;
9 备库启动恢复模式
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
10 主库开始向备库传日志
alter system set log_archive_dest_state_2='enable' scope =both;
11 当主备库日志一致后 开启备库只读模式
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ALTER DATABASE OPEN read only;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
12
检查最大归档
SELECT THREAD#,MAX(SEQUENCE#) FROM V$ARCHIVED_LOG GROUP BY THREAD#;
select thread#,applied,t.DELETED,t.ARCHIVED,max(sequence#) from v$archived_log t where applied='YES'group by thread#,applied,t.DELETED,t.ARCHIVED;
select thread#,applied,max(sequence#) from v$archived_log t where applied='YES'group by thread#,applied;
备库检查
查看数据库角色
col name format a10
SELECT NAME,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,DB_UNIQUE_NAME FROM V$DATABASE;
仅供参考
cat tnsnames.ora
orcl_pd =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.231)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
orcl_st =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.232)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
cat listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.231)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
RMAN> connect auxiliary sys/pbs123@orcl_st;
connected to auxiliary database: ORCL (not mounted)
RMAN> duplicate target database for standby from active database nofilenamecheck;
Starting Duplicate Db at 2016-04-28 02:31:19
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=189 device type=DISK
contents of Memory Script:
{
backup as copy reuse
targetfile '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl' auxiliary format
'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl' ;
}
executing Memory Script
Starting backup at 2016-04-28 02:31:19
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=35 device type=DISK
Finished backup at 2016-04-28 02:31:21
contents of Memory Script:
{
backup as copy current controlfile for standby auxiliary format '/u01/app/oracle/oradata/orcl/control01.ctl';
restore clone controlfile to '/u01/app/oracle/flash_recovery_area/orcl/control02.ctl' from
'/u01/app/oracle/oradata/orcl/control01.ctl';
}
executing Memory Script
Starting backup at 2016-04-28 02:31:21
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
output file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f tag=TAG20160428T023121 RECID=254 STAMP=910319481
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 2016-04-28 02:31:24
Starting restore at 2016-04-28 02:31:24
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: copied control file copy
Finished restore at 2016-04-28 02:31:25
contents of Memory Script:
{
sql clone 'alter database mount standby database';
}
executing Memory Script
sql statement: alter database mount standby database
contents of Memory Script:
{
set newname for tempfile 1 to
"/u01/app/oracle/oradata/orcl/temp01.dbf";
switch clone tempfile all;
set newname for datafile 1 to
"/u01/app/oracle/oradata/orcl/system01.dbf";
set newname for datafile 2 to
"/u01/app/oracle/oradata/orcl/sysaux01.dbf";
set newname for datafile 3 to
"/u01/app/oracle/oradata/orcl/undotbs01.dbf";
set newname for datafile 4 to
"/u01/app/oracle/oradata/orcl/users01.dbf";
set newname for datafile 5 to
"/u01/app/oracle/oradata/orcl/example01.dbf";
set newname for datafile 6 to
"/u01/app/oracle/oradata/orcl/osscdata.dbf";
set newname for datafile 7 to
"/u01/app/oracle/oradata/orcl/ccps.dbf";
set newname for datafile 8 to
"/u01/app/oracle/oradata/orcl/ccps1.dbf";
set newname for datafile 9 to
"/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf";
set newname for datafile 10 to
"/u01/app/oracle/oradata/orcl/CCPS_INX.dbf";
backup as copy reuse
datafile 1 auxiliary format
"/u01/app/oracle/oradata/orcl/system01.dbf" datafile
2 auxiliary format
"/u01/app/oracle/oradata/orcl/sysaux01.dbf" datafile
3 auxiliary format
"/u01/app/oracle/oradata/orcl/undotbs01.dbf" datafile
4 auxiliary format
"/u01/app/oracle/oradata/orcl/users01.dbf" datafile
5 auxiliary format
"/u01/app/oracle/oradata/orcl/example01.dbf" datafile
6 auxiliary format
"/u01/app/oracle/oradata/orcl/osscdata.dbf" datafile
7 auxiliary format
"/u01/app/oracle/oradata/orcl/ccps.dbf" datafile
8 auxiliary format
"/u01/app/oracle/oradata/orcl/ccps1.dbf" datafile
9 auxiliary format
"/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf" datafile
10 auxiliary format
"/u01/app/oracle/oradata/orcl/CCPS_INX.dbf" ;
sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /u01/app/oracle/oradata/orcl/temp01.dbf in control file
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting backup at 2016-04-28 02:31:31
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00008 name=/u01/app/oracle/oradata/orcl/ccps1.dbf
output file name=/u01/app/oracle/oradata/orcl/ccps1.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:02:06
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
output file name=/u01/app/oracle/oradata/orcl/sysaux01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
output file name=/u01/app/oracle/oradata/orcl/system01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:05
channel ORA_DISK_1: starting datafile copy
input datafile file number=00009 name=/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf
output file name=/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:45
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
output file name=/u01/app/oracle/oradata/orcl/undotbs01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
output file name=/u01/app/oracle/oradata/orcl/example01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/osscdata.dbf
output file name=/u01/app/oracle/oradata/orcl/osscdata.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=/u01/app/oracle/oradata/orcl/ccps.dbf
output file name=/u01/app/oracle/oradata/orcl/ccps.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00010 name=/u01/app/oracle/oradata/orcl/CCPS_INX.dbf
output file name=/u01/app/oracle/oradata/orcl/CCPS_INX.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
output file name=/u01/app/oracle/oradata/orcl/users01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2016-04-28 02:38:19
sql statement: alter system archive log current
contents of Memory Script:
{
switch clone datafile all;
}
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy RECID=254 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=255 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=256 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=257 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=258 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/example01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=259 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/osscdata.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=260 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/ccps.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=261 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/ccps1.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=262 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=263 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/CCPS_INX.dbf
Finished Duplicate Db at 2016-04-28 02:38:25
RMAN duplicate 方式 做个备库相关推荐
- Oracle 11g Dataguard 物理备库配置(一)之Duplicate配置
Oracle 11g Dataguard Duplicate物理备库配置(一)之物理备库创建配置 # ver:1.5 第五次修改 # modify: 2013.8.16 # author: koumm ...
- oracle dataguard in-memory,Oracle 11g Dataguard 物理备库配置(一)之Duplicate配置
Oracle 11g Dataguard Duplicate物理备库配置(一)之物理备库创建配置 # ver:1.5 第五次修改 # modify: 2013.8.16 # author: koumm ...
- Oracle主库、备库redo日志管理
文章目录 官方参考: 1.添加日志组以及日志成员 3.删除日志组或成员 3.1.日志的重定位及重命名 3.2.清空日志文件组 3.3.删除日志成员 3.4.删除日志组 5.删除单实例数据库多余节点的日 ...
- oracle的可读可写可执行,OracleDataGuard_备库以只读或读写方式打开访问
Oracle Data Guard_ 备库以只读或读写方式打开访问 Opening a Standby Database for Read-Only or Read/Write Access 8.2以 ...
- Oracle 12C 利用Rman Duplicate搭建 Data Guard
环境(备库只需要安装数据库软件): 主库:192.168.1.100 OS: CentOS 7.3 X64 DB: ORACLE12.2.0.1 SID ...
- DG备库磁盘空间满导致无法创建归档
上周五去某客户那里做数据库巡检.是window 2008系统上10g的一套NC系统的库,已经配置了DG,可是巡检时发现数据库报错: Tue Nov 11 10:13:57 2014 LNS: Stan ...
- 如何使用RMAN duplicate搭建12C的Data Guard环境?
墨墨导读:本文来自墨天轮用户投稿,介绍使用RMAN duplicate搭建12C的Data Guard环境的全过程. 1. 实验环境 2. 主端的数据库环境 [oracle@dg1 ~]$ sqlpl ...
- oracle dg备库恢复
standby在standby状态下的备份方式如下,生成一个控制文件备份control_1,一个数据文件备份full_data RMAN> backup database format '/is ...
- Oracle11g DG实战配置(Windows版)(五)主备库DG配置
5.1 DG主库配置(主库操作) 5.1.1 配置Oracle Data Guard # 登录数据库 sqlplus / as sysdba # 查看数据库归档模式,确认Archivelog已启用 s ...
最新文章
- Linux下开发优秀链接
- AI帮你写Python,安装只需5步,还能任你调教 | 开源
- 渗透知识-CSRF攻击
- Spark SQL 源代码分析系列
- 使用VC++2015 实现XP按钮效果
- FileZilla 连接不上虚拟机 ubuntu
- Python爬虫开发:url中文字符编码的两种解决方式
- QML基础类型之enumeration
- HTML+CSS+JS实现 ❤️仿切水果小游戏❤️
- 虚方法的使用 c# 1613719803
- .net WebApi开发
- ping端口怎么ping_英雄联盟手游ping信号怎么发送 ping信号发送方法介绍_游戏攻略...
- Warning: Division by zero in 错误处理
- 软件测试三种错误的是,软件测试中的三种排错方法(知识篇)
- python 生成器_python 生成器 - 刘江的python教程
- js系列教程8-事件全解
- c# 找出目录下的所有子目录_C#遍历文件夹,其实只需要一句话!
- IDEA如何使用SVN插件
- 王学岗移动架构34——IOC注入框架设计
- 【Flink Rest-ful API 】