重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 31|回复: 0
打印 上一主题 下一主题

[Oracle] OracleDG常用命令集合(搭建、维护、测试、激活)

[复制链接]
跳转到指定楼层
楼主
发表于 5 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DG部署要素
归档配置
#确认是否开启归档
archive log list;
#是否开启强制日志
SELECT force_logging FROM v$database;

#开启归档并配置强制记录日志
shutdown immediate;
Startup mount;
alter database archivelog;
Alter database force logging;
Alter database open;

#切换归档
alter system switch logfile;
#查看归档情况
select group#,member from v$logfile order by group#;
监听配置
listener.ora

#如果多个静态监听,加SID_DESC即可
cat /u01/app/oracle/product/11.2.0/network/admin/listener.ora
E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
-------------------------------------------------------------------------------------------------------------------
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0)
      (SID_NAME = orcl)
    )
  )

LISTENER=
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
      )
    )
  )
tnsname.ora

#添加如下项,主备都要
cat /u01/app/oracle/product/11.2.0/network/admin/listener.ora
E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
-------------------------------------------------------------------------------------------------------------------
zky =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = zky)
    )
  )

zkydg =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = zkydg)
    )
  )

重启监听
lsnrctl stop
lsnrctl start
sqlnet.ora

可选配置,如果有出现连不上库可以修改
cat /u01/app/oracle/product/11.2.0/network/admin/sqlnet.ora
E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora
-------------------------------------------------------------------------------------------------------------------
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
adr_base = /u01/app/oracle

密码文件

记得不同环境目录不一样win(database) linnux(dbs)
-------------------------------------------------------------------------------------------------------------------
orapwd file=e:\app\Administrator\product\11.1.0\dbhome_1\database\PWDzky.ora password=oracle entries=10

日志文件
--查看日志情况
set linesize 200 pagesize 200
set
col MEMBER format a100
select * from v$log;
select * from v$standby_log;
select * from v$logfile order by GROUP#,MEMBER;

--主库处理日志用
alter database add standby logfile group 11 ('/u01/app/oracle/oradata/zky/stand01.log') size 2G;
alter database add standby logfile group 12 ('/u01/app/oracle/oradata/zky/stand01.log') size 2G;
alter database add standby logfile group 13 ('/u01/app/oracle/oradata/zky/stand01.log') size 2G;

--备库修改日志用
alter database recover managed standby database cancel;
alter system set standby_file_management='MANUAL' scope=both;
alter database add logfile group 1 ('/u01/app/oracle/oradata/zky/redo01.log') size 2G reuse;
alter database add logfile group 2 ('/u01/app/oracle/oradata/zky/redo02.log') size 2G reuse;
alter database add logfile group 3 ('/u01/app/oracle/oradata/zky/redo03.log') size 2G reuse;
alter database clear logfile group 5;
alter database drop logfile group 5;
alter database add standby logfile group 11 ('/u01/app/oracle/oradata/zky/stand01.log') size 2G;
alter database add standby logfile group 12 ('/u01/app/oracle/oradata/zky/stand01.log') size 2G;
alter database add standby logfile group 13 ('/u01/app/oracle/oradata/zky/stand01.log') size 2G;
alter system set standby_file_management='AUTO' scope=both;
alter database recover managed standby database using current logfile disconnect from session;
DG参数
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(zky,zkydg)' scope=both;
alter system set LOG_ARCHIVE_DEST_1='LOCATION=E:/u01/archive/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)  DB_UNIQUE_NAME=zky' scope=both;
alter system set LOG_ARCHIVE_DEST_2= 'service=zkydg lgwr async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=zkydg' scope=both;
alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;
alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;
alter system set FAL_SERVER='orcl_s' scope=both;
alter system set DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/zky/','/u01/app/oracle/oradata/zky/' scope=spfile;
alter system set LOG_FILE_NAME_CONVERT='/u01/archive/','/u01/archive/' scope=spfile;
alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both;
alter system set FAL_SERVER='zhankdg' scope=both;
create pfile='/u01/zky.txt' from spfile;
备库目录确认
mkdir D:\app\Administrator\flash_recovery_area
mkdir D:\app\Administrator\flash_recovery_area\zky
mkdir D:\app\Administrator\oradata
mkdir D:\app\Administrator\oradata\zky
Duplicate拉库

#手动处理
rman target sys/oracle@zky auxiliary sys/oracle@zkydg
duplicate target database for standby from active database nofilenamecheck;


#后台挂的跑
vi /home/oracle/dg.sh
-----------------------------------------------------------------------------------------------
#!/bin/sh
source /home/oracle/.bash_profile
$ORACLE_HOME/bin/rman log=/home/oracle/adg_center_`date +%Y-%m-%d`.log append <<EOF
connect target sys/manager@zky;
connect auxiliary sys/manager@zkydg;
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate auxiliary channel c5 device type disk;
allocate auxiliary channel c6 device type disk;
allocate auxiliary channel c7 device type disk;
allocate auxiliary channel c8 device type disk;
duplicate target database for standby from active database nofilenamecheck;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
release channel c6;
release channel c7;
release channel c8;
}
EOF
chmod u+x /home/oracle/dg.sh
nohup /home/oracle/dg.sh &

常用运维操作
重启备库
alter database recover managed standby database cancel;
shutdown immediate
startup nomount;
alter database mount standby database;
alter database open read only;

alter database recover managed standby database using current logfile disconnect from session;
alter database recover managed standby database disconnect from session;
主备切换
Data Guard 角色转换
    ├── Switchover (计划内切换)
    └── Failover (故障转移)
            ├── 使用 RECOVER MANAGED STANDBY DATABASE FINISH [FORCE] (推荐方式)
            └── 使用 ACTIVATE STANDBY DATABASE (传统但官方认可的方式)
两种Failover的区别对比

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 17:18 , Processed in 0.294051 second(s), 23 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表