十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
关于Forced Logging模式有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redo log(目的是提高速度,某些时候确实有效),指定数据库为FORCE LOGGING模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网站空间、营销软件、网站建设、桦南网站维护、网站推广。
如果在执行force logging时有nologging之类的语句在执行,则force logging会等待直到这类语句全部执行。FORCE LOGGING是做为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行一次即可)
打开force logging
SQL alter database force logging;
关闭force logging
SQL alter database no force logging;
查看force logging的状态:
SQL select FORCE_LOGGING from v$database;
2关于主备库的密码
密码文件位置$ORACLE_HOME/dbs/orapwSID,主备库的密码必须要一致,否则可能出现日志无法传输故障,最好是使用scp传过去较为方便。
3关于listener.ora和tnsnames.ora
listener.ora为数据库的监听配置文件,tnsnames.ora为网络服务名配置文件
修改listener.ora是需要重启监听程序,而tnsnames.ora是不需要重启的,我们可以使用默认的listener.ora
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ) )ADR_BASE_LISTENER = /opt/oracle
以上是动态注册,如果是静态注册的话,则是
SID_LIST_LISTENER =(SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /opt/oracle/product/11.2.0/db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = db1) (ORACLE_HOME = /opt/oracle/product/11.2.0/db_1) (SID_NAME = db1) ) )
tnsnames.ora则只需要添加服务名
(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db1) ) )db2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = db2)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db2) ) )
以上按照自己的实际情况进行修改以上配置好了,就可以相互的tnsping db1或tnsping db2进行测试。
4参数文件说明
参数文件说明:增加以下参数,如果在初始化参数已经有配置,则看需要做相应的修改。
1、与主库角色相关的初始化参数说明:
DB_NAME注意保持同一个Data Guard环境中所有数据库DB_NAME相同。DB_UNIQUE_NAME为每一个数据库指定一个唯一的名称,以标示同一个dataguard环境中不同的数据库。
LOG_ARCHIVE_CONFIG 该参数通过DG_CONFIG属性罗列同一个Data Guard中所有DB_UNIQUE_NAME(含主库db及备库db),以逗号分隔。
例如:LOG_ARCHIVE_CONFIG='DB_CONFIG=(db1,db22)'LOG_ARCHIVE_DEST_n 归档文件的生成路径。
该参数非常重要,dataguard就是通过这里的设置传输日志的。LOG_ARCHIVE_DEST_STATE_n指定参数值为ENABLE,标示对应的LOG_ARCHIVE_DEST_n参数是否有效。
REMOTE_LOGIN_PASSWORDFILE推荐设置参数值为EXCLUSIVE或者SHARED,注意保证相同Data Guard配置中所有db服务器sys密码相同。如果不同日志传输会失败。数据库默认是EXCLUSIVE,一般不用修改。LOG_ARCHIVE_FORMAT指定归档文件格式。一般也不用修改,保持默认即可。
2、以下参数为备库角色相关的参数,建议在主库的初始化参数中也进行设置,这样在主备库角色相互转换后不需要做修改dataguard也能正常运行。
FAL_SERVER 指定备库到主数据库的连接服务名,FAL_SERVER = orcl2日志所在服务器。FAL_CLIENT 指定主库到备库的连接服务名,FAL_CLIENT = orcl日志接收客户端。STANDBY_FILE_MANAGEMENT如果主库的数据文件发生修改(如新建,重命名等)则按照本参数的设置在备库中做相应修改。设为AUTO表示自动管理。设为MANUAL表示需要手工管理。
例如:STANDBY_FILE_MANAGEMENT=AUTO下面开始修改主库的初始化参数。
db_name参数已经设置,不用修改SQL alter system set db_unique_name =’db1’ scope=spfile;SQL alter system set log_archive_config='dg_config=(db1,db2)' scope=spfile;
---这里的db1和db2为db_unique_name
SQL alter system set log_archive_dest_1='location=/opt/oracle/flash_recovery_area' scope=spfile;
--/opt/oracle/flash_recovery_area为本地的归档目录,需要手动创建该目录,当然也可以指定别的路径。注意oracle账号对该目录又可读写的权限。
SQL alter system set log_archive_dest_state_1=enable scope=spfile;
--这个通常不用修改,系统默认的就是enable。
SQLalter system set log_archive_dest_2='service=db2 valid_for=(online_logfiles,primary_role) arch async NOAFFIRM db_unique_name=db2' scope=spfile;
-----这里的service为主库连接到备库的服务名,后面会在tnsnames.ora文件中配置valid_for参数说明这个归档日志目的地在本数据库为主库的角色下才需要把online_logfile传输到备库去。
arch async NOAFFIRM说明的是同步的方式,同步的方式有三种:最大保护,最大性能,最大可用。
SQL alter system set log_archive_dest_state_2=enable scope=spfile;
以上修改的是作为主库角色需要的参数,为了方便以后主备库切换,建议在主库中也配置作为备库角色的相关参数。
SQL alter system set fal_server=db2 scope=spfile;
SQL alter system set fal_client=db scope=spfile;
SQL alter system set standby_file_management=auto scope=spfile;
生成静态参数文件,以备后面给备库使用。
SQL create pfile from spfile;重新启动主库,使参数生效。
5DataGuard启动停止及维护
DataGuard停止:先主后备
DataGuard启动:先备后主
6DataGuard日常监控视图
1、主库查看日志归档路径是否可用,如果远程归档目录不可用则error会显示错误信息
SQL select dest_name,status,error from v$archive_dest;
DEST_NAME STATUS ERROR-------------------- -------------------- --------------------LOG_ARCHIVE_DEST_1 VALIDLOG_ARCHIVE_DEST_2 VALIDLOG_ARCHIVE_DEST_3 INACTIVELOG_ARCHIVE_DEST_4 INACTIVELOG_ARCHIVE_DEST_5 INACTIVELOG_ARCHIVE_DEST_6 INACTIVELOG_ARCHIVE_DEST_7 INACTIVELOG_ARCHIVE_DEST_8 INACTIVELOG_ARCHIVE_DEST_9 INACTIVELOG_ARCHIVE_DEST_10 INACTIVE10 rows selected.
如上记录则代表备库归档日志目录有效且正常。
2、查询数据库的主备角色,以及当前DataGuard的运行模式,在主备查询结果不同
主库:
SQL select database_role,LOG_MODE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;DATABASE_ROLE LOG_MODE PROTECTION_MODE PROTECTION_LEVEL---------------- ------------ -------------------- --------------------PRIMARY ARCHIVELOG MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
备库:
SQL select database_role,LOG_MODE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;DATABASE_ROLE LOG_MODE PROTECTION_MODE PROTECTION_LEVEL---------------- ------------ -------------------- --------------------PHYSICAL STANDBY ARCHIVELOG MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
3、获取归档日志的应用情况,主备库结果不同。在主库上对于每个归档文件会有2条记录
SQL select name,SEQUENCE#,APPLIED from v$archived_log order by sequence#;
备库:
/opt/oracle/flash_recovery_area/1_11_904130046.dbf 11 YES/opt/oracle/flash_recovery_area/1_12_904130046.dbf 12 YES/opt/oracle/flash_recovery_area/1_13_904130046.dbf 13 YES/opt/oracle/flash_recovery_area/1_14_904130046.dbf 14 YES/opt/oracle/flash_recovery_area/1_15_904130046.dbf 15 YES/opt/oracle/flash_recovery_area/1_16_904130046.dbf 16 YES/opt/oracle/flash_recovery_area/1_17_904130046.dbf 17 YES/opt/oracle/flash_recovery_area/1_18_904130046.dbf 18 YES/opt/oracle/flash_recovery_area/1_19_904130046.dbf 19 YES/opt/oracle/flash_recovery_area/1_20_904130046.dbf 20 YES/opt/oracle/flash_recovery_area/1_21_904130046.dbf 21 YES/opt/oracle/flash_recovery_area/1_22_904130046.dbf 22 YES/opt/oracle/flash_recovery_area/1_23_904130046.dbf 23 YES/opt/oracle/flash_recovery_area/1_24_904130046.dbf 24 IN-MEMORY
步骤1:打开企业管理器,如下。步骤2:选择数据库,安全性,点击新建链接服务器。步骤3:选择链接服务器属性,常规,输入名称:TEST,选择ORACLE数据库提供程序,输入名称、数据源。步骤4:进行安全性设置。本地登录,选择SQLServer数据库登录用户,远程登录用户和密码,输入远程连接数据库的用户和密码,选择用此安全上下文进行,输入远程登录用户和密码。5步骤5:点击TEST链接服务器下的表,我们可以访问ORACLE数据库的表了。注意:产品名称要和所链接的服务器相对应,使用ORACLE数据库就要输入ORACLE,使用SQLServer就输入SQLServer。
racle在处理一般事务时并不需要全部启动其后台的所有服务
由于oracle服务所占用系统资源比较大,一般情况下启动监听服务oraclesidtnslistener和数据库服务oracleservicesid
就可以满足数据处理的大部分需求。
附表为oracle的所有服务详细描述
注:SID - 数据库标识
HOME_NAME - Oracle Home名称,如OraHome92、OraHome81
(1)OracleServiceSID
数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。
(2)OracleHOME_NAMETNSListener
监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQL*Net 网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。服务进程为TNSLSNR.EXE,参数文件Listener.ora,日志文件listener.log,控制台LSNRCTL.EXE,默认端口1521、1526。
(3)OracleHOME_NAMEAgent
OEM代理服务,接收和响应来自OEM控制台的任务和事件请求,只有使用OEM管理数据库时才需要,它的缺省启动类型为自动。服务进程为DBSNMP.EXE,参数文件snmp_rw.ora,日志文件nmi.log,控制台LSNRCTL.EXE,默认端口1748。
(4)OracleHOME_NAMEClientCache
名字缓存服务,服务缓存用于连接远程数据库的Oracle Names 数据。它的缺省启动类型是手动。然而,除非有一台Oracle Names 服务器,否则没有必要运行这个服务。服务进程为ONRSD.EXE,参数文件NAMES.ORA,日志文件ONRSD.LOG,控制台NAMESCTL.EXE。
(5)OracleHOME_NAMECMAdmin
连接管理服务,是构建Connection Manager服务器所用,只有服务器作为Connection Manager才需要,它的缺省启动类型是手动。服务进程为CMADMIN.EXE,参数文件CMAN.ORA,日志文件CMADM_PID.TRC,控制台CMCTL.EXE,默认端口1830。
(6)OracleHOME_NAMECMan
连接网关服务,是构建Connection Manager服务器所用,只有服务器作为Connection Manager才需要,它的缺省启动类型是手动。服务进程为CMGW.EXE,参数文件CMAN.ORA,日志文件CMAN_PID.TRC,控制台CMCTL.EXE,默认端口1630。
(7)OracleHOME_NAMEDataGatherer
性能包数据采集服务,除非使用Oracle Capacity Planner 和 Oracle Performance Manager,否则不需要启动,它的缺省启动类型是手动。服务进程为VPPDC.EXE,日志文件alert_dg.log,控制台vppcntl.exe。
(8)OracleHOME_NAMEHTTPServer
Oracle提供的WEB服务器,一般情况下我们只用它来访问Oracle Apache 目录下的Web 页面,比如说JSP 或者modplsql 页面。除非你使用它作为你的HTTP服务,否则不需要启动(若启动它会接管IIS的服务),它的缺省启动类型是手动。服务进程为APACHE.EXE,参数文件httpd.conf,默认端口80。
(9)OracleHOME_NAMEPagingServer
通过一个使用调制解调器的数字传呼机或者电子邮件发出警告(没试过),它的缺省启动类型是手动。服务进程PAGNTSRV.EXE,日志文件paging.log。
(10)OracleHOME_NAMENames
Oracle Names服务,只有服务器作为Names Server才需要,它的缺省启动类型是手动。服务进程NAMES.EXE,参数文件NAMES.ORA,日志文件NAMES.LOG,控制台NAMESCTL.EXE,默认端口1575。
(11)OracleSNMPPeerMasterAgent
SNMP服务代理,用于支持SNMP的网管软件对服务器的管理,除非你使用网管工具监控数据库的情况,否则不需要启动,它的缺省启动类型是手动。服务进程为AGNTSVC.EXE,参数文件MASTER.CFG,默认端口161。
(12)OracleSNMPPeerEncapsulater
SNMP协议封装服务,用于SNMP协议转换,除非你使用一个不兼容的SNMP代理服务,否则不需要启动,它的缺省启动类型是手动。服务进程为ENCSVC.EXE,参数文件ENCAPS.CFG,默认端口1161。
(13)OracleHOME_NAMEManagementServer
OEM管理服务,使用OEM时需要,它的缺省启动类型是手动。服务进程为OMSNTSVR.EXE,日志文件oms.nohup。
在Windows 操作系统下安装Oracle 9i时会安装很多服务——并且其中一些配置为在Windows 启动时启动。在Oracle 运行在Windows 下时,它会消耗很多资源,并且有些服务可能我们并不总是需要。你会发现不使用Windows 图形界面就可以快速、完全地关闭数据库会很有用。
只要拥有管理员权限就可以通过net start 启动一个服务,或者通过net stop 命令停止一个服务,从而控制以下服务中的任何一个。在Windows XP 中,可以通过在控制面板的服务中改变想要禁用的服务(OracleOraHome...)的启动类型(Startup Type)参数,双击某个服务查看其属性,然后将启动类型属性从自动改为手动。
使数据库在本地工作唯一需要运行的服务是OracleServiceORCL 服务(其中ORCL 是SID)。这个服务会自动地启动和停止数据库(使用shutdown 中断)。如果安装了一个数据库,它的缺省启动类型为自动。如果主要是访问一个远程数据库,那么可以把启动类型由自动改为手动。
OracleOraHome92HTTPServer 服务(OraHome92 是Oracle Home 的名称)是在安装Oracle 时自动安装的Apache 服务器。一般情况下我们只用它来访问Oracle Apache 目录下的Web 页面,比如说JSP 或者modplsql 页面。
OracleOraHome92TNSListener 服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQL*Net 网络协议都属于远程访问)。不用这个服务就可以访问本地数据库。
OracleOraHome92ClientCache 服务缓存用于连接远程数据库的Oracle Names 数据。正常情况下该服务的启动类型是配置为手动的。然而,除非有一台Oracle Names 服务器,否则没有必要运行这个服务。
有四个服务是Oracle 企业管理器所必须的(Oracle Enterprise Manager),这个服务分别为:OracleOraHome92Agent(智能代理),该服务监视数据库和企业管理器请求,缺省启动类型为自动。OracleOraHome92SNMPPeerEncapsulator 和OracleOraHome92SNMPPeerMasterAgent,处理安全网络管理协议服务。OracleOraHome92PagingServer 通过一个使用调制解调器的数字传呼机或者电子邮件发出警告。
OracleMTSRecoveryService 是可选的,该服务允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务的资源管理器。
如果只是偶尔使用一下数据库,那么可以创建一个简单的脚本任务来启动和关闭服务器,这样每次只要双击脚本就可以了,可以不使用图形界面。
1. 保存一个快捷方式自动地装载这些文件。
2. 将Oracle 服务设为手动避免在Windows 启动时启动。
REM "dbstart.cmd"
@echo off
set ORAHOME="OraHome90"
set ORASID="zsd"
net start OracleService%ORASID%
REM net start Oracle%ORAHOME%HTTPServer
REM net start Oracle%ORAHOME%TNSListener
REM net start Oracle%ORAHOME%ClientCache
REM net start Oracle%ORAHOME%Agent
REM net start Oracle%ORAHOME%SNMPPeerEncapsulator
REM net start Oracle%ORAHOME%SNMPPeerMasterAgent
REM net start Oracle%ORAHOME%PagingServer
REM net start OracleMTSRecoverService
REM "dbshut.cmd"
@echo off
set ORAHOME="OraHome90"
set ORASID="zsd"
net stop OracleService%ORASID%
REM net stop Oracle%ORAHOME%HTTPServer
REM net stop Oracle%ORAHOME%TNSListener
REM net stop Oracle%ORAHOME%ClientCache
REM net stop Oracle%ORAHOME%Agent
REM net stop Oracle%ORAHOME%SNMPPeerEncapsulator
REM net stop Oracle%ORAHOME%SNMPPeerMasterAgent
REM net stop Oracle%ORAHOME%PagingServer
REM net stop OracleMTSRecoverService