Linux中Oracle下DG主从备份----DG环境搭建
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环境搭建相关推荐
- linux python2.7安装教程_Linux中RedHat下安装Python2.7开发环境的详细教程-学派吧-
这篇文章主要为大家详细介绍了Linux RedHat下安装Python2.7.pip.ipython环境.eclipse和PyDev环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Linux ...
- linux mysql异地备份工具,Linux中MySQL的异地自动备份
Linux中MySQL的异地自动备份 文/李来祥 [摘要]@@ 随着校园网应用的日益丰富,Linux系统下MySQL数据库的应用也越来越广泛.然而数据的意外丢失对于校园网应用来说是很大的损失,业务数据 ...
- linux 查oracle版本号,查看linux中oracle版本号的方法总结
在Linux系统下,我们通过以下的方法可以查看到Oracle的版本号.下面由学习啦小编整理了查看linux中oracle版本号的方法总结,希望对你有帮助. 查看linux中oracle版本号的方法总结 ...
- linux oracle查询乱码问题,linux中oracle中文乱码解决方法
乱码问题的根源是字符集的修改,下面我们来看一下linux中oracle中文乱码解决方法. 查看客户端的语言编码设置: 配置文件中的配置: cat ~/.bash_profile 注意修改配置信息:ex ...
- linux中etc下的hosts(本地IP解析)文件详解
linux中etc下的hosts(本地IP解析)文件详解 1./etc/hosts(本地解析) 很多人一提到更改hostname首先就想到修改/etc/hosts文件, 认为hostname的配置文件 ...
- linux上 arm开发环境搭建,详解 LINUX下QT For ARM开发环境搭建过程
LINUX下QT For ARM开发环境搭建过程是本文介绍的内容,不多说,先来看内容.在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括 ...
- Linux下Matlab+CUDA双显卡环境搭建(核显+独显)
Linux下Matlab+CUDA双显卡环境搭建(核显+独显) 最近在疯狂爱上Matlab,没办法爱折腾.皇天不负有心人,还是被本大神搞出来了,羡慕吧,嫉妒吧,反正我也看不见.(附上战果图) 硬件环境 ...
- Oracle dataguard一主两备环境搭建
Oracle dataguard一主两备环境搭建 测试环境说明: 主 库:Reahat 6.5 x64 + Oracle 11.2.0.3 x64 单机(IP:192.168.6.10 db) D ...
- win命令安装 安装cmake_win10下VSCode+CMake+Clang+GCC环境搭建教程图解
打算用C/C++把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, ...
最新文章
- CNS级别的插图你也可以实现,只需2天
- android eclipse 环境
- 求数组的最大子数组和最大子数组的和
- 线性表的链式表示——双链表
- Hibernate4继承映射
- 《深入理解计算机网络》读书笔记一
- onkeyup,onkeydown和onkeypress
- iOS开发- 蓝牙后台接收数据(BLE4.0)
- Codeforces 刷题记录(已停更)
- 剪切文件_转录组测序技术和结果解读(十六)——可变剪切
- Hadoop单点安装(伪分布式)
- 中国即时护理胆固醇监测设备行业市场供需与战略研究报告
- php UTF8 转字节数组,后使用 MD5 计算摘要
- 程序员能力的四个境界(转)
- jetson-nano编译qt5.15.2带opengl,xcb
- party_bid_core三种数据结构总结
- Vue2 修改打包文件的编码格式(webpack-encoding-plugin)
- PHPer为什么被认为是草根?
- hexo添加disqus_使用Disqus将传统评论添加到Tumblr博客
- 棕榈油复制2008年走势?棕榈油认沽大涨,YP开始抄底2022.3.4