1.DM7下載地址是兆解?
http://www.dameng.com/service/download.shtml
2.使用DM7如何尋求幫助披摄?
在本版發(fā)帖亲雪,版主會(huì)第一時(shí)間回答您的問題
達(dá)夢24小時(shí)服務(wù)熱線:400 991 6599
達(dá)夢技術(shù)社區(qū):http://bbs.dameng.com
達(dá)夢官方QQ群:37727201? ?? ?
3.DM7
安裝注意事項(xiàng)
為了您的數(shù)據(jù)安全,安裝設(shè)置密碼時(shí)建議將密碼設(shè)置為大于6位數(shù)疚膊,當(dāng)前版本可能會(huì)因此導(dǎo)致不能創(chuàng)建數(shù)據(jù)庫义辕,后期版本會(huì)給予更友好的提示。
4.DM7是如何實(shí)現(xiàn)分頁的寓盗?
DM7支持top灌砖、limit和rownum三種分頁方式
5.DM7后臺(tái)服務(wù)說明
DMservice服務(wù)是數(shù)據(jù)庫核心服務(wù)
DMAMON服務(wù)是審計(jì)服務(wù),用來做審計(jì)傀蚌。
DMJMON服務(wù)是代理服務(wù)基显,用來做作業(yè)調(diào)度。
DMWMON服務(wù)是數(shù)據(jù)守護(hù)服務(wù)善炫,用來做主備撩幽。
6.DM7 JDBC編程注意事項(xiàng)
// 定義DM JDBC 驅(qū)動(dòng)串
String jdbcString = "dm.jdbc.driver.DmDriver";
// 定義DM URL 連接串
String urlString = "jdbc:dm://localhost:5236";
7.命令行工具disql使用說明:
--查看幫助:
disql help
--登錄
disql SYSDBA/SYSDBA
--注意事項(xiàng):dm7密碼是大小寫敏感的
8.如何修改表名
alter table WE_EFFORT ALTER SCOPE_ENUM_ID1 rename to SCOPE_ENUM_ID;?
9.達(dá)夢數(shù)據(jù)庫支持JPA中實(shí)體類保存和更新操作嗎箩艺?
怎么調(diào)用persist方法就會(huì)報(bào)出下面的異常
Exception executing batch:?
org.hibernate.StaleStateException: Batchupdate returned unexpected row count from update [0]; actual row count: 0;expected: 1
解決辦法:修改dm.ini配置文件窜醉,將BATCH_PARAM_OPT 參數(shù)改為0,重啟即可?
10.如何查詢當(dāng)前用戶下所有的表名舅桩?
select NAME from sysobjects where "SUBTYPE$"='UTAB'
AND SCHID=(SELECT ID FROM sysobjects WHERE NAME=USER AND TYPE$='SCH');
11.有開源的客戶端工具可以連DM么酱虎?
基于JDBC的工具就可以雨膨,比如:SQuirrel SQL擂涛、DbVisualizer
12.java.sql.SQLException: 語句句柄個(gè)數(shù)超上限(1024)或系統(tǒng)內(nèi)存不足 錯(cuò)誤如何處理?
原因:不申請(qǐng)新的session聊记,不停地申請(qǐng)語句句柄撒妈,超過了每個(gè)session可用語句句柄數(shù)的上限
解決辦法:?
治本:修改應(yīng)用程序,每個(gè)語句句柄用完后排监,將句柄關(guān)閉
指標(biāo):修改dm.ini參數(shù)狰右,提高session可用語句句柄的上限
max_session_statement由100改為1000
13.安裝在oracle?linux 5.5_64位上安裝DM7,初始化庫的時(shí)候報(bào)錯(cuò):
Extract install files..........
java.lang.UnsatisfiedLinkError: /tmp/DMInstall/source/bin/libdmutl.so:/tmp/DMInstall/source/bin/libdmutl.so: ELF file OS ABI?invalid
原因:官網(wǎng)提供的達(dá)夢數(shù)據(jù)庫版本是基于REDHAT6的舆床,oracle?linux5.5的內(nèi)核版本過低棋蚌,建議使用2.6.32以上內(nèi)核的linux版本。
--------------------------------------------------------------------------------------------------------------------------------
14. DM7在初始化庫的過程中需要注意哪幾個(gè)重要參數(shù)挨队?
(1) 頁大小(page_size)
除去Clob谷暮、Blob等大字段外,數(shù)據(jù)庫中一行記錄的所有字段的實(shí)際長度的和不能超過頁大小的一半盛垦。
建議頁大小設(shè)置為16K湿弦,防止在后期進(jìn)行數(shù)據(jù)遷移和開發(fā)過程中出現(xiàn)記錄超長的問題;
(2) 日志文件的大小(log_size)
數(shù)據(jù)庫redo日志文件的大小腾夯,單位為M颊埃,正式環(huán)境日志文件的大小一般設(shè)置為2048蔬充;
(3) 字符串比較大小寫敏感(case_sensitive)
默認(rèn)為大小寫敏感的,根據(jù)具體情況進(jìn)行設(shè)置班利。遷移實(shí)施中如果原始庫為Oracle和DB2數(shù)據(jù)庫的話
需設(shè)置為大小寫敏感饥漫,若為SQL Server和MySQL數(shù)據(jù)庫則需設(shè)置為大小寫不敏感,所以在數(shù)據(jù)庫
初始化庫的過程中需要根據(jù)具體情況來選擇肥败。
注意事項(xiàng):
在開發(fā)環(huán)境和測試環(huán)境的頁大小趾浅、字符串大小寫敏感等初始化參數(shù)一定要保持一致,避免使用.bak文件進(jìn)行
還原的時(shí)候馒稍,因?yàn)槌跏蓟瘏?shù)不一致導(dǎo)致無法還原的問題皿哨。所以在初始化庫之前務(wù)必規(guī)劃好上述參數(shù),因?yàn)?/p>
頁大小和字符串比較大小寫敏感這兩個(gè)參數(shù)一旦初始化完成纽谒,后期無法修改证膨。如需修改,則只能刪掉現(xiàn)有實(shí)例
重現(xiàn)初始化新的實(shí)例鼓黔。
總結(jié):
數(shù)據(jù)庫在安裝的過程中基本上就是下一步下一步央勒,按照默認(rèn)選項(xiàng)安裝就好,安裝路徑根據(jù)自己的要求選擇澳化。
當(dāng)數(shù)據(jù)庫安裝完成崔步,在使用數(shù)據(jù)庫配置助手dbca工具初始化庫的過程中,其它步驟按照默認(rèn)選項(xiàng)下一步即可缎谷,
當(dāng)?shù)竭@個(gè)頁面時(shí)需要注意以下三個(gè)參數(shù)的設(shè)置井濒,其它參數(shù)如無特殊要求按照默認(rèn)選項(xiàng)就好。
15. 何為字符串比較大小寫敏感列林?
關(guān)于字符串比較大小寫敏感主要涉及到兩個(gè)方面的內(nèi)容:
(1) 對(duì)字段的值比較而言
假如表Test中有如下兩條記錄
c1? ?????c2
1? ?????a
2? ?????A
同樣的查詢語句:select * from Test where c2 = 'a';
在大小寫不敏感的庫中會(huì)查出如下的兩條記錄
c1? ?????c2
1? ?????a
2? ?????A
而在大小寫敏感的庫中則只會(huì)查出如下的一條記錄
C1? ?????C2
1? ?????a
(2) 對(duì)于表名瑞你、字段名而言
在設(shè)置為大小寫敏感的庫中進(jìn)行查詢的時(shí)候,可能經(jīng)常會(huì)遇到無效的表名或列名的問題希痴,
下面針對(duì)這種情況進(jìn)行說明者甲。
(i) 如果使用DM管理工具圖形界面建表的話建議表名和字段名都使用大寫。因?yàn)槭褂脠D形界面建表相當(dāng)于
使用語句建表的時(shí)候加了雙引號(hào)的砌创,會(huì)固定住大小寫虏缸。如果寫成小寫,那么就是小寫了嫩实,在查詢的時(shí)候
也需要加雙引號(hào)刽辙,否則就有可能報(bào)無效的表名或列名的問題,比較麻煩舶赔;
(ii) 如果使用腳本建表的話扫倡,如果表名和字段名沒有加雙引號(hào)的話都會(huì)被系統(tǒng)自動(dòng)轉(zhuǎn)換成大寫。
如:create table test(a int);系統(tǒng)會(huì)自動(dòng)把表名test撵溃,字段名a轉(zhuǎn)換成大寫疚鲤,處理方式與Oracle數(shù)據(jù)庫一致。
所以針對(duì)大小寫敏感的庫缘挑,在使用建表腳本或者通過查詢腳本進(jìn)行查詢的時(shí)候建議統(tǒng)一不要寫雙引號(hào)集歇,
讓系統(tǒng)統(tǒng)一自動(dòng)都轉(zhuǎn)化為大寫;
(iii) 以上兩點(diǎn)主要針對(duì)大小寫敏感的庫而言语淘,大小寫不敏感的庫則不存在上述問題诲宇。
總結(jié):基于以上兩點(diǎn),在初始化數(shù)據(jù)庫的過程中就可以對(duì)字符串比較大小寫敏感這個(gè)參數(shù)做出合理的選擇了惶翻。
16. DM7是否需要設(shè)置所謂的外網(wǎng)IP姑蓝?
DM7是不需要設(shè)置外網(wǎng)IP的,只要網(wǎng)絡(luò)暢通吕粗,相應(yīng)端口(默認(rèn)端口為5236)開放的情況下就可以訪問纺荧。
17. DM7是否支持增量備份?第三方管理工具是不是好用些颅筋?
DM7支持增量備份宙暇,詳細(xì)內(nèi)容請(qǐng)參考DM_DBA.pdf手冊(cè)的第31章 備份和還原的相關(guān)章節(jié)。
個(gè)人覺得數(shù)據(jù)庫本身自己做的增量備份肯定比所謂的第三方工具更穩(wěn)定可靠议泵。?
18. DM7數(shù)據(jù)庫管理員SYSDBA用戶的密碼忘記了能否找回占贫?
(1)??原則上數(shù)據(jù)庫管理員SYSDBA用戶的密碼忘記了是無法找回的;
(2)??極個(gè)別特殊的情況可能需要通過研發(fā)從源碼層面進(jìn)行修改先口,從而跳過密碼認(rèn)證這塊型奥;
溫馨提示:
(1)??數(shù)據(jù)庫管理員SYSDBA的密碼不要隨便修改,默認(rèn)密碼為SYSDBA(密碼嚴(yán)格區(qū)分大小寫)池充。
如果出于安全方面的考慮非得修改桩引,請(qǐng)一定要做好備案工作缎讼;
(2)??如果數(shù)據(jù)庫中還有其它的用戶收夸,可以嘗試在數(shù)據(jù)遷移工具DTS中使用其它用戶登錄,把數(shù)據(jù)庫中
相關(guān)用戶的數(shù)據(jù)遷移到新的實(shí)例對(duì)應(yīng)的用戶中血崭。
19. DM7如何判定當(dāng)前庫中一個(gè)表是否存在?
可以通過查詢DBA_TABLES或ALL_TABLES卧惜,如果要查詢某個(gè)用戶下某個(gè)表是否存在,可以通過OWNER列進(jìn)行限定夹纫。
如:查詢用戶TEST下是否存在表TAB咽瓷,SQL腳本如下
select * from DBA_TABLESwhere owner = 'TEST' and table_name = 'TAB';
注:
(1) 關(guān)于DBA_TABLES中每個(gè)字段的具體含義可以參考DM_DBA.pdf手冊(cè)_附錄3?ORACLE兼容視圖;
(2) 為了提高 DM7與ORACLE 的兼容性舰讹,DM7提供了較為豐富的與Oracle兼容的視圖茅姜。
20. DM7如何配置歸檔?
DM7配置歸檔的詳細(xì)操作步驟如下:
(1) 打開dm.ini中的歸檔開關(guān):ARCH_INI=1;
(2) 在數(shù)據(jù)文件目錄data/DAMENG下配置dmarch.ini月匣,內(nèi)容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE? ???? ?? ???= LOCAL? ???? ?? ?#歸檔類型 LOCAL/REALTIME
ARCH_DEST? ???? ?? ???= d:\dmdbms\data\DAMENG\ARCH #歸檔目標(biāo)路徑(注意實(shí)際路徑)
ARCH_FILE_SIZE??? ? = 1024? ?? ?? ?????#單個(gè)歸檔文件大小贤壁,單位Mb忧设,缺省128M
ARCH_SPACE_LIMIT??= 10240? ???? ?? ? #REDO日志歸檔空間限制闺骚,單位為Mb,0表示無限制
(3) 重啟數(shù)據(jù)庫服務(wù)器
完成上述三步則就完成了DM7歸檔的配置。
關(guān)于每個(gè)參數(shù)具體含義介紹:
(i) ARCH_TYPE 歸檔類型称诗,對(duì)于單機(jī)的數(shù)據(jù)庫配置歸檔而言,基本就是本地歸檔(LOCAL)头遭,如果涉及到DM7
其它集群的配置時(shí)寓免,則會(huì)涉及到其它的歸檔類型;
(ii) ARCH_DEST 歸檔目標(biāo)路徑计维,一般專門新建一個(gè)歸檔文件夾存放歸檔文件袜香,這樣產(chǎn)生的歸檔文件就會(huì)放到
該歸檔文件夾中;
(iii) ARCH_FILE_SIZE 單個(gè)歸檔文件的大小鲫惶,數(shù)據(jù)庫在運(yùn)行的過程中會(huì)產(chǎn)生歸檔文件困鸥,當(dāng)單個(gè)歸檔文件的大小
達(dá)到1024M時(shí),系統(tǒng)會(huì)自動(dòng)切換寫下一個(gè)歸檔文件剑按;
(iiii) ARCH_SPACE_LIMIT 歸檔空間限制疾就,首先需要說明的一點(diǎn)就是歸檔文件是循環(huán)寫的,上面已經(jīng)提到了當(dāng)
單個(gè)歸檔文件的大小達(dá)到1024M時(shí)艺蝴,系統(tǒng)會(huì)自動(dòng)切換寫下一個(gè)歸檔文件猬腰。隨著系統(tǒng)的運(yùn)行歸檔日志文件
會(huì)越來越多,當(dāng)達(dá)到歸檔空間限制之后猜敢,系統(tǒng)會(huì)自動(dòng)刪除老的歸檔文件姑荷。而關(guān)于這個(gè)歸檔空間限制的大小
一般需要結(jié)合備份策略來考慮,基本的設(shè)置的原則是至少要能夠容納下2~3個(gè)全庫全庫備份間的所有歸檔缩擂。
21. DM7如何屏蔽保留字鼠冕?
方法一:雙引號(hào)法
這個(gè)一般可以用來處理建表語句中的保留字沖突,如表名或者字段名是DM7的保留字胯盯。這種方法一般可以
快速地繞過問題懈费,但是對(duì)于大小寫敏感的庫,這種用雙引號(hào)的方法會(huì)固定死字段大小寫博脑,對(duì)于小寫的字段憎乙,
可能會(huì)帶來無效的表名或者列名的問題。
方法二:dm.ini中的參數(shù)設(shè)置
在dm.ini中有個(gè)參數(shù)EXCLUDE_RESERVED_WORDS叉趣,這個(gè)參數(shù)可以用來屏蔽你想要屏蔽的保留字泞边,將需要屏蔽
的保留字寫在=號(hào)后面,然后以逗號(hào)分隔疗杉。設(shè)置在dm.ini中的好處就是一旦設(shè)置阵谚,永久生效而且對(duì)所有客戶端都有效,
這樣就不需要在所有客戶端系統(tǒng)中進(jìn)行專門配置。但是設(shè)置在dm.ini中之后梢什,這個(gè)保留字就永久性失效了闻牡,哪怕你想
通過manager客戶端工具在本地連接也沒用了。而且該方式還存在一個(gè)隱患就是由于屏蔽掉了一些系統(tǒng)的保留字绳矩,
所以可能會(huì)導(dǎo)致系統(tǒng)的一些功能無法正常使用罩润。
建議:
在移植過程中遇到DM7的保留字,最好的處理方式還是對(duì)這些保留字進(jìn)行修改翼馆,盡量不要使用DM7的保留字割以。
22. 在安裝DM7的過程中出現(xiàn)錯(cuò)誤 ELF file OSABI invalid 該如何解決?
解決辦法:報(bào)這個(gè)錯(cuò)誤說明安裝的數(shù)據(jù)庫版本與操作系統(tǒng)版本不匹配应媚,需找我們商務(wù)人員重新申請(qǐng)相匹配的數(shù)據(jù)庫版本严沥。?
23. 使用DM7時(shí)如何進(jìn)行導(dǎo)入導(dǎo)出?
建議通過命令行的方式進(jìn)行導(dǎo)入導(dǎo)出中姜。詳細(xì)可參見:DM_DBA.pdf手冊(cè)第31章 備份和還原 中邏輯備份和邏輯還原的
相關(guān)章節(jié)消玄。
24. DM7如何關(guān)閉一個(gè)session?
可以通過調(diào)用一個(gè)系統(tǒng)函數(shù)SP_CLOSE_SESSION來關(guān)閉一個(gè)session丢胚。
函數(shù)定義:?
VOID SP_CLOSE_SESSION(SESSION_ID??INT)?
功能說明:?
停止一個(gè)活動(dòng)的會(huì)話?
參數(shù)說明:?
SESSION_ID:會(huì)話 ID?
舉例說明:?
SP_CLOSE_SESSION(510180488);?
25. DM7有類似于Oracle的AWR分析報(bào)告嗎翩瓜?
有的,詳細(xì)請(qǐng)參考DM_SQL.pdf手冊(cè)中 21.25 DBMS_WORKLOAD_REPOSITORY包中的相關(guān)內(nèi)容和示例說明携龟。
26. Oracle中raw類型在DM7中可以用哪種類型代替兔跌?
Oracle中raw類型在DM7中可以使用varbinary代替。
27. 如何擴(kuò)展數(shù)據(jù)庫的redo日志峡蟋?
調(diào)整數(shù)據(jù)庫redo日志的大小坟桅,如將2個(gè)redo日志都擴(kuò)展到2G(注意redo日志的實(shí)際路徑)。使用SYSDBA用戶登錄蕊蝗,
然后執(zhí)行如下腳本:
alter database resize logfile'D:\dmdbms\data\DAMENG\DAMENG01.log' to 2048;
alter database resize logfile'D:\dmdbms\data\DAMENG\DAMENG02.log' to 2048;
28. DM7數(shù)據(jù)庫如何進(jìn)行卸載仅乓?
在使用DM7的過程中,有時(shí)候我們可能需要卸載DM7后重新安裝新的數(shù)據(jù)庫版本蓬戚,下面簡單講述如何正常卸載
DM7數(shù)據(jù)庫夸楣。
前提條件:在進(jìn)行卸載達(dá)夢數(shù)據(jù)庫之前,先正常關(guān)閉達(dá)夢數(shù)據(jù)庫碌更。
Windows環(huán)境:
方法1:在Windows的開始 -> 所有程序 -> 達(dá)夢數(shù)據(jù)庫 -> 卸載裕偿;
方法2:在達(dá)夢數(shù)據(jù)庫的安裝目錄洞慎,如D:\dmdbms目錄下可以看到達(dá)夢數(shù)據(jù)庫的卸載程序uninstall.exe痛单,雙擊該
程序也可以完成卸載。?
注意事項(xiàng):先保證達(dá)夢數(shù)據(jù)庫處于關(guān)閉狀態(tài)然后再進(jìn)行卸載劲腿,否則Windows服務(wù)窗口中達(dá)夢數(shù)據(jù)庫注冊(cè)的一些服務(wù)和
注冊(cè)表中的一些信息可能無法正常刪除旭绒,這樣可能會(huì)給下一次的安裝帶來麻煩。
Linux環(huán)境:
方法1:圖形界面卸載
如果可以直接接觸Linux服務(wù)器的桌面,在桌面上會(huì)有一個(gè)DMDBMS的文件夾挥吵,里面也有卸載的圖標(biāo)重父,
雙擊即可完成卸載,與Windows的界面風(fēng)格完全一致忽匈;
方法2:字符界面卸載
在達(dá)夢數(shù)據(jù)庫的安裝目錄房午,如/opt/dmdbms目錄下有一個(gè)卸載腳本uninstall.sh,在Linux終端中執(zhí)行命令
./uninstall.sh -i 即可以字符界面完成對(duì)達(dá)夢數(shù)據(jù)庫的卸載丹允。
注意事項(xiàng):先保證達(dá)夢數(shù)據(jù)庫處于關(guān)閉狀態(tài)然后再進(jìn)行卸載郭厌。
29. DM7存儲(chǔ)過程和語句塊中如何進(jìn)行打印雕蔽???begin?
print '使用print語法打印';
end;
--使用dbms_output包打印首先需要?jiǎng)?chuàng)建系統(tǒng)包:
SP_CREATE_SYSTEM_PACKAGES(1);?
--然后開啟這個(gè)打印的包:
dbms_output.enable;
begin?
dbms_output.put_line('使用dbms_output包語法打印');
end;
30.linux系統(tǒng)下 達(dá)夢數(shù)據(jù)庫設(shè)置為開機(jī)自啟動(dòng)怎么設(shè)置折柠?
修改啟動(dòng)腳本,將DM啟動(dòng)腳本DmServiceXXXXX 移到/etc/init.d下批狐,chkconfig DmServiceXXXXX on
確認(rèn)此數(shù)據(jù)庫能以dmdba用戶正常前臺(tái)啟動(dòng)后(必須步驟)扇售,操作步驟如下:
第一步:復(fù)制數(shù)據(jù)庫實(shí)例服務(wù)腳本dmserverd,命名為DmInstanceServiceDAMENG并修改嚣艇,修改path值為dm.ini路徑(必須)承冰,dm_home設(shè)置為dm主程序安裝路徑(必須),svc_porg設(shè)置為數(shù)據(jù)庫實(shí)例名(可選推薦)食零。
第二步:將腳本DmInstanceServiceDAMENG 復(fù)制到 /etc/rc.d/init.d 目錄下巷懈。
cp /opt/dmdbms/bin/DmInstanceServiceDAMENG??/etc/rc.d/init.d/DmInstanceServiceDAMENG
第三步:賦予服務(wù)腳本DmInstanceServiceDAMENG 可執(zhí)行權(quán)限。
chmod??777??/etc/rc.d/init.d/DmInstanceServiceDAMENG
第四步:注冊(cè) DM實(shí)例服務(wù)并配置開機(jī)自動(dòng)啟動(dòng)慌洪。
chkconfig --add DmInstanceServiceDAMENG
chkconfig DmInstanceServiceDAMENG on
chkconfig --list DmInstanceServiceDAMENG
第五步:后臺(tái)啟動(dòng)達(dá)夢數(shù)據(jù)庫實(shí)例服務(wù)顶燕,查看服務(wù)狀態(tài),關(guān)閉實(shí)例服務(wù)冈爹。
service DmInstanceServiceDAMENG start
service DmInstanceServiceDAMENG status
service DmInstanceServiceDAMENG stop
31.
如何使用SQL插入BLOBcreate or replace directory utllobdir as 'C:\alipay'; --你的BLOB文件所在位置涌攻。
create table bfile_tab (bfile_column BFILE);
create table t (blob_column BLOB);
----------------------------------------
declare
a_blob??BLOB;
a_bfile BFILE := BFILENAME('UTLLOBDIR','test.jpg');
begin
insert into bfile_tab values (a_bfile)
returning bfile_column into a_bfile;
insert into t values (empty_blob())
returning blob_column into a_blob;
dbms_lob.fileopen(a_bfile);
dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile));
dbms_lob.fileclose(a_bfile);
commit;
end;?
要較新的版本才支持
32.沒有bool類型怎么辦?
用bit類型就好
--未完待續(xù)频伤,歡迎大家提問恳谎,我來整理。
33.使用WINDOWS系統(tǒng)時(shí)憋肖,原本在DM服務(wù)查看器里面可以看到的數(shù)據(jù)庫服務(wù)怎么沒了呢因痛?
基本上,都是由于殺毒軟件刪除了服務(wù)導(dǎo)致的岸更,請(qǐng)重新注冊(cè)服務(wù)鸵膏,然后關(guān)閉360
34.達(dá)夢數(shù)據(jù)庫的數(shù)據(jù)文件最大可以多少?
受操作系統(tǒng)和文件系統(tǒng)限制
35.使用達(dá)夢管理工具訪問DM數(shù)據(jù)庫怎炊,在使用圖形化工具查看數(shù)據(jù)庫對(duì)象時(shí)谭企,報(bào)錯(cuò)“非法的基類名****”廓译,“無效的列名****”等。
一般發(fā)生在客戶端工具與服務(wù)器版本差別很大時(shí)债查,需要更新到客戶端與服務(wù)器版本相同非区。
36.DM7字符串連接符號(hào)是?
使用||進(jìn)行字符串連接
37.
如何替換KEY文件
將key文件拷貝到DM的安裝目錄下的bin目錄下盹廷,改名并替換掉原本的dm.key。然后重啟服務(wù)俄占。
38.DM7查表必須要 表空間.表名??是怎么回事歹垫?
使用某一個(gè)用戶登陸時(shí)排惨,訪問該用戶的默認(rèn)表空間里的表時(shí),不需要帶表空間名辕宏。
39.連上以后如何切換模式?
set schema XXX
40.為什么我的對(duì)象名寫的是對(duì)的,查詢時(shí)還報(bào)找不到對(duì)象呢财松?
一般出現(xiàn)這種情況瘪贱,是因?yàn)槟愕膶?duì)象名是小寫的,而DM在執(zhí)行SQL時(shí)自動(dòng)將所有小寫字符轉(zhuǎn)化為了大寫辆毡。解決方法是將小寫字符用雙引號(hào)“”包起來菜秦。或是所有對(duì)象名都使用大寫舶掖。
41.標(biāo)度和精度有啥區(qū)別球昨?
精度指數(shù)字的位數(shù)。 標(biāo)度指小數(shù)點(diǎn)后的數(shù)字位數(shù)访锻。 例如,數(shù) 123.45 的精度是 5,標(biāo)度是 2褪尝。
42.想要存儲(chǔ)年月日和時(shí)分闹获,使用什么數(shù)據(jù)類型期犬?
Datetime
43.數(shù)據(jù)庫還原時(shí)河哑,報(bào)XX參數(shù)不匹配
一般是字符大小寫敏感、頁大小這兩個(gè)參數(shù)不匹配龟虎。重新初始化一個(gè)參數(shù)與做備份的實(shí)例相同的實(shí)例即可璃谨。
44.我的TEMP表空間為什么這么大?當(dāng)用戶的 SQL 語句需要磁盤空間來完成某個(gè)操作時(shí)鲤妥,DM 數(shù)據(jù)庫會(huì)從 TEMP 表空間分配臨時(shí)段佳吞。如創(chuàng)建索引、無法在內(nèi)存中完成的排序操作棉安、SQL 語句中間結(jié)果集以及用戶創(chuàng)建的臨時(shí)表等都會(huì)使用到 TEMP表空間底扳。
如果你的TEMP表空間很大,那說明你的業(yè)務(wù)當(dāng)中存在很多急需優(yōu)化的SQL贡耽。
TEMP表空間在重啟后會(huì)釋放掉衷模,也可以手動(dòng)回收。
45.DM配置UNIXODBC及PERL通過ODBC連接DM蒲赂。有另外一個(gè)帖子解釋的很詳細(xì):http://www.itpub.net/thread-1824202-1-1.html
46.達(dá)夢中的一個(gè)SQL有沒有唯一的ID阱冶?
V$SQL_PLAN里查看SQL_ID
47.達(dá)夢的密碼策略?
通過DM.INI里的參數(shù):PWD_POLICY設(shè)置系統(tǒng)默認(rèn)口令策略滥嘴。0: 無策略木蹬;1: 禁止與用戶名相同;2:口令長度不小于 9若皱;4:至少包含一個(gè)大寫字母(A-Z)镊叁;8 :至少包含一個(gè)數(shù)字(0-9);16:至少包含一個(gè)標(biāo)點(diǎn)符號(hào)(英文輸入法狀態(tài)下走触,除“和空格外的所有符號(hào)意系;若為其他數(shù)字,則表示配置值的和饺汹,如 3=1+2,表示同時(shí)啟用第 1 項(xiàng)和第 2 項(xiàng)策略蛔添。當(dāng) INI參數(shù)COMPATIBLE_MODE=1時(shí),PWD_POLICY 的實(shí)際值均為 0
48.DM.INI介紹
每創(chuàng)建一個(gè) DM 數(shù)據(jù)庫兜辞,就會(huì)自動(dòng)生成 dm.ini迎瞧。dm.ini 是 DM 數(shù)據(jù)庫啟動(dòng)所必須的配置文件,通過配置該文件可以設(shè)置 DM 數(shù)據(jù)庫服務(wù)器的各種功能和性能選項(xiàng)逸吵,主要的配置內(nèi)容見DBA手冊(cè)凶硅。
參數(shù)分為動(dòng)態(tài)參數(shù)與靜態(tài)參數(shù),動(dòng)態(tài)參數(shù)可以通過SP_SET_PARA_VALUE函數(shù)直接修改并生效
49.導(dǎo)入DMP文件時(shí)的常見問題
a)中文亂碼扫皱。一般是由于導(dǎo)出與導(dǎo)入時(shí)的字符集的環(huán)境變量不同足绅。使用命令行dimp命令導(dǎo)入捷绑,并在執(zhí)行dimp前先執(zhí)行export LANG=...將當(dāng)前字符集調(diào)整的和導(dǎo)出時(shí)的一樣
b)報(bào)各種初始化參數(shù)不一致的警告(CASE_SENSIVE參數(shù)不匹配、頁大小不一致等)氢妈。導(dǎo)出的庫與導(dǎo)入的庫的初始化參數(shù)不一致時(shí)會(huì)出現(xiàn)這些錯(cuò)誤粹污。
c)XX對(duì)象已存在。提示已經(jīng)很明確了首量。
50.刪除表空間時(shí)提示“試圖刪除已經(jīng)使用的表空間”壮吩?
提示已經(jīng)很明確了,把表空間里的表刪掉吧
51.關(guān)于VARCHAR類型的長度的限制加缘。
VARCHAR類型字段的長度問題鸭叙,是在異構(gòu)數(shù)據(jù)庫遷移時(shí)非常常見的一個(gè)問題。
DM的VARCHAR字段的最大長度與“頁大小”這一參數(shù)有關(guān)拣宏。在建庫時(shí)指定沈贝,之后無法修改。
4K的1900,8K的3900,16K的8000,32K的8188
52.SQL語句報(bào)錯(cuò): 嵌套層次太深勋乾。
一般的嵌套層次不會(huì)太多宋下,一般出現(xiàn)這種問題很可能是有死循環(huán)!J锌 杨凑!
例如建了個(gè)觸發(fā)器,然后一條SQL執(zhí)行觸發(fā)器的時(shí)候觸發(fā)了自己
53.關(guān)于拆分字符串摆昧,可以參考下面的例子:
create table test_wm(c1 int,c2 varchar(100),c3 varchar(100));
insert into test_wm values(1,'3,2,4,5','no');
insert into test_wm values(2,'5,1,1+2','yes');
select C1,C3,regexp_substr(C2,'[^,]+',1,level) son,LEVEL
from test_wm
CONNECT BY LEVEL<=REGEXP_COUNT(C2,',')+1 and prior C1=C1 andprior dbms_random.value() is not null;?
54.JAVA外部函數(shù)的調(diào)用方法撩满。
a.先生成一個(gè)JAVA包,放到某個(gè)目錄下绅你,我們假設(shè)放在了E:\test.jar
b.執(zhí)行SQL:
CREATE OR REPLACE FUNCTION MY_INT(a int, b int)RETURN intEXTERNAL 'e:\test.jar'"test.testAdd" USING java;
注意類名和函數(shù)名區(qū)分大小寫
c.然后就可以調(diào)用外部函數(shù)了select MY_INT(1,2);
55.為啥我查詢時(shí)伺帘,有過濾條件,也建了索引忌锯,但它就是不走索引伪嫁?
注意兩點(diǎn):
數(shù)據(jù)分布、統(tǒng)計(jì)信息
很多時(shí)候偶垮,統(tǒng)計(jì)信息不全會(huì)導(dǎo)致優(yōu)化器計(jì)算執(zhí)行代價(jià)的時(shí)候算錯(cuò)张咳,誤認(rèn)為走索引會(huì)比全表慢,造成執(zhí)行計(jì)劃不對(duì)似舵。
統(tǒng)計(jì)信息的收集方法:
某用戶下的所有索引:
DBMS_STATS.GATHER_SCHEMA_STATS('SSCKF',100,TRUE,'FOR ALL INDEXED SIZE AUTO');
某用戶下所有字段(包括索引):
DBMS_STATS.GATHER_SCHEMA_STATS('SSCKF',100,TRUE,'FOR ALL COLUMNS SIZE AUTO');?
某表下的所有字段:
DBMS_STATS.GATHER_TABLE_STATS('SSCKF','FO_ACCOUNTBILL',null,100,TRUE,'FOR ALLCOLUMNS SIZE AUTO');
收集某一列的統(tǒng)計(jì)信息
sp_col_stat_init('JXWOA','OA2_RECEIVEDOC','RD_STATE');
sp_col_stat_init('JXWOA','OA2_SENDDOC','SD_STATE');
有個(gè)客戶自己做了10W條測試數(shù)據(jù)脚猾,然后寫了個(gè)SELECT *FROM T WHERE C='A';這樣的測試語句。
但這10W條數(shù)據(jù)全是一樣的砚哗,怎么可能走索引龙助。
修改測試數(shù)據(jù)的腳本,讓C這個(gè)字段的值平均分布在1~1000上蛛芥,做完后收集統(tǒng)計(jì)信息提鸟,就走索引了军援。
56. DM7如何查看建庫時(shí)的字符集?
select unicode();
--根據(jù)返回值進(jìn)行判斷
0 表示 GB18030称勋,1 表示 UTF -8胸哥,2 表示 EUC -KR