达梦数据库操作手册.docx
《达梦数据库操作手册.docx》由会员分享,可在线阅读,更多相关《达梦数据库操作手册.docx(38页珍藏版)》请在冰豆网上搜索。
达梦数据库操作手册
本页仅作为文档封面,使用时可以删除Thisdocumentisforreferenceonly-rar21year.March
达梦数据库操作手册(总47页)
达梦数据库操作手册
2013年12月15日
达梦数据库安装
一、服务器安装
1.1数据库安装注意问题
数据库的安装路径不要直接放在操作系统的/目录相同的磁盘上,可以安装在/dmdb/dm,但是/dmdb要单独挂载在一块硬盘上。
根据业务需要及数据量,数据文件放在磁盘空间较大的分区下。
1.2安装步骤
1.2.1图形化界面安装
1.为DMInstall.bin赋予可执行权限
chmod +x DMInstall.bin
2.运行DMInstall.bin,进行数据库安装
./DMInstall.bin
3.接受安装许可协议
4.查看版本信息
5.选择安装的key文件
6.选择安装类型
7.选择安装路径,及勾选高级配置选项
8.进行高级选项数据库配置,页大小32K,簇大小16页,大小写敏感->“是”,UNICODE字符集->“否”,空串‘’按NULL处理->“是”
9.修改系统管理员密码,此处不需要修改
10.开始菜单文件夹建立
11.完成安装配置,显示安装小结
12.完成安装,修改安装目录下dm.ini文件中的部分参数,详见1.2.3节内容。
1.2.2字符形式安装
某些情况下,无法使用图形话界面连接到服务器上,此时安装达梦数据库可以使用字符界面安装。
1.运行达梦安装文件
./DMInstall.bin -i
如果提示权限不够,进行授权,执行:
chmod+xDMInstall.bin
2.开始安装,根据提示输入dm.key所在位置
WelcometoDMInstallProgram
PleaseInputthePathoftheKeyFile[/home/d5000/dm_install/dm.key]:
方括号内为key文件所在位置默认路径,回车选择默认路径。
3.选择安装类型
ExpirationDate:
unlimited
ServerSeries:
EnterpriseEdition
ServerType:
TrialEdition
CustomerName:
国电南瑞
AuthorizedUserNumber:
1
ConcurrencyUserNumber:
unlimited
InstallationType:
1Typical
2Server
3Client
4Custom
PleaseInputthenumberoftheInstallationType[1Typicail]:
选择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]:
例如,数据文件路径设置为/dbdata/dmdata,输入路径。
9.确认数据文件路径
PleaseConfirmthedatainstallpath(Y/y,N/n)[Y/y]:
输入Y
10.修改初始化数据库参数
WhethertoModifyDataBaseInitiationParameter(Y/y,N/n)[N/n]:
选择Y,对数据库参数进行修改。
参数设置为大小写敏感,页大小32K,簇大小16页,空串(‘’)按NULL处理,修改参数如下(红色字体为输入):
WhethertoModifyDataBaseInitiationParameter(Y/y,N/n)[N/n]:
Y
DataPageSize,only4k,8k,16k,32k[8]32
DataFileExtentSize,only16pagesor32pages[16]16
Stringcasesensitive:
Ysensitive;Nnosensitive[N]Y
UNICODESupport:
0nosupport;1support[0]0
EmptyString('')asNULL:
Yyes;Nno[N]Y
11.选择不修改管理员、审计员密码
WhethertoModifySYSDBAPassword(Y/y,N/n)[N/n]:
N
WhethertoModifySYSAUDITORPassword(Y/y,N/n)[N/n]:
N
12.确认安装
Pre-InstallationSummary
InstallationLocation:
/dmdb/dm
DataInstallationLocation:
/dbdata/dmdata
RequireSpace:
371M
AvailableSpace:
105G
DataRequireSpace:
315M
DataAvailableSpace:
31G
VersionInformation:
EnterpriseEdition
ExpireData:
unlimited
InstallationType:
Typical
ConfirmtoInstall(Y/y,N/n)[Y/y]:
Y
13.完成安装,修改安装目录下dm.ini文件中的部分参数,详见1.2.3节内容。
1.2.3参数修改
1.安装目录下dm.ini的修改
需要添加的参数:
#FOROBJECTLIMIT
TOTAL_OBJECT_NUM_LIMIT =100000
OBJECT_NUM_LIMIT =50000
#FORFASTUPDATE
BCP_WITH_LOG =1
CTAB_SEL_WITH_PK =1
ENABLE_FAST_UPDATE =1
#forSQLTRACE
SVR_LOG =100000
SVR_LOG_FILE_NUM =10
SQL_LOG_MASK = 31
需要修改的参数:
MEMORY_POOL =100
BUFFER =200000(内存为32G设置为20万)
MAX_BUFFER =250000
DBUF_MODE =0
WORKER_THREADS =16
CHKPNT_INTERVAL =60
CHKPNT_FLUSH =20
IO_THR_GROUPS =8
MAX_SESSIONS =500
BAK_POLICY =1
PWD_POLICY =0
IGNORE_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中。
mdb:
模型数据库服务名。
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/dmserverdS98dmserverd
ln -s /etc/rc.d/init.d/dmagentdS98dmagentd
在rc0.d和rc6.d目录下建立停止服务链接,分别在目录下执行:
ln -s /etc/rc.d/init.d/dmserverd K02dmserverd
ln -s /etc/rc.d/init.d/dmagentd K02dmagentd
二、客户端安装
2.1使用DMInstall.bin文件安装
使用DMInstall.bin文件进行安装,界面与服务器的安装界面相同,在选择安装类型时选择为->客户端。
客户端安装在/home/d5000/dm/dmClient目录下,拷贝bin目录下的isql、expdb、impdb到/home/d5000/dm/dmClient目录下,将expdb\impdb重命名为exp\imp
最后修改目录权限
chown–Rd5000:
d5000dm
2.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;
CREATELOGINd5000IDENTIFIEDBY"d5000"DEFAULTDATABASEEMS;
CREATELOGINexpmanIDENTIFIEDBY"technari"DEFAULTDATABASEEMS;
CREATEDATABASEHISDBDATAFILE'HISDB.dbf'SIZE128;
CREATELOGINalarmIDENTIFIEDBYALARMDEFAULTDATABASEHISDB;
CREATELOGINhisdbIDENTIFIEDBYHISDBDEFAULTDATABASEHISDB;
CREATELOGINsysconfigIDENTIFIEDBYSYSCONFIGDEFAULTDATABASEHISDB;
CREATELOGINcontextIDENTIFIEDBYCONTEXTDEFAULTDATABASEHISDB;
CREATELOGINrtdbIDENTIFIEDBYRTDBDEFAULTDATABASEHISDB;
CREATELOGINhisreportIDENTIFIEDBYHISREPORTDEFAULTDATABASEHISDB;
CREATELOGINstaticsIDENTIFIEDBYSTATICSDEFAULTDATABASEHISDB;
CREATELOGINYXFXIDENTIFIEDBYYXFXDEFAULTDATABASEHISDB;
SetcurrentdatabaseEMS;
CREATEUSEREMS;
GRANTDBATOEMS;
CREATEUSERexpman;
GRANTDBATOexpman;
CREATEUSERHISDB;
GRANTDBATOHISDB;
CREATEUSERSTATICS;
GRANTDBATOSTATICS;
ALTERUSEREMS.emsRELATEDBYd5000;
ALTERUSEREMS.expmanRELATEDBYexpman;
ALTERUSEREMS.hisdbRELATEDBYhisdb;
ALTERUSEREMS.staticsRELATEDBYstatics;
SetcurrentdatabaseHISDB;
CREATEUSERalarm;
GRANTDBATOalarm;
CREATEUSERhisdb;
GRANTDBATOhisdb;
CREATEUSERsysconfig;
GRANTDBATOsysconfig;
CREATEUSERcontext;
GRANTDBATOcontext;
CREATEUSERrtdb;
GRANTDBATOrtdb;
CREATEUSERhisreport;
GRANTDBATOhisreport;
CREATEUSERstatics;
GRANTDBATOstatics;
CREATEUSERYXFX;
GRANTDBATOYXFX;
ALTERUSERHISDB.alarmRELATEDBYALARM;
ALTERUSERHISDB.hisdbRELATEDBYHISDB;
ALTERUSERHISDB.sysconfigRELATEDBYSYSCONFIG;
ALTERUSERHISDB.contextRELATEDBYCONTEXT;
ALTERUSERHISDB.rtdbRELATEDBYRTDB;
ALTERUSERHISDB.hisreportRELATEDBYHISREPORT;
ALTERUSERHISDB.staticsRELATEDBYSTATICS;
ALTERUSERHISDB.YXFXRELATEDBYYXFX;
2.使用脚本建立数据库,或者使用备份文件还原数据库
使用物理bak文件还原数据库的方法详见->物理还原数据库部分,使用逻辑备份DMP文件还原数据库详见->逻辑还原数据库部分。
达梦数据库备份还原
一、物理还原数据库
物理还原,即使用物理备份BAK文件还原数据库,还原到的目的数据库的建库参数要和原始数据库一致,包括页大小、簇大小、大小写敏感。
还原数据库时,要求当前对该数据库没有连接访问,可以通过关闭所有应用,或者修改达梦的端口号来实现,具体参见1.3节。
1.1使用SQL语句还原
1.以系统管理员用户登录数据库
./isqlSYSDBA/SYSDBA@127.0.0.1
@符号后为数据库的IP地址。
2. 脱机所要还原的数据库
SQL>ALTERDATABASE[数据库名]SETOFFLINE;
例:
ALTERDATABASEEMSSETOFFLINE;
如果报错当前对象被占用,按照1.3中的方法确认数据库是否有连接访问。
3. 还原数据库
SQL>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登录到数据库后,脱机要还原的数据库
成功脱机会弹出提示信息,如果报错“当前对象被占用”,按照1.3中的方法确认数据库是否有连接访问。
2.还原数据库
3.选择备份文件
4.还原完成后会给出提示信息
5.进行数据库联机
1.3清除数据库访问
当数据库在脱机时,如果报错“当前对象被占用”,说明当前数据库连接中存在联机正在访问所要还原的数据库,通过以下方式查找相关数据库连接:
isql登录数据库:
./isqlSYSDBA/SYSDBA@127.0.0.1
执行查询:
select * from v$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.1
@符号后为数据库的IP地址。
2. 备份数据库
SQL>BACKUPDATABASE[数据库名]FULLTO[备份文件名];
详细语法格式如下:
BACKUPDATABASE<数据库名>[FULL|INCREMENT]TO<备份名>[BAKFILE‘<备份路径>’][BACKUPINFO ‘<备份描述>’][MAXSIZE<限制大小>][IDENTIFIEDBY<密钥>[WITHENCRYPTION]][COMPRESSED];
例:
BACKUPDATABASEEMSFULLTO EMS_BAK1;
2.2.使用达梦客户端备份
1.以SYSDBA登录数据库,在需要备份的数据库上右击->备份
2.填写备份名称及选择备份类型
三、逻辑备份与还原数据库
达梦数据库的逻辑备份还原工具用于
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@mdb tables=substation,breaker file=out.dmp
2.导出一个用户
./expdb[userid]/[password]@mdbowner=[username] file=out.dmp
例:
./expdbSYSDBA/SYSDBA/EMS@mdb owner=EMS file=out.dmp log=out.log
3.导出整个数据库
./expdb [userid]/[password]/[dbname]@mdbfile=out.dmplog=out.log
例:
./expdbSYSDBA/SYSDBA/EMS@mdbfile=out.dmplog=out.log
4.导出表结构
./expdb[userid]/[password]/[dbname]@mdbrows=nfile=out.dmp log=out.log
例:
./expdbSYSDBA/SYSDBA/EMS@mdbrows=nfile=out.dmplog=out.log
5.导出一张表的部分内容
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.dmp
3.2逻辑还原
达梦的逻辑还原工具在还原过程