1.设置归档模式

DG环境的搭建必须要把数据库启动到归档模式,并且为了避免开发人员使用nologging语句,我们还要把数据库设置为force logging。
查看数据库是否运行在归档模式:

#su  - oracle
$sqlplus / as sysdba
SQL>archive log list;

数据库运行在非归档模式,下面我们开始操作,把数据库修改为归档模式:首先关闭数据库

命令如下:

SQL>shutdown immediate;

启动数据库到mount状态下

命令如下:

SQL>startup mount;

查询结果必须是MOUNTED哦,如果输出的是其它方式,证明操作有误,请重新关闭数据库进行操作

SQL>select open_mode from v$database;

把数据库修改为归档模式并打开数据库:

命令如下:

SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;

数据库打开后,我们需要把数据库设为force logging

命令如下:

SQL>alter database force logging;
SQL>select name,log_mode,force_logging from v$database;

2.添加standby 日志

standby logfile的数量和大小均要与redo logfile相同

查询主库当前redo logfile的数量,命令如下:

SQL> select thread#,group#,members,bytes/1024/1024 from v$log;

我们主库有三组大小为50M的redo logfile,故我们也需要创建同样数量和大小的standby logfile:

SQL>alter database add standby logfile group 11('/data/oracle/app/oracle/oradata/orcl/redo01_stb.log') size 50M;
SQL>alter database add standby logfile group 12('/data/oracle/app/oracle/oradata/orcl/redo02_stb.log') size 50M;
SQL>alter database add standby logfile group 13('/data/oracle/app/oracle/oradata/orcl/redo03_stb.log') size 50M;
SQL>select group#,thread#,sequence#,archived,status from v$standby_log;

3.设置数据库口令文件的使用模式

执行以下命令查看remote_login_passwordfile的值是否EXCLUSIVE

SQL>show parameter remote_login_passwordfile

如果不是,执行以下命令进行设置,并且重启数据库,使其生效:

SQL>alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;
SQL>shutdown immediate;
SQL>startup;

4.参数设置

a)主库参数设置:

SQL>show parameter db_unique_name
SQL>alter system set log_archive_config='dg_config=(orcl,orcls)' scope=spfile;

设置归档日志的存放位置:

alter system set LOG_ARCHIVE_DEST_1='LOCATION=/data/oracle/app/oracle/oradata/orcl/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) db_unique_name=orcl';
alter system set log_archive_dest_2='SERVICE=orcls ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcls';

启用设置的日志路径:

SQL>alter system set log_archive_dest_state_1=enable scope=spfile;
SQL>alter system set log_archive_dest_state_2=enable scope=spfile;

设置归档日志进程的最大数量(视实际情况调整):

SQL>alter system set log_archive_max_processes=30 scope=both;

设置standby库从哪个数据库获取归档日志(只对standby库有效,在主库上设置是为了在故障切换后,主库可以成为备库使用):

alter system set fal_server=orcls scope=both;

设置文件管理模式,此项设置为自动,不然在主库创建数据文件后,备库不会自动创建:

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

启用OMF功能:

SQL> alter system set db_create_file_dest='/data//oracle/app/oracle/oradata/orcl/archivelog' scope=spfile;

设置主备文件存放路径:

SQL>alter system set db_file_name_convert='/data/oracle/app/oracle/oradata/orcls','/data/oracle/app/oracle/oradata/orcl' scope=spfile;
SQL>alter system set log_file_name_convert='/data/oracle/app/oracle/oradata/orcls','/data/oracle/app/oracle/oradata/orcl' scope=spfile;

完成了以上步骤后

通过以下命令生成一个pfile文件给备库使用:

SQL>create pfile  from spfile;

备库操作:

SQL>shutdown immediate;
SQL>startup nomount pfile='/data/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcls.ora' ;
SQL>create spfile from pfile;
SQL>shutdown immediate;
SQL>exit;
sqlplus / as sysdba
SQL>startup nomount

进行rman :

rman target sys/xxzgs123@orcl auxiliary sys/xxzgs123@orcls nocatalog
RMAN>duplicate target database for standby from active database;

复制完成后,打开数据库开启实时同步:

sqlplus / as sysdba
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;
SQL>alter database recover managed standby database using current logfile disconnect from session;

5.查看数据库状态

1.登陆到主库和备库

sqlplus / as sysdba SQL>conn sys/123456 as sysdba

2,查看状态:

SQL>select database_role from v$database;SQL>select SEQUENCE#, FIRST_TIME, NEXT_TIME, APPLIED, ARCHIVED from V$ARCHIVED_LOG;

3,查询所有表空间

select file_name,tablespace_name,bytes from dba_data_files;

主:

从:

4.查看表空间的名称及大小:

SELECT T.TABLESPACE_NAME, ROUND(SUM(BYTES/(1024 * 1024)), 0) TS_SIZE
FROM DBA_TABLESPACES T, DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME
GROUP BY T.TABLESPACE_NAME;

5.查看表空间物理文件的名称及大小:

SELECT TABLESPACE_NAME,FILE_ID,FILE_NAME,ROUND(BYTES / (1024 * 1024), 0) TOTAL_SPACE
FROM DBA_DATA_FILES
ORDER BY TABLESPACE_NAME;

6.查看所有表空间对应的数据文件名:

SQL>SELECT DISTINCT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM DBA_DATA_FILES;

7.查看表空间的使用情况:

SELECT SUM(BYTES)/(1024*1024) AS FREE_SPACE,TABLESPACE_NAME 
FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;

SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

COLUMN TABLESPACE_NAME FORMAT A18; 
COLUMN SUM_M FORMAT A12; 
COLUMN USED_M FORMAT A12; 
COLUMN FREE_M FORMAT A12; 
COLUMN PTO_M FORMAT 9.99;

SELECT S.TABLESPACE_NAME,CEIL(SUM(S.BYTES/1024/1024))||'M' SUM_M,CEIL(SUM(S.USEDSPACE/1024/1024))||'M' USED_M,CEIL(SUM(S.FREESPACE/1024/1024))||'M' FREE_M, SUM(S.USEDSPACE)/SUM(S.BYTES) PTUSED FROM (SELECT B.FILE_ID,B.TABLESPACE_NAME,B.BYTES, (B.BYTES-SUM(NVL(A.BYTES,0))) USEDSPACE, SUM(NVL(A.BYTES,0)) FREESPACE,(SUM(NVL(A.BYTES,0))/(B.BYTES)) * 100 FREEPERCENTRATIO FROM SYS.DBA_FREE_SPACE A,SYS.DBA_DATA_FILES B WHERE A.FILE_ID(+)=B.FILE_ID GROUP BY B.FILE_ID,B.TABLESPACE_NAME,B.BYTES ORDER BY B.TABLESPACE_NAME) S GROUP BY S.TABLESPACE_NAME ORDER BY SUM(S.FREESPACE)/SUM(S.BYTES) DESC;

8.查看数据文件的hwm(可以resize的最小空间)和文件头大小:

SELECT V1.FILE_NAME,V1.FILE_ID,NUM1 TOTLE_SPACE,NUM3 FREE_SPACE,
NUM1-NUM3 "USED_SPACE(HWM)",NVL(NUM2,0) DATA_SPACE,NUM1-NUM3-NVL(NUM2,0) FILE_HEAD 
FROM 
(SELECT FILE_NAME,FILE_ID,SUM(BYTES) NUM1 FROM DBA_DATA_FILES GROUP BY FILE_NAME,FILE_ID) V1,
(SELECT FILE_ID,SUM(BYTES) NUM2 FROM DBA_EXTENTS GROUP BY FILE_ID) V2,
(SELECT FILE_ID,SUM(BYTES) NUM3 FROM DBA_FREE_SPACE GROUP BY FILE_ID) V3
WHERE V1.FILE_ID=V2.FILE_ID(+) AND V1.FILE_ID=V3.FILE_ID(+);

数据文件大小及头大小:

SELECT V1.FILE_NAME,V1.FILE_ID, 
NUM1 TOTLE_SPACE, 
NUM3 FREE_SPACE, 
NUM1-NUM3 USED_SPACE, 
NVL(NUM2,0) DATA_SPACE, 
NUM1-NUM3-NVL(NUM2,0) FILE_HEAD 
FROM 
(SELECT FILE_NAME,FILE_ID,SUM(BYTES) NUM1 FROM DBA_DATA_FILES GROUP BY FILE_NAME,FILE_ID) V1, 
(SELECT FILE_ID,SUM(BYTES) NUM2 FROM DBA_EXTENTS GROUP BY FILE_ID) V2, 
(SELECT FILE_ID,SUM(BYTES) NUM3 FROM DBA_FREE_SPACE GROUP BY FILE_ID) V3 
WHERE V1.FILE_ID=V2.FILE_ID(+) 
AND V1.FILE_ID=V3.FILE_ID(+);

(运行以上查询,我们可以如下信息: 
Totle_pace:该数据文件的总大小,字节为单位 
Free_space:该数据文件的剩于大小,字节为单位 
Used_space:该数据文件的已用空间,字节为单位 
Data_space:该数据文件中段数据占用空间,也就是数据空间,字节为单位 
File_Head:该数据文件头部占用空间,字节为单位)

6.一些常用的sql命令:

--查看临时表空间文件
select name from v$tempfile;
--查看用户和表空间的关系
select USERNAME,TEMPORARY_TABLESPACE from DBA_USERS;
--如果有用户的默认临时表空间是NOTIFYDB_TEMP的话,建议进行更改
alter user xxx temporary tablespace tempdefault;
---设置tempdefault为默认临时表空间
alter database default temporary tablespace tempdefault;
--删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件
drop tablespace NOTIFYDB_TEMP including contents and datafiles; 
--查看表空间文件
select name from v$datafile;
--停止表空间的在线使用
alter tablespace 表空间名称 offline;
--删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件
drop tablespace NOTIFYDB_TEMP including contents and datafiles; 
--查看所有的用户
select * from all_users;
--查看当前用户信息
select * from user_users;
--查看当前用户的角色
select * from user_role_privs;
--查看当前用户的权限
select * from user_sys_privs;
--查看当前用户的表可操作权限
select * from user_tab_privs;--查看某一个表的约束,注意表名要 大写
select * from user_constraints where table_name='TBL_XXX';
--查看某一个表的所有索引,注意表名要 大写
select index_name,index_type,status,blevel from user_indexes where table_name = 'TBL_XXX';
--查看索引的构成,注意表名要 大写
select table_name,index_name,column_name, column_position FROM user_ind_columns WHERE table_name='TBL_XXX';--系统数据字典 DBA_TABLESPACES 中记录了关于表空间的详细信息
select * from sys.dba_tablespaces;--查看用户序列
select * from user_sequences;
--查看数据库序列
select * from dba_sequences;

Linux中Oracle下DG主从备份----DG环境搭建相关推荐

  1. linux python2.7安装教程_Linux中RedHat下安装Python2.7开发环境的详细教程-学派吧-

    这篇文章主要为大家详细介绍了Linux RedHat下安装Python2.7.pip.ipython环境.eclipse和PyDev环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Linux ...

  2. linux mysql异地备份工具,Linux中MySQL的异地自动备份

    Linux中MySQL的异地自动备份 文/李来祥 [摘要]@@ 随着校园网应用的日益丰富,Linux系统下MySQL数据库的应用也越来越广泛.然而数据的意外丢失对于校园网应用来说是很大的损失,业务数据 ...

  3. linux 查oracle版本号,查看linux中oracle版本号的方法总结

    在Linux系统下,我们通过以下的方法可以查看到Oracle的版本号.下面由学习啦小编整理了查看linux中oracle版本号的方法总结,希望对你有帮助. 查看linux中oracle版本号的方法总结 ...

  4. linux oracle查询乱码问题,linux中oracle中文乱码解决方法

    乱码问题的根源是字符集的修改,下面我们来看一下linux中oracle中文乱码解决方法. 查看客户端的语言编码设置: 配置文件中的配置: cat ~/.bash_profile 注意修改配置信息:ex ...

  5. linux中etc下的hosts(本地IP解析)文件详解

    linux中etc下的hosts(本地IP解析)文件详解 1./etc/hosts(本地解析) 很多人一提到更改hostname首先就想到修改/etc/hosts文件, 认为hostname的配置文件 ...

  6. linux上 arm开发环境搭建,详解 LINUX下QT For ARM开发环境搭建过程

    LINUX下QT For ARM开发环境搭建过程是本文介绍的内容,不多说,先来看内容.在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括 ...

  7. Linux下Matlab+CUDA双显卡环境搭建(核显+独显)

    Linux下Matlab+CUDA双显卡环境搭建(核显+独显) 最近在疯狂爱上Matlab,没办法爱折腾.皇天不负有心人,还是被本大神搞出来了,羡慕吧,嫉妒吧,反正我也看不见.(附上战果图) 硬件环境 ...

  8. Oracle dataguard一主两备环境搭建

    Oracle dataguard一主两备环境搭建 测试环境说明: 主 库:Reahat 6.5 x64 + Oracle 11.2.0.3 x64 单机(IP:192.168.6.10  db)  D ...

  9. win命令安装 安装cmake_win10下VSCode+CMake+Clang+GCC环境搭建教程图解

    打算用C/C++把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, ...

最新文章

  1. CNS级别的插图你也可以实现,只需2天
  2. android eclipse 环境
  3. 求数组的最大子数组和最大子数组的和
  4. 线性表的链式表示——双链表
  5. Hibernate4继承映射
  6. 《深入理解计算机网络》读书笔记一
  7. onkeyup,onkeydown和onkeypress
  8. iOS开发- 蓝牙后台接收数据(BLE4.0)
  9. Codeforces 刷题记录(已停更)
  10. 剪切文件_转录组测序技术和结果解读(十六)——可变剪切
  11. Hadoop单点安装(伪分布式)
  12. 中国即时护理胆固醇监测设备行业市场供需与战略研究报告
  13. php UTF8 转字节数组,后使用 MD5 计算摘要
  14. 程序员能力的四个境界(转)
  15. jetson-nano编译qt5.15.2带opengl,xcb
  16. party_bid_core三种数据结构总结
  17. Vue2 修改打包文件的编码格式(webpack-encoding-plugin)
  18. PHPer为什么被认为是草根?
  19. hexo添加disqus_使用Disqus将传统评论添加到Tumblr博客
  20. 棕榈油复制2008年走势?棕榈油认沽大涨,YP开始抄底2022.3.4

热门文章

  1. 利用模板Q>一键制作你懂的任意视频规则(无需懂写任何代码)
  2. 杨海成--互联网时代的工业发展新思维及德国工业
  3. android基础!靠着这份面试题跟答案,赶紧收藏!
  4. 基于SSH开发酒店客房管理系统+论文+任务书+PPT 课程设计 毕业设计
  5. springboot-保险公司车辆事故跟踪系统 毕业设计-附源码011444
  6. LVS-DRNAT模式实现http负载均衡
  7. Python快速实现PySlowFast视频理解
  8. 1151压力变送器工作原理
  9. EndNote更改同步位置
  10. 设置菜单条及菜单项背景色