oracle数据库部署切换运维手册_第1页
oracle数据库部署切换运维手册_第2页
oracle数据库部署切换运维手册_第3页
oracle数据库部署切换运维手册_第4页
oracle数据库部署切换运维手册_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle ADG 数据库部署、切换、运维手册Oracle ADG 数据库部署、切换、备份、运维手册Oracle ADG 数据库部署、切换、运维手册目录一、数据库环境概述4部署环境及架构4数据库信息41.11.2二、数据库的. 5通过 Linux 系统数据库52.1通过工具数据库(此处以 plsqldev 为例)52.2三、数据库的启动和关闭6启动7关闭73.13.2四、主备库切换7通过 DG Broker 进行切换7通过 SQL 命令行进行切换94.2.1 PRIMARY 数据库操作94.2.2 STANDBY 数据库操作10检查数据库基本情况11检查 Oracle ADG 实例状态11检

2、查 Oracle 服务进程124.14.2五、5.15.2检查 Oracle状态125.3六、检查 Oracle 对象状态13检查 Oracle文件状态136.1检查 Oracle 联机重做日志文件状态13检查 Oracle 表空间的状态14检查 Oracle 数据文件的状态14检查无效文件15检查所有回滚段状态6.56.6七、检查 Oracle 相关的使用情况177.1 检查 Oracle 初始化文件中相关的参数值177.2 检查数据库连接情况18Oracle ADG 数据库部署、切换、运维手册7.3 检查 Oracle 各个表空间使用情况187.4 检查一些扩展异常的

3、对象19八、检查 Oracle 备份情况208.1 数据库的备份策略及备份路径208.2 查看数据库备份日志文件21九、Oracle 数据库环境事故应急处理229.1 表空间扩容229.2 数据库死锁处理239.3 通过闪回表恢复误操作数据24Oracle ADG 数据库部署、切换、运维手册一、 数据库环境概述1.1 部署环境及架构部署平台:阿里云 ECS 服务器*2 操作系统:CentOS 6.8 (64 位) CPU:8 核内存:32G数据库版本:Oracle 数据库架构:Oracle Active Dataguard + DG Broker + HAVIP1.2 数据库信

4、息在阿里云 ECS 服务器上搭建一套 Oracle ADG。数据库的详细信息参见下表:Mmbsso 库要素主库备库备注hostnameoracledb1oracledb2IP67db_namemmbssommbssosidmmbssommbssodb_unique_namemmbsso_primmbsso_stdservice_namemmbssommbsso安装时默认会是db_unique_name,后期根据业务需求做更改网络服务名mmbssommbsso_stdtnsnames.ora 文件中使用golbal_dbnamemmbsso_p

5、ri_dgmgrlmmbsso_std_dgmgrllistener.ora 文件使用,静态,用于 duplicate 创建备库和 DGbrokerOracle ADG 数据库部署、切换、运维手册二、 数据库的我们在搭建数据库时使用了 HAVIP(5),即高可用虚拟 IP,该IP 总是在主数据库上,所以我们在业务中,或在日常进行连接。数据库时,都使用 HAVIP2.1 通过 Linux 系统数据库a)使用 Xshell 登录阿里云上的跳板机Xshell:> ssh.xxb)在跳板机上使用 oracle 用户登录数据库所在服务器主数据库:# ssh oracle1

6、5或者# ssh oracle6备数据库:# ssh oracle7c)在后面指定需要息)数据库的网络服务名(具体可查看 1.2数据库信# sqlplus username/password2.2数据库(此处以 plsqldev 为例)通过工具a)首先,在本地电脑上安装 Oracle 客户端,注意目录不要存在中文。以 Dgolbal_dbnamecableexc_pri_dgmgrlcableexc_std_dgmgrllistener.ora 文件使用,静态,用于duplicate 创建备库和DGbrokerOrac

7、le ADG 数据库部署、切换、运维手册盘为例,安装后的路径即为“D:oracleclient”b)配置系统环境变量。右键点击“计算机”,选中“属性”,在弹出页面选中“高级系统设置”c)在弹出的系统属性窗口点击环境变量,新增 3 个环境变量: 变量名:ORACLE_HOME变量值:D:oracleclient 变量名:TNS_ADMIN变量值:D:oracleclientNETWORKADMIN变量名:NLS_LANG变量值:SIMPLIFIED_CHINA.ZHS16GBKd)修改 Path 变量,在变量值的最后面添加 ; D:oraclecliente)打开 tnsnames.ora 文件

8、,使用记事本打开。路径:oracle安装路径networkadmin 。 这里 是: D:oracleclientNETWORKADMIN 。 在tnsnames.ora 文件添加需要的数据库别名配置。f)修改完成后,打开 plsqldev 工具。此时,在登录窗口即可选择所需要登录的数据库。输入相应的用户名、即可登录。三、 数据库的启动和关闭我们通过 linux 登录至数据库,进行启动和关闭操作。由于我们部署的是Oracle ADG,所以在对数据库进行启动和关闭时,是需要注意顺序的。下面“SQL>”后面跟令,都是默认已经通过 linux 数据库以后进行的。Oracle ADG 数据库部署

9、、切换、运维手册3.1 启动先启动备库,再启动主库。启动命令如下:SQL> STARTUP;3.2 关闭先关闭主库,再关闭备库。关闭命令如下:SQL> SHUTDOWN IMMEDIATE;四、 主备库切换4.1 通过 DG Broker 进行切换我们部署了 DG Broker 对 ORACLE ADG 进行管理,可以实现一键对主备库角色进行切换。下面为实际切换操作过程:a)通过 2.1 的 b 步骤登录主备库任一服务器(因为主备库服务器都可DG Broker)b)登录 DG Broker# dgmgrl sys/xmmbsso或者# dgmgrlDGMGRL> connec

10、t sys/xmmbssoc)查看 DG Broker 中配置信息DGMGRL> show configuration verbose;Oracle ADG 数据库部署、切换、运维手册红色方框中的内容就是当前 Oracle ADG 的主备两节点的信息。“Primary database”对应的就是主库,“Physical standby database”对应的就是备库。d)主备数据库切换(将主库切换至 mmbsso_std)DGMGRL> switchover to mmbsso_std;Oracle ADG 数据库部署、切换、运维手册e)验证切换结果主数据库:# sqlplus

11、 username/mmbsso_stdSQL> SELECT NAME, OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUSFROM V$DATABASE;备数据库:# sqlplus username /mmbssoSQL> SELECT NAME, OPEN_MODE, DATABASE_ROLE,SWITCHOVER_STATUSFROM V$DATABASE;4.2 通过 SQL 命令行进行切换4.2.1 PRIMARY 数据库操作a)查看 PRIMARY 数据库是否支持 SWITCHOVER 。SWITCHOVER_STATUS 列S

12、QL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;v$database 的结果如果为“TO STANDBY”,则可以直接转换为备用数据库,否则就要重新检查 ADG 配置,具体的值所表示的意思可参照下表。NOT ALLOWED当前的数据库不是带有备用数据库的主数据库PREPARING DICTIONARY该逻辑备用数据库正在向一个主数据库和其他备用数据库Oracle ADG 数据库部署、切换、运维手册b)将 primary 转换为 standby 的SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYS

13、ICAL STANDBY;语句执行完毕后,primary 数据库将会转换为 standby 数据库,并自动备份文件到 trace。c)重启动到 mountSQL> STARTUP MOUNT;4.2.2 STANDBY 数据库操作a)查看 STANDBY 数据库是否支持 SWITCHOVER 。SWITCHOVER_STATUS 列SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;v$database 的此时待转换STANDBY 数据库SWITCHOVER_STATUS 列值应该是"TO_PRIMARY",如否则检查其初

14、始化参数文件中的设置。主要的三个状态说明如下:l如果 SWITCHOVER_STATUS 为 TO_PRIMARY 说明标记恢复可以直接转换为它的重做数据,以便为切换做准备PREPARING SWITCHOVER接受用于切换的重做数据时,逻辑备用配置会使用它RECOVERY NEEDED备用数据库还没有接收到切换请求SESSIONS ACTIVE在主数据库中存在活动的 SQL 会话;在继续执行之前必须断开这些会话SWITCHOVER PENDING适用于那些已收到主数据库切换请求但是还没有处理该请求的备用数据库SWITCHOVER LATENT切换没有完成并返回到主数据库TO LOGICAL

15、STANDBY主数据库已经收到了来自逻辑备用数据库的完整的字典TO PRIMARY该备用数据库可以转换为主数据库TO STANDBY该主数据库可以转换为备用数据库Oracle ADG 数据库部署、切换、运维手册primary 库l 如果 SWITCHOVER_STATUS 为 SESSION ACTIVE 就应该断开活动会话l 如果 SWITCHOVER_STATUS 为 NOT ALLOWED 说明切换标记还没收到,此时不能执行转换。此时不仅要检查初始化文件是否配置完整,也要检查 redo 应用是否启用,如果备库接收了 archive log,但未启用 redo 应用,也会是“NOT ALL

16、OWED”状态b)将 standby 转换到 primarySQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;注意:待转换的物理 standby 可以处于 mount 模式或 open read不能处于 open read write 模式。模式,但onlyc)转换完成,open 数据库SQL> ALTER DATABASE OPEN;五、 检查数据库基本情况5.1 检查 Oracle ADG 实例状态SQL>SELECTINSTANCE_NAME,HOST_NAME,STARTUP_TIME,STATUS,DATABAS

17、E_STATUS FROM V$INSTANCE;其中 “STATUS” 表示 Oracle当 前 的 实 例 状 态 , 必 须 为 “OPEN” ;“DATABASE_STATUS”表示 Oracle 当前数据库的状态,必须为“ACTIVE”。这两个状态主备库是一致的。Oracle ADG 数据库部署、切换、运维手册SQL> SELECT NAME,LOG_MODE,OPEN_MODE FROM V$DATABASE;图中红色边框里的“mmbsso”表示在主数据库中,“mmbsso_std”表示在备数据库中。其中“LOG_MODE”表示 Oracle 当前的归档方式。“ARCHIVE

18、LOG”表示数据库运行在归档模式下,“NOARCHIVELOG”表示数据库运行在非归档模式下。在我们的系统中主备数据库必须运行在归档方式下;“OPEN_MODE”表示当前数据库的打开方式。在我们的系统中,主数据库是“READ WRITE”模式,备数据库是“READ ONLY WITH APPLY”模式。5.2 检查 Oracle 服务进程# ps ef | grep ora_在检查 Oracle 的进程命令输出后,输出显示至少应包括以下一些进程:Oracle 写数据文件的进程,输出显示为:“ora_dbw0_mmbsso” ;Oracle 写日志文件的进程,输出显示为:“ora_lgwr_mm

19、bsso” ;实例状态的进程,输出显示为:“ora_smon_mmbsso”;客户端连接进程状态的进程,输出显示为:“ora_pmon_mmbsso” ;OracleOracleOracle 进行归档的进程,输出显示为:“ora_arc0_mmbsso”;Oracle 进行检查点的进程,输出显示为:“ora_ckpt_mmbsso” ;Oracle 进行恢复的进程,输出显示为:“ora_reco_mmbsso”;5.3 检查 Oracle状态# lsnrctl statusOracle ADG 数据库部署、切换、运维手册由于我们是 Oracle ADG,每套库配置的对象较多。但只要除了 Ser

20、vice为“_dgmgrl”无异常。的实例状态为”UNKNOWN”之外,别的都是“READY”,_则说明检查进程是否存在# ps -ef | grep lsn | grep -v grep六、 检查 Oracle 对象状态在本节主要检查相关 Oracle 对象的状态,包含:检查 Oracle文件状态,检查 Oracle件状态,检查日志状态,检查 Oracle 表空间的状态,检查 Oracle 所有数据文Oracle 所有表、索引、过程、触发器、包等对象的状态,检查 Oracle 所有回滚段的状态,总共六个部分。6.1 检查 Oracle文件状态SQL> SELECT STATUS, NA

21、ME FROM V$CONTROLFILE;执行结果应该有 2 条正常。,“STATUS”应该为空。状态为空表示文件状态6.2 检查 Oracle 联机重做日志文件状态SQL> SELECT GROUP#, STATUS, TYPE, MEMBER FROM V$LOGFILE;Oracle ADG 数据库部署、切换、运维手册执行结果应该有 6 条,“TYPE”为“ONLINE”的有三条,为“STANDBY”的有三条。“STATUS”应该为非“INVALID”,非“DELETED”。 “STATUS”显示为空表示正常。6.3 检查 Oracle 表空间的状态SQL> SELECT

22、TABLESPACE_NAME, STATUS FROM DBA_TABLESPACES;执行结果中 STATUS 应该都为 ONLINE。6.4 检查 Oracle 数据文件的状态SQL> SELECT NAME, STATUS FROM V$DATAFILE;执行结果中,除了 system 数据文件的状态为 system,其余都是 online。或者:Oracle ADG 数据库部署、切换、运维手册SQL> SELECT FILE_NAME, STATUS FROM DBA_DATA_FILES;执行结果中,所有“status”都应该是“available”。6.5 检查无效文

23、件SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPEFROM DBA_OBJECTSWHERE STATUS != 'VALID'AND OWNER != 'SYS'AND OWNER != 'SYSTEM'或者SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPEFROM DBA_OBJECTSWHERE STATUS = 'INVALID'Oracle ADG 数据库部署、切换、运维手册如果有返回,则说明存在无效对象。若这些对象与应用相关,那么需要

24、重新编译生成这个对象。6.6 检查所有回滚段状态SQL> SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;执行结果中所有回滚段的“STATUS”应该为“ONLINE”。Oracle ADG 数据库部署、切换、运维手册七、 检查 Oracle 相关的使用情况7.1 检查 Oracle 初始化文件中相关的参数值SQL> SELECT * FROM V$RESOURCE_LIMIT;INITIAL_ALLOCATION:初始配置CURRENT_UTILIZATION:表示当前使用大小MAX_UTILIZATION:系统曾经达到最大使用数

25、LIMIT_VALUE:数据库中限制的最大值其中,如果 MAX_UTILIZATION 的值接近或等于 LIMIT_VALUE,说明该参数的值需要调整,否则数据库将出现瓶颈。Oracle ADG 数据库部署、切换、运维手册7.2 检查数据库连接情况SQL> SELECTSID,SERIAL#,USERNAME,PROGRAM,MACHINE,STATUSFROMV$SESSION;SID:为会话连接时分配的编号serial#:会话的序列号SID 和 serial#:两个组合才能唯一标识一个会话program:标识会话连接的方式 用什么工具连接的status:会话的状态 active 活跃

26、的 表示会话正在执行操作inactive :表示会话没有任何操作7.3 检查 Oracle 各个表空间使用情况SQL> SELECT F.TABLESPACE_NAME,A.TOTAL,F.FREE,Oracle ADG 数据库部署、切换、运维手册ROUND(F.FREE / A.TOTAL) * 100) "% Free"FROM (SELECT TABLESPACE_NAME, SUM(BYTES / (1024 * 1024) TOTALFROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME) A,(SELECT TABLESPA

27、CE_NAME, ROUND(SUM(BYTES / (1024 * 1024) FREEFROM DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) FWHERE A.TABLESPACE_NAME = F.TABLESPACE_NAME(+)ORDER BY "% Free"如果执行结果中的空闲率“% Free”小于 15%,则要注意进一步查看,是否数据文件已经没有自扩空间,如果没有的话,需要添加数据文件进行空间扩容。新增数据文件的操作请参考“9.1 表空间扩容”。7.4 检查一些扩展异常的对象SQL> SELECT SEGMENT_N

28、AME,Oracle ADG 数据库部署、切换、运维手册SEGMENT_TYPE,TABLESPACE_NAME,(EXTENTS / MAX_EXTENTS) * 100 PERCENTFROM SYS.DBA_SEGMENTSWHERE MAX_EXTENTS != 0AND (EXTENTS / MAX_EXTENTS) * 100 >= 90ORDER BY PERCENT;这里没有返回。如果有返回,说明这些对象的扩展(段)的大小已经到最大扩展的 90% 。此时,就需要对这些对象修改结构参数八、 检查 Oracle 备份情况8.1 数据库的备份策略及备份路径我们阿里云 Oracl

29、e ADG 数据库系统的备份策略如下表所示:数据库的备份文件存放路径是在/backup 目录中,该目录下面有三个分别以数据库名命名的文件夹,每个数据库名文件夹下面还有以日期命名的文件夹,日期命名的文件夹中就是保存的文件夹日期所对应那天的全备和增量备份文件。数据库全备增备备注MMBSSO每天 0:00每天 2:00 开始,每四小时一次数据有效期保留 7 天Oracle ADG 数据库部署、切换、运维手册其中/backup 目录是通过 NFS 将备份服务器(54)的磁盘挂载至主数据库的/backup 文件夹下。/backup 的文件夹目录树结构如下图所示:8.2 查看数据

30、库备份日志文件虽然数据库是自动备份的,但是我们还需要定期对数据库的备份情况进行确认,保证备份的有效性。我们可以以当天日期命名的文件夹,该文件夹中有两个日志文件,分别Oracle ADG 数据库部署、切换、运维手册是: 全备日志文件( LOG_full_mmbsso_20170912.log ) 和增量备份日志文件(LOG_arch_mmbsso_20170912.log)。确定全备任务顺利完成:# cd /backup/mmbsso/20170912# cat LOG_full_mmbsso_20170912.log | grep "backup set complete"

31、执行结果如上图所示,即可视为全备。确定增备任务顺利完成:# cd /backup/mmbsso/20170912# cat LOG_full_mmbsso_20170912.log | grep -i error执行结果如上图所示,没有信息返回,即可视为增备。九、 Oracle 数据库环境事故应急处理9.1 表空间扩容在数据库表空间不足或报 ORA-01691 错误时,需要对表空间进行扩容操作。我们可采取的扩容方式有四种:a)增加数据文件SQL> ALTER TABLESPACE SSO ADD DATAFILE ' /oradata/mmbsso/sso02.dbf'

32、SIZE500M;b)增加数据文件,并自增长,数据文件可扩大至最大值(32G)Oracle ADG 数据库部署、切换、运维手册SQL> ALTER TABLESPACE SSO ADD DATAFILE ' /oradata/mmbsso/sso02.dbf' SIZE500M AUTOEXTEND ON NEXT 100M MAXSIZE UNIMITED;c)调整已存在的数据文件为自增长,数据文件可扩大至最大值(32G)SQL> ALTER DATABASE DATAFILE ' /oradata/mmbsso/sso01.dbf' AUTOEX

33、TEND ONNEXT 100M MAXSIZE UNIMITED;d)手动调整已存在的数据文件大小SQL> ALTER DATABASE DATAFILE ' /oradata/mmbsso/sso01.dbf' RESIZE 30G;9.2 数据库死锁处理死锁的原理就是当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,此时的现象是这条语句一直在执行,但一直没有执行,也没有报错。处理死锁的相关 sql 语句a)oracle 死锁SQL> SELECT S.USERNAME,S.

34、MACHINE,L.OBJECT_ID,L.SESSION_ID,S.SERIAL#,L.ORACLE_USERNAME,L.OS_USER_NAME,L.PROCESSFROM V$LOCKED_OBJECT L, V$SESSION SWHERE L.SESSION_ID = S.SID;Oracle ADG 数据库部署、切换、运维手册b)查看被死锁的语句SQL> SELECT SQL_TEXTFROM V$SQLWHERE HASH_VALUE IN(SELECT SQL_HASH_VALUEFROM V$SESSIONWHERE SID IN (SELECT SESSION_ID

35、 FROM V$LOCKED_OBJECT);c)kill 掉这个死锁的进程根据 a)中到的 SESSION_ID 和 SERIAL#,执行如下语句:SQL> ALTER SYSTEM KILL SESSION 'SID, SERIAL#' (其中,SID 就是 a)中SESSION_ID)到的d)如果还不能解决,就 kill 掉这个 Oracle 进程SQL> SELECT PRO.SPIDFROM V$SESSION SES, V$PROCESS PROWHERE SES.SID = XXAND SES.PADDR = PRO.ADDR;其中 SQL 中的 XX

36、 用死锁的 SID 替换。SQL> exit# ps ef | grep spid确认该进程是否存在。其中 spid 是这个进程的进程号kill 掉该 Oracle 进程# kill -9 spid9.3 通过闪回表恢复误操作数据闪回表的实现,需要使用到 undo 表空间中的数据。用户对表的更新或删除操作,都会在 undo 表空间中,这就为表的闪回提供了数据恢复的基础。我们可以通过闪回表恢复到指定时间点或 SCN 的任何数据。下面介绍具体恢复步骤:Oracle ADG 数据库部署、切换、运维手册a)使用时间戳恢复首先,开启恢复表的行迁移功能。SQL> ALTER TABLE T_SSO_MEMBER_TEST ENABLE ROW MOVEMENT;接着,基于时间所要恢复的数据是否存在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论