All about Data Guard(五)
list;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
二、 手把手的创建物理standby
1、 创建备份(手工复制数据文件或通过RMAN) ---primary库操作
2、 创建控制文件 --primary库操作
通过下列语句为standby数据库创建控制文件
SQL> alter database create standby controlfile as 'd:\backup\jsspdg01.ctl';
注意哟,控制文件通常需要有多份,你要么手工将上述文件复制几份,要么用命令多创建几个出来。另外,创建完控制文件之后到standby数据库创建完成这段时间内,要保证primary数据库不再有结构性的变化(比如增加表空间等等),不然primary和standby同步时会有问题。
3、 创建初始化参数文件
创建客户端初始化参数文件
例如:
SQL> create pfile='d:\backup\initjsspdg.ora' from spfile;
修改初始化参数文件中的参数
根据实际情况修改吧,注意primary和standby不同角色的属性配置,注意文件路径。
4、 复制文件到standby服务器
至少三部分:数据文件,控制文件,修改过的初始化参数文件,注意路径。
5、 配置standby数据库
1) . 创建新的OracleService(
windows环境下需要)。
2) . 创建密码文件,注意保持密码与primary数据库一致。
3) . 配置监听并启动
4) . 修改primary和standby的tnsnames.ora,各自增加对应的Net Service Name。
5) . 创建服务器端的初始化文件
6、 启动standby
注意哟,咱们前面说过的,物理standby极少情况下可以以read-write模式打开,某些情况下可以以read-only模式打开,所以默认情况下,加载到mount状态即可。
SQL> STARTUP MOUNT;
启动redo应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
启动实时应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
提示: disconnect from session 子句并非必须,该子句用于指定启动完应用后自动退出到命令操作符前,如果不指定的话,当前session就会一直停留处理redo应用,如果想做其它操作,就只能新建一个连接。
7、 停止standby
正常情况下,我们停止也应该是先停止redo应用,可以通过下列语句:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CALCEL;
然后再停止standby数据库
SQL> SHUTDOWN IMMEDIATE;
当然你非要直接shutdown也没问题,dg本来就是用于容灾的,别说你生停standby,就是直接拔电源也不怕。
第二部分 物理standby(2)创建示例
为了最大的降低硬件需求,此处创建的data guard处于同一台机器,但其创建过程与多机并无区别。做为演示用的示例足够了,我们分两阶段配置,分别是配置primary数据库和配置standby数据库,如下:
一、 Primary 数据库配置及相关操作
1、 确认主库处于归档模式
SQL> archive log list;
2、 将primary数据库置为FORCE LOGGING模式。通过下列语句:
SQL> alter database force logging;
3、 创建standby数据库控制文件
SQL> alter database create standby controlfile as 'd:\backup\jsspdg01.ctl';
4、 创建primary数据库客户端初始化参数文件
注:主要此处修改项较多,为了方便,我们首先创建并修改pfile,然后再通过pfile重建spfile,你当然也可以通过alter system set命令直接修改spfile内容。
SQL> create pfile from spfile;
将该初始化参数文件复制一份,做为standby数据库的客户端初始化参数文件
SQL> host copy e:\ora10g\product\10.2.0\db_1\database\initjssweb.ora d:\backup\initjsspdg.ora
修改客户端初始化参数文件,增加下列内容
DB_UNIQUE_NAME=jssweb
LOG_ARCHIVE_CONFIG='DG_CONFIG=(jssweb,jsspdg)'
LOG_ARCHIVE_DEST_1='LOCATION=E:\ora10g\oradata\jssweb\ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jssweb'
LOG_ARCHIVE_DEST_2='SERVICE=jsspdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jsspdg'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
#-------- 配置standby角色的参数用于角色转换
FAL_SERVER=jsspdg
FAL_CLIENT=jssweb
DB_FILE_NAME_CONVERT='oradata\jsspdg','oradata\jssweb'
LOG_FILE_NAME_CONVERT='oradata\jsspdg','oradata \jssweb'
STANDBY_FILE_MANAGEMENT=AUTO
SQL> shutdown immediate
SQL> create spfile from pfile='initjssweb.ora';
5、 复制数据文件到stand