Data Guard安装及测试
上一篇 / 下一篇 2008-04-13 20:15:31 / 个人分类:Oracle
说明:原创文档,转载请说明出处,谢谢~~
Data Guard安装及测试
目录
1. 安装主数据库... 2
1.1.1. 验证所需程序包... 2
1.1.2. 配置/etc/hosts. 3
1.1.3. 创建 Oracle 组和用户帐户... 3
1.1.4. 创建挂载点... 3
1.1.5. 配置内核参数... 3
1.1.6. 为 oracle 用户设置 Shell 限制... 4
1.2. 安装数据库软件... 5
1.3. 创建数据库... 5
1.3.1. 设置环境变量... 5
1.3.2. 建库... 5
1.3.3. 配置Listener 7
1.3.4. 其他设置... 7
2. 使用冷备创建物理STANDBY. 8
2.1. 主库设置准备... 8
2.1.1. 启用归档模式... 8
2.1.2. 创建密码文件... 9
2.1.3. 启用force logging. 9
2.1.4. 创建备库初始化文件(重要)... 9
2.2. STANDBY的建立... 10
3. 使用RMAN创建物理STANDBY. 12
4. 参数设置... 13
4.1. 日志传输服务... 13
4.1.1. LOG_ARCHIVE_DEST_n. 13
4.1.2. LOG_ARCHIVE_LOCAL_FIRST. 13
4.1.3. LGWR. 13
4.1.4. AFFIRM.. 13
4.1.5. NET_TIMEOUT. 13
4.1.6. REOPEN.. 13
4.1.7. MAX_FALURE. 13
4.1.8. VALID_FOR. 14
4.2. 备用重做日志... 14
4.3. 保护模式(PROTECTION MODE)... 14
4.3.1. 最大保护... 14
4.3.2. 最大可用性... 14
4.3.3. 最大性能(默认)... 14
4.4. 网络断接解决方案... 14
4.5. 缺失的检测与消除... 15
4.5.1. 自动缺失消除... 15
4.5.2. FAL缺失消除... 15
4.6. STANBY_FILE_MANAGEMENT. 15
5. 角色转换... 15
5.1. 通过Switchover功能实现角色转换... 15
5.2. 通过故障切换实现角色转换... 16
1. 安装主数据库
OS:
[root@db111 oracle]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: FedoraCore
Description: Fedora Core release 6 (Zod)
Release: 6
Codename: Zod
数据库:
Hostname | IP | DatabaseType | DB_SID | TNS Alias |
db111 | 192.168.1.111 | primary | dgtest | db111 |
db112 | 192.168.1.112 | Physical Standby | dgtest | db112 |
1.1. 为 Oracle 配置 Linux
1.1.1. 验证所需程序包
# 从 Fedora Core 6 DVD 光盘文件
cd /media/dvd/Fedora/RPMS
rpm -Uvh setarch-*
rpm -Uvh --force tcl-*
rpm -Uvh --force libXau-devel-* libXp-*
rpm -Uvh compat-db-*
rpm -Uvh compat-libstdc++-33*
rpm -Uvh compat-libf2c-34-*
rpm -Uvh compat-gcc-34-*
rpm -Uvh libaio-*
rpm -Uvh compat-gcc-34-c++-*
rpm -Uvh compat-libstdc++-296*
rpm -Uvh compat-libgcc-296*
openmotiff已经从FC6的发布中去掉了。下载安装openmotif21-2.1.30-14.i386.rpm:
ftp://fr.rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/openmotif21-2.1.30-14.i386.rpm
验证已安装的程序包:
[root@db111 oracle]# rpm –qa make binutils gcc compat-db compat-gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel openmotif setarch
compat-gcc-c++、compat-libstdc++、compat-libstdc++-devel用上面方法查不到
[root@db111 oracle]# rpm -qa | grep compat-gcc-c++
1.1.2. 配置/etc/hosts
host文件不设置本机,可能导致安装时报ORA -00600错误。
[root@db111 ~]# more /etc/hosts
127.0.0.1 db111 localhost.localdomain localhost
192.168.1.111 db111 db111
192.168.1.112 db112 db112
1.1.3. 创建 Oracle 组和用户帐户
用户帐户名是oracle,组是oinstall和dba。在db111上以root执行:
[root@db111 ~]# /usr/sbin/groupadd oinstall
[root@db111 ~]# /usr/sbin/groupadd dba
[root@db111 ~]# /usr/sbin/useradd -m -g oinstall -G dba oracle
[root@db111 ~]# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
设置oracle帐户的口令
[root@db111 ~]# passwd oracle
1.1.4. 创建挂载点
创建存储 Oracle 10g 软件的挂载点。在db111上以 root执行:
[root@db111 ~]# mkdir /oracle/app/oracle
[root@db111 app]# chown -R oracle:oinstall /oracle/app/oracle
[root@db111 app]# chmod -R 775 /oracle/app/oracle
1.1.5. 配置内核参数
在db111上以 root执行:
[root@db111 app]# cat >> /etc/sysctl.conf <<EOF
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
EOF
[root@db111 app]# /sbin/sysctl –p
[root@db111 app]# more /etc/sysctl.conf
其中,kernel.shmmax是共享内存段最大尺寸,计算方法为:kernel.shmmax = 1024*1024*RAM(M)/2 (至少),kernel.shmmni是共享内存段最小尺寸。进入目录/proc/sys/kernel,可分别用命令:
#cat shmmax
#cat shmmni
#cat shmall
查看 kernel.shmmax 、kernel.shmmni、kernel.shmall的数值。
用命令:
#cat sem
可以查看kernel.sem的数值。其中, 250 是参数SEMMSL的值,32000是参数SEMMNS的值, 100是参数SEMOPM的值,而128则是参数SEMMNI的值。
当对/etc/sysctl.conf 文件和/etc/security/limits.conf文件修改并保存完毕后,请重新启动(reboot)系统,这样设置的这些参数才能生效。
改变当前内核参数的值,也可用命令 #/sbin/sysctl -p 来实现。
1.1.6. 为 oracle 用户设置 Shell 限制
Oracle 建议对每个 Linux 帐户可以使用的进程数量和打开文件的数量设置限制。
[root@db111 app]# cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
[root@db111 app]# cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF
[root@db111 app]# cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
[root@db111 app]# cat >> /etc/csh.login <<EOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
1.2. 安装数据库软件
[root@db111 ~]# xhost +
access contro disabled.clients can connect from any host
[oracle@db111 ~]$ export LC_ALL=C
[oracle@db111 ~]$./runInstaller -ignoreSysPrereqs
1、如果设置了环境变量DISPLAY,先到/home/oracle/.bash_profile中把DISPLAY删掉,然后打开一个新的终端(必须是图形界面下的Koncole,如果在文字界面下将不成功),以root登陆,输入如下命令:
#xhost +
如果成功,会输出其他用户可以连接此窗口的结果。
2、防止因为语言、字体设置的问题导致界面上都是“方框”乱码的情况,需先设置一下环境变量:
$ export LC_ALL=C
3、在终端中以oracle登陆,执行命令:
$./runInstaller
Oracle默认不支持Fedora,需要加上-ignoreSysPrereqs参数。
因为是新库,装完软件后,不装数据库直接升级至10.2.0.2
1.3. 创建数据库
1.3.1. 设置环境变量
[oracle@db111 ~]$ cd
[oracle@db111 ~]$ more .bash_profile
export LC_ALL=C
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_LANG=american_america.ZHS16GBK
export NLS_DATE_LANGUAGE="SIMPLIFIED CHINESE"
PATH=$PATH:$HOME/bin
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export PATH
1.3.2. 建库
[oracle@db111 ~]$cd $ORACLE_HOME/bin
[oracle@db111 ~]$./dbca
这里需要注意选择正确的process、字符集,以免事后修改。
设置环境变量
export ORACLE_SID=dgtest
1.3.3. 配置Listener
[oracle@db111 ~]$cd $ORACLE_HOME/bin
[oracle@db111 ~]$./netca
或者$ORACLE_HOME/network/admin/listener.ora文件中增加:
(SID_DESC =
(GLOBAL_DBNAME = dbtest)
(ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1)
(SID_NAME = dbtest)
)
1.3.4. 其他设置
1、安装后FAILED_LOGIN_ATTEMPTS默认为10,改为UNLIMITED:
SQL> Select * From dba_profiles;
SQL> Alter Profile DEFAULT Limit FAILED_LOGIN_ATTEMPTS UNLIMITED;
2、初始化参数processes默认为150,sessions默认为170,分别进行修改后重起数据库服务:
SQL> alter system set sessions=665 scope=spfile;
SQL> alter system set processes=600 scope=spfile;
3、如果需要修改字符集,可按如下操作:
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1
将数据库字符集由WE8ISO8859P1改为ZHS16GBK
SQL> shutdown immediate
SQL> startup mount
SQL> alter system enable restricted session;
SQL> alter system set JOB_QUEUE_PROCESSES=0;
SQL> alter system set AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> alter database CHARACTER SET ZHS16GBK;
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:
SQL> alter database CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL> shutdown immediate
SQL> startup
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
实际测试发现INTERNAL_USE有时也会报ORA-12712
4、通过exp测试数据库
[oracle@db111 backup]$ exp System/123qwe file=test.dmp log=test.log wner=scott buffer=4096000 feedback=10000
……………………………………………
Export terminated successfully without warnings.
2. 使用冷备创建物理STANDBY
2.1. 主库设置准备
2.1.1. 启用归档模式
SQL> Select DBID,Name,LOG_MODE,FORCE_LOGGING From V$DATABASE;
DBID NAME LOG_MODE FORCE_
---------- ------------------ ------------------------ ------
1220643147 DB111 NOARCHIVELOG NO
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/oradata/dgtest/archive';
System altered.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = ENABLE;
System altered.
这里注意10g已经废弃LOG_ARCHIVE_START参数,如果这里设置了,启动会提示错误。
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MOUNT
SQL> ALTER DATABASE ARCHIVELOG;
Database altered.
SQL> ALTER DATABASE OPEN;
Database altered.
SQL> Select DBID,Name,LOG_MODE,FORCE_LOGGING From V$DATABASE;
DBID NAME LOG_MODE FOR
---------- --------- ------------ ---
1220648112 DB111 ARCHIVELOG YES
SQL> ARCHIVE LOG LIST;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /oradata/dgtest/archive
Oldest online log sequence 1
Next log sequence to archive 2
Current log sequence 2
2.1.2. 创建密码文件
SQL> Select Name,Type,Value From v$parameter Where Name Like '%password%';
NAME TYPE VALUE
---------- ---------- -----------------------------
remote_login_passwordfile 2 EXCLUSIVE
SQL> Alter System Set remote_login_passwordfile=exlusive scop=spfile;
[oracle@db111 db_1]$ cd $ORACLE_HOME/dbs
[oracle@db111 dbs]$ orapwd file=orapwdgtest password=123qwe
2.1.3. 启用force logging
SQL> ALTER DATABASE FORCE LOGGING;
Database altered.
SQL> select force_logging from v$database;
FOR
---
YES
注:取消强制logging,用
SQL> ALTER DATABASE NO FORCE LOGGING;
创建备用数据库的redo log
2.1.4. 创建备库初始化文件(重要)
主库中,创建备库需要的pfile文件,并copy至备库的到备库的$ORACLE_HOME/dbs下
SQL> create pfile=’/oradata/dgtest/initdgtest.ora’ from spfile;
主库pfile中需要增加的内容。修改pfile后重起数据库,使其生效。
*.DB_UNIQUE_NAME='db111'
*.log_archive_config='DG_CONFIG=(db111,db112)'
log_archive_dest_1=
'LOCATION=/oradata/dgtest/archive
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=DB111'
log_archive_dest_2=
'SERVICE=DB112
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=DB112'
*.log_archive_dest_state_1=ENABLE
*.log_archive_dest_state_2=ENABLE
## Standby Role Parameters ##
*.standby_file_management=AUTO
*.fal_server=db112
*.fal_client=db111
备库pfile中需要增加的内容。
*.DB_UNIQUE_NAME='db112'
*.log_archive_config='DG_CONFIG=(db111,db112)'
log_archive_dest_1=
'LOCATION=/oradata/dgtest/archive
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=DB112'
log_archive_dest_2=
'SERVICE=DB111
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=DB111'
*.log_archive_dest_state_1=ENABLE
*.log_archive_dest_state_2=ENABLE
## Standby Role Parameters ##
*.standby_file_management=AUTO
*.fal_server=db111
*.fal_client=db112
2.2. STANDBY的建立
1、在备库上安装Oracle软件。创建相应的路径,包括:
$ORACLE_BASE/admin/*
$ ORACLE_BASE/oradata
并设置与主库相同的环境变量。
2、配置主备库的listener.ora,tnsnames.ora,使之tnsping互通。
3、传输数据文件和日志文件
SQL> conn / as sysdba
Connected.
SQL> SELECT NAME FROM V$DATAFILE
UNION ALL
SELECT NAME FROM V$TEMPFILE
UNION ALL
SELECT MEMBER FROM V$LOGFILE;
关闭主库,将上面查询的所有数据文件和日志文件ftp到备库所在服务器的相同目录下。
4、启动主库,建立备库所需的CONTROLFILE
SQL> STARTUP
SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/oracle/app/oracle/oradata/dgtest/ control01_db112.ctl';
将控制文件、初始化文件ftp到备库的/oracle/app/oracle/oradata/dgtest/control01.ctl
并复制成三份:control01.ctl、control02.ctl、control03.ctl
5、创建备库的密码文件
[oracle@db112 admin]$ cd $ORACLE_HOME/dbs
[oracle@db112 dbs]$ orapwd file=orapwdgtest password=123qwe
6、mount备库
SQL> CREATE SPFILE FROM PFILE = '/oracle/app/oracle/product/10.2.0/db_1/dbs/initdgtest.ora';
SQL> startup mount
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
7、测试
主库运行:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> SELECT SEQUENCE#, DEST_ID, FIRST_TIME, NEXT_TIME
FROM V$ARCHIVED_LOG
WHERE FIRST_TIME > SYSDATE - 1
ORDER BY SEQUENCE#;
SEQUENCE# DEST_ID FIRST_TIME NEXT_TIME
---------- ---------- -------------- --------------
2 1 05-4月 -08 05-4月 -08
2 2 05-4月 -08 05-4月 -08
3 1 05-4月 -08 05-4月 -08
3 2 05-4月 -08 05-4月 -08
4 2 05-4月 -08 05-4月 -08
4 1 05-4月 -08 05-4月 -08
5 1 05-4月 -08 05-4月 -08
5 2 05-4月 -08 05-4月 -08
6 2 05-4月 -08 05-4月 -08
6 1 05-4月 -08 05-4月 -08
备库运行检查:
SQL> SELECT SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# APP
---------- ---
2 YES
3 YES
4 YES
5 YES
6 YES
8、只读方式打开备库
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ ONLY
只读方式打开时,备库停止接收archive log。
3. 使用RMAN创建物理STANDBY
目标库:主库,辅助库:备库,主库使用nocatalog方式作rman
创建步骤:
1、基本设置与冷备方式相同(初始化文件、tns、listener等等)
2、用RMAN创建目标库的全备
3、用RMAN创建备库控制文件
4、执行一些切换日志,记录最近日志序列号
5、将全备和控制文件备份copy到备库相同目录(需要性未测试)
6、nomount备库,在备库上执行恢复
[oracle@db111 ~]$ rman nocatalog target /
RMAN> backup full format '/oradata/dgtest/backup_%t_%s_%p' database;
RMAN> backup current controlfile for standby format='/oradata/dgtest/dg_cfile.%U';
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
61
备库nomount
SQL> startup nomount pfile='/oracle/app/oracle/product/10.2.0/db_1/dbs/initdgtest.ora';
复制、同步恢复
[oracle@db112 dbs]$ rman nocatalog
RMAN> connect targetsys/123qwe@db111
RMAN> connect auxiliary /
RMAN> run {
set until sequence = 61 thread = 1;
duplicate target database for standby
dorecover nofilenamecheck;}
[oracle@db112 dbs]$ ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
4. 参数设置
4.1. 日志传输服务
4.1.1. LOG_ARCHIVE_DEST_n
LOCATION= 本地传输重做日志
SERVICE= 重做日志传输到远程主机
log_archive_dest_state_n=DEFER 停止该目标地的传输
4.1.2. LOG_ARCHIVE_LOCAL_FIRST
SQL> show parameter LOG_ARCHIVE_LOCAL_FIRST
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_local_first boolean TRUE
为TRUE,代表ARC进程将redo先写入本地目标文件,再产生另一个ARC进程把本archive redo log的数据传输到远程的目标文件中去。
为FALSE,ARC进程将redo以1M为单位,逐个目标文件的写。
4.1.3. LGWR
4.1.4. AFFIRM
4.1.5. NET_TIMEOUT
4.1.6. REOPEN
4.1.7. MAX_FALURE
4.1.8. VALID_FOR
4.2. 备用重做日志
4.3. 保护模式(PROTECTION MODE)
4.3.1. 最大保护
4.3.2. 最大可用性
4.3.3. 最大性能(默认)
主库
SQL> select DATABASE_ROLE,PROTECTION_MODE from v$database;
DATABASE_ROLE PROTECTION_MODE
---------------- --------------------
PRIMARY MAXIMUM PERFORMANCE
备库
SQL> select DATABASE_ROLE,PROTECTION_MODE from v$database;
DATABASE_ROLE PROTECTION_MODE
---------------- --------------------
PHYSICAL STANDBY MAXIMUM PERFORMANCE
4.4. 网络断接解决方案
在LOG_ARCHIVE_DEST_n中设置MAX_FAILURE、REOPEN、NET_TIMEOUT
例如:
log_archive_dest_2=
'SERVICE=DB112
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=DB112
MAX_FAILURE=3
REOPEN=5
NET_TIMEOUT=180'
4.5. 缺失的检测与消除
4.5.1. 自动缺失消除
4.5.2. FAL缺失消除
FAL_SERVER
FAL_CLIENT
4.6. STANBY_FILE_MANAGEMENT
5. 角色转换
5.1. 通过Switchover功能实现角色转换
首先要断开所有的用户连接。
在主库操作:
SQL> conn / as sysdba
Connected.
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
SQL> alter database commit to switchover to physical standby with session shutdown;
Database altered.
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1073741824 bytes
Fixed Size 1264916 bytes
Variable Size 264241900 bytes
Database Buffers 801112064 bytes
Redo Buffers 7122944 bytes
Database mounted.
在备库查看:
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
SQL> alter database commit to switchover to primary;
Database altered.
SQL> shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1073741824 bytes
Fixed Size 1264916 bytes
Variable Size 264241900 bytes
Database Buffers 801112064 bytes
Redo Buffers 7122944 bytes
Database mounted.
Database opened.
测试下是否转换成功:
新主库
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> SELECT SEQUENCE#, DEST_ID, FIRST_TIME, NEXT_TIME
FROM V$ARCHIVED_LOG
WHERE SEQUENCE#>32
ORDER BY SEQUENCE#;
新备库因为刚刚mount,最好能恢复一下,再查看
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
SQL> SELECT SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG WHERE SEQUENCE#>32 ORDER BY SEQUENCE#;
5.2. 通过故障切换实现角色转换
测试思路:
1、主库停止向备库写日志
2、主库做DML,DDL操作,切换日志
3、主库停库,停监听
4、拷贝主库archive log到备库
5、故障切换
主库:
SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=defer scope=both;
System altered.
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> Create Table t_test1 As Select * From dba_segments;
SQL> Create Table aaa As Select * From all_objects;
SQL> Drop Table test;
SQL> Create Table test (mem Varchar2(10));
SQL> COMMIT;
SQL> Insert Into test Values('aaa');
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> Insert Into test Values(‘bbb’);
SQL> COMMIT;
SQL> shutdown immediate;
拷贝archivelog 文件到备库。备库注册归档日志:
SQL> alter database register physical logfile '/oradata/dgtest/archive/1_39_651247051.dbf';
………………….
SQL> alter database register physical logfile '/oradata/dgtest/archive/1_46_651247051.dbf';
执行恢复:
10gR2开始,不需要skip standby logfile选项。
SQL> alter database recover managed standby database finish;
Database altered.
将备库转换成主库并重起:
SQL> alter database commit to switchover to primary;
Database altered.
SQL> shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG:


