Oracle 11g DataGuard搭建(一)

(一)DataGuard概要

DataGuard中文称为”数据卫士“,提供了数据库高可用性、数据保护和灾难恢复的功能。DataGuard通过建立primary数据库和standby数据库来确立参照关系,DataGuard将主库(primary)的redo日志传递给备库(standby),然后在备库中应用redo进行同步。

备库又分为2种类型:物理备库和逻辑备库

  • 物理standby是通过块拷贝方式同步,通过接受并应用primary数据库的redo log,以介质恢复的方式同步。在物理备库中,数据是完全相同的,包括schema、表、索引都是一样的。
  • 逻辑standby是通过应用SQL语句进行同步,通过接收primary数据库的redo log并转换成sql语句。

物理备库在实际生产中使用较多,这里记录物理备库的搭建过程。

(二)DataGuard环境规划

 

主库

备库

操作系统

redhat 6.7 x86-64(64位)

redhat 6.7 x86-64(64位)

服务器名称

primarynode

standbynode

IP地址规划

192.168.10.51

192.168.10.52

---------------

-----------------------

----------------

数据库版本

11.2.0.4

11.2.0.4

db_name

adgdb

adgdb

db_unique_name

adgdb

adgdbstandby

instance_name

adgdb

adgdbstandby

service_name

adgdb

adgdb

数据库安装

安装数据库软件+创建监听+安装数据库

安装数据库软件+创建监听

常规配置:

( 1 )主库和备库hosts文件配置

[root@primarynode ~]# vim /etc/hosts

1127.0.0.1 localhost localhost.localdomain localhost4 2::1 localhost localhost.localdomain localhost6 3192.168.10.51 primarynode 4192.168.10.52 standbynode

(2)主库oracle用户环境配置

1[oracle@primarynode ~]$ more .bash_profile 2# .bash_profile 3 4# Get the aliases and functions 5if [ -f ~/.bashrc ]; then 6 . ~/.bashrc 7fi 8 9# User specific environment and startup programs 10 11PATH=$PATH:$HOME/bin 12 13ORACLE_SID=adgdb; export ORACLE_SID 14ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE 15ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME 16PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin; export PATH 17export TEMP=/tmp 18export TMPDIR=/tmp 19umask 022 20 21export PATH

(3)备库环境变量配置

1[oracle@standbynode ~]$ more .bash_profile 2# .bash_profile 3 4# Get the aliases and functions 5if [ -f ~/.bashrc ]; then 6 . ~/.bashrc 7fi 8 9# User specific environment and startup programs 10 11PATH=$PATH:$HOME/bin 12 13ORACLE_SID=adgdbstandby; export ORACLE_SID 14ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE 15ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME 16PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin; export PATH 17export TEMP=/tmp 18export TMPDIR=/tmp 19umask 022 20 21export PATH

(三)DataGuard主库配置

( 1 )主库启用强制记录日志功能

查询是否启用强制记录日志

select force_logging from v$database;

如果未启用,则使用下面语句来开启强制记录日志

alter database force logging;  --强制记录日志

( 2 )启用归档

查询是否启用归档

1archive log list 2--或者 3select log_mode from v$database;

如果未启用归档,可以按照如下步骤开启归档

1----Oracle 11g数据库归档模式开启 2 3--STEP1:以sysdba角色登陆数据库 4sqlplus / as sysdba 5 6--STEP2:干净的关闭数据库 7shutdown immediate 8 9--STEP3:将数据库启动到mount状态 10startup mount 11 12--STEP4:开启归档 13alter database archivelog; 14 15--STEP5:打开数据库 16alter database open

( 3 )主库参数配置
(3.1)db_unique_name

SQL> alter system set db_unique_name = 'adgdb' scope=spfile;

(3.2)log_archive_config

SQL> alter system set log_archive_config='DG_CONFIG=(adgdb,adgdbstandby)' scope=spfile;

(3.3)log_archive_dest_1

SQL> alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/product/11.2.0/db_1/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=adgdb' scope=both;

(3.4)log_archive_dest_2

SQL> alter system set log_archive_dest_2='SERVICE=tnsadgdbstandby LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=adgdbstandby' scope=spfile;

(3.5)log_archive_dest_state_1

alter system set log_archive_dest_state_1 = ENABLE;

(3.6)log_archive_dest_state_2

alter system set log_archive_dest_state_2 = ENABLE;

(3.7)db_file_name_convert
查看数据文件的位置:

1SQL> select name from v$datafile; 2NAME 3-------------------------------------------------- 4/u01/app/oracle/oradata/adgdb/system01.dbf 5/u01/app/oracle/oradata/adgdb/sysaux01.dbf 6/u01/app/oracle/oradata/adgdb/undotbs01.dbf 7/u01/app/oracle/oradata/adgdb/users01.dbf 8/u01/app/oracle/oradata/adgdb/example01.dbf

如果主库与备库数据文件位置不相同,则需要使用db_file_name_convert来转换。

SQL> alter system set db_file_name_convert='/u01/app/oracle/oradata/adgdbstandby','/u01/app/oracle/oradata/adgdb' scope=spfile;

(3.8)log_file_name_convert

查看在线日志文件的位置:

1SQL> select member from v$logfile; 2MEMBER 3-------------------------------------------------- 4/u01/app/oracle/oradata/adgdb/redo03.log 5/u01/app/oracle/oradata/adgdb/redo02.log 6/u01/app/oracle/oradata/adgdb/redo01.log

如果主库与备库在线日志文件位置不相同,则需要使用log_file_name_convert来转换。

SQL> alter system set log_file_name_convert='/u01/app/oracle/oradata/adgdbstandby','/u01/app/oracle/oradata/adgdb' scope=spfile;

(3.9)standby_file_management

SQL> alter system set standby_file_management=auto scope=spfile;

(3.10)fal_client

SQL> alter system set fal_client='tnsadgdb' scope=both;

(3.11)fal_server

SQL> alter system set fal_server='tnsadgdbstandby' scope=both;

( 4 )主库静态监听配置

[oracle@primarynode admin]$ vim listener.ora

1# listener.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora 2# Generated by Oracle configuration tools. 3 4LISTENER = 5 (DESCRIPTION_LIST = 6 (DESCRIPTION = 7 (ADDRESS_LIST = 8 (ADDRESS = (PROTOCOL = TCP)(HOST = primarynode)(PORT = 1521)) 9 ) 10 ) 11 ) 12 13SID_LIST_LISTENER = 14 (SID_LIST = 15 (SID_DESC = 16 (GLOBAL_DBNAME=adgdb) 17 (SID_NAME = adgdb) 18 (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) 19 ) 20 ) 21 22ADR_BASE_LISTENER = /u01/oracle

查看监听:
[oracle@primarynode admin]$ lsnrctl status

1LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 06-APR-2019 13:48:15 2 3Copyright (c) 1991, 2013, Oracle. All rights reserved. 4 5Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=primarynode)(PORT=1521))) 6STATUS of the LISTENER 7------------------------ 8Alias LISTENER 9Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production 10Start Date 06-APR-2019 13:42:48 11Uptime 0 days 0 hr. 5 min. 27 sec 12Trace Level off 13Security ON: Local OS Authentication 14SNMP OFF 15Listener Parameter File /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora 16Listener Log File /u01/app/oracle/product/11.2.0/db_1/network/log/listener.log 17Listening Endpoints Summary... 18 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=primarynode)(PORT=1521))) 19Services Summary... 20Service "adgdb" has 2 instance(s). 21 Instance "adgdb", status UNKNOWN, has 1 handler(s) for this service... 22 Instance "adgdb", status READY, has 1 handler(s) for this service... 23Service "adgdbXDB" has 1 instance(s). 24 Instance "adgdb", status READY, has 1 handler(s) for this service... 25The command completed successfully

( 5 )主库tnsnames.ora文件配置

[oracle@primarynode admin]$ vim tnsnames.ora

1tnsadgdb = 2 (DESCRIPTION = 3 (ADDRESS_LIST = 4 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.51)(PORT = 1521)) 5 ) 6 (CONNECT_DATA = 7 (SERVICE_NAME = adgdb) 8 ) 9 ) 10 11tnsadgdbstandby = 12 (DESCRIPTION = 13 (ADDRESS_LIST = 14 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.52)(PORT = 1521)) 15 ) 16 (CONNECT_DATA = 17 (SERVICE_NAME = adgdb) 18 ) 19 )

(四)DataGuard备库配置

( 1 )密码文件

在dataguard中,主库与备库sys密码需一致。可以将主库的密码文件拷贝到备库中

1--登陆到主库,将密码文件复制到备库 2[oracle@primarynode ~]$ cd $ORACLE_HOME/dbs 3[oracle@primarynode dbs]$ scp orapwadgdb 192.168.10.52:/u01/app/oracle/product/11.2.0/db_1/dbs 4oracle@192.168.10.52's password: 5orapwadgdb 100% 1536 1.5KB/s 00:00 6 7 8--登陆到备库,修改密码文件的名称 9[oracle@standbynode dbs]$ mv orapwadgdb orapwadgdbstandby

或者不拷贝密码文件,直接使用orapwd生成一个新的密码文件,密码需与主库一致:

orapwd file=orapwadgdbstandby password='oracle';

( 2 )初始化参数文件

(2.1)在主库生成初始化参数文件

1SQL> create pfile from spfile; 2File created.

(2.2)拷贝主库的参数文件到备库并重命名

1--在主库上执行复制操作 2[oracle@primarynode dbs]$ scp initadgdb.ora 192.168.10.52:/u01/app/oracle/product/11.2.0/db_1/dbs 3oracle@192.168.10.52's password: 4initadgdb.ora 100% 1524 1.5KB/s 00:00 5 6--在备库上执行重命名操作 7[oracle@standbynode dbs]$ mv initadgdb.ora initadgdbstandby.ora

(2.3)修改备库的参数文件内容

1--将初始化参数中的这些参数做修改,其他参数不用动 2db_name='adgdb' 3db_unique_name='adgdbstandby' 4audit_file_dest='/u01/app/oracle/admin/adgdbstandby/adump' 5compatible='11.2.0.4.0' 6control_files='/u01/app/oracle/oradata/adgdbstandby/control01.ctl','/u01/app/oracle/oradata/adbdbstandby/control02.ctl' 7log_archive_config='DG_CONFIG=(adgdb,adgdbstandby)' 8log_archive_dest_1='LOCATION=/u01/app/oracle/product/11.2.0/db_1/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=adgdbstandby' 9log_archive_desc_2='SERVICE=tnsadgdb LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NMAE=adgdb' 10db_file_name_convert='/u01/app/oracle/oradata/adgdb','/u01/app/oracle/oradata/adgdbstandby' 11log_file_name_convert='/u01/app/oracle/oradata/adgdb','/u01/app/oracle/oradata/adgdbstandby' 12fal_client='tnsadgdbstandby' 13fal_server='tnsadgdb' 14standby_file_management='AUTO'

注意:里面涉及到路径的需要手动创建

mkdir -p /u01/app/oracle/admin/adgdbstandby/adump

(2.4)使用pfile文件创建spfile文件

1--登陆到idle数据库 2sqlplus / as sysdba 3 4--创建spfile,可在$ORACLE_HOME/dbs下查看 5create spfile from pfile 6 7--启动数据库到nomount状态 8startup nomount

( 3 )配置静态监听

1[oracle@standbynode trace]$ cd /u01/app/oracle/product/11.2.0/db_1/network/admin/ 2[oracle@standbynode admin]$ touch listener.ora 3 4[oracle@standbynode admin]$ vim listener.ora 5# listener.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora 6# Generated by Oracle configuration tools. 7 8LISTENER = 9 (DESCRIPTION_LIST = 10 (DESCRIPTION = 11 (ADDRESS_LIST = 12 (ADDRESS = (PROTOCOL = TCP)(HOST = standbynode)(PORT = 1521)) 13 ) 14 ) 15 ) 16 17SID_LIST_LISTENER = 18 (SID_LIST = 19 (SID_DESC = 20 (GLOBAL_DBNAME=adgdb) 21 (SID_NAME = adgdbstandby) 22 (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) 23 ) 24 ) 25 26ADR_BASE_LISTENER = /u01/oracle

备注:备库为什么一定需要使用静态监听
nomount状态下必须使用静态监听才能连接到实例。

( 4 )配置tnsnames.ora文件,直接把主库的拷贝过来即可

1[oracle@standbynode trace]$ cd /u01/app/oracle/product/11.2.0/db_1/network/admin/ 2[oracle@standbynode admin]$ vim tnsnames.ora 3 4tnsadgdb = 5 (DESCRIPTION = 6 (ADDRESS_LIST = 7 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.51)(PORT = 1521)) 8 ) 9 (CONNECT_DATA = 10 (SERVICE_NAME = adgdb) 11 ) 12 ) 13 14tnsadgdbstandby = 15 (DESCRIPTION = 16 (ADDRESS_LIST = 17 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.52)(PORT = 1521)) 18 ) 19 (CONNECT_DATA = 20 (SERVICE_NAME = adgdb) 21 ) 22 )

( 5 )测试网络连通性

在主库与备库上均执行,确保可以正常访问:

1tnsping tnsadgdb 2tnsping tnsadgdbstandby

在主库:

1sqlplus sys/oracle@tnsadgdb as sysdba 2sqlpus sys/oracle@tnsadgdbstandby as sysdba

( 6 )参数检查

由于参数配置的较多,需要认真检查参数配置是否正确,主要检查这些参数

1.db_unique_name             :2个节点需要不一样
2.compatible                     :主库与备库兼容性需一致
3.log_archive_config           : 配置主库与备库的db_unique_name
4.log_archive_desc_1,2       :归档日志的路径
5.log_archive_desc_state_2 :
    enable -- 启用log_archive_desc_2
    defer    --禁用log_archive_desc_2
6.db_file_name_convert       :数据文件转换路径
7.log_file_name_convert      :日志文件转换路径
8.standby_file_management :设置为auto
9.log_archive_format          :日志文件格式,两边需一致

( 7 )使用duplicate创建物理standby

(7.1)连接到主库和备库

1## 一定要加nocatalog,否则在执行duplicate时会报错 2[oracle@primarynode ~]$ rman target sys/oracle@tnsadgdb auxiliary sys/oracle@tnsadgdbstandby nocatalog

(7.2)使用duplicate复制数据库

RMAN> duplicate target database for standby from active database nofilenamecheck;

执行过程见:

1RMAN> duplicate target database for standby from active database nofilenamecheck; 2 3Starting Duplicate Db at 06-APR-19 4allocated channel: ORA_AUX_DISK_1 5channel ORA_AUX_DISK_1: SID=248 device type=DISK 6 7contents of Memory Script: 8{ 9 backup as copy reuse 10 targetfile '/u01/app/oracle/product/11.2.0/db_1/dbs/orapwadgdb' auxiliary format 11 '/u01/app/oracle/product/11.2.0/db_1/dbs/orapwadgdbstandby' ; 12} 13executing Memory Script 14 15Starting backup at 06-APR-19 16allocated channel: ORA_DISK_1 17channel ORA_DISK_1: SID=23 device type=DISK 18Finished backup at 06-APR-19 19 20contents of Memory Script: 21{ 22ctl'; 23 restore clone controlfile to '/u01/app/oracle/oradata/adgdbstandby/control02.ctl' from 24 '/u01/app/oracle/oradata/adgdbstandby/control01.ctl'; 25} 26executing Memory Script 27 28Starting backup at 06-APR-19 29using channel ORA_DISK_1 30channel ORA_DISK_1: starting datafile copy 31copying standby control file 32183 33channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 34Finished backup at 06-APR-19 35 36Starting restore at 06-APR-19 37using channel ORA_AUX_DISK_1 38 39channel ORA_AUX_DISK_1: copied control file copy 40Finished restore at 06-APR-19 41 42contents of Memory Script: 43{ 44 sql clone 'alter database mount standby database'; 45} 46executing Memory Script 47 48sql statement: alter database mount standby database 49 50contents of Memory Script: 51{ 52 set newname for tempfile 1 to 53 "/u01/app/oracle/oradata/adgdbstandby/temp01.dbf"; 54 switch clone tempfile all; 55 set newname for datafile 1 to 56 "/u01/app/oracle/oradata/adgdbstandby/system01.dbf"; 57 set newname for datafile 2 to 58 "/u01/app/oracle/oradata/adgdbstandby/sysaux01.dbf"; 59 set newname for datafile 3 to 60 "/u01/app/oracle/oradata/adgdbstandby/undotbs01.dbf"; 61 set newname for datafile 4 to 62 "/u01/app/oracle/oradata/adgdbstandby/users01.dbf"; 63 set newname for datafile 5 to 64 "/u01/app/oracle/oradata/adgdbstandby/example01.dbf"; 65 backup as copy reuse 66 datafile 1 auxiliary format 67 "/u01/app/oracle/oradata/adgdbstandby/system01.dbf" datafile 68 2 auxiliary format 69 "/u01/app/oracle/oradata/adgdbstandby/sysaux01.dbf" datafile 70 3 auxiliary format 71 "/u01/app/oracle/oradata/adgdbstandby/undotbs01.dbf" datafile 72 4 auxiliary format 73 "/u01/app/oracle/oradata/adgdbstandby/users01.dbf" datafile 74 5 auxiliary format 75 "/u01/app/oracle/oradata/adgdbstandby/example01.dbf" ; 76 sql 'alter system archive log current'; 77} 78executing Memory Script 79 80executing command: SET NEWNAME 81 82renamed tempfile 1 to /u01/app/oracle/oradata/adgdbstandby/temp01.dbf in control file 83 84executing command: SET NEWNAME 85 86executing command: SET NEWNAME 87 88executing command: SET NEWNAME 89 90executing command: SET NEWNAME 91 92executing command: SET NEWNAME 93 94Starting backup at 06-APR-19 95using channel ORA_DISK_1 96channel ORA_DISK_1: starting datafile copy 97input datafile file number=00001 name=/u01/app/oracle/oradata/adgdb/system01.dbf 98output file name=/u01/app/oracle/oradata/adgdbstandby/system01.dbf tag=TAG20190406T160954 99channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:45 100channel ORA_DISK_1: starting datafile copy 101input datafile file number=00002 name=/u01/app/oracle/oradata/adgdb/sysaux01.dbf 102output file name=/u01/app/oracle/oradata/adgdbstandby/sysaux01.dbf tag=TAG20190406T160954 103channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:36 104channel ORA_DISK_1: starting datafile copy 105input datafile file number=00005 name=/u01/app/oracle/oradata/adgdb/example01.dbf 106output file name=/u01/app/oracle/oradata/adgdbstandby/example01.dbf tag=TAG20190406T160954 107channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25 108channel ORA_DISK_1: starting datafile copy 109input datafile file number=00003 name=/u01/app/oracle/oradata/adgdb/undotbs01.dbf 110output file name=/u01/app/oracle/oradata/adgdbstandby/undotbs01.dbf tag=TAG20190406T160954 111channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07 112channel ORA_DISK_1: starting datafile copy 113input datafile file number=00004 name=/u01/app/oracle/oradata/adgdb/users01.dbf 114output file name=/u01/app/oracle/oradata/adgdbstandby/users01.dbf tag=TAG20190406T160954 115channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 116Finished backup at 06-APR-19 117 118sql statement: alter system archive log current 119 120contents of Memory Script: 121{ 122 switch clone datafile all; 123} 124executing Memory Script 125 126datafile 1 switched to datafile copy 127input datafile copy RECID=9 STAMP=1004890308 file name=/u01/app/oracle/oradata/adgdbstandby/system01.dbf 128datafile 2 switched to datafile copy 129input datafile copy RECID=10 STAMP=1004890308 file name=/u01/app/oracle/oradata/adgdbstandby/sysaux01.dbf 130datafile 3 switched to datafile copy 131input datafile copy RECID=11 STAMP=1004890308 file name=/u01/app/oracle/oradata/adgdbstandby/undotbs01.dbf 132datafile 4 switched to datafile copy 133input datafile copy RECID=12 STAMP=1004890308 file name=/u01/app/oracle/oradata/adgdbstandby/users01.dbf 134datafile 5 switched to datafile copy 135input datafile copy RECID=13 STAMP=1004890308 file name=/u01/app/oracle/oradata/adgdbstandby/example01.dbf 136Finished Duplicate Db at 06-APR-19

View Code

( 8 )添加主库和备库的standby日志组

(8.1)添加standby日志组需要注意的事项

  • standby日志组个数:配置为redo日志组个数+1
  • 在主库与备库都添加standby日志组。主库可以不添加,但是如果后期发生主备切换,还是要添加,所以最好一次性添加。
  • 只查询standby日志组: select * from v$standby_log ;

(8.2)添加主库的standby日志组

1alter database add standby logfile group 4 ('/u01/app/oracle/oradata/adgdb/stredo04.log') size 50M; 2alter database add standby logfile group 5 ('/u01/app/oracle/oradata/adgdb/stredo05.log') size 50M; 3alter database add standby logfile group 6 ('/u01/app/oracle/oradata/adgdb/stredo06.log') size 50M; 4alter database add standby logfile group 7 ('/u01/app/oracle/oradata/adgdb/stredo07.log') size 50M;

 (8.3)添加备库的standby日志组

1alter database add standby logfile group 4 ('/u01/app/oracle/oradata/adgdbstandby/stredo04.log') size 50M; 2alter database add standby logfile group 5 ('/u01/app/oracle/oradata/adgdbstandby/stredo05.log') size 50M; 3alter database add standby logfile group 6 ('/u01/app/oracle/oradata/adgdbstandby/stredo06.log') size 50M; 4alter database add standby logfile group 7 ('/u01/app/oracle/oradata/adgdbstandby/stredo07.log') size 50M;

( 9 )开始同步数据库,在备库上执行

1alter database open; 2 3--方式一:开启实时同步 4alter database recover managed standby database using current logfile disconnect from session; 5--或简写为: 6alter database recover managed standby database using current logfile disconnect; 7 8--方式二:开启同步(日志切换时才同步) 9alter database recover managed standby database disconnect from session;

 至此配置完成。

(五)DataGuard状态查看

( 1 )主库状态查看

1SQL> select open_mode, --数据库打开模式,如果实时同步,则为:read only with apply,取消同步则为:read only 2 database_role, --数据库角色,是主库还是备库 3 protection_mode, --保护模式 4 protection_level --保护级别 5from v$database; 6 7OPEN_MODE DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL 8-------------------- ---------------- -------------------- -------------------- 9READ WRITE PRIMARY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

( 2 )备库状态查看

1SQL> select open_mode, 2 database_role, 3 protection_mode, 4 protection_level 5from v$database; OPEN_MODE DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL 6-------------------- ---------------- -------------------- -------------------- 7READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

 (六)DataGuard测试

在主库上创建表lijiaman.test01,并插入数据

1SQL> create table test01(id number,name varchar2(50)); 2Table created. 3 4SQL> insert into test01 values(1,'lijiaman'); 51 row created. 6 7SQL> insert into test01 values(2,'gegeman'); 81 row created. 9 10SQL> commit;

 在standby数据库上查询lijiaman.test01表,数据一致

1SQL> select db_unique_name from v$database; 2DB_UNIQUE_NAME 3------------------------------ 4adgdbstandby 5 6SQL> select * from lijiaman.test01; 7ID NAME 8---------- -------------------- 91 lijiaman 102 gegeman

【完】

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Oracle 11g DataGuard搭建(一) - HelloWorld