TimesTen ODBC應用開發(fā)ppt課件_第1頁
TimesTen ODBC應用開發(fā)ppt課件_第2頁
TimesTen ODBC應用開發(fā)ppt課件_第3頁
TimesTen ODBC應用開發(fā)ppt課件_第4頁
TimesTen ODBC應用開發(fā)ppt課件_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 2007 - Proprietary and Confidential Information of Amdocs.Security Level Classification - Sensitive TimesTen ODBC zhaojunfeng 2008-03-14 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveAgenda ODBC 程序結構 如何使用ODBC句柄 實現(xiàn) SQL Statements 異常捕捉 性能方面考慮 其他建議

2、23 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveODBC 程序流程程序流程SQLFreeStmtSQLDisconnectSQLFreeConnectSQLFreeEnvSQLAllocEnvSQLAllocConnectSQLConnectSQLAllocStmtProcess SQL StatementsReceive ResultsCLOSE optionDROP option4 2007 - Proprietary and Con

3、fidential Information of Amdocs. Security Level Classification - SensitiveODBC 應用的句柄應用的句柄Environment 句柄句柄 初始化 ODBC 調(diào)用接口 ODBC 方法: SQLAllocEnv() 和 SQLFreeEnv()Connection 句柄句柄 存儲數(shù)據(jù)源連接信息 ODBC 方法: SQLAllocConnect() 和 SQLFreeConnect() 隱式分配一個特定的 Environment 句柄Statement 句柄句柄 存儲SQL statement 信息 ODBC 方法: SQLA

4、llocStmt() 和 SQLFreeStmt() 隱式分配一個特定的 Connection 句柄5 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - Sensitive使用使用 ODBC 應用句柄應用句柄statement 句柄只能在初始階段分配一次,并在結束階段釋放. 在使用多線程編程中,statement 和 connection 句柄 應該屬于線程結構體內(nèi).句柄不能用于多線程并發(fā)運行,如果想實現(xiàn)在多個線程在不同的時間訪問同一個句柄,那么應用必須通過一些信

5、號量等方式的機制來實現(xiàn)。6 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveSQL Statement 執(zhí)行流程執(zhí)行流程SQLPrepareSQLBindParameterSQLExecuteYesInitializeTerminateIf more processingSQLFreeStmtIf repeatNoSQLTransactRepeatable Execution?SQLBindParameterSQLExecDirect7 200

6、7 - Proprietary and Confidential Information of Amdocs. Security Level Classification - Sensitive綁定參數(shù)緩存綁定參數(shù)緩存只需要Prepare 或者編譯 SQL statements 及內(nèi)建procedures一次,然后執(zhí)行或者調(diào)用多次。盡量使用參數(shù)化statements,在運行期使用變量方式來應用SQL statements和內(nèi)建 procedure。一旦statement被prepared,盡快綁定參數(shù)和列變量。在程序開始的時候申明/分配一次需要用到的變量。變量屬于全局范圍的。如果使用到多線程,

7、變量申明在線程內(nèi)部。8 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - Sensitive綁定參數(shù)緩存示例綁定參數(shù)緩存示例#define CHARLEN 20SQLINTEGER intBuf, nullData = SQL_NULL_DATA;SQLCHAR charBufCHARLEN;SQLFLOAT floatBuf;rc = SQLPrepare(hStmt, (SQLCHAR *) “insert into student.tab values (?

8、,?,?)”, SQL_NTS);rc = SQLBindParameter(hStmt, 1, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &intBuf, sizeof(intBuf), NULL);rc = SQLBindParameter(hStmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, CHARLEN, 0, charBuf, CHARLEN, SQL_NTS);rc = SQLBindParameter(hStmt, 3, SQL_PARAM_INPUT, SQL_C_DO

9、UBLE, SQL_FLOAT, 0, 0, &floatBuf, sizeof(floatBuf), &nullData);.rc = SQLExecute(hStmt);9 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveC 和和 SQL 數(shù)據(jù)類型的綁定映射數(shù)據(jù)類型的綁定映射SQL_CHARSQL_INTEGER (unsigned)SQL_C_CHARSQL_C_TIMESQL_C_DATESQL_C_BINARYSQL_

10、C_BINARYSQL_C_BINARYSQL_C_DOUBLESQL_C_DOUBLESQL_C_FLOATSQL_C_CHARSQL_C_ULONGSQL_VARCHARSQL_LONGVARCHARSQL_DECIMALSQL_NUMERICSQL_BITSQL_TINYINT (signed)SQL_TINYINT (unsigned)SQL_SMALLINT (signed)SQL_SMALLINT (unsigned)SQL_INTEGER (signed)SQL_BIGINTSQL_REALSQL_FLOATSQL_DOUBLESQL_BINARYSQL_VARBINARYSQL

11、_LONGVARBINARYSQL_DATESQL_TIMESQL_TIMESTAMPSQL_C_CHARSQL_C_CHARSQL_C_CHARSQL_C_CHARSQL_C_BITSQL_C_STINYINTSQL_C_UTINYINTSQL_C_SSHORTSQL_C_USHORTSQL_C_SLONGSQL_C_TIMESTAMP10 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveODBC 異常捕捉異常捕捉所有 ODBC 方法都會有一

12、個返回代碼 確保程序中已經(jīng)捕捉!如果返回代碼是SQL_ERROR 或者SQL_SUCCESS_WITH_INFO,那么調(diào)用ODBC方法 SQLError() 獲取詳細信息獲取(TimesTen)本地錯誤代碼和錯誤信息獲取 SQLSTATE (ODBC 錯誤代碼)#define ERRMSGLEN 255SQLUCHAR sqlstate6;SQLINTEGER native_error = 0;SQLUCHAR ErrorMsgERRMSGLEN;SQLSMALLINT cbErrorMsg;rc = SQLError(hEnv, hDbc, hStmt, sqlstate, &nat

13、ive_error,ErrorMsg, ERRMSGLEN, &cbErrorMsg);11 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - Sensitive應用性能方面考慮應用性能方面考慮 (1/3)使用TimesTen ODBC直連方式會獲得最佳性能盡量多次執(zhí)行Prepare statements可以避免沒有必要的參數(shù)重復綁定可使用 SQLBindCol() 來代替 SQLGetData() 這樣可以減少運行期系統(tǒng)表鎖的占用時間盡量避免數(shù)據(jù)轉換盡量

14、使用定長數(shù)據(jù)類型12 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - Sensitive應用性能方面考慮應用性能方面考慮(2/3)盡量避免ALTER TABLE 操作 更新優(yōu)化統(tǒng)計表盡量利用你創(chuàng)建的索引盡量使用短交易來減少鎖沖突有規(guī)則的進行checkpoint操作有規(guī)則的進行backups操作 (如果使用增量備份,那么這個操作尤為重要)13 2007 - Proprietary and Confidential Information of Amdocs. Se

15、curity Level Classification - Sensitive其他建議其他建議檢查連接屬性配置文件 (sys.odbc.ini / .odbc.ini 文件).檢查表的所屬者owners.方法調(diào)用順序或者游標狀態(tài)不正確往往是應用程序不正確的信號。 游標都和特定的statement句柄關聯(lián), (隱式和connection句柄關聯(lián)) Transactions和特定的 connection 句柄關聯(lián) 如果statements 或者 connections 是跨線程共享的,那么需要應用來避免方法調(diào)用順序和游標狀態(tài)錯誤。14 2007 - Proprietary and Confiden

16、tial Information of Amdocs. Security Level Classification - Sensitive檢查點和日志文件檢查點和日志文件 Oracle TimesTen定期將數(shù)據(jù)存儲區(qū)和事務日志的更改寫入磁盤 如果需要恢復數(shù)據(jù)存儲區(qū),Oracle TimesTen將把磁盤上的數(shù)據(jù)存儲區(qū)檢查點與仍位于日志文件中的已完成事務合并在一起 檢查點和日志文件使用普通的磁盤文件系統(tǒng) 15 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - Se

17、nsitiveReplication TimesTen to TimesTen Replication TimesTen to TimesTen是 Oracle TimesTen In-Memory Database的一個選項,它支持服務器間的實時數(shù)據(jù)復制,以獲得高可用性和負載共享。 數(shù)據(jù)復制可以是雙機熱備份 (active-standby)或負載均衡 (active-active) 數(shù)據(jù)復制可以使用異步或同步傳輸, 數(shù)據(jù)復制可以包含沖突檢測和沖突解決以及在故障服務器恢復后自動重新同步。16 2007 - Proprietary and Confidential Information of

18、Amdocs. Security Level Classification - Sensitive復制代理復制代理17 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveReplication 配置復制后,將為每個數(shù)據(jù)存儲區(qū)啟動復制代理進程。如果為復制而配置了同一服務器上的多個數(shù)據(jù)存儲區(qū),則每個數(shù)據(jù)存儲區(qū)將有一個單獨的復制代理 每個復制代理能夠向一個或多個用戶服務器發(fā)送更新,并從一個或多個主服務器那里接收更新 復制代理通過 TCP/IP流套接字進

19、行通信 18 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveCache Connect to Oracle Cache Connect to Oracle 是 Oracle TimesTen In- Memory Database的一個選項,它為位于應用程序層中的 Oracle 磁盤數(shù)據(jù)創(chuàng)建實時、可更新的高速緩存 Cache Connect to Oracle 能夠將 Oracle 磁盤數(shù)據(jù)的子集加載到 TimesTen中,能夠雙向傳播更新

20、Cache Connect to Oracle 能夠使對非高速緩存數(shù)據(jù)的 SQL請求的透傳自動化 Cache Connect to Oracle 能夠在故障之后自動重新同步數(shù)據(jù)19 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveCache Connect to Oracle 高速緩存組是由一個或多個通過主鍵/外鍵關系以邏輯層次結構排列的表的集合。高速緩存組中的每個表都與 Oracle 數(shù)據(jù)庫表相關 一個高速緩存組表可以包含相關 Oracle

21、表中的所有行和列或行和列的一個子集 可以通過 SQL 語句創(chuàng)建和修改高速緩存組 20 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveCache Connect to Oracle 高速緩存組支持以下特性: 應用程序可以對高速緩存組執(zhí)行讀取和寫入操作 可以自動或手動刷新高速緩存組(將 Oracle 數(shù)據(jù)庫數(shù)據(jù)置于高速緩存組中) 可以自動或手動清理高速緩存組(將高速緩存更新傳播到 Oracle 表) 可以自動跟蹤對 Oracle 表或高速緩存組的

22、更改 21 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - Sensitive多種靈活的多種靈活的cache group A.只讀的cache group,定時把Oracle數(shù)據(jù)刷新到TimesTen里面,TimesTen里面的數(shù)據(jù)是只讀的.可以通過改變PassThrough的屬性,把對TimesTen的數(shù)據(jù)變更到Oracle里面,然后再通過Oracle刷新到TimesTen里面 B.同步的cahe group ,寫TimesTen的數(shù)據(jù)會先同步更新完Oracl

23、e數(shù)據(jù)庫然后再更新到TimesTen C.異步的cache group,直接更新到TimesTen里面,TimesTen定時通過replication agent把數(shù)據(jù)批量更新到Oracle里面。如果Oracle當了,等Oracle起來后,TimesTen會自動同步到Oracle上面。 D.用戶管理的cahe group ,用戶自定義刷新,加載,卸載等。22 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen對行業(yè)標準的支持對行業(yè)

24、標準的支持 支持多種操作系統(tǒng),比如Linux,AIX,Solaris,Windows,HP-Unix等32位或者64位操作系統(tǒng) 支持用戶的權限和認證管理,支持create user,grant,revoke操作 沒有tablespace的概念,使用的DSN的概念,沒有存儲過程,函數(shù),嵌入式c 支持多種常用的字符集,如ZHS16GBK,UTF8,US7ASCII等23 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen對行業(yè)標準的支

25、持對行業(yè)標準的支持 支持常用的數(shù)據(jù)對象,比如table,index,view,materialized view,sequence 支持常用的數(shù)據(jù)類型,比如number,char,varchar2,date等 支持sql92標準來進行DDL操作,比如create table,drop table,或者是改變對象屬性比如alter table 等 支持標準DML語法,如select ,insert ,update,delete,truncate24 2007 - Proprietary and Confidential Information of Amdocs. Security Level

26、Classification - SensitiveTimesten安裝安裝 (hp平臺)平臺) 1. 內(nèi)核參數(shù)調(diào)整 semmns 是系統(tǒng)內(nèi)系統(tǒng)用戶可用的IPC信號總數(shù),設置為大于或者等于4096(或8192等,推薦公式SEMMNS=SEMMNU=(SEMMNI * SEMMSL) shmmax 最大的共享內(nèi)存段,以字節(jié)為單位,一般設置為內(nèi)存的實際大小 64位機上檢測目錄是否支持大文件系統(tǒng)(如果要設置DataStore大于2G,就必須設置大文件系統(tǒng)):#fsadm -F vxfs /dir_name設置大文件系統(tǒng)#/usr/sbin/fsadm -F xvfs -o largefiles /d

27、ir_name 25 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesten安裝安裝 2.目錄,用戶及組 增加組TimesTen(也可通過sam):#groupadd g 600 TimesTen 增加用戶timesten并加入到sys,TimesTen組中:#useradd -u 600 -g TimesTen -G sys d /ttinstall/TimesTen timesten 如果有Oracle安裝組的話,也可以現(xiàn)在把ti

28、mesten用戶加入到Oracle安裝組dba中,因為Cache Group需要對Oracle目錄有訪問的權限 26 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesten安裝安裝 相關目錄:# mkdir /etc/TimesTen# chmod 775 /etc/TimesTen# chgrp R TimesTen /etc/TimesTen#chown R timesten:TimesTen /etc/TimesTen /etc

29、/TimesTen目錄用于TimesTen實例的注冊 27 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesten安裝安裝 3. FTP到需要安裝TimesTen的主機上的一個目錄,要求可用空間在500M以上,然后解包:tar xvf timesten604.hp64ipf.tar4. 解包后會在當前目錄下生成hp64ipf/目錄,執(zhí)行該目錄下面的setup.sh命令 5.輸入Instance name6. 選擇產(chǎn)品類型 Oracle

30、 TimesTen In-Memory Database:完全的內(nèi)存數(shù)據(jù)庫,和oracle數(shù)據(jù)庫沒有關系Cache Connect to Oracle:從oracle數(shù)據(jù)庫cache數(shù)據(jù)到TimesTen內(nèi)存數(shù)據(jù)庫;也支持直接在內(nèi)存數(shù)據(jù)庫中建立實體表。28 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesten安裝安裝 7. 選擇組件 1 Client/Server and Data Manager 2 Data Manager On

31、ly 3 Client Only Client/Server 模式下的三個選擇:客戶端、服務器端、客戶端 + 服務器端 8. 選擇安裝路徑 9. 選擇TimesTen Daemon 監(jiān)聽端口,默認為 17000 29 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesten安裝安裝 10.設置Access Control Access Control 提供了一個對TimesTen的初級的權限保護功能,它只是對誰能通過正常的途徑(比如tt

32、isql、JDBC及ODBC)訪問到相應的Data Store做了初級的限制;并不是說,它對在操作系統(tǒng)級別上對Data Store的文件 以及 Log 文件的訪問做除了安全保障。比如 root 用戶,即使它不是TimesTen的用戶,root用戶可以做他想做的任何事情,比如刪除Data Store文件等。所以安裝的時候一定要注意,一般建議設置為 yes,Yes時才允許TimesTen創(chuàng)建新的用戶 30 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - Sensit

33、iveTimesten安裝安裝 11.設置Cache Connect to Oracle 12.后面按照提示默認安裝 31 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen 系統(tǒng)變量系統(tǒng)變量 下列為TimesTen安裝之后,可能需要設置的系統(tǒng)變量: 1. LIB、LIBPATH、LD_LIBRARY_PATH、SHLIB_PATH:指向TimesTen所用到的共享庫,即 $INSTALL_DIR/LIB 目錄;如用到Cache

34、Group,還需包含$ORACLE_HOME/LIB,不同的平臺該變量的名字各有差異: SOLARIS LD_LIBRARY_PATH AIX LIBPATH HP-UX 32Bit SHLIB_PATH HP-UX 64Bit LD_LIBRARY_PAT ( $INSTALL_DIR/LIB) SHLIB_PATH ( $ORACLE_HOME/LIB) Tru64 UNIX LD_LIBRARY_PATH32 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification -

35、 SensitiveTimesTen 系統(tǒng)變量系統(tǒng)變量 2. CLASSPATH :如用到JDK,則需要設置該變量指向相應的Jar文件 目前支持的JDK有 JDK1.4、JDK5.0、BEA Weblogic Jrockit 5.0 3. ODBCINI :指向 .odbc.ini 配置文件。當用戶連接TimesTen的時候,TimesTen會按照下面的順序查找相關的配置文件: 1.環(huán)境變量ODBCINI所指向的 .odbc.ini文件 2.運行TimesTen的用戶主目錄下的 .odbc.ini 文件 3.環(huán)境變量SYSODBCINI所指向的 sys.odbc.ini文件 4./var/Ti

36、mesTen/sys.odbc.ini 5.install_dir/info/sys.odbc.ini(非root用戶才會執(zhí)行該步)33 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen 系統(tǒng)變量系統(tǒng)變量 ORACLE_HOME 指向Oracle 數(shù)據(jù)庫的安裝目錄,如果要用到Cache Group,該變量必須設置 PATH 指向TimesTen的bin 目錄,即$INSTALL_DIR/bin;如果用到Cache Group的話

37、,還要包含Oracle的bin目錄 SYSODBCINI 指向 SYS.ODBC.INI 配置文件,具體說明見 ODBCINI34 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen 系統(tǒng)變量系統(tǒng)變量 SYSTTCONNECTINI :當用Client/Server 模式訪問TimesTen的時候,該變量指向客戶端的 sys.ttconnect.ini 配置文件??蛻舳瞬檎遗渲梦募捻樞蚴牵?1. 環(huán)境變量SYSTTCONNECT

38、INI所指向的 sys.ttconnect.ini 配置文件。 2. /var/TimesTen/sys.ttconnect.ini 3. $INSTALL_DIR/info/sys.ttconnect.ini(非root用戶安裝) TMP/TMPDIR:指向TimesTen的臨時目錄。TimesTen的某些操作,比如ttRepAdmin duplicate 、大的刪除等會用到臨時目錄。 該參數(shù)缺省設置為:HP-UX 和AIX 是 /var/tmp;而Solaris、Linux、Tru64 UNIX 則是 /tmp35 2007 - Proprietary and Confidential I

39、nformation of Amdocs. Security Level Classification - SensitiveTimesTen 使用使用(1) - 啟動和關閉啟動和關閉 TimesTen 安裝完之后,缺省是已經(jīng)起來了的 啟動TimesTen :ttdaemonadmin -start 關閉TimesTen : ttdaemonadmin stop 關閉TimesTen前,建議先斷開所有連接TimesTen的應用,如果啟動了Cache Agent和Replication Agent,建議也都先停掉 36 2007 - Proprietary and Confidential In

40、formation of Amdocs. Security Level Classification - SensitiveTimesTen 使用使用(1) - 啟動和關閉啟動和關閉 ps -ef|grep timesten /tstenv/timeten/TimesTen/tt70/bin/timestend /tstenv/timeten/TimesTen/tt70/bin/timestenws /tstenv/timeten/TimesTen/tt70/bin/timestensubd /tstenv/timeten/TimesTen/tt70/bin/timestensubd /tst

41、env/timeten/TimesTen/tt70/bin/timestensubd /tstenv/timeten/TimesTen/tt70/bin/timestensubd37 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen 使用使用(1) - 啟動和關閉啟動和關閉 ttstatus TimesTen status report as of Wed Dec 5 11:12:54 2007 Daemon pid 24468

42、 port 18001 instance tt70 TimesTen server pid 24474 started on port 18003 TimesTen webserver pid 24473 started on port 18005 - Data store /tstenv/timeten/TimesTen/tt70/info/IOMS There are no connections to the data store Replication policy : Manual Cache agent policy : Manual - Access control enable

43、d. End of report38 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen 使用使用(1) - 啟動和關閉啟動和關閉 缺省的有: TimesTen的后臺守護進程(timestensubd) TimesTen的主守護進程(Daemon) Client/Server中的Server守護進程 TimesTen的一個WebServer 進程39 2007 - Proprietary and Confidential Info

44、rmation of Amdocs. Security Level Classification - SensitiveTimesTen 使用使用(2) -增加數(shù)據(jù)庫用戶增加數(shù)據(jù)庫用戶 安裝好系統(tǒng)后,系統(tǒng)有個自帶的DSN,和access control結合起來用,一般創(chuàng)建用戶,變更密碼,授予權限等相關權限、用戶控制在這個DSN來做 對于需要權限控制,創(chuàng)建用戶等,安裝的時候要把access control 安裝上,如果安裝的時候沒有安裝上,那么可以等安裝后執(zhí)行: ttmodinstall enableAccessControl ttmodinstall也可以重新指定監(jiān)控的port端口,重新設置環(huán)

45、境變量ORACLE_HOME 可以使用 ttmodinstall h 來查看該功能的使用40 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen 使用使用(2) -增加數(shù)據(jù)庫用戶增加數(shù)據(jù)庫用戶 TimesTen支持的創(chuàng)建后用戶的權限有下面幾種 1.Admin 2.Connect 3.create datastore 4.ddl 5.write 6.select41 2007 - Proprietary and Confidenti

46、al Information of Amdocs. Security Level Classification - SensitiveTimesTen 使用使用(2) -增加數(shù)據(jù)庫用戶增加數(shù)據(jù)庫用戶 $ttisql TT_tt70_train Command create user tt_train identified by tt_train; Command grant ddl,admin to tt_train; Command grant write to tt_train; Command grant SELECT to tt_train; Command quit 42 2007

47、- Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen 使用使用(3) - DataStore 介紹介紹 DataStore 是指TimesTen中的表、索引等放在內(nèi)存段中的一個集合,類似與Oracle中庫的概念 一個TimesTen Data Manager可以管理多個DataStore DataStore由放在相應ODBC配置文件中的一個DSN(Data Source Name)所定義,該DSN由一個名字和相關的屬性組成,如下:名為TT_t

48、t70_train的 DataStore的定義43 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveDataStore 介紹介紹 ODBC Data Sources TT_tt70_train=TimesTen 7.0 Driver TT_tt70_train Driver=/tstenv/timeten/zjf/TimesTen/tt70_train/lib/libtten.so DataStore=/tstenv/timeten/zjf/T

49、imesTen/tt70_train/info/TT_tt70_train DatabaseCharacterSet=US7ASCII PermSize=50 TempSize=1044 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveDataStore 介紹介紹 ODBC配置文件分為兩種:系統(tǒng)級ODBC文件(可通過環(huán)境變量SYSODBCINI另行設置)和用戶級ODBC配置文件(可通過環(huán)境變量ODBCINI另行設置)。系統(tǒng)級的ODBC可以被任何

50、用戶所引用,而用戶級的只能被該用戶所引用。系統(tǒng)級的ODBC文件在Windows平臺下可以通過控制面板-ODBC數(shù)據(jù)源管理-系統(tǒng)DSN 定義;而UNIX平臺下,則一般是通過定義文件 $INSTALL_DIR/sys.odbc.ini完成45 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveDataStore 介紹介紹 當用戶連接一個DataStore的時候,TimesTen會按照下面的順序查找配置文件: 1.環(huán)境變量ODBCINI所指的 .odb

51、c.ini文件 2.運行TimesTen的用戶主目錄下的 .odbc.ini 文件 3.環(huán)境變量SYSODBCINI所指的 sys.odbc.ini文件 4. /var/TimesTen/sys.odbc.ini 5. $INSTALL_DIR /info/sys.odbc.ini(非root用戶才會執(zhí)行該步)$INSTALL_DIR為TimesTen的安裝目錄46 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveDataStore 介紹介紹

52、在上面的 TT_tt70_train 定義里面,有兩個重要的屬性: Driver=/tstenv/timeten/zjf/TimesTen/tt70_train/lib/libtten.so 指操作該數(shù)據(jù)源所需要的驅動 DataStore=/tstenv/timeten/zjf/TimesTen/tt70_train/info/TT_tt70_train 指的是放置Checkpoint文件的磁盤地址 TimesTen雖然運行的時候將所有的數(shù)據(jù)都預先裝載在內(nèi)存中,但它也有自己的數(shù)據(jù)文件、日志文件等47 2007 - Proprietary and Confidential Information

53、 of Amdocs. Security Level Classification - SensitiveDataStore 介紹介紹 數(shù)據(jù)文件叫checkpoint 文件,是TimesTen內(nèi)存中數(shù)據(jù)在磁盤上的一個鏡像,相當于Oracle數(shù)據(jù)庫中的數(shù)據(jù)文件DBF TimesTen會在一定條件下自動做Check point ,它會將內(nèi)存中的臟數(shù)據(jù)和磁盤上的數(shù)據(jù)文件做增量同步。 當首次登陸到該DSN,或者TimesTen異常中止/失敗時,TimesTen需要這些讀取這些文件做恢復48 2007 - Proprietary and Confidential Information of Amdoc

54、s. Security Level Classification - SensitiveDataStore 介紹介紹下面是DataStore TT_tt70_train 在磁盤上的相應文件: $ pwd /tstenv/timeten/zjf/TimesTen/tt70_train/info $ ls -al|grep TT_tt70_train -rw-rw-rw- 1 timeten users 14785240 Dec 5 18:46 TT_tt70_train.ds0 -rw-rw-rw- 1 timeten users 14785240 Dec 5 18:38 TT_tt70_tra

55、in.ds1 -rw-rw-rw- 1 timeten users 753664 Dec 5 18:46 TT_tt70_train.log0 -rw-rw-rw- 1 timeten users 67108864 Dec 5 18:28 TT_tt70_train.res0 -rw-rw-rw- 1 timeten users 67108864 Dec 5 18:28 TT_tt70_train.res1 -rw-rw-rw- 1 timeten users 67108864 Dec 5 18:28 TT_tt70_train.res249 2007 - Proprietary and Co

56、nfidential Information of Amdocs. Security Level Classification - SensitiveDataStore 介紹介紹 針對TT_tt70_train這個DataStore,磁盤上對應由兩個checkpoint 文件,TT_tt70_train.ds0,TT_tt70_train.ds1 一個日志文件,TT_tt70_train.log0 三個保留文件(reservation) TT_tt70_train.res0,TT_tt70_train.res1,TT_tt70_train.res250 2007 - Proprietary a

57、nd Confidential Information of Amdocs. Security Level Classification - SensitiveCheckpoint文件文件 針對Checkpoint文件,TimesTen會以DataStore屬性的最后一節(jié)為文件名,創(chuàng)建相應的Checkpoint文件 TimesTen每次做Checkpoint的時候,會輪換著寫這兩個文件,每次都寫較舊的那個,所以在某些時間段內(nèi),這兩個文件不是完全一致的。每次做Checkpoint的時候,TimesTen先在這兩個文件之間做一個同步,然后把最新的更新,寫到舊的Checkpoint文件中。 為什么不

58、同時寫入兩個文件呢? 如果同時往兩個文件寫入,而寫入過程發(fā)生異常,會導致兩個文件同時被損壞,帶來災難性的后果51 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveTimesTen如何創(chuàng)建日志文件和保留文件呢如何創(chuàng)建日志文件和保留文件呢? 在ODBC配置文件里面,通過屬性 LogDir 來定義日志文件,沒有顯式設置LogDir時,日志文件將和Checkpoint文件位于同一目錄下,且以DataStore屬性中定義的目錄的最后一節(jié)為文件名,后綴中按

59、數(shù)字序列遞增命名,例如TT_tt70_train.log0,TT_tt70_train.log1。等。 具體定義了LogDir后,日志文件將位于該目錄下,且以該屬性值所指向的目錄的最后一節(jié)為文件名,例如:52 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - SensitiveCheckpoint文件文件 LogDir=/tstenv/timeten/zjf/TimesTen/tt70_train/log 此時,TimesTen將在目錄 /tstenv/timet

60、en/zjf/TimesTen/tt70_train/log 下創(chuàng)建名為TT_tt70_traincache的日志和保留文件 日志文件會和保留文件始終位于同一個目錄下 強烈建議將日志文件和Checkpoint文件分開放在不同磁盤上,且處于不同的磁盤控制器下,以盡量減少磁盤IO的影響53 2007 - Proprietary and Confidential Information of Amdocs. Security Level Classification - Sensitive保留文件保留文件 保留文件始終和日志文件位于同一目錄下,它的大小由屬性Log定義。缺省的Log是64M 當由于某些原因導致文件系統(tǒng)沒有空余的磁盤空間

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論