数据库灾备ADG搭建
标签(空格分隔): 知识库 Oracle 系统集成 dataguard
概 念
常用SQL
- 查看数据库状态:
select NAME,OPEN_MODE,LOG_MODE,PROTECTION_MODE,ACTIVATION#,SWITCHOVER#,SWITCHOVER_STATUS,database_role from v$database;
- 切归档:
alter system switch logfile;
- 查看当前归档号:
select max(sequence#) from v$archived_log;
- 直接重启至某个状态
startup [nomount/mount] force;
数据库主要文件
select status from v$instance; --查看数据库状态
select member from v$logfile; --联机重做日志
select name from v$datafile; --日志文件
select name from v$tempfile; --临时数据文件
show parameter control_files;(select status,name from v$controlfile)--查看控制文件
日志查看
建议在部署过程中一直开着方便随时查看问题
tail -f /home/oracle/app/diag/rdbms/itpuxdb/itpuxdb/trace/alert_itpuxdb.log
tail -f /home/oracle/app/diag/rdbms/stitpux/stitpux/trace/alert_stitpux.log
配置步骤
准备阶段
- 0.1 网络ping通
10.0.0.51 db01 –主库
10.0.0.52 itpuxdg –备库
将两个参数配置到两个 /etc/hosts 里并确保两边都能用该解析ping到对方 - 0.2 防火墙策略要求为空?
- 0.3 主备库实例名
主库
ORACLE_UNQNAME=itpuxdb
ORACLE_SID=itpuxdb
备库
ORACLE_SID=stitpux;
ORACLE_UNQNAME=stitpux
在主库是数据库实例名
主库配置
- 开归档
Enable FOrce Logging:
alter database force logging;
show parameter recover; 使用db_recovery_file_dest
- 启用归档日志
Enable Archivelog Mode:
1)
SQL> show parameter recover; --查看当前归档日志路径
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /home/oracle/app/flash_recover
y_area
db_recovery_file_dest_size big integer 3882M
recovery_parallelism integer 0
SQL> archive log list; --查看当前归档是否开启
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 88
Current log sequence 90
SQL> alter database force logging;启日志
SQL> alter system set db_recovery_file_dest_size=4G scope=both; 设归档大小
SQL> !mkdir /home/oracle/arch;
SQL> alter system set db_recovery_file_dest='/home/oracle/arch' scope=both; 设归档路径
SQL> shutdown immediate;
SQL> startup mount; 重启至mount状态
SQL> alter database archivelog; 启用归档
SQL> alter database open; 打开数据库
SQL> archive log list; 再次查看归档配置是否生效
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 88
Next log sequence to archive 90
Current log sequence 90
SQL> alter system switch logfile; 此处注意要切一次归档日志,否则新的目录不会立即投入到当前环境
SQL> !ls /home/oracle/arch/ORCL/archivelog/2017_01_06/
此时验证新的归档日志有没有在目标目录生成
o1_mf_1_90_d6yfropj_.arc
SQL> alter system set db_create_file_dest='';
一般来说数据库默认使用了一部分omf自动命名规则,该规则在主备库中不方便确认文件的具体类型,因此会通过该命令取消OMF功能.不过该功能只影响数据库dbf文件,不能影响arc文件命名.
2)创建备机日志文件 standby redolog
SQL> set lin 200 --准备开启联机重做日志
SQL> col MEMNER format a60;
SQL> select * from v$logfile;--一般在这里可以看到冗余group#字段可看
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ------------------------------------------------------------ ---
3 ONLINE /home/oracle/app/oradata/orcl/redo03.log NO
2 ONLINE /home/oracle/app/o