筹办已经安装完毕可以正常运行的RAC数据库,和一台安装完ORACLE软件已竖立数据库的。
RAC和单实例安装可以参考链接:
此中RAC做为DG的主库。
RAC
备库
以下:
[grid@bysrac1 ~]$ cat /etc/hosts
127.0.0.1
::1
192.168.1.221
192.168.1.226
192.168.1.222
192.168.1.227
192.168.10.1
192.168.10.2
192.168.1.228
192.168.1.211
[grid@bysrac1 ~]$ srvctl config database -d bysrac -a
Database unique name:
bysrac
Database name: bysrac
Oracle home:
/u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +BYSASMDATA/bysrac/spfilebysrac.ora
Domain:
Start
options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: bysrac
Database instances: bysrac1,bysrac2
Disk Groups: BYSASMDATA,BYSASMDG
备库:
[oracle@racdg ~]$ cat .bash_profile
ORACLE_BASE=/u01
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=racdg
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH:$HOME/bin
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"
SYS@bysrac1>archive log list
Database log mode
Automatic archival
Archive
destination
Oldest online log sequence
Next log sequence to archive
Current log sequence
SYS@bysrac1>show parameter recovery
NAME
------------------------------------ -----------
------------------------------
db_recovery_file_dest
db_recovery_file_dest_size
recovery_parallelism
SYS@bysrac1>select db_unique_name,name from
v$database;
DB_UNIQUE_NAME
------------------------------ ---------
bysrac
SYS@bysrac1>select name from
v$datafile;
NAME
----------------------------------------------------------------------------------------------------
+BYSASMDATA/bysrac/datafile/system.259.818615175
+BYSASMDATA/bysrac/datafile/sysaux.260.818615237
+BYSASMDATA/bysrac/datafile/undotbs1.261.818615291
+BYSASMDATA/bysrac/datafile/undotbs2.263.818615365
+BYSASMDATA/bysrac/datafile/users.264.818615419
+BYSASMDATA/bysrac/datafile/test1_undo.dbf
+BYSASMDATA/bysrac/datafile/test1.dbf
BYS@bysrac1>selectname,block_size*file_size_blks/1024/1024 as
bytes_m from
v$controlfile;
NAME
-------------------------------------------------- ----------
+BYSASMDATA/bysrac/controlfile/current.256.8186151
19
+BYSASMDG/bysrac/controlfile/current.256.818615127
BYS@bysrac1>select group#,member from v$logfile;
---------- --------------------------------------------------
SQL> alter system set standby_file_management=auto
scope=spfile;
SQL> alter system set
log_archive_config="DG_CONFIG=(bysrac,racdg)"scope=spfile;
SQL> alter system set
log_archive_dest_2="SERVICE=racdg
LGWRSYNC
SQL> alter system set fal_server=racdg
scope=spfile;
SQL> alter system set fal_client=bysrac;
SQL> alter system
setdb_file_name_convert="+BYSASMDATA/bysrac/datafile/","/u01/oradata/racdg","+BYSASMDATA/bysrac/tempfile/","/u01/oradata/racdg/"
scope=spfile;
SQL> alter system set
log_file_name_convert="+BYSASMDATA/bysrac/onlinelog/","/u01/oradata/racdg","+BYSASMDG/bysrac/onlinelog/","/u01/oradata/racdg/"
SQL>create pfile="/home/oracle/initaa.ora" from
spfile;
RAC的listener.ora
[oracle@bysrac1
BYSRAC =
racdg =
racdg的tnsnames.ora同上:
[oracle@racdg
admin]$ cat
listener.ora
LISTENER =
SID_LIST_LISTENER =
ADR_BASE_LISTENER = /u01
[oracle@bysrac1 dbs]$ ls
hc_bysrac1.dat
hc_DBUA0.dat
[oracle@bysrac1 dbs]$
oracle@racdg"s
password:
orapwbysrac1
[oracle@bysrac1
dbs]$ cd
[oracle@bysrac1 ~]$ ls
alert_bysrac1.log
Desktop
[oracle@bysrac1 ~]$
oracle@racdg"s
password:
inittest.ora
[oracle@racdg dbs]$ ls
inittest.ora
[oracle@racdg dbs]$ mv orapwbysrac1 orapwracdg
[oracle@racdg dbs]$ mv inittest.ora initracdg.ora
[oracle@racdg
dbs]$ ls
initracdg.ora
修改备库初始化参数文件,最末是那样:
注重面有:
db_file_name_convert时,由于利用ASM,DATAFILE 和TEMPFILE的皆要写上。
log_file_name_convert时,由于利用了正在差别磁盘组的多镜像,也需供皆写上。
audit_file_dest指定的目次要脚动往竖立。
control_files只管写一个,少失足。可以正在STANDBY备库竖立好后再促进镜像。
.log_archive_dest_1指定的目次要竖立一下。.log_archive_dest_2是为了SWITCHOVER
db_unique_name需供脚动促进上。
[oracle@racdg dbs]$ cat
initracdg.ora
*.audit_file_dest="/u01/admin/bysrac/adump"
*.audit_trail="db"
*.compatible="11.2.0.0.0"
*.control_files="/u01/oradata/racdg/control01.ctl"
*.db_block_size=8192
*.db_create_file_dest="/u01/oradata/racdg/"
*.db_domain=""
*.db_file_name_convert="+BYSASMDATA/bysrac/datafile/","/u01/oradata/racdg/","+BYSASMDATA/bysrac/tempfile/","/u01/oradata/racdg/"
*.db_name="bysrac"
*.db_recovery_file_dest="/u01/flash_recovery_area/"
*.db_recovery_file_dest_size=5218762752
*.diagnostic_dest="/u01"
*.fal_server="RACDG"
*.log_archive_config="DG_CONFIG=(bysrac,racdg)"
*.log_archive_dest_1="LOCATION=/u01/archracdg/"
*.log_archive_dest_2="SERVICE=bysrac1
LGWRSYNC
*.log_archive_format="arch_%r_%t_%s.arc"
*.log_file_name_convert="+BYSASMDATA/bysrac/onlinelog/","/u01/oradata/racdg/","+BYSASMDG/bysrac/onlinelog/","/u01/oradata/racdg/"
*.memory_target=741343232
*.open_cursors=300
*.processes=150
*.remote_listener="bysrac-cluster-scan:1521"
*.remote_login_passwordfile="exclusive"
*.standby_file_management="AUTO"
*.undo_tablespace="undotbs1"
*.db_unique_name="racdg"
racdg
[oracle@racdg admin]$ sqlplus sys/oraclesys@bysrac as
sysdba
SYS@bys1>
bysrac1
[oracle@bysrac1 admin]$ sqlplus sys/oraclesys@racdg as
sysdba
Connected to an idle
instance.
SYS@bysrac1>
SYS@bysrac1>alter system archive log current;
SYS@bysrac1>alter database create standby
controlfile as"/home/oracle/control01.ctl";
收收到备库的不异位置,前面光复数据库到备库时要用。
[oracle@bysrac1 ~]$
oracle@racdg"s
password:
control01.ctl
此时可以正在实拟机闭机做快照
[oracle@bysrac1 ~]$ rman target /
RMAN> backup database
format
[oracle@bysrac1 ~]$ du -sh racfull_*
766M
18M
[oracle@bysrac1 ~]$
oracle@racdg"s
password:
racfull_5_1
racfull_6_1
那边那边要注重的有要用用户名和暗码毗连主库和备库。
借有假设利用实拟机的话,性能也很重要,我正在那边那边便卡死机了一次。
[oracle@racdg ~]$ rman target sys/oraclesys@bysrac auxiliary
sys/oraclesys
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Aug 12
22:13:22 2013
Copyright (c) 1982, 2009, Oracle and/or its
affiliates.
connected to target database: BYSRAC (DBID=2573560818)
connected to auxiliary database: BYSRAC (not mounted)
RMAN> duplicate target database for standby;
Starting Duplicate Db at 12-AUG-13
using target database control file instead of recovery
catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK
contents of Memory Script:
{
}
executing Memory Script
Starting restore at 12-AUG-13
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: copied control file copy
input file name=/home/oracle/control01.ctl
output file name=/u01/oradata/racdg/control01.ctl
Finished restore at 12-AUG-13
contents of Memory Script:
{
}
executing Memory Script
sql statement: alter database mount standby database
contents of Memory Script:
{
"/u01/oradata/racdg/temp.262.818615321";
"/u01/oradata/racdg/system.259.818615175";
"/u01/oradata/racdg/sysaux.260.818615237";
"/u01/oradata/racdg/undotbs1.261.818615291";
"/u01/oradata/racdg/undotbs2.263.818615365";
"/u01/oradata/racdg/users.264.818615419";
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /u01/oradata/racdg/temp.262.818615321 in
control file
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 12-AUG-13
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from
backup set
channel ORA_AUX_DISK_1: restoring datafile 00001
to/u01/oradata/racdg/system.259.818615175
channel ORA_AUX_DISK_1: restoring datafile 00002
to/u01/oradata/racdg/sysaux.260.818615237
channel ORA_AUX_DISK_1: restoring datafile 00003
to/u01/oradata/racdg/undotbs1.261.818615291
channel ORA_AUX_DISK_1: restoring datafile 00004
to/u01/oradata/racdg/undotbs2.263.818615365
channel ORA_AUX_DISK_1: restoring datafile 00005 to
/u01/oradata/racdg/users.264.818615419
channel ORA_AUX_DISK_1: reading from backup piece
/home/oracle/racfull_5_1
channel ORA_AUX_DISK_1: piece
handle=/home/oracle/racfull_5_1tag=TAG20130812T200604
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time:
00:04:15
Finished restore at 12-AUG-13
contents of Memory Script:
{
}
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy RECID=2 STAMP=823299518 file
name=/u01/oradata/racdg/system.259.818615175
datafile 2 switched to datafile copy
input datafile copy RECID=3 STAMP=823299518
filename=/u01/oradata/racdg/sysaux.260.818615237
datafile 3 switched to datafile copy
input datafile copy RECID=4 STAMP=823299518 file
name=/u01/oradata/racdg/undotbs1.261.818615291
datafile 4 switched to datafile copy
input datafile copy RECID=5 STAMP=823299518
filename=/u01/oradata/racdg/undotbs2.263.818615365
datafile 5 switched to datafile copy
input datafile copy RECID=6 STAMP=823299518 file
name=/u01/oradata/racdg/users.264.818615419
Finished Duplicate Db
at 12-AUG-13
可以颠末进程select protection_mode,database_role,open_mode from
v$database;正在主备库少进行考据当前DG形式
同时可以正在备库上alter database recover managed standby database disconnect
fromsession;此时DG可以正常运行。
那边那边便不演示查询功能了,由于我正在下面一步要设置DG为最年夜可用形式。
正在备库要竖立STANDBY REDO LOGFILE。所要竖立正在的目次当然要先存正在了。
利用的语句以下:
alter database add standby logfile group 5"/u01/oradata/racdg/standbyredo/standbyredo05.log" size 50M;
alter database add standby logfile group 6"/u01/oradata/racdg/standbyredo/standbyredo06.log" size 50M;
alter database add standby logfile group 7"/u01/oradata/racdg/standbyredo/standbyredo07.log" size 50M;
alter database add standby logfile group 8"/u01/oradata/racdg/standbyredo/standbyredo08.log" size 50M;
alter database add standby logfile group 9"/u01/oradata/racdg/standbyredo/standbyredo09.log" size 50M;
BYS@racdg>select member from v$logfile;
MEMBER
----------------------------------------------------------------------------------------------------
/u01/oradata/racdg/group_1.257.818615137
/u01/oradata/racdg/group_1.257.818615145
/u01/oradata/racdg/group_2.258.818615153
/u01/oradata/racdg/group_2.258.818615163
/u01/oradata/racdg/group_3.265.818619941
/u01/oradata/racdg/group_3.259.818619949
/u01/oradata/racdg/group_4.266.818619961
/u01/oradata/racdg/group_4.260.818619967
/u01/oradata/racdg/standbyredo/standbyredo05.log
/u01/oradata/racdg/standbyredo/standbyredo06.log
/u01/oradata/racdg/standbyredo/standbyredo07.log
/u01/oradata/racdg/standbyredo/standbyredo08.log
/u01/oradata/racdg/standbyredo/standbyredo09.log
22:44:28
PROTECTION_MODE
-------------------- ---------------- --------------------
MAXIMUM
PERFORMANCE
22:47:13
NAME
------------------------------------ -----------
------------------------------
log_archive_dest_2
22:48:52 SYS@bysrac1>shutdown immediate;
22:50:00 SYS@bysrac1>startup mount;
ORACLE instance started.
Total System Global
Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Database mounted.
22:52:31 SYS@bysrac1>alter database set standbydatabase to maximize
availability;
Database altered.
22:53:48 SYS@bysrac1>alter database open;
Database altered.
22:55:56 SYS@bysrac1>select
protection_mode,database_role,open_mode fromv$database;
PROTECTION_MODE
-------------------- ---------------- --------------------
MAXIMUM
AVAILABILITY
###############################
22:58:17 SYS@racdg>shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
22:59:18 SYS@racdg>startup mount;
ORACLE instance started.
Total System Global
Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Database mounted.
22:59:45 SYS@racdg>selectprotection_mode,database_role,open_mode from
v$database;
PROTECTION_MODE
-------------------- ---------------- --------------------
MAXIMUM
AVAILABILITY
那边那边我要利用了11G新特性ACTIVE
STANDBY
SYS@racdg>alter database
open;
Database altered.
SYS@racdg>set time on
23:01:06 SYS@racdg>select
protection_mode,database_role,open_mode fromv$database;
PROTECTION_MODE
-------------------- ---------------- --------------------
MAXIMUM AVAILABILITY PHYSICAL STANDBY READ ONLY
23:01:08 SYS@racdg>
Database altered.
23:02:05 SYS@racdg>select
protection_mode,database_role,open_mode fromv$database;
PROTECTION_MODE
-------------------- ---------------- --------------------
MAXIMUM
AVAILABILITY
切换日志,并做DML操做
SYS@racdg>selectsequence#,status,thread#,block#
from v$managed_standby;
SEQUENCE# STATUS
---------- ------------ ---------- ----------
BYS@bysrac1>set time on
23:03:45 BYS@bysrac1>alter system switch
logfile;
System altered.
23:03:53 BYS@bysrac1>select
sequence#,status,thread#,block# fromv$managed_standby;
SEQUENCE# STATUS
---------- ------------ ---------- ----------