版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
達(dá)夢(mèng)數(shù)據(jù)庫(kù)操作手冊(cè)(總47
頁(yè))
本頁(yè)僅作為文檔封面,使用口寸可以刪除
Thisdocumentisfbrreferenceonly-rar21ycar.March
達(dá)夢(mèng)數(shù)據(jù)庫(kù)操作手冊(cè)
2013年12月15日
達(dá)夢(mèng)數(shù)據(jù)庫(kù)安裝
一、服務(wù)器安裝
1.1數(shù)據(jù)庫(kù)安裝注意問(wèn)題
數(shù)據(jù)庫(kù)的安裝路徑不要直接放在操作系統(tǒng)的/目錄相同的磁盤(pán)上,可以安裝在
/dmdb/dm,但是/dmdb要單獨(dú)掛載在一塊硬盤(pán)上。
根據(jù)業(yè)務(wù)需要及數(shù)據(jù)量,數(shù)據(jù)文件放在磁盤(pán)空間較大的分區(qū)下。
1.2安裝步驟
1.2.1圖形化界面安裝
1.為DMInstall.bin賦予可執(zhí)行權(quán)限
chmod+xDMInstall.bin
2.運(yùn)行DMInstall.bin,進(jìn)行數(shù)據(jù)庫(kù)安裝
./DMInstall.bin
3.接受安裝許可協(xié)議
4.查看版本信息
3
5.選擇安裝的key文件
6.選擇安裝類(lèi)型
4
7.選擇安裝路徑,及勾選高級(jí)配置選項(xiàng)
8.進(jìn)行高級(jí)選項(xiàng)數(shù)據(jù)庫(kù)配置,頁(yè)大小32K,簇大小16頁(yè),大小寫(xiě)敏感-
>“是",UNICODE字符集否",空串"按NULL處理,“是”
5
9.修改系統(tǒng)管理員密碼,此處不需要修改
10.開(kāi)始菜單文件夾建立
6
11.完成安裝配置,顯示安裝小結(jié)
60
!■:事力裝臚
:.C:\dndUs
目費(fèi):C:\<hdb?s\d*t*
菅靈。達(dá)琴顆據(jù)摩
.784MB
9833HB
[<上一步e)]|安裝a)][取消(C)]
12.完成安裝,修改安裝目錄下dm.ini文件中的部分參數(shù),詳見(jiàn)1.2.3節(jié)內(nèi)
容。
1.2.2字符形式安裝
某些情況下,無(wú)法使用圖形話界面連接到服務(wù)器上,此時(shí)安裝達(dá)夢(mèng)數(shù)據(jù)庫(kù)可
以使用字符界面安裝。
1.運(yùn)行達(dá)夢(mèng)安裝文件
7
./DMInstall.bin-i
如果提示權(quán)限不夠,進(jìn)行授權(quán),執(zhí)行:
chmod+xDMInstal1.bin
2.開(kāi)始安裝,根據(jù)提示輸入dm.key所在位置
WelcometoDMInstallProgram
PleaseInputthePathoftheKeyFile[/home/d5000/dminstal1/dm.key]
方括號(hào)內(nèi)為key文件所在位也默認(rèn)路徑,回車(chē)選擇默認(rèn)路徑。
3.選擇安裝類(lèi)型
ExpirationDate:unlimited
ServerSeries:EnterpriseEdition
ServerType:TrialEdition
CustomerName:國(guó)電南瑞
AuthorizedUserNumber:1
ConcurrencyUserNumber:uniimited
InstallationType:
1Typical
2Server
3Client
4CutsLum
PleaseInputthenumberoftheInstallationType[1Typicail]:
8
選擇Typical,輸入10
4.選擇安裝路徑
PleaseInputtheinstallpath[/opt/dmdbms]:
例如,將達(dá)夢(mèng)安裝在/dmdb/dm,輸入路徑。
5.確認(rèn)安裝路徑
PleaseConfirmtheinstallpath(Y/y,N/n)[Y/y]:
輸入Y(或y)。
6.選擇初始化數(shù)據(jù)庫(kù)
WhethertoInitializetheDatabase(Y/y,N/n)[Y/y]:
輸入Y(或y)確定初始化數(shù)據(jù)庫(kù)。
7.選擇不安裝實(shí)例數(shù)據(jù)庫(kù)
InstallDemoDatabase(Y/y,N/n)[N/n]:
輸入工
8.選擇數(shù)據(jù)文件路徑
PleaseInputthedatainstallpath[/dmdb/dm/data]:
9
例如,數(shù)據(jù)文件路徑設(shè)置為/dbdata/dmdata,輸入路徑。
9.確認(rèn)數(shù)據(jù)文件路徑
PleaseConfirmthedatainstallpath(Y/y,N/n)[Y/y]:
輸入Y
10.修改初始化數(shù)據(jù)庫(kù)參數(shù)
WhethertoModifyDataBaseInitiationParameter(Y/y,N/n)[N/n]:
選擇Y,對(duì)數(shù)據(jù)庫(kù)參數(shù)進(jìn)行修改。參數(shù)設(shè)置為大小寫(xiě)敏感,頁(yè)大小32K,簇大
小16頁(yè),空串('')按NULL處理,修改參數(shù)如下(紅色字體為輸入):
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.選擇不修改管理員、審計(jì)員密碼
WhethertoModifySYSDBAPassword(Y/y,N/n)[N/n]:N
WhethertoModifySYS.U'DITORPassword(Y/y,N/n)[N/n]:N
10
12.確認(rèn)安裝
Pre-InstallationSummary
InstallationLocation:/dmdb/dm
DataInstallationLocation:/dbdata/dmdata
RequireSpace:37IM
AvailableSpace:105G
DataRequireSpace:315M
DataAvailableSpace:31G
VersionInformation:EnterpriseEdition
ExpireData:unlimited
InstallationType:Typical
ConfirmtoInstall(Y/y,N/n)[Y/y]:Y
13.完成安裝,修改安裝目錄下dm.ini文件中的部分參數(shù),詳見(jiàn)1.2.3節(jié)內(nèi)
容。
1.2.3參數(shù)修改
1.安裝目錄下dm.ini的修改
需要添加的參數(shù):
#FOROBJECTLIMIT
TOTALOBJECT_NUM_LIM1T=100000
OBJECT_NUM_LIMIT=50000
#FORFASTUPDATE
11
BCP_WITH_L0G=1
CTAB_SEL_WITH_PK二1
ENABLEFASTUPDATE=1
#forSQLTRACE
SVR_L0G=100000
SVR_LOG_FILE_NUM二10
SQL_L0G_MASK31
需要修改的參數(shù):
MEM0RY_P00I.二100
BUFFER=200000(內(nèi)存為32G設(shè)置為20萬(wàn))
MAX_BUFFER=250000
DBUF_M0DE=0
WORKERTHREADS=16
CHKPNT_INTERVAL=60
CHKPNTFI.IISH=20
10THRGROUPS=8
MAX_SESS10NS=500
12
BAK_POLICY=1
PWD_POLICY=0
IGNOREMUTATINGCHECK=1
注:參數(shù)與簡(jiǎn)要說(shuō)明
TOTAL_OBJECT_NUM_LIMIT:數(shù)據(jù)庫(kù)中所有對(duì)象最大數(shù)量
OBJECT_NUM_LIMIT:
2.修改/etc/dm/vc.conf文件
內(nèi)容如下:
debug=(0)
mdb=(192.168.200.1)//IP地址請(qǐng)以工程實(shí)際為準(zhǔn)
his=(192.168.200.1)〃IP地址請(qǐng)以工程實(shí)際為準(zhǔn)
primarykey二(off,precision,context,interval,percent,frequence)
showsql=(0)
配置文件中關(guān)鍵字的說(shuō)明:
dAhug:為調(diào)試選項(xiàng),取值為0(不打印R志)、1(打印日志到屏幕)、2
(打印日志到文件)、3(打印日志到屏幕和文件)。如果設(shè)置成打印到文件,那
么DCI會(huì)把接口調(diào)用打印到應(yīng)用所在目錄下的dmoci.log中。
13
mdb:模型數(shù)據(jù)庫(kù)服務(wù)名。
his:歷史數(shù)據(jù)庫(kù)服務(wù)名。
primary_key:關(guān)鍵字重命名,如果應(yīng)用中使用到了達(dá)夢(mèng)SQL中保留的關(guān)鍵單
詞,那么把該單詞加入到該配置項(xiàng)中便可,否則會(huì)引起語(yǔ)法分析的錯(cuò)誤。
show_sql:是否顯示調(diào)用DCI執(zhí)行的SQL語(yǔ)句,該參數(shù)只有在debug參數(shù)大
于0時(shí)才有效
1.3通過(guò)拷貝方式安裝數(shù)據(jù)庫(kù)
在linux系統(tǒng)下,可以通過(guò)拷貝方式搭建數(shù)據(jù)庫(kù)環(huán)境,但是要求安裝程序目
錄和數(shù)據(jù)文件目錄和原始服務(wù)器完全一致。
數(shù)據(jù)庫(kù)數(shù)據(jù)文件存放的位置,可以通過(guò)達(dá)夢(mèng)安裝目錄下/bin/dm.ini中的
CTLPATH1參數(shù)確定。
如果需要設(shè)置開(kāi)機(jī)自啟動(dòng),方法如下:
1.將dmserverd、dmagentd文件拷貝到/etc/rc.d/init.d目錄中
2.在rc3.d和rc5.d目錄下建立啟動(dòng)連接,分別在目錄下執(zhí)行命令:
In-s/etc/rc.d/init.d/dmserverdS98dmserverd
In-s/etc/rc.d/init.d/dmagentdS98dniagentd
在rcO.d和rc6.d目錄下建立停止服務(wù)鏈接,分別在目錄下執(zhí)行:
In-s/etc/rc.d/init.d/dmserverdK02dmserverd
14
In
s/etc/rc.d/init.d/dmagentdK02dmagentd
15
二、客戶端安裝
2.1使用DMInstall.bin文件安裝
使用DMInstall.bin文件進(jìn)行安裝,界面與服務(wù)器的安裝界面相同,在選擇
安裝類(lèi)型時(shí)選擇為->客戶端。
客戶端安裝在/honie/d5000/dm/dinClient目錄下,拷貝bin目錄下的isql、
cxpdb、1叩?。┲?」/1101110"5000/加1/€1祀11。111目錄下,將expdb\impdb重命名為
exp\inip
最后修改目錄權(quán)限
chown-Rc!5000:c5000dm
2.2通過(guò)拷貝方式安裝
拷貝方式安裝,直接拷貝到相同路徑下即可以使用。
【注意問(wèn)題】
安裝完客戶端,在d5000用戶下使用isql工具時(shí)報(bào)錯(cuò):找不到libdmapi.so
文件,是由于在使用C15000用戶登錄操作系統(tǒng)使用isql工具時(shí),調(diào)用庫(kù)文件是要
去/homc/d5000/*/lib下查找,需要在該目錄下存在達(dá)夢(mèng)的動(dòng)態(tài)庫(kù)才可以使用isql
工具,如果沒(méi)有達(dá)夢(mèng)的動(dòng)態(tài)庫(kù)可以拷貝libdmapi.so、libdmdci.so>
libdmucvt.so^libdmcrypto_engine.so、libdmoci.so文件到該目錄下,同時(shí)cp
libdmoci.solibclntsh.so<>
二、D5000系統(tǒng)數(shù)據(jù)庫(kù)環(huán)境建立
1.建立數(shù)據(jù)庫(kù)、登錄和用戶
CREATEDATABASEEMSDATAFILE'EMS.dbf'SIZE128;
15
CREATELOGINd5000IDENTIFIEDBY〃d5000〃DEFAULTDATABASEEMS;
CREATELOGINexpmanIDENTIFIEDBY“tcchnari"DEFAULTDATABASEEMS;
CREATEDATABASEI1ISDBDATAFILE,HISDB.dbfSIZE128;
CREATELOGINalarmIDENTIFIEDBYALARMDEFAULTDATABASEHISDB;
CREATELOGTNhisdbTDENTTFTEDBYHISDBDEFAULTDATABASEHISDB;
CREATELOGINsysccnfiglDENTlFlEDBYSYSCONF1GDEFAULTDATABASEHISDB;
CREATELOGINcontextIDENTIFIEDBYCONTEXTDEFAULTDATABASEHISDB;
CREATELOGTNrtdbIDENTTFTEDBYRTDBDEFAULTDATABASEHISDB;
CREATELOGINhisrcportIDENTIFIEDBYHISREPORTDEFAULTDATABASEHISDB;
CREATELOGINstaticsIDENTIFIEDBYSTATICSDEFAULTDATABASEHISDB;
CREATELOGINYXFXIDENTIFIEDBYYXFXDEFAULTDATABASEHISDB;
SetcurrentdatabaseEMS;
CREATEUSEREMS;
GRANTDBATOEMS;
CREATEUSERexpmar;
GRANTDBATOexpman;
CREATEUSERHISDB;
16
GRANTDBATOHISDB;
CREATEUSERSTATICS;
GRANTDBATOSTATICS;
ALTERUSEREMS.emsRELATEDBYd5000;
ALTERUSEREMS.expmanRELATEDBYexpman;
ALTERUSEREMS.hisdbRELATEDBYhisdb;
ALTERUSEREMS.staticsRELATEDBYstatics;
SetcurrentdatabaseHISDB;
CREATEUSERalarm;
GRANTDBATOalarm;
CREATEUSERhisdb;
GRANTDBATOhiscb;
CREATEUSERsyscor.fig;
GRANTDBATOsysconfig;
CREATEUSERcontext;
GRANTDBATOcontext;
CREATEUSERrtdb;
17
GRANTDBATOrtdb;
CREATEUSERhisrcport;
GRANTDBATOhisreport;
CREATEUSERstatics;
GRANTDBATOstatics;
CREATEUSERYXFX;
GRANTDBATOYXFX;
ALTERUSERHISDB.alarmRELATEDBYALARM;
ALTERUSERHISDB.hisdbRELATEDBYHISDB;
ALTERUSERHISDB.sysconfigRELATEDBYSYSCONFIG;
ALTERUSERHISDB.contextRELATEDBYCONTEXT;
ALTERUSERHISDB.rtdbRELATEDBYRTDB;
ALTERUSERHISDB.hisreportRELATEDBYMISREPORT;
ALTERUSERHISDB.staticsRELATEDBYSTATICS;
ALTERUSERHTSDB.YXFXRELATEDBYYXFX;
2.使用腳本建立數(shù)據(jù)庫(kù),或者使用備份文件還原數(shù)據(jù)庫(kù)
18
使用物理bak文件還原數(shù)據(jù)庫(kù)的方法詳見(jiàn)物理還原數(shù)據(jù)庫(kù)部分,使用邏輯
備份DMP文件還原數(shù)據(jù)庫(kù)詳見(jiàn)->邏輯還原數(shù)據(jù)庫(kù)部分。
達(dá)夢(mèng)數(shù)據(jù)庫(kù)備份還原
一、物理還原數(shù)據(jù)庫(kù)
物理還原,即使用物理備份BAK文件還原數(shù)據(jù)庫(kù),還原到的目的數(shù)據(jù)庫(kù)的建
庫(kù)參數(shù)要和原始數(shù)據(jù)庫(kù)一致,包括頁(yè)大小、簇大小、大小寫(xiě)敏感。
還原數(shù)據(jù)庫(kù)時(shí),要求當(dāng)前對(duì)該數(shù)據(jù)庫(kù)沒(méi)有連接訪問(wèn),可以通過(guò)關(guān)閉所有應(yīng)
用,或者修改達(dá)夢(mèng)的端口號(hào)來(lái)實(shí)現(xiàn),具體參見(jiàn)1.3節(jié)。
1.1使用SQL語(yǔ)句還原
1.以系統(tǒng)管理員用戶登錄數(shù)據(jù)庫(kù)
./isqlSYSDBA/SYSDBA@127.0.0.1
@符號(hào)后為數(shù)據(jù)庫(kù)的IP地址。
2.脫機(jī)所要還原的數(shù)據(jù)庫(kù)
SQL>ALTERDATABASE[數(shù)據(jù)庫(kù)名]SET
OFFLINE;
例:ALTERDATABASEEMSSETOFFLINE;
如果報(bào)錯(cuò)當(dāng)前對(duì)象被占用,按照1.3中的方法確認(rèn)數(shù)據(jù)庫(kù)是否有連接訪問(wèn)。
3.還原數(shù)據(jù)庫(kù)
19
SQL>RESTOREDATABASE[數(shù)據(jù)庫(kù)名]FULLFROM一備份文件絕對(duì)路
徑’;
例:RESTOREDATABASEEMSFULLFROM7dbdata/dmdata/EMS_BAKl.bak,;
4.數(shù)據(jù)庫(kù)聯(lián)機(jī)
SQL>ALTERDATABASE[數(shù)據(jù)庫(kù)名]SET
ONLINE;
5.關(guān)聯(lián)用戶與登錄,如還原EMS數(shù)據(jù)庫(kù),需使用SYSDBA登錄數(shù)據(jù)庫(kù)執(zhí)行如下
SQL:
SETCURRENTDATABASEEMS;
ALTERUSEREMSRELATEDBYD5000;
ALTERUSEREXPMANRELATEDBYEXPMAN;
ALTERUSERHISDBRELATEDBYH1SDB;
ALTERUSERSTATICSRELATEDBYSTATICS;
1.2使用達(dá)夢(mèng)客戶端還原
使用客戶端進(jìn)行還原,同樣使用上面的方式在行還原,只是操作簡(jiǎn)單。
1.以SYSDBA登錄到數(shù)據(jù)庫(kù)后,脫機(jī)要還原的數(shù)據(jù)庫(kù)
20
成功脫機(jī)會(huì)彈出提示信息,如果報(bào)錯(cuò)“當(dāng)前對(duì)象被占用”,按照1.3中的方
法確認(rèn)數(shù)據(jù)庫(kù)是否彳j連接訪問(wèn)。
2.還原數(shù)據(jù)庫(kù)
3.選擇備份文件
21
4.還原完成后會(huì)給出提示信息
5.進(jìn)行數(shù)據(jù)庫(kù)聯(lián)機(jī)
22
1.3清除數(shù)據(jù)庫(kù)訪問(wèn)
當(dāng)數(shù)據(jù)庫(kù)在脫機(jī)時(shí),如果報(bào)錯(cuò)“當(dāng)前對(duì)象被占用”,說(shuō)明當(dāng)前數(shù)據(jù)庫(kù)連接中
存在聯(lián)機(jī)正在訪問(wèn)所要還原的數(shù)據(jù)庫(kù),通過(guò)以下方式查找相關(guān)數(shù)據(jù)庫(kù)連接:
isql登錄數(shù)據(jù)庫(kù):
./isqlSYSDBA/SYSDBA@127.0.0.1
執(zhí)行查詢(xún):
select*fromv$session;
該查詢(xún)會(huì)返回當(dāng)前數(shù)據(jù)庫(kù)中的連接信息,包含登錄用戶,登錄的IP地址等信
息,通過(guò)這些信息可以先關(guān)閉相應(yīng)的連接再進(jìn)行數(shù)據(jù)庫(kù)脫機(jī)操作。
在某些情況下,可能不方便關(guān)閉所有的連接,此時(shí)我們可以通過(guò)修改數(shù)據(jù)庫(kù)
的訪問(wèn)端口號(hào)來(lái)拒絕應(yīng)用對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。修改達(dá)夢(mèng)安裝目錄下bin/dm.ini文
件,其中的PORT_NUM為數(shù)據(jù)庫(kù)端口號(hào),修改為其他值即可,如22345,重啟數(shù)據(jù)
庫(kù)后參數(shù)生效。但是需要注意,此時(shí)訪問(wèn)數(shù)據(jù)庫(kù)的端口后也要使用修改后的值,例
如,使用isql登錄數(shù)據(jù)庫(kù)命令如下:
./isqlSYSDBA/SYSDBA@127.0.0.1:22345
二、物理備份數(shù)據(jù)庫(kù)
2.1.通過(guò)isql進(jìn)行數(shù)據(jù)庫(kù)備份
1.以系統(tǒng)管理員用戶登錄數(shù)據(jù)庫(kù)
./isqlSYSDBA/SYSDBA@127.0.0.1
23
@符號(hào)后為數(shù)據(jù)庫(kù)的IP地址。
24
2.備份數(shù)據(jù)庫(kù)
SQL>BACKUPDATABASE[數(shù)據(jù)庫(kù)名]FULLTO;備份文件
名];
詳細(xì)語(yǔ)法格式如下:
BACKUPDATABASE〈數(shù)據(jù)庫(kù)名》[FULL|INCREMENT]TO(備份名>[BAKFILE
備份路徑>'][BACKLPINFO備份描述>'][MAXSIZE<限制大?。
[IDENTIFIEDBY<密鑰〉[WITHENCRYPTION]][COMPRESSED];
例:BACKUPDATABASEEMSFULLTOEMS_BAK1;
2.2.使用達(dá)夢(mèng)客戶端備份
1.以SYSDBA登錄數(shù)據(jù)庫(kù),在需要備份的數(shù)據(jù)庫(kù)上右擊->備份
2.填寫(xiě)備份名稱(chēng)及選擇備份類(lèi)型
24
三、邏輯備份與還原數(shù)據(jù)庫(kù)
達(dá)夢(mèng)數(shù)據(jù)庫(kù)的邏輯備份還原工具用于
3.1邏輯備份工具
1.導(dǎo)出單張表或多張表
./expdb[userid]/[password]@mdbtabies=[table1],…file=out.dmplog=
out.log
該工具到userid用戶默認(rèn)的數(shù)據(jù)庫(kù)中去查找需要備份的表,如果涉及到跨數(shù)
據(jù)庫(kù)查找,需要在密碼后面再添加數(shù)據(jù)庫(kù)名。
./expdb[userid]/[password]/[dbname]@mdb:ables=[tablel],,??£!le=out.d
mplog=out.log
例:./expdb
d5000/d5000@mdbtables=substation,breakerfile=out.dmp
2.導(dǎo)出一個(gè)用戶
25
./expdb[userid]/[password]@mdbowner=[username]file=out.dmp
例:./expdb
SYSDBA/SYSDBA/EMS@mdbowner=EMSfile=out.dmplog=out.log
3.導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)
./expdb[userid]/[password]/[dbname]@mdbfile=out.dmplog=out.log
例:./expdbSYSDBA/SYSDBA/EMS@mdbfile=out.dmplog=out.log
4.導(dǎo)出表結(jié)構(gòu)
./expdb[userid]/[password]/[dbname]@mdbrows=n
file=out.dmplog=out.log
例:./expdbSYSDBA/SYSDBA/EMS@mdbrows=nfile=out.dmplog=out.log
5.導(dǎo)出一張表的部分內(nèi)容
DM6在2013年6月份的版本之后提供了備份一張表中部分內(nèi)容的功能,即
expdb工具支持了queb參數(shù),通過(guò)該參數(shù)可.以按照一定的條件導(dǎo)出部分?jǐn)?shù)據(jù),如
下:
導(dǎo)出一天的歷史采樣數(shù)據(jù):
./expdbHISDB/HISDB@histables:ychs500281,vchs5000282
query="whereoccur_time>=,2013-12-1Jandoccur_time<,2013-12-2,”
file=yc_hs.dmp
26
3.2邏輯還原
27
達(dá)夢(mèng)的邏輯還原工具在還原過(guò)程中是以追加的方式插入數(shù)據(jù)的,一旦出現(xiàn)違
反唯一性約束的數(shù)據(jù),當(dāng)前表的導(dǎo)入立刻停止。所以在導(dǎo)入的過(guò)程中建議先將原表
刪除。
1.導(dǎo)入整個(gè)DMP文件
./impdb「userid]/「password]@mdbfile=out.dmplog=imp.log
2.導(dǎo)入DMP文件中的部分表
./inipdb
[userid]/[password]@ndbtables=[tablel],???file=out.dmplog=imp.Io
g
該種導(dǎo)入方法耍求使用的登錄能夠直接訪問(wèn)到tables參數(shù)后面的表。
例:.例mpdbd5000/d5000@mdbtables=substationfile=out.dmp
log=imp.log
3.導(dǎo)入DMP文件到異名數(shù)據(jù)庫(kù)中
./impdb[userid]/[password]/[1=1的庫(kù)]@mdbignorcd二N
file=out.dmplog=inp.log
例:將EMS庫(kù)備份的文件導(dǎo)入到TEST數(shù)據(jù)庫(kù)中
./impdbSYSDBA/SYSDBA/TEST@mdbignoredb=nfile=out.dmplog=imp.log
4.導(dǎo)入DMP文件到其他用戶下
27
./impdb[userid]/[password]@mdbfromuser=userltouser=user2
file=out.dmplog=inp.log
28
例:將EMS用戶備份文件還原到SYSDBA用戶下
./impdbSYSDBA/SYSDBA/EMS@mdbfromuser=EMStouser二SYSDBA
file=out.dmplog=imp.log
達(dá)夢(mèng)數(shù)據(jù)庫(kù)代理作業(yè)設(shè)置
代理作業(yè)主要完成達(dá)夢(mèng)的自動(dòng)定時(shí)備份功能,下面以添加定時(shí)備份為例,介
紹添加定時(shí)備份的過(guò)程。
1.設(shè)置代理
(1)右擊【代理】,選擇【屬性】
(2)設(shè)置代理屬性。其中【STMP服務(wù)器】和【Email地址】可隨便填寫(xiě),如
果想在備份任務(wù)完成后得到通知可以寫(xiě)自己email地址,但所有選項(xiàng)不能為空,其
中密碼為SYSDBA用戶密碼,默認(rèn)為SYSDBA。
28
(3)刷性【代理】節(jié)點(diǎn),顯示出作業(yè)、警報(bào)、操作員等信息說(shuō)明新建成
功。
文儂F)MkE)對(duì)氟。)椀B(V)UKT)Mm(H)
a初,?wn尸J電?電
S£10X),2.80(SYSDBA)?JW?
S3U
a3全周"余
㈤-MWJU代理
⑷安全
喻主的謳步iao.2^o:svsDBAv?a
日電國(guó)
■3
SJW3
S-搔作費(fèi)
2.設(shè)置作業(yè)
(1)右擊作.業(yè),選擇【新建作業(yè)】
29
(2)填寫(xiě)【作業(yè)名】
(3)設(shè)置作業(yè)步驟
30
單擊【新建】建立步驟:
單擊【確定】,新建成功:
31
設(shè)置定時(shí)刪除備份,調(diào)用函數(shù)設(shè)_DEL_BAK_EXPIRED('EMS',20);即刪除20
天前備份。
3.設(shè)置作業(yè)調(diào)度
(1)選擇調(diào)度
32
(2)單擊【新建】,建立作業(yè)調(diào)度:
【調(diào)度類(lèi)型】為反復(fù)執(zhí)行,發(fā)生概率根據(jù)具體需求選擇,每日頻率,若執(zhí)行
一次詵擇具體執(zhí)行時(shí)間。持續(xù)時(shí)間根據(jù)需求詵擇。
(3)單擊【確定】,建立成功。
33
6.單擊【確定】,整個(gè)作業(yè)設(shè)置成功。
數(shù)據(jù)庫(kù)維護(hù)
一、單機(jī)庫(kù)和陣列庫(kù)的啟動(dòng)與停止
1.1關(guān)閉達(dá)夢(mèng)數(shù)據(jù)庫(kù)
正常關(guān)閉達(dá)夢(mèng)數(shù)據(jù)庫(kù)是非常重要的步驟,非正常的達(dá)夢(mèng)數(shù)據(jù)庫(kù)關(guān)閉可能導(dǎo)致
數(shù)據(jù)文件損壞,從而導(dǎo)致達(dá)夢(mèng)數(shù)據(jù)庫(kù)無(wú)法再次啟動(dòng)。
關(guān)閉數(shù)據(jù)庫(kù)需要使用root用戶登錄到數(shù)據(jù)庫(kù),此處分為單機(jī)庫(kù)停止和陣列庫(kù)
停止。
1.單機(jī)庫(kù)停止
進(jìn)行停止數(shù)據(jù)庫(kù)操作,停止數(shù)據(jù)庫(kù)執(zhí)行命令:
/etc/rc.d/init.c/dmserverdstop
34
腳本執(zhí)行成功后會(huì)返回[OK],但是數(shù)據(jù)庫(kù)并未完全停止,必須通過(guò)ps-ef|
grepdmserver查看達(dá)夢(mèng)數(shù)據(jù)庫(kù)進(jìn)程是否存在來(lái)確認(rèn)是否完全停止,通過(guò)上述命
令,沒(méi)有返回如下信息說(shuō)明數(shù)據(jù)庫(kù)停止成功:
kfl:/dmdb/dm/bin#ps-efIgrepdmserver
root205571213:03pts/000:00:00/dmdb/dm/bin/dmserverdm.ini-
noconsole
2.陣列庫(kù)停止
由于陣列庫(kù)中數(shù)據(jù)庫(kù)資源是由操作系統(tǒng)HA軟件來(lái)控制,此處也分為兩個(gè)方
面。
1)只重啟數(shù)據(jù)庫(kù)
此時(shí)操作同單機(jī)庫(kù),停止后會(huì)由HA軟件自動(dòng)啟動(dòng)數(shù)據(jù)庫(kù)。
2)完全停止數(shù)據(jù)庫(kù)
此時(shí)需要停止操作系統(tǒng)HA軟件。停止HA時(shí)需要先停止備機(jī)節(jié)點(diǎn)HA,再停止
主機(jī)節(jié)點(diǎn)HAo主備機(jī)可以通過(guò)查看/dbdata及/dbbak陣列目錄掛載在的服務(wù)器確
定,掛載了這兩個(gè)陣列目錄的服務(wù)器是主機(jī)。停止HA軟件的命令為:
凝思:/etc/rc.d/init.d/opcnaisstop
麒麟:/etc/rc.d/init.d/heartbeatstop
當(dāng)返回[OK]時(shí),說(shuō)明停止成功。
35
1.2數(shù)據(jù)庫(kù)啟動(dòng)
啟動(dòng)數(shù)據(jù)庫(kù)需要使用root用戶登錄到數(shù)據(jù)庫(kù)節(jié)點(diǎn),分為單機(jī)啟動(dòng)和陣列庫(kù)啟
動(dòng)。
1.單機(jī)啟動(dòng)
執(zhí)行:
etc/rc.d/init.d/dmserverdstart
啟動(dòng)成功返回[OK]
但是數(shù)據(jù)庫(kù)并未完全啟動(dòng)成功,通過(guò)查看數(shù)據(jù)庫(kù)日志可以確定數(shù)據(jù)庫(kù)是否啟
動(dòng)完畢,數(shù)據(jù)庫(kù)日志存儲(chǔ)在/dmdb/dm/log,日志格式dm_[YYMM].log(如
dm_201212.log):
tail-f/dmdb/dm/log/dm_201212.log
出現(xiàn)如下信息說(shuō)明數(shù)據(jù)庫(kù)啟動(dòng)完畢:
2012-12-1410:37:01databaseT00005792checkpointend.
2.陣列庫(kù)后動(dòng)
在部署了陣列庫(kù)后,數(shù)據(jù)庫(kù)服務(wù)完全由操作系統(tǒng)HA軟件來(lái)控制,如果只是重
啟數(shù)據(jù)庫(kù),在停止庫(kù)后不需要做手動(dòng)啟動(dòng)數(shù)據(jù)庫(kù)的操作。但是如果是重啟服務(wù)器后
需要啟動(dòng)數(shù)據(jù)庫(kù)服務(wù),則只需確定HA軟件己經(jīng)啟動(dòng)即可,啟動(dòng)HA時(shí)先啟動(dòng)主機(jī)節(jié)
點(diǎn),待主機(jī)節(jié)點(diǎn)所有資源啟動(dòng)完畢,再啟動(dòng)備機(jī)節(jié)點(diǎn)。HA軟件的啟動(dòng)方式:
凝思:/etc/rc.d/init.d/openaisstart
麒麟:/etc/rc.d/init.d/heartbeatstart
36
HA軟件啟動(dòng)成功返回[OK]。但是此時(shí)并未完全啟動(dòng)成功,可以通過(guò)crmjnon
命令查看雙機(jī)啟動(dòng)狀態(tài),如下?tīng)顟B(tài)說(shuō)明數(shù)據(jù)庫(kù)已經(jīng)啟動(dòng)。
Online:[his02his01]ResourceGroup:rsc-grouprsc-vip-
public(ocf::heartbeat:TPaddr):Startedhis02rsc-
fso(ocf::heartbeat:Filesystem):Startedhis02rsc-
fss(ocf::heartbeat:Filesystem):Startedhis02dir.server(Isb:dmserverd):
Startedhis02rsc-dmdata(1sb:dmagentd):StartedhisO2CloneSet:fencing[st-
ssh]Started:[hisOlhisO2]CloneSet:rsc-clone-pingd[rsc-
pingd]Started:[hisOlhis02]
一、數(shù)據(jù)庫(kù)無(wú)法連接問(wèn)題定位
當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)無(wú)法連接的情況時(shí),通過(guò)如下的步驟確定數(shù)據(jù)庫(kù)問(wèn)題
2.1排查是否是網(wǎng)絡(luò)原因
ping數(shù)據(jù)庫(kù)vip地址(192.1.1.1)
ping數(shù)據(jù)庫(kù)實(shí)際地址db01(192.1.L2)\db02(192.1.1.3)
如果vip無(wú)法ping通,dbOl和db02均無(wú)法ping通,有可能網(wǎng)絡(luò)出現(xiàn)問(wèn)
題。如果dbOl和db02均可以ping通,有可能操俏系統(tǒng)HA出現(xiàn)故隙,進(jìn)行操作系
統(tǒng)HA排查,見(jiàn)下。
排查操作系統(tǒng)HA運(yùn)行情況
使用root用戶連接上數(shù)據(jù)庫(kù)服務(wù)器dbOl或db02,執(zhí)行crm_mon命令查看HA
運(yùn)行狀態(tài),如果HA正常運(yùn)行,會(huì)返回如下消息:
37
Lastupdated:MonMay1318:55:032013
Stack:openais
CurrentDC:dbO2-partitionwithquorum
Version:1.1.4-ac608e3491c7dfc3b3e3c36d966ae9b016f77065
2Nodesconfigured,2expectedvotes
3Resourcesconfigured.
Online:[db01db02]
ResourceGroup:rsc-group
rsc-vip(ocf::heartbeat:IPaddr):Starteddb02
rsc-filesystem(ocf::heartbeat:Filesystem):Starteddb02
rsc-filesysteml(ocf::heartbeat:Filesystem):Starteddb02
rsc-fiiesystem-bak(ocf::heartbeat:Eilesysten.):Starteddb02
rsc-dmscrverd(lsb:dmscrvcrd):Starteddb02
rsc-dmagent(lsb:dmaggntd):Starteddb02
CloneSet:fencing[st-ssh]
Started:[db02db01]
CloneSet:rsc-pingd-clone[rsc-pingd]
Started:[dbO2db01]
其中:
Online表示在線運(yùn)行的節(jié)點(diǎn);
ResourceGroup:rsc-group卜面各個(gè)資源后面的Starteddb02,表示主機(jī)
運(yùn)行所在服務(wù)器,Started表示資源正在運(yùn)行,F(xiàn)ailed表示檢測(cè)到資源運(yùn)行失
敗,Unmanaged表示資源處于托管狀態(tài),HA無(wú)法監(jiān)控資源狀態(tài)。
38
在遇到資源出現(xiàn)Unmanage狀態(tài)時(shí)需要將HA重新停止,停止方法:
/ctc/rc.d/init.c/opcnaisstop(麒麟操作系統(tǒng)為
/etc/rc.d/init.d/heartbeatstop)
返回OK,說(shuō)明資源停止,通過(guò)df-h命令查看/dbdata和/dbbak目錄是否已
經(jīng)卸載。
在遇到資源出現(xiàn)Failed狀態(tài)時(shí),說(shuō)明HA檢測(cè)到資源異常,該類(lèi)問(wèn)題HA會(huì)自
動(dòng)處理,會(huì)將相應(yīng)資源重啟拉起,當(dāng)然還存在啟動(dòng)多次認(rèn)為Failed的問(wèn)題,該類(lèi)
問(wèn)題,在下面只會(huì)介紹當(dāng)rsc-dmserverd服務(wù)出現(xiàn)異常的處理情況,其余的問(wèn)題數(shù)
據(jù)網(wǎng)絡(luò)問(wèn)題和陣列問(wèn)題,這些問(wèn)題很容易判斷故障原因。
2.2排查數(shù)據(jù)庫(kù)是否可以連接
使用root用戶登錄到數(shù)據(jù)庫(kù)服務(wù)器上,通過(guò)crmjnon命令查看數(shù)據(jù)庫(kù)主機(jī)
Lastupdated:MonMay1318:55:032013
Stack:openais
CurrentDC:dbO2-partitionwithquorum
Version:1.1.4-ac608e3491c7dfc3b3e3c36cl966ae9b016f77065
2Nodesconfigured,2expectedvotes
3Resourcesconfigured.
Online:[dbOldb02]
ResourceGroup:rsc-group
rsc-vip(ocf::heartbeat:IPaddr):StarteddbO2
rsc-filesystem(ocf::heartbeat:Filesystem):Starteddb02
rsc-filesysteml(ocf::heartbeat:Filesystcm):Starteddb02
39
rsc-filesystem-bak(oof::heartbeat:Filesysteir.):Starteddb02
rsc-dmserverd(lsb:dmserverd):Starteddb02
rsc-dmagent(lsb:dmagentd):Starteddb02
CloneSet:fencing[st-ssh]
Started:[db02dbOl]
CloneSet:rsc-pingd-clonc[rsc-pingd]
Started:[db02dbOl]
其中紅色部分說(shuō)明主機(jī)運(yùn)行在db02上,連接到dbO2,進(jìn)入到/dmdb/dm/bin
目錄下,開(kāi)始排查問(wèn)題:
1)檢查dmserver進(jìn)程是否存在
db02:~#ps-efIgrepdnserver
root491925203019:13pts/000:00:00grcpdir.scrvcr
root8974158Apr2311-13:20:07/dmdb/dm/bin/dmserverdm.ini-noconsole
返回如上紅色部分信息,說(shuō)明達(dá)夢(mèng)服務(wù)進(jìn)程正在運(yùn)行:
如果達(dá)夢(mèng)進(jìn)程不在,結(jié)合HA問(wèn)題排查部分,確認(rèn)出現(xiàn)問(wèn)題的資源。
2)達(dá)夢(mèng)進(jìn)程存在,使用isql工具連接數(shù)據(jù)庫(kù),在/dmdb/dm/bin目錄下執(zhí)
行:
db02:/dmdb/dm/bin#./isqlSYSDBA/SYSDBA@127.0.0.1
isqlV6.0.2.79-Build(2013.04.11)
loginsuccess
SQL>
40
返回loginsuccess,說(shuō)明數(shù)據(jù)庫(kù)可以正常連接,并無(wú)異常,需要檢查應(yīng)用
和網(wǎng)絡(luò)方面故障。
返回loginfailed,說(shuō)明數(shù)據(jù)庫(kù)無(wú)法連接,使用如下命令查看數(shù)據(jù)庫(kù)當(dāng)前連
接數(shù):
db02:/dmdb/dm/bin#n?tstat-anp|grep123451wc-1
570
一區(qū)連接數(shù)不能超過(guò)500,三區(qū)連接數(shù)不能超過(guò)1000,如果超過(guò)這兩個(gè)值,
說(shuō)明是由于應(yīng)用建立的連接數(shù)超過(guò)數(shù)據(jù)庫(kù)配置上限導(dǎo)致。需要排查存在連接泄露的
應(yīng)用程序。
3)在上步驟中,如果連接數(shù)據(jù)庫(kù)沒(méi)有異常,查看達(dá)夢(mèng)數(shù)據(jù)庫(kù)檢查點(diǎn)日志,進(jìn)
入到/dmdb/dm/log目錄下,達(dá)夢(mèng)服務(wù)運(yùn)行日志格式為dm_年月.log,該日志每個(gè)一
分鐘會(huì)進(jìn)行一次日志記錄,每一次的日志記錄內(nèi)容如下:
db02:/dmdb/dm/log#tail-fdm201305.log
2013-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.
查看日志最前端日期,是否和系統(tǒng)當(dāng)前日期接近,如果不接近,說(shuō)明數(shù)據(jù)庫(kù)
檢查點(diǎn)卡住。數(shù)據(jù)庫(kù)檢查點(diǎn)卡住,一般是有兩方面的問(wèn)題原因:
1.磁盤(pán)無(wú)法訪問(wèn),此時(shí)檢測(cè)下數(shù)據(jù)文件所在破盤(pán)是否可以正常讀寫(xiě),以及測(cè)
試下讀寫(xiě)的速度。
2.數(shù)據(jù)庫(kù)本身問(wèn)題,如果磁盤(pán)沒(méi)有問(wèn)題,需要數(shù)據(jù)庫(kù)來(lái)分析問(wèn)題,此時(shí)為了
盡快恢復(fù)系統(tǒng),可以通過(guò)手動(dòng)生成core文件先恢復(fù)系統(tǒng),后期有數(shù)據(jù)庫(kù)廠家分析
core文件來(lái)確定問(wèn)題原因?;謴?fù)系統(tǒng)過(guò)程如下。
此時(shí)需要重啟數(shù)據(jù)庫(kù),為了分析數(shù)據(jù)庫(kù)異常問(wèn)題,此時(shí)需要生成一個(gè)core文
件,協(xié)助分析問(wèn)題,先獲取dmscrvcr的進(jìn)程號(hào),再殺掉服務(wù),如下:
db02:/dmdb/dm/log#ps-efIgrepdmserver
root8974158Apr2311-13:36:45/dmdb/dm/bin/dmserverdm.ini-noconsole
root2070325203019:37pts/000:00:00grepdmserver
db02:/dmdb/dm/log#kill-SIGSEGV8974
Core文件生成完畢后,dmserver進(jìn)程會(huì)退出,并由HA將達(dá)夢(mèng)服務(wù)啟動(dòng),數(shù)
據(jù)庫(kù)啟動(dòng)時(shí),可以查看達(dá)夢(mèng)服務(wù)日志,如dm_201305.log,啟動(dòng)時(shí)數(shù)據(jù)庫(kù)會(huì)進(jìn)行恢
復(fù)檢查,直至出現(xiàn)如下信息,數(shù)據(jù)庫(kù)才恢復(fù)完畢:
2013-04-1721:36:44databaseT21039121605
2013-04-1721:36:44databaseT21039121606
2013-04-1721:36:44databaseT21039121607
2013-04-1721:36:44databaseT21039121608
2013-04-1721:36:44databaseT21039121609
2013-04-1721:36:44databaseT210391216010
2013-04-1721:36:44databaseT2103912160recoverydb13end.
2013-04-1721:38:16databaseT2103912160rollbackstart...
42
2013-04-1721:38:16databaseT2103912160rollbackend...
2013-04-1721:38:18databaseT2103912160checkpointsetwithtype17.
2013-04-1721:38:18database1116080448checkpointstart(17,0,
100)...
2013-04-1721:38:18databaseT1116080448redologflush
2013-04-1721:38:18databaseT1116080448systembufferflush
2013-04-1721:38:18databaseT1116080448checkpointend.
三、數(shù)據(jù)庫(kù)性能問(wèn)題排查
數(shù)據(jù)庫(kù)出現(xiàn)性能問(wèn)題時(shí),通常存在如下幾方面問(wèn)題:
數(shù)據(jù)庫(kù)整體運(yùn)行慢
部分SQL語(yǔ)句執(zhí)行效率差
3.1數(shù)據(jù)庫(kù)整體響應(yīng)慢問(wèn)題排查
1.排查硬件性能
如果數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間出現(xiàn)響應(yīng)慢的問(wèn)題,有可能會(huì)是10遇到瓶頸,可以通過(guò)操
作系統(tǒng)top命令查看,查看wi%的使用大小。同時(shí),可以使用io_tesl小程序進(jìn)行
簡(jiǎn)易測(cè)試,改程序位于達(dá)夢(mèng)安裝目錄下tools目錄下,使用方法:
./io_test108192/dbdata/testfiles
參數(shù)說(shuō)明:
1:一個(gè)線程
0:不停地寫(xiě)
43
8192:每次順序?qū)懙淖止?jié)數(shù)
/dbdata/testfiles:目的文件
返回結(jié)果如下:
db01:/dmdb/dm/tools*./io_test108192/dbdata/test20131213
deletefilefailed!
[Thread0]running
countstart
countend
fileoffsetin10s:280.492188MB[startat0X118BE000,endat
0X2313C000]
一般陣列上10秒鐘會(huì)寫(xiě)200MB以上,但
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江省哈爾濱市2025-2026學(xué)年六年級(jí)上學(xué)期期中語(yǔ)文試題(含答案)(含解析)
- 2026年員工敬業(yè)度調(diào)研分析技巧
- 2026黑龍江哈爾濱啟航勞務(wù)派遣有限公司派遣到哈工大航天學(xué)院衛(wèi)星技術(shù)研究所招聘?jìng)淇碱}庫(kù)及完整答案詳解1套
- 2026年農(nóng)村集體產(chǎn)權(quán)制度改革實(shí)務(wù)
- 機(jī)械設(shè)備液壓氣動(dòng)系統(tǒng)檢修手冊(cè)
- 2026湖南長(zhǎng)沙市長(zhǎng)郡雨花外國(guó)語(yǔ)第二附屬小學(xué)春季合同制教師招聘?jìng)淇碱}庫(kù)及答案詳解一套
- 2026年渠道經(jīng)銷(xiāo)商賦能管理培訓(xùn)
- 2026年私人銀行財(cái)富規(guī)劃策略課程
- 職業(yè)共病管理的分級(jí)診療路徑優(yōu)化
- 2022年年春六年級(jí)下冊(cè)數(shù)學(xué)期末測(cè)試卷加答案下載
- 鋁錠居間合同協(xié)議
- 配件售后管理制度規(guī)范
- 浙江省紹興市上虞區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末語(yǔ)文試題(解析版)
- 《隸書(shū)千字文》-清席夔
- 2024校長(zhǎng)在寒假期末教職工大會(huì)上精彩發(fā)言主要引用3個(gè)關(guān)鍵詞善待自己改變自己提升自己
- 《鐵路技術(shù)管理規(guī)程》(普速鐵路部分)
- 2024-2025年度“地球小博士”全國(guó)地理科普知識(shí)大賽參考試題庫(kù)(含答案)
- 北師大版六年級(jí)上冊(cè)分?jǐn)?shù)混合運(yùn)算100題帶答案
- 2024年度工程成本控制優(yōu)化合同
- 乘務(wù)長(zhǎng)管理思路
- 婦科小講課 異位妊娠
評(píng)論
0/150
提交評(píng)論