为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 达梦数据库操作手册

达梦数据库操作手册

2022-07-23 6页 pdf 1MB 33阅读

用户头像 个人认证

陨辰

暂无简介

举报
达梦数据库操作手册达梦数据库操作手册(总47页)本页仅作为文档封面,使用时可以删除Thisdocumentisforreferenceonly-rar21year.March达梦数据库操作手册2013年12月15日达梦数据库安装一、服务器安装1.1数据库安装注意问题数据库的安装路径不要直接放在操作系统的/目录相同的磁盘上,可以安装在/dmdb/dm,但是/dmdb要单独挂载在一块硬盘上。根据业务需要及数据量,数据文件放在磁盘空间较大的分区下。1.2安装步骤1.2.1图形化界面安装1.为DMInstall.bin赋予可执行权限chmod+xDMI...
达梦数据库操作手册
达梦数据库操作手册(总47页)本页仅作为文档封面,使用时可以删除Thisdocumentisforreferenceonly-rar21year.March达梦数据库操作手册2013年12月15日达梦数据库安装一、服务器安装1.1数据库安装注意问数据库的安装路径不要直接放在操作系统的/目录相同的磁盘上,可以安装在/dmdb/dm,但是/dmdb要单独挂载在一块硬盘上。根据业务需要及数据量,数据文件放在磁盘空间较大的分区下。1.2安装步骤1.2.1图形化界面安装1.为DMInstall.bin赋予可执行权限chmod+xDMInstall.bin2.运行DMInstall.bin,进行数据库安装./DMInstall.bin23.接受安装许可4.查看版本信息35.选择安装的key文件6.选择安装类型47.选择安装路径,及勾选高级配置选项8.进行高级选项数据库配置,页大小32K,簇大小16页,大小写敏感->“是”,UNICODE字符集->“否”,空串‘’按NULL处理->“是”59.修改系统管理员密码,此处不需要修改10.开始菜单文件夹建立611.完成安装配置,显示安装小结12.完成安装,修改安装目录下dm.ini文件中的部分参数,详见1.2.3节内容。1.2.2字符形式安装某些情况下,无法使用图形话界面连接到服务器上,此时安装达梦数据库可以使用字符界面安装。1.运行达梦安装文件7./DMInstall.bin-i如果提示权限不够,进行授权,执行:chmod+xDMInstall.bin2.开始安装,根据提示输入dm.key所在位置WelcometoDMInstallProgramPleaseInputthePathoftheKeyFile[/home/d5000/dm_install/dm.key]:方括号内为key文件所在位置默认路径,回车选择默认路径。3.选择安装类型ExpirationDate:unlimitedServerSeries:EnterpriseEditionServerType:TrialEditionCustomerName:国电南瑞AuthorizedUserNumber:1ConcurrencyUserNumber:unlimitedInstallationType:1Typical2Server3Client4CustomPleaseInputthenumberoftheInstallationType[1Typicail]:8选择Typical,输入1。4.选择安装路径PleaseInputtheinstallpath[/opt/dmdbms]:例如,将达梦安装在/dmdb/dm,输入路径。5.确认安装路径PleaseConfirmtheinstallpath(Y/y,N/n)[Y/y]:输入Y(或y)。6.选择初始化数据库WhethertoInitializetheDatabase(Y/y,N/n)[Y/y]:输入Y(或y)确定初始化数据库。7.选择不安装实例数据库InstallDemoDatabase(Y/y,N/n)[N/n]:输入N。8.选择数据文件路径PleaseInputthedatainstallpath[/dmdb/dm/data]:9例如,数据文件路径设置为/dbdata/dmdata,输入路径。9.确认数据文件路径PleaseConfirmthedatainstallpath(Y/y,N/n)[Y/y]:输入Y10.修改初始化数据库参数WhethertoModifyDataBaseInitiationParameter(Y/y,N/n)[N/n]:选择Y,对数据库参数进行修改。参数设置为大小写敏感,页大小32K,簇大小16页,空串(‘’)按NULL处理,修改参数如下(红色字体为输入):WhethertoModifyDataBaseInitiationParameter(Y/y,N/n)[N/n]:YDataPageSize,only4k,8k,16k,32k[8]32DataFileExtentSize,only16pagesor32pages[16]16Stringcasesensitive:Ysensitive;Nnosensitive[N]YUNICODESupport:0nosupport;1support[0]0EmptyString('')asNULL:Yyes;Nno[N]Y11.选择不修改管理员、审计员密码WhethertoModifySYSDBAPassword(Y/y,N/n)[N/n]:NWhethertoModifySYSAUDITORPassword(Y/y,N/n)[N/n]:N1012.确认安装Pre-InstallationSummaryInstallationLocation:/dmdb/dmDataInstallationLocation:/dbdata/dmdataRequireSpace:371MAvailableSpace:105GDataRequireSpace:315MDataAvailableSpace:31GVersionInformation:EnterpriseEditionExpireData:unlimitedInstallationType:TypicalConfirmtoInstall(Y/y,N/n)[Y/y]:Y13.完成安装,修改安装目录下dm.ini文件中的部分参数,详见1.2.3节内容。1.2.3参数修改1.安装目录下dm.ini的修改需要添加的参数:#FOROBJECTLIMITTOTAL_OBJECT_NUM_LIMIT=100000OBJECT_NUM_LIMIT=50000#FORFASTUPDATE11BCP_WITH_LOG=1CTAB_SEL_WITH_PK=1ENABLE_FAST_UPDATE=1#forSQLTRACESVR_LOG=100000SVR_LOG_FILE_NUM=10SQL_LOG_MASK=31需要修改的参数:MEMORY_POOL=100BUFFER=200000(内存为32G设置为20万)MAX_BUFFER=250000DBUF_MODE=0WORKER_THREADS=16CHKPNT_INTERVAL=60CHKPNT_FLUSH=20IO_THR_GROUPS=8MAX_SESSIONS=50012BAK_POLICY=1PWD_POLICY=0IGNORE_MUTATING_CHECK=1注:参数与简要说明TOTAL_OBJECT_NUM_LIMIT:数据库中所有对象最大数量OBJECT_NUM_LIMIT:2.修改/etc/dm_svc.conf文件内容如下:debug=(0)mdb=(192.168.200.1)//IP地址请以实际为准his=(192.168.200.1)//IP地址请以工程实际为准primary_key=(off,precision,context,interval,percent,frequence)show_sql=(0)配置文件中关键字的说明:debug:为调试选项,取值为0(不打印日志)、1(打印日志到屏幕)、2(打印日志到文件)、3(打印日志到屏幕和文件)。如果设置成打印到文件,那么DCI会把接口调用打印到应用所在目录下的dmoci.log中。13mdb:模型数据库服务名。his:历史数据库服务名。primary_key:关键字重命名,如果应用中使用到了达梦SQL中保留的关键单词,那么把该单词加入到该配置项中便可,否则会引起语法的错误。show_sql:是否显示调用DCI执行的SQL语句,该参数只有在debug参数大于0时才有效1.3通过拷贝方式安装数据库在linux系统下,可以通过拷贝方式搭建数据库环境,但是要求安装程序目录和数据文件目录和原始服务器完全一致。数据库数据文件存放的位置,可以通过达梦安装目录下/bin/dm.ini中的CTL_PATH1参数确定。如果需要设置开机自启动,方法如下:1.将dmserverd、dmagentd文件拷贝到/etc/rc.d/init.d目录中2.在rc3.d和rc5.d目录下建立启动连接,分别在目录下执行命令:ln-s/etc/rc.d/init.d/dmserverdS98dmserverdln-s/etc/rc.d/init.d/dmagentdS98dmagentd在rc0.d和rc6.d目录下建立停止服务链接,分别在目录下执行:ln-s/etc/rc.d/init.d/dmserverdK02dmserverd14ln-s/etc/rc.d/init.d/dmagentdK02dmagentd15二、客户端安装2.1使用DMInstall.bin文件安装使用DMInstall.bin文件进行安装,界面与服务器的安装界面相同,在选择安装类型时选择为->客户端。客户端安装在/home/d5000/dm/dmClient目录下,拷贝bin目录下的isql、expdb、impdb到/home/d5000/dm/dmClient目录下,将expdb\impdb重命名为exp\imp最后修改目录权限chown–Rd5000:d5000dm2.2通过拷贝方式安装拷贝方式安装,直接拷贝到相同路径下即可以使用。【注意问题】安装完客户端,在d5000用户下使用isql工具时报错:找不到libdmapi.so文件,是由于在使用d5000用户登录操作系统使用isql工具时,调用库文件是要去/home/d5000/*/lib下查找,需要在该目录下存在达梦的动态库才可以使用isql工具,如果没有达梦的动态库可以拷贝libdmapi.so、libdmdci.so、libdmucvt.so、libdmcrypto_engine.so、libdmoci.so文件到该目录下,同时cplibdmoci.solibclntsh.so。三、D5000系统数据库环境建立1.建立数据库、登录和用户CREATEDATABASEEMSDATAFILE'EMS.dbf'SIZE128;15CREATELOGINd5000IDENTIFIEDBY"d5000"DEFAULTDATABASEEMS;CREATELOGINexpmanIDENTIFIEDBY"technari"DEFAULTDATABASEEMS;CREATEDATABASEHISDBDATAFILE'HISDB.dbf'SIZE128;CREATELOGINalarmIDENTIFIEDBYALARMDEFAULTDATABASEHISDB;CREATELOGINhisdbIDENTIFIEDBYHISDBDEFAULTDATABASEHISDB;CREATELOGINsysconfigIDENTIFIEDBYSYSCONFIGDEFAULTDATABASEHISDB;CREATELOGINcontextIDENTIFIEDBYCONTEXTDEFAULTDATABASEHISDB;CREATELOGINrtdbIDENTIFIEDBYRTDBDEFAULTDATABASEHISDB;CREATELOGINhisreportIDENTIFIEDBYHISREPORTDEFAULTDATABASEHISDB;CREATELOGINstaticsIDENTIFIEDBYSTATICSDEFAULTDATABASEHISDB;CREATELOGINYXFXIDENTIFIEDBYYXFXDEFAULTDATABASEHISDB;SetcurrentdatabaseEMS;CREATEUSEREMS;GRANTDBATOEMS;CREATEUSERexpman;GRANTDBATOexpman;CREATEUSERHISDB;16GRANTDBATOHISDB;CREATEUSERSTATICS;GRANTDBATOSTATICS;ALTERUSEREMS.emsRELATEDBYd5000;ALTERUSEREMS.expmanRELATEDBYexpman;ALTERUSEREMS.hisdbRELATEDBYhisdb;ALTERUSEREMS.staticsRELATEDBYstatics;SetcurrentdatabaseHISDB;CREATEUSERalarm;GRANTDBATOalarm;CREATEUSERhisdb;GRANTDBATOhisdb;CREATEUSERsysconfig;GRANTDBATOsysconfig;CREATEUSERcontext;GRANTDBATOcontext;CREATEUSERrtdb;17GRANTDBATOrtdb;CREATEUSERhisreport;GRANTDBATOhisreport;CREATEUSERstatics;GRANTDBATOstatics;CREATEUSERYXFX;GRANTDBATOYXFX;ALTERUSERHISDB.alarmRELATEDBYALARM;ALTERUSERHISDB.hisdbRELATEDBYHISDB;ALTERUSERHISDB.sysconfigRELATEDBYSYSCONFIG;ALTERUSERHISDB.contextRELATEDBYCONTEXT;ALTERUSERHISDB.rtdbRELATEDBYRTDB;ALTERUSERHISDB.hisreportRELATEDBYHISREPORT;ALTERUSERHISDB.staticsRELATEDBYSTATICS;ALTERUSERHISDB.YXFXRELATEDBYYXFX;2.使用脚本建立数据库,或者使用备份文件还原数据库18使用物理bak文件还原数据库的方法详见->物理还原数据库部分,使用逻辑备份DMP文件还原数据库详见->逻辑还原数据库部分。达梦数据库备份还原一、物理还原数据库物理还原,即使用物理备份BAK文件还原数据库,还原到的目的数据库的建库参数要和原始数据库一致,包括页大小、簇大小、大小写敏感。还原数据库时,要求当前对该数据库没有连接访问,可以通过关闭所有应用,或者修改达梦的端口号来实现,具体参见1.3节。1.1使用SQL语句还原1.以系统管理员用户登录数据库./isqlSYSDBA/SYSDBA@127.0.0.1@符号后为数据库的IP地址。2.脱机所要还原的数据库SQL>ALTERDATABASE[数据库名]SETOFFLINE;例:ALTERDATABASEEMSSETOFFLINE;如果报错当前对象被占用,按照1.3中的方法确认数据库是否有连接访问。3.还原数据库19SQL>RESTOREDATABASE[数据库名]FULLFROM‘备份文件绝对路径’;例:RESTOREDATABASEEMSFULLFROM‘/dbdata/dmdata/EMS_BAK1.bak’;4.数据库联机SQL>ALTERDATABASE[数据库名]SETONLINE;5.关联用户与登录,如还原EMS数据库,需使用SYSDBA登录数据库执行如下SQL:SETCURRENTDATABASEEMS;ALTERUSEREMSRELATEDBYD5000;ALTERUSEREXPMANRELATEDBYEXPMAN;ALTERUSERHISDBRELATEDBYHISDB;ALTERUSERSTATICSRELATEDBYSTATICS;1.2使用达梦客户端还原使用客户端进行还原,同样使用上面的方式进行还原,只是操作简单。1.以SYSDBA登录到数据库后,脱机要还原的数据库20成功脱机会弹出提示信息,如果报错“当前对象被占用”,按照1.3中的方法确认数据库是否有连接访问。2.还原数据库3.选择备份文件214.还原完成后会给出提示信息5.进行数据库联机221.3清除数据库访问当数据库在脱机时,如果报错“当前对象被占用”,说明当前数据库连接中存在联机正在访问所要还原的数据库,通过以下方式查找相关数据库连接:isql登录数据库:./isqlSYSDBA/SYSDBA@127.0.0.1执行查询:select*fromv$session;该查询会返回当前数据库中的连接信息,包含登录用户、登录的IP地址等信息,通过这些信息可以先关闭相应的连接再进行数据库脱机操作。在某些情况下,可能不方便关闭所有的连接,此时我们可以通过修改数据库的访问端口号来拒绝应用对数据库的访问。修改达梦安装目录下bin/dm.ini文件,其中的PORT_NUM为数据库端口号,修改为其他值即可,如22345,重启数据库后参数生效。但是需要注意,此时访问数据库的端口后也要使用修改后的值,例如,使用isql登录数据库命令如下:./isqlSYSDBA/SYSDBA@127.0.0.1:22345二、物理备份数据库2.1.通过isql进行数据库备份1.以系统管理员用户登录数据库./isqlSYSDBA/SYSDBA@127.0.0.123@符号后为数据库的IP地址。242.备份数据库SQL>BACKUPDATABASE[数据库名]FULLTO[备份文件名];详细语法格式如下:BACKUPDATABASE<数据库名>[FULL|INCREMENT]TO<备份名>[BAKFILE‘<备份路径>’][BACKUPINFO‘<备份描述>’][MAXSIZE<限制大小>][IDENTIFIEDBY<密钥>[WITHENCRYPTION]][COMPRESSED];例:BACKUPDATABASEEMSFULLTOEMS_BAK1;2.2.使用达梦客户端备份1.以SYSDBA登录数据库,在需要备份的数据库上右击->备份2.填写备份名称及选择备份类型24三、逻辑备份与还原数据库达梦数据库的逻辑备份还原工具用于3.1逻辑备份工具1.导出单张表或多张表./expdb[userid]/[password]@mdbtables=[table1],…file=out.dmplog=out.log该工具到userid用户默认的数据库中去查找需要备份的表,如果涉及到跨数据库查找,需要在密码后面再添加数据库名。./expdb[userid]/[password]/[dbname]@mdbtables=[table1],…file=out.dmplog=out.log例:./expdbd5000/d5000@mdbtables=substation,breakerfile=out.dmp2.导出一个用户25./expdb[userid]/[password]@mdbowner=[username]file=out.dmp例:./expdbSYSDBA/SYSDBA/EMS@mdbowner=EMSfile=out.dmplog=out.log3.导出整个数据库./expdb[userid]/[password]/[dbname]@mdbfile=out.dmplog=out.log例:./expdbSYSDBA/SYSDBA/EMS@mdbfile=out.dmplog=out.log4.导出表结构./expdb[userid]/[password]/[dbname]@mdbrows=nfile=out.dmplog=out.log例:./expdbSYSDBA/SYSDBA/EMS@mdbrows=nfile=out.dmplog=out.log5.导出一张表的部分内容DM6在2013年6月份的版本之后提供了备份一张表中部分内容的功能,即expdb工具支持了query参数,通过该参数可以按照一定的条件导出部分数据,如下:导出一天的历史采样数据:./expdbHISDB/HISDB@histables=yc_hs_500281,yc_hs_5000282query=”whereoccur_time>=’2013-12-1’andoccur_time<’2013-12-2’”file=yc_hs.dmp263.2逻辑还原27达梦的逻辑还原工具在还原过程中是以追加的方式插入数据的,一旦出现违反唯一性约束的数据,当前表的导入立刻停止。所以在导入的过程中建议先将原表删除。1.导入整个DMP文件./impdb[userid]/[password]@mdbfile=out.dmplog=imp.log2.导入DMP文件中的部分表./impdb[userid]/[password]@mdbtables=[table1],…file=out.dmplog=imp.log该种导入方法要求使用的登录能够直接访问到tables参数后面的表。例:./impdbd5000/d5000@mdbtables=substationfile=out.dmplog=imp.log3.导入DMP文件到异名数据库中./impdb[userid]/[password]/[目的库]@mdbignored=Nfile=out.dmplog=imp.log例:将EMS库备份的文件导入到TEST数据库中./impdbSYSDBA/SYSDBA/TEST@mdbignoredb=nfile=out.dmplog=imp.log4.导入DMP文件到其他用户下27./impdb[userid]/[password]@mdbfromuser=user1touser=user2file=out.dmplog=imp.log28例:将EMS用户备份文件还原到SYSDBA用户下./impdbSYSDBA/SYSDBA/EMS@mdbfromuser=EMStouser=SYSDBAfile=out.dmplog=imp.log达梦数据库代理作业设置代理作业主要完成达梦的自动定时备份功能,下面以添加定时备份为例,介绍添加定时备份的过程。1.设置代理(1)右击【代理】,选择【属性】(2)设置代理属性。其中【STMP服务器】和【Email地址】可随便填写,如果想在备份任务完成后得到通知可以写自己email地址,但所有选项不能为空,其中密码为SYSDBA用户密码,默认为SYSDBA。28(3)刷性【代理】节点,显示出作业、警报、操作员等信息说明新建成功。2.设置作业(1)右击作业,选择【新建作业】29(2)填写【作业名】(3)设置作业步骤30单击【新建】建立步骤:单击【确定】,新建成功:31设置定时删除备份,调用函数SP_DEL_BAK_EXPIRED(‘EMS’,20);即删除20天前备份。3.设置作业调度(1)选择调度32(2)单击【新建】,建立作业调度:【调度类型】为反复执行,发生概率根据具体需求选择,每日频率,若执行一次选择具体执行时间。持续时间根据需求选择。(3)单击【确定】,建立成功。336.单击【确定】,整个作业设置成功。数据库维护一、单机库和阵列库的启动与停止1.1关闭达梦数据库正常关闭达梦数据库是非常重要的步骤,非正常的达梦数据库关闭可能导致数据文件损坏,从而导致达梦数据库无法再次启动。关闭数据库需要使用root用户登录到数据库,此处分为单机库停止和阵列库停止。1.单机库停止进行停止数据库操作,停止数据库执行命令:/etc/rc.d/init.d/dmserverdstop34脚本执行成功后会返回[OK],但是数据库并未完全停止,必须通过ps–ef|grepdmserver查看达梦数据库进程是否存在来确认是否完全停止,通过上述命令,没有返回如下信息说明数据库停止成功:kf1:/dmdb/dm/bin#ps-ef|grepdmserverroot205571213:03pts/000:00:00/dmdb/dm/bin/dmserverdm.ini–noconsole2.阵列库停止由于阵列库中数据库资源是由操作系统HA软件来控制,此处也分为两个方面。1)只重启数据库此时操作同单机库,停止后会由HA软件自动启动数据库。2)完全停止数据库此时需要停止操作系统HA软件。停止HA时需要先停止备机节点HA,再停止主机节点HA。主备机可以通过查看/dbdata及/dbbak阵列目录挂载在的服务器确定,挂载了这两个阵列目录的服务器是主机。停止HA软件的命令为:凝思:/etc/rc.d/init.d/openaisstop麒麟:/etc/rc.d/init.d/heartbeatstop当返回[OK]时,说明停止成功。351.2数据库启动启动数据库需要使用root用户登录到数据库节点,分为单机启动和阵列库启动。1.单机启动执行:etc/rc.d/init.d/dmserverdstart启动成功返回[OK]但是数据库并未完全启动成功,通过查看数据库日志可以确定数据库是否启动完毕,数据库日志存储在/dmdb/dm/log,日志格式dm_[YYMM].log(如dm_201212.log):tail–f/dmdb/dm/log/dm_201212.log出现如下信息说明数据库启动完毕:2012-12-1410:37:01databaseT00005792checkpointend.2.阵列库启动在部署了阵列库后,数据库服务完全由操作系统HA软件来控制,如果只是重启数据库,在停止库后不需要做手动启动数据库的操作。但是如果是重启服务器后需要启动数据库服务,则只需确定HA软件已经启动即可,启动HA时先启动主机节点,待主机节点所有资源启动完毕,再启动备机节点。HA软件的启动方式:凝思:/etc/rc.d/init.d/openaisstart麒麟:/etc/rc.d/init.d/heartbeatstart36HA软件启动成功返回[OK]。但是此时并未完全启动成功,可以通过crm_mon命令查看双机启动状态,如下状态说明数据库已经启动。Online:[his02his01]ResourceGroup:rsc-grouprsc-vip-public(ocf::heartbeat:IPaddr):Startedhis02rsc-fso(ocf::heartbeat:Filesystem):Startedhis02rsc-fss(ocf::heartbeat:Filesystem):Startedhis02dmserver(lsb:dmserverd):Startedhis02rsc-dmdata(lsb:dmagentd):Startedhis02CloneSet:fencing[st-ssh]Started:[his01his02]CloneSet:rsc-clone-pingd[rsc-pingd]Started:[his01his02]二、数据库无法连接问题定位当数据库出现无法连接的情况时,通过如下的步骤确定数据库问题2.1排查是否是网络原因ping数据库vip地址(192.1.1.1)ping数据库实际地址db01(192.1.1.2)\db02(192.1.1.3)如果vip无法ping通,db01和db02均无法ping通,有可能网络出现问题。如果db01和db02均可以ping通,有可能操作系统HA出现故障,进行操作系统HA排查,见下。排查操作系统HA运行情况使用root用户连接上数据库服务器db01或db02,执行crm_mon命令查看HA运行状态,如果HA正常运行,会返回如下消息:37Lastupdated:MonMay1318:55:032013Stack:openaisCurrentDC:db02-partitionwithquorumVersion:1.1.4-ac608e3491c7dfc3b3e3c36d966ae9b016f770652Nodesconfigured,2expectedvotes3Resourcesconfigured.============Online:[db01db02]ResourceGroup:rsc-grouprsc-vip(ocf::heartbeat:IPaddr):Starteddb02rsc-filesystem(ocf::heartbeat:Filesystem):Starteddb02rsc-filesystem1(ocf::heartbeat:Filesystem):Starteddb02rsc-filesystem-bak(ocf::heartbeat:Filesystem):Starteddb02rsc-dmserverd(lsb:dmserverd):Starteddb02rsc-dmagent(lsb:dmagentd):Starteddb02CloneSet:fencing[st-ssh]Started:[db02db01]CloneSet:rsc-pingd-clone[rsc-pingd]Started:[db02db01]其中:Online表示在线运行的节点;ResourceGroup:rsc-group下面各个资源后面的Starteddb02,表示主机运行所在服务器,Started表示资源正在运行,Failed表示检测到资源运行失败,Unmanaged表示资源处于托管状态,HA无法监控资源状态。38在遇到资源出现Unmanage状态时需要将HA重新停止,停止方法:/etc/rc.d/init.d/openaisstop(麒麟操作系统为/etc/rc.d/init.d/heartbeatstop)返回OK,说明资源停止,通过df–h命令查看/dbdata和/dbbak目录是否已经卸载。在遇到资源出现Failed状态时,说明HA检测到资源异常,该类问题HA会自动处理,会将相应资源重启拉起,当然还存在启动多次认为Failed的问题,该类问题,在下面只会介绍当rsc-dmserverd服务出现异常的处理情况,其余的问题数据网络问题和阵列问题,这些问题很容易判断故障原因。2.2排查数据库是否可以连接使用root用户登录到数据库服务器上,通过crm_mon命令查看数据库主机Lastupdated:MonMay1318:55:032013Stack:openaisCurrentDC:db02-partitionwithquorumVersion:1.1.4-ac608e3491c7dfc3b3e3c36d966ae9b016f770652Nodesconfigured,2expectedvotes3Resourcesconfigured.============Online:[db01db02]ResourceGroup:rsc-grouprsc-vip(ocf::heartbeat:IPaddr):Starteddb02rsc-filesystem(ocf::heartbeat:Filesystem):Starteddb02rsc-filesystem1(ocf::heartbeat:Filesystem):Starteddb0239rsc-filesystem-bak(ocf::heartbeat:Filesystem):Starteddb02rsc-dmserverd(lsb:dmserverd):Starteddb02rsc-dmagent(lsb:dmagentd):Starteddb02CloneSet:fencing[st-ssh]Started:[db02db01]CloneSet:rsc-pingd-clone[rsc-pingd]Started:[db02db01]其中红色部分说明主机运行在db02上,连接到db02,进入到/dmdb/dm/bin目录下,开始排查问题:1)检查dmserver进程是否存在db02:~#ps-ef|grepdmserverroot491925203019:13pts/000:00:00grepdmserverroot8974158Apr2311-13:20:07/dmdb/dm/bin/dmserverdm.ini-noconsole返回如上红色部分信息,说明达梦服务进程正在运行:如果达梦进程不在,结合HA问题排查部分,确认出现问题的资源。2)达梦进程存在,使用isql工具连接数据库,在/dmdb/dm/bin目录下执行:db02:/dmdb/dm/bin#./isqlSYSDBA/SYSDBA@127.0.0.1isqlV6.0.2.79-Build(2013.04.11)loginsuccessSQL>40返回loginsuccess,说明数据库可以正常连接,并无异常,需要检查应用和网络方面故障。返回loginfailed,说明数据库无法连接,使用如下命令查看数据库当前连接数:db02:/dmdb/dm/bin#netstat-anp|grep12345|wc-l570一区连接数不能超过500,三区连接数不能超过1000,如果超过这两个值,说明是由于应用建立的连接数超过数据库配置上限导致。需要排查存在连接泄露的应用程序。3)在上步骤中,如果连接数据库没有异常,查看达梦数据库检查点日志,进入到/dmdb/dm/log目录下,达梦服务运行日志格式为dm_年月.log,该日志每个一分钟会进行一次日志,每一次的日志记录内容如下:db02:/dmdb/dm/log#tail-fdm_201305.log2013-05-1319:23:17databaseT1169238336checkpointsetwithtype1.2013-05-1319:23:17databaseT1113446720checkpointstart(1,1,20)...2013-05-1319:23:17databaseT1113446720redologflush...2013-05-1319:23:17databaseT1113446720systembufferflush...2013-05-1319:23:18databaseT1113446720checkpointend.查看日志最前端日期,是否和系统当前日期接近,如果不接近,说明数据库检查点卡住。数据库检查点卡住,一般是有两方面的问题原因:411.磁盘无法访问,此时检测下数据文件所在磁盘是否可以正常读写,以及测试下读写的速度。2.数据库本身问题,如果磁盘没有问题,需要数据库来分析问题,此时为了尽快恢复系统,可以通过手动生成core文件先恢复系统,后期有数据库厂家分析core文件来确定问题原因。恢复系统过程如下。此时需要重启数据库,为了分析数据库异常问题,此时需要生成一个core文件,协助分析问题,先获取dmserver的进程号,再杀掉服务,如下:db02:/dmdb/dm/log#ps-ef|grepdmserverroot8974158Apr2311-13:36:45/dmdb/dm/bin/dmserverdm.ini-noconsoleroot2070325203019:37pts/000:00:00grepdmserverdb02:/dmdb/dm/log#kill-SIGSEGV8974Core文件生成完毕后,dmserver进程会退出,并由HA将达梦服务启动,数据库启动时,可以查看达梦服务日志,如dm_201305.log,启动时数据库会进行恢复检查,直至出现如下信息,数据库才恢复完毕:2013-04-1721:36:44databaseT210391216052013-04-1721:36:44databaseT210391216062013-04-1721:36:44databaseT210391216072013-04-1721:36:44databaseT210391216082013-04-1721:36:44databaseT210391216092013-04-1721:36:44databaseT2103912160102013-04-1721:36:44databaseT2103912160recoverydb13end.2013-04-1721:38:16databaseT2103912160rollbackstart...422013-04-1721:38:16databaseT2103912160rollbackend...2013-04-1721:38:18databaseT2103912160checkpointsetwithtype17.2013-04-1721:38:18databaseT1116080448checkpointstart(17,0,100)...2013-04-1721:38:18databaseT1116080448redologflush...2013-04-1721:38:18databaseT1116080448systembufferflush...2013-04-1721:38:18databaseT1116080448checkpointend.三、数据库性能问题排查数据库出现性能问题时,通常存在如下几方面问题:数据库整体运行慢部分SQL语句执行效率差3.1数据库整体响应慢问题排查1.排查硬件性能如果数据库长时间出现响应慢的问题,有可能会是IO遇到瓶颈,可以通过操作系统top命令查看,查看wi%的使用大小。同时,可以使用io_test小程序进行简易测试,改程序位于达梦安装目录下tools目录下,使用方法:./io_test108192/dbdata/testfiles参数说明:1:一个线程0:不停地写438192:每次顺序写的字节数/dbdata/testfiles:目的文件返回结果如下:db01:/dmdb/dm/tools#./io_test108192/dbdata/test20131213deletefilefailed![Thread_0]running......countstart......countend......fileoffsetin10s:280.492188MB[startat0X118BE000,endat0X2313C000]一般阵列上10秒钟会写200MB以上,但是IPsan的存储大概在100MB到200MB之间。2.排查数据库问题root用户登录到数据库服务器上,查看dmserver进程的CPU,一般情况下,有一条执行耗时长的SQL,CPU使用率会上升100%(服务器多核,上限CPU个数*100%),如果CPU使用率很高说明存在执行速度慢的SQL。查询执行性能差的语句:使用SYSDBA登录到数据库中,执行如下SQL查询执行效率差的SQL:44Selectcpu_time_call,login_name,app_name,sql_textfromv$sessionwherecpu_time_call>0;其中:Cpu_time_call:当前连接正在执行的SQL已经执行的时间,单位:毫秒Login_name:该连接的登录名App_name:当前连接的程序名称Sql_text:当前连接正在执行的SQL根据查询出的结果集,确定出执行速度慢的SQL。3.2部分SQL语句执行效率差数据库中出现部分语句执行效率慢的问题,需要针对具体的SQL语句进行优化,找出执行效率慢的语句的方法同上面的方法,查看v$session动态视图中cpu_time_call耗时长的语句。有时,还会出现数据库中SQL语句执行正常,但是部分表无法全表查询的问题。该问题,一般是由于相关的表可能存在没有提交的事务,导致全表查询无法返回结果。针对此类问题可以通过如下的方法进行查询:selecta.saddr,a.cpu_time_call,a.app_name,a.sql_textfromsystem.sysdba.v$sessiona,system.sysdba.v$lockbwherea.trx_id=b.trx_id;45反复执行上述语句,如果结果集中相同内容长时间存在,就可能相关的数据表出现了未提交的事务。如果无法查到未提交的程序,可以选择使用dm_close_connect存储过程主动断开数据库连接,使用方法:Selectdm_close_connect(‘SADDR’);其中的参数SADDR取自上述查询出来的SADDR字段。一三区同步问题排查一三区同步功能中,一区dmserver服务会将接收到的相关操作先记录入缓存文件中,缓存文件存储在/dbbak/asyn_send中,三区asyn_server进程接收一区发送的文件,三区缓存文件存放在/dbbak/asyn_recv中。当发现一三区同步不正常时,通过如下的方法检查:1.查看一区/dbbak/asyn_send目录文件个数,正常情况下只会存在一个log文件2.在一区登录到数据库中,执行如下SQL,查看一三区同步速度:hd1103:/dmdb/dm/bin#LANG=zh_CNhd1103:/dmdb/dm/bin#./isqlSYSDBA/SYSDBAisqlV6.0.2.79-Build(2012.12.18)loginsuccessSQL>SELECTASYN_GET_FLOW(10);SELECTASYN_GET_FLOW(10);ASYN_GET_FLOW(10)1在10秒内读了7742464字节,平均每秒756K,在10秒内写了7741440字节,平均每秒756K1rowsgot46返回的结果中,读的速度是向三区传输的速度,写的速度是在本地缓存的速度,理论上读的速度应该大于登录写的速度。1.查看一区数据库系统日志/dmdb/dm/log/dm_201305.log(以年月结尾),如果出现信息:cannotconnectasynserver(30.10.39.15:12343)说明隔离装置不通,需要检查网络。2.也可以在三区查看同步速度,在/dmdb/dm/bin目录下执行./asyn_serverenable_show_net_flow执行完毕后,在/dmdb/dm/asyn_log/asyn_server_20130513.log目录中会记录如下信息:hd3016:/dmdb/dm/asyn_log#tail-fasyn_server_20130513.log2013-05-1320:02:37115906387210秒钟传输了695个数据包,共2389K(2.333750M)的数据,平均每秒238.9760K(0.233375M)2013-05-1320:02:47115906387210秒钟传输了837个数据包,共7770K(7.588285M)的数据,平均每秒777.0404K(0.758829M)47
/
本文档为【达梦数据库操作手册】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索