Oracle 数据库使用 Data Guard 搭建一主两备,在主库发生故障时。可以无缝切换至备库支持生产。
一主两备的目的是为了增加数据库的容错率。降低生产数据库崩溃导致业务停顿的几率。当前文档的操作可直接应用至生产环境。但其中的参数基于业务具体情况可适当修改。
OS | Database | Memory | Disk | Name | P/S | IP | OS User |
---|---|---|---|---|---|---|---|
Oracle RHEL 7.8 | 19.3.0 | 32G | 500G | PRIMARY | Primary | 192.168.2.11 | oracle |
Oracle RHEL 7.8 | 19.3.0 | 32G | 500G | Test | Slave-One | 192.168.2.12 | oradg1 |
Oracle RHEL 7.8 | 19.3.0 | 32G | 500G | DGS | Slave-Two | 192.168.2.13 | oradg2 |
1、Linux安装将不再演示
# 可参见该文档 https://www.modb.pro/db/1890268454414987264
复制
2、IP 设置
# 编辑 hosts
$ vi /etc/hosts
192.168.2.11 primary.ckpt.com primary
192.168.2.12 test.ckpt.com test
192.168.2.13 dgs.ckpt.com dgs
# 注意:更改主机名时,需要三台机器均执行,不同的服务器添加对应的一个名即可
$ vi /etc/hostname
primary
test
dgs
复制
3、关闭防火墙
systemctl stop firewlld.service && systemctl disable firewlld.service
复制
4、关闭Selinux策略
vi /etc/selinux/config SELINUX=disabled
复制
5、关闭透明大页和numa
6、开启Hugesize
目前这个值的计算方式很复杂。如果需要设置请私信我!!!
1、环境变量配置
# 主库oracle用户
export ORACLE_SID=PRIMARY
export ORACLE_BASE=/u01/DBDG/primary_orcl
export ORACLE_HOME=$ORACLE_BASE/19.3.0
export PATH=$ORACLE_HOME/bin:$PATH
# 从库oradg1用户
export ORACLE_SID=TEST
export ORACLE_BASE=/data/db
export ORACLE_HOME=$ORACLE_BASE/19.3.0
export PATH=$ORACLE_HOME/bin:$PATH
# 从库oradg2用户
export ORACLE_SID=DGS
export ORACLE_BASE=/u01/DBDG/slave_dg2
export ORACLE_HOME=$ORACLE_BASE/19.3.0
export PATH=$ORACLE_HOME/bin:$PATH
复制
主库设置
2、主库开启归档
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/DBDG/primary_orcl/archive
Oldest online log sequence 307
Next log sequence to archive 313
Current log sequence 313
--如未开启归档,请打开
SQL>shutdown immediate
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
复制
3、主库强制日志模式
--开启强制日志
SQL>alter database force logging;
--查询实例的归档模式和强制日志
SQL> select log_mode,force_logging from v$database;
LOG_MODE FOR
------------ ---
ARCHIVELOG YES
复制
4、主库追加redo
alter database add standby logfile group 4 '/u01/DBDG/primary_orcl/oradata/primary/testredo01.log' size 200M;
alter database add standby logfile group 5 '/u01/DBDG/primary_orcl/oradata/primary/testredo02.log' size 200M;
alter database add standby logfile group 6 '/u01/DBDG/primary_orcl/oradata/primary/dgsredo03.log' size 200M;
alter database add standby logfile group 7 '/u01/DBDG/primary_orcl/oradata/primary/dgsredo04.log' size 200M;
SQL> select group#,thread#,sequence#,archived,status from $standby_log;
GROUP# THREAD# SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------
4 1 0 YES UNASSIGNED
5 1 0 YES UNASSIGNED
6 1 0 YES UNASSIGNED
7 1 0 YES UNASSIGNED
复制
5、主库配置tnsnames.ora
PRIMARY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = primary)
)
)
LISTENER_PRIMARY =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521))
DGS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DGS)
)
)
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
复制
6、主库配置listener.ora
PRIMARY = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = PRIMARY) (ORACLE_HOME = /u01/DBDG/primary_orcl/19.3.0) (SID_NAME = PRIMARY) ) )
复制
7、主库参数文件配置
*.audit_file_dest='/u01/DBDG/primary_orcl/admin/primary/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/DBDG/primary_orcl/oradata/PRIMARY/control01.ctl','/u01/DBDG/primary_orcl/oradata/PRIMARY/control02.ctl'
*.db_block_size=8192
*.db_name='primary'
*.diagnostic_dest='/u01/DBDG/primary_orcl'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=primaryXDB)'
*.local_listener='LISTENER_PRIMARY'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=1434m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=5735m
*.undo_tablespace='UNDOTBS1'
*.log_archive_config='dg_config=(primary,test,dgs)'
*.log_archive_dest_1='location=/u01/DBDG/primary_orcl/archive valid_for=(all_logfiles,all_roles) db_unique_name=primary'
*.log_archive_dest_2='SERVICE=DGS LGWR ASYNC VALID_FOR=(all_logfiles,all_roles) DB_UNIQUE_NAME=DGS'
*.log_archive_dest_3='SERVICE=TEST VALID_FOR=(all_logfiles,all_roles) DB_UNIQUE_NAME=TEST'
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.log_archive_dest_state_3='enable'
*.fal_server='TEST'
*.fal_client='primary'
*.db_unique_name='primary'
*.standby_file_management=auto
*.db_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata','/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'
*.log_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata','/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'
复制
8、主库密码文件配置
$ orapwd file=orapwprimary password=admin!11
复制
9、发送主库文件至从库
$ scp ../dbs/initprimary.ora orapwprimary 192.168.2.12:..../dbs $ scp ../network/admin/listener.ora tnsnames.ora 192.168.2.12:..../network/admin $ scp ../dbs/initprimary.ora orapwprimary 192.168.2.13:..../dbs $ scp ../network/admin/listener.ora tnsnames.ora 192.168.2.13:..../network/admin
复制
一号从库配置
1、listner.ora配置
DGS = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522)) ) ) SID_LIST_DGS = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = DGS) (ORACLE_HOME = /u01/DBDG/slave_dg1/19.3.0) (SID_NAME = DGS) ) )
复制
2、tnsnames.ora配置
DGS = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DGS) ) ) LISTENER_DGS = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522)) PRIMARY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = primary) ) )
复制
3、参数文件配置
$ cd $ORACLE_HOME/dbs
$ mv initprimary.ora initdgs.ora
$ mv orapwprimary orapwDGS
*.audit_file_dest='/u01/DBDG/slave_dg1/admin/dgs/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/DBDG/slave_dg1/oradata/DGS/control01.ctl','/u01/DBDG/slave_dg1/oradata/DGS/control02.ctl'
*.db_block_size=8192
*.db_name='primary'
*.diagnostic_dest='/u01/DBDG/slave_dg1'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dgsXDB)'
#*.local_listener='LISTENER_TEST'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=1434m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=5735m
*.undo_tablespace='UNDOTBS1'
*.log_archive_config='dg_config=(primary,DGS)'
*.log_archive_dest_1='location=/u01/DBDG/slave_dg1/archive valid_for=(all_logfiles,all_roles) db_unique_name=dgs'
*.log_archive_dest_state_1='enable'
*.fal_server='primary'
*.fal_client='dgs'
*.db_unique_name='dgs'
*.standby_file_management=auto
*.db_file_name_convert='/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'
*.log_file_name_convert='/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'
复制
4、启动监听
$ lsnrctl start DGS
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-FEB-2025 14:05:22
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.211.103)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias DGS
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 14-FEB-2025 10:39:07
Uptime 0 days 3 hr. 26 min. 14 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/DBDG/slave_dg1/19.3.0/network/admin/listener.ora
Listener Log File /u01/DBDG/slave_dg1/diag/tnslsnr/localhost/dgs/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.13)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
Services Summary...
Service "DGS" has 1 instance(s).
Instance "DGS", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
复制
5、创建文件夹
$ mkdir -p /u01/DBDG/slave_dg1/admin/dgs/adump $ mkdir -p /u01/DBDG/slave_dg1/oradata $ mkdir -p /u01/DBDG/slave_dg1/archive
复制
6、启动到nomount
$ sqlplus sys/admin*11@dgs as sysdba SQL> startup nomount pfile='initdgs.ora';
复制
7、备库开始复制
$ rman target sys/admin*11@primary auxiliary sys/admin*11@dgs
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Feb 14 10:42:51 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: PRIMARY (DBID=2030450347)
connected to auxiliary database: PRIMARY (not mounted)
RMAN> duplicate target database for standby from active database nofilenamecheck;
Starting Duplicate Db at 14-FEB-25
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=21 device type=DISK
contents of Memory Script:
{
backup as copy reuse
passwordfile auxiliary format '/u01/DBDG/slave_dg1/19.3.0/dbs/orapwDGS' ;
}
executing Memory Script
Starting backup at 14-FEB-25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=40 device type=DISK
Finished backup at 14-FEB-25
contents of Memory Script:
{
restore clone from service 'primary' standby controlfile;
}
executing Memory Script
Starting restore at 14-FEB-25
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
output file name=/u01/DBDG/slave_dg1/oradata/DGS/control01.ctl
output file name=/u01/DBDG/slave_dg1/oradata/DGS/control02.ctl
Finished restore at 14-FEB-25
contents of Memory Script:
{
sql clone 'alter database mount standby database';
}
executing Memory Script
sql statement: alter database mount standby database
contents of Memory Script:
{
set newname for tempfile 1 to
"/u01/DBDG/slave_dg1/oradata/PRIMARY/temp01.dbf";
switch clone tempfile all;
set newname for datafile 1 to
"/u01/DBDG/slave_dg1/oradata/PRIMARY/system01.dbf";
set newname for datafile 3 to
"/u01/DBDG/slave_dg1/oradata/PRIMARY/sysaux01.dbf";
set newname for datafile 4 to
"/u01/DBDG/slave_dg1/oradata/PRIMARY/undotbs01.dbf";
set newname for datafile 5 to
"/u01/DBDG/slave_dg1/oradata/PRIMARY/apps.dbf";
set newname for datafile 7 to
"/u01/DBDG/slave_dg1/oradata/PRIMARY/users01.dbf";
restore
from nonsparse from service
'primary' clone database
;
sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /u01/DBDG/slave_dg1/oradata/PRIMARY/temp01.dbf 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 14-FEB-25
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/DBDG/slave_dg1/oradata/PRIMARY/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/DBDG/slave_dg1/oradata/PRIMARY/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/DBDG/slave_dg1/oradata/PRIMARY/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/DBDG/slave_dg1/oradata/PRIMARY/apps.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:16
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/DBDG/slave_dg1/oradata/PRIMARY/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 14-FEB-25
sql statement: alter system archive log current
contents of Memory Script:
{
switch clone datafile all;
}
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/apps.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=5 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/users01.dbf
Finished Duplicate Db at 14-FEB-25
RMAN> exit
Recovery Manager complete.
复制
8、开启同步
SQL>ALTER DATABASE OPEN READ ONLY;
SQL>alter database recover managed standby database using current logfile disconnect from session;
复制
二号从库配置
1、listner.ora配置
TEST = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = TEST) (ORACLE_HOME = /data/db/19.3.0) (SID_NAME = TEST) ) )
复制
2、tnsnames.ora配置
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
LISTENER_TEST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521))
PRIMARY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = primary)
)
)
复制
3、参数文件配置
$ cd $ORACLE_HOME/dbs
$ mv initprimary.ora inittest.ora
$ mv orapwprimary orapwTEST
*.audit_file_dest='/data/db/admin/test/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/data/db/oradata/TEST/control01.ctl','/data/db/oradata/TEST/control02.ctl'
*.db_block_size=8192
*.db_name='primary'
*.diagnostic_dest='/data/db'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'
#*.local_listener='LISTENER_TEST'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=1434m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=5735m
*.undo_tablespace='UNDOTBS1'
*.log_archive_config='dg_config=(primary,test)'
*.log_archive_dest_1='location=/data/db/archive valid_for=(all_logfiles,all_roles) db_unique_name=test'
*.log_archive_dest_state_1='enable'
*.fal_server='primary'
*.fal_client='test'
*.DB_UNIQUE_NAME='test'
*.standby_file_management=auto
*.db_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata'
*.log_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata'
复制
4、启动监听
$ lsnrctl start TEST
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-FEB-2025 14:13:50
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.211.104)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 14-FEB-2025 09:58:23
Uptime 0 days 4 hr. 15 min. 27 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /data/db/19.3.0/network/admin/listener.ora
Listener Log File /data/db/diag/tnslsnr/slave/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.13)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=192.168.2.13)(PORT=5500))(Security=(my_wallet_directory=/data/db/admin/test/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "TEST" has 2 instance(s).
Instance "TEST", status UNKNOWN, has 1 handler(s) for this service...
Instance "TEST", status READY, has 1 handler(s) for this service...
Service "testXDB" has 1 instance(s).
Instance "TEST", status READY, has 1 handler(s) for this service...
The command completed successfully
复制
5、创建文件夹
$ mkdir -p /u01/DBDG/slave_dg2/admin/dgs/adump $ mkdir -p /u01/DBDG/slave_dg2/oradata $ mkdir -p /u01/DBDG/slave_dg2/archive
复制
6、启动到nomount
$ sqlplus sys/admin*11@test as sysdba SQL> startup nomount pfile='inittest.ora';
复制
7、备库开始复制
$ rman target sys/admin*11@primary auxiliary sys/admin*11@test
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Feb 14 10:19:39 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: PRIMARY (DBID=2030450347)
connected to auxiliary database: PRIMARY (not mounted)
RMAN> duplicate target database for standby from active database nofilenamecheck;
Starting Duplicate Db at 14-FEB-25
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=38 device type=DISK
contents of Memory Script:
{
backup as copy reuse
passwordfile auxiliary format '/data/db/19.3.0/dbs/orapwTEST' ;
}
executing Memory Script
Starting backup at 14-FEB-25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=276 device type=DISK
Finished backup at 14-FEB-25
contents of Memory Script:
{
restore clone from service 'primary' standby controlfile;
}
executing Memory Script
Starting restore at 14-FEB-25
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
output file name=/data/db/oradata/TEST/control01.ctl
output file name=/data/db/oradata/TEST/control02.ctl
Finished restore at 14-FEB-25
contents of Memory Script:
{
sql clone 'alter database mount standby database';
}
executing Memory Script
sql statement: alter database mount standby database
contents of Memory Script:
{
set newname for tempfile 1 to
"/data/db/oradata/PRIMARY/temp01.dbf";
switch clone tempfile all;
set newname for datafile 1 to
"/data/db/oradata/PRIMARY/system01.dbf";
set newname for datafile 3 to
"/data/db/oradata/PRIMARY/sysaux01.dbf";
set newname for datafile 4 to
"/data/db/oradata/PRIMARY/undotbs01.dbf";
set newname for datafile 5 to
"/data/db/oradata/PRIMARY/apps.dbf";
set newname for datafile 7 to
"/data/db/oradata/PRIMARY/users01.dbf";
restore
from nonsparse from service
'primary' clone database
;
sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /data/db/oradata/PRIMARY/temp01.dbf 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 14-FEB-25
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /data/db/oradata/PRIMARY/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:16
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /data/db/oradata/PRIMARY/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /data/db/oradata/PRIMARY/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /data/db/oradata/PRIMARY/apps.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /data/db/oradata/PRIMARY/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 14-FEB-25
sql statement: alter system archive log current
contents of Memory Script:
{
switch clone datafile all;
}
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/apps.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=5 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/users01.dbf
Finished Duplicate Db at 14-FEB-25
RMAN> exit
Recovery Manager complete.
复制
8、开启同步
SQL>ALTER DATABASE OPEN READ ONLY;
SQL>alter database recover managed standby database using current logfile disconnect from session;
复制
1、主库创建数据
SQL> create user test identified by test;
SQL> alter system switch logfile;
复制
2、一号从库查询
SQL> select account_status from dba_users where username='TEST';
ACCOUNT_STATUS
--------------------------------
OPEN
复制
2、二号从库查询
SQL> select account_status from dba_users where username='TEST';
ACCOUNT_STATUS
--------------------------------
OPEN
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1270次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
766次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
685次阅读
2025-03-06 09:41:49
【ORACLE】ORACLE19C在19.13版本前的一个严重BUG-24761824
DarkAthena
564次阅读
2025-03-04 14:33:31
Oracle 统计信息锁定解决办法
JiekeXu
528次阅读
2025-03-11 14:26:05
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
513次阅读
2025-03-05 00:42:34
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
453次阅读
2025-03-13 14:38:19
Ogg23ai高手必看-MySQL Innodb Cluster跟oracle的亲密接触
曹海峰
448次阅读
2025-03-04 21:56:13
【ORACLE】char类型和sql优化器发生的“错误”反应
DarkAthena
404次阅读
2025-03-04 23:05:01
什么,oracle 主机用户被删了?原来是虚惊一场!
Lucifer三思而后行
401次阅读
2025-03-03 21:12:09
TA的专栏
Oracle Database
收录2篇内容
Oracle Linux Install
收录1篇内容
目录