STANDBY 创建步骤 (分行数据库uweb)
环境:
104 主库数据库环境
89 备库数据库环境
一: 主库环境(104)
1: 主库Enable Force Logging
ALTER DATABASE FORCE LOGGING;
2:主库配置 Standby Redo Log
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/rman/standby_log/redo1_1.log' size 314572800;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 '/rman/standby_log/redo2_1.log' size 314572800;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 '/rman/standby_log/redo3_1.log' size 314572800;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 '/rman/standby_log/redo7_1.log' size 314572800;
二:tnsnames.ora下添加
1:104环境
uweb=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.160.1.104)(PORT = 1521))
)
(CONNECT_DATA =
(SID = uweb)
)
)
uweb2=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.160.67.104)(PORT = 1521))
)
(CONNECT_DATA =
(SID = uweb2)
)
)
测试:
sqlplus system/system@uweb
sqlplus system/system@uweb2
2:89环境:
uweb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.160.1.104)(PORT = 1521))
)
(CONNECT_DATA =
(SID = uweb)
)
)
uweb2=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.160.67.104)(PORT = 1521))
)
(CONNECT_DATA =
(SID = uweb2)
)
)
Sqlplus system/system@uweb
Sqlplus system/system@uweb2
三:更改参数
1:备份主环境spfile (104)
create pfile='/home/oracle/inituweb_bak.ora from spfile;
2: 修改主环境spfile(104) 见附件(beadb_pfile.ora)
Alter system set log_archive_dest_1='location=/rman/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=uweb';
Alter system set LOG_ARCHIVE_DEST_2='SERVICE=uweb2 OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=uweb2';
Alter system set DB_UNIQUE_NAME=uweb scope=spfile;
Alter system set SERVICE_NAMES=uweb scope=spfile;
Alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(uweb,uweb2)';
Alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;
Alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;
Alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
Alter system set STANDBY_FILE_MANAGEMENT=AUTO;
Alter system set INSTANCE_NAME=uweb scope=spfile;
Alter system set FAL_SERVER=uweb2;
Alter system set FAL_CLIENT=uweb;
3: 修改standby pfile 见附件(beadb2_pfile.ora)(89环境)
/home/oracle/uweb2pfile.ora
4: 创建spfile (89环境)
create spfile from pfile='/home/oracle/uweb2pfile.ora';
四:RMAN备份主库(104)
1:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archive
Oldest online log sequence 1
Next log sequence to archive 1
Current log sequence 1
2:
rman target /
crosscheck archivelog all;
delete noprompt expired archivelog all;
crosscheck backup;
delete noprompt obsolete;
delete expired copy;
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
allocate channel c6 type disk;
backup database format '/rman/archive/rman/full_level_%U';
backup current controlfile format '/rman/archive/rman/control_bak_%T';
backup current controlfile for standby format '/rman/archive/rman/control_stdbak_%T';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
release channel c6;
}
delete archivelog all completed before 'sysdate-1/2';
shutdown immediate;
startup
3: 传输rman备份(主库与备库的rman路径需要一致)
scp /rman/archive/rman/* 10.161.67.104:/rman/archive/rman
五:创建并拷贝密码文件
1:
创建主库密码文件(查看是否存在)不存在即创建 (104环境)
orapwd file='$ORACLE_HOME/dbs/orapwuweb' password=sys;
orapwd file='$ORACLE_HOME/dbs/orapwuweb2' password=sys
2:拷贝密码文件
echo $ORACLE_HOME
scp $ORACLE_HOME/dbs/orapwuweb 192.168.143.219:/oracle/product/10.2.0/db_1/dbs/orapwuweb2
六:standby环境创建目录
cd $ORACLE_BASE/admin/uweb2
mkdir adump udump bdump cdump
七:使用RMAN Duplicate 创建standby 数据库
1:备库上将数据库打开至nomount状态
sqlplus “/as sysdba”
Sql>startup nomount;
2:在主库上执行(104环境)
Sql>alter system archive log current;
3: 备库上利用RMAN恢复数据库
rman target sys/sys@uweb auxiliary /
run {
allocate auxiliary channel c1 type disk;
allocate auxiliary channel c2 type disk;
allocate auxiliary channel c3 type disk;
allocate auxiliary channel c4 type disk;
allocate auxiliary channel c5 type disk;
allocate auxiliary channel c6 type disk;
duplicate target database for standby dorecover nofilenamecheck;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
release channel c6;
}
4: 备库上创建standby redo log(如不存在的话)
备库执行
Select * from v$standby_log;
(如不存在standby redo log的话,执行以下命令创建standby redo log)。
alter database recover managed standby database cancel;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 1 '/rman/standby_log/redo1_1.log' size 314572800;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 2 '/rman/standby_log/redo2_1.log' size 314572800;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 3 '/rman/standby_log/redo3_1.log' size 314572800;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 '/rman/standby_log/redo7_1.log' size 314572800;
5:将备库数据库置于恢复模式
备库执行
select name,db_unique_name,database_role from v$database;
alter database recover managed standby database disconnect;
主库执行:
alter system set log_archive_dest_state_2 = 'defer';
alter system set log_archive_dest_state_2 = 'enable';
SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
select name,database_role,switchover_status from v$database;
八:查看主库与备库是否一致
主库上执行:
alter system switch logfile;
语句一:主库上执行:
SELECT THREAD# "Thread",SEQUENCE# "Last Sequence Generated"
FROM V$ARCHIVED_LOG
WHERE (THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)
ORDER BY 1;
语句二:备库上执行:
SELECT ARCH.THREAD# "Thread", ARCH.SEQUENCE# "Last Sequence Received", APPL.SEQUENCE# "Last Sequence Applied", (ARCH.SEQUENCE# - APPL.SEQUENCE#) "Difference"
FROM
(SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH,
(SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL
WHERE
ARCH.THREAD# = APPL.THREAD#
ORDER BY 1;
语句三: 主库与备库均执行
SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
1. Check for GAP on standby
查看语句三的执行结果:
(结果必须均为no row select,如果存在查询结果,表示在备库上缺少归档日志)
2. 查看日志接受情况
查看语句一与语句二的执行结果
主库上的Last Sequence Generated 值必须与备库上的Last Sequence Generated一致,如果不一致代表主库与备库不一致。
3. 查看备库上日志应用情况
查看语句二的执行结果
字段Difference的值必须为0,为0代表已接受的日志已经被应用到备库上面,主库与备库一致。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22578826/viewspace-663030/ ,如需转载,请注明出处,否则将追究法律责任。