posts - 12, comments - 19, trackbacks - 0, articles - 23
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          sakai安裝配置(三)

          Posted on 2006-09-08 17:16 毛里求斯的化石 閱讀(1960) 評論(1)  編輯  收藏 所屬分類: 開源

          5. 數(shù)據(jù)庫配置

          5.1. 從早期版本移植

          2.2.0 2.2.1 sakai 提供了 mysql oracle 的轉(zhuǎn)換腳本,保存在以下目錄 reference/docs/updating ,從以下網(wǎng)址也可以獲得:

          MySQL:

          https://source.sakaiproject.org/svn/reference/tags/sakai_2-2-1/docs/conversion/sakai_2_2_0-2_2_1_mysql_conversion.sql

          Oracle:

          https://source.sakaiproject.org/svn/reference/tags/sakai_2-2-1/docs/conversion/sakai_2_2_0-2_2_1_oracle_conversion.sql

          在該目錄下,你還可以發(fā)現(xiàn)其他版本的轉(zhuǎn)換腳本。另外,需要注意的是,如果你是從更早期的版本升級到當前版本,則需要依次執(zhí)行相應(yīng)腳本,比如,如果你要從 2.1.2 升級到 2.2.1 ,則需要先執(zhí)行 2.1.2 2.2.0 的轉(zhuǎn)換腳本,然后再執(zhí)行 2.2.0 2.2.1 的轉(zhuǎn)換腳本。

          5.2. 驅(qū)動配置

          Sakai 支持的產(chǎn)品級的數(shù)據(jù)庫包括 MySQL 4.1.12+ (注意, MySQL 5.0 還未經(jīng)過充分測試)和 oracle9i+ JDBC 驅(qū)動的版本也很重要, 對于 mysql 來說,需要用 MySQL a 3.1.12+ 連接器,對于 oracle 來說必須用 10g 的驅(qū)動,即使數(shù)據(jù)庫版本是 9i ,這些驅(qū)動應(yīng)該放到 $CATALINA_HOME/common/lib 目錄下,相應(yīng)的驅(qū)動可以從以下網(wǎng)址獲得:

          MySQL:

          http://dev.mysql.com/downloads/connector/j/3.1.html

          Oracle:

          http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

          5.3. 創(chuàng)建數(shù)據(jù)庫和用戶

          在使用 sakai 之前,必須先創(chuàng)建一個 sakai 數(shù)據(jù)庫,并建立相應(yīng)的特權(quán)用戶,下面以 mysql 為例說明操作的過程:

          C:\sakai\reference\sql\legacy\mysql\>

          mysql -u root -p

          Enter password: ******

          Welcome to the MySQL monitor. Commands end with ; or \g.

          ?

          Your MySQL connection id is 51 to server version: 4.1.5-gamma-nt

          ?

          Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

          ?

          mysql> create database sakai default character set utf8;

          Query OK, 1 row affected (0.00 sec)

          ?

          mysql> grant all on sakai.* to sakaiuser@'localhost' identified by 'sakaipassword';

          Query OK, 0 rows affected (0.00 sec

          ?

          mysql> grant all on sakai.* to sakaiuser@'127.0.0.1' identified by 'sakaipassword';

          Query OK, 0 rows affected (0.00 sec)

          ?

          mysql> quit

          UTF-8 字符集

          創(chuàng)建數(shù)據(jù)庫時,必須確保使用 UTF-8 字符集,就像 tomcat 也必須配置成 UTF-8 字符集一樣。如果你不確定你的數(shù)據(jù)庫的當前配置,你可以通過 sql 來查詢,下面是以 oralce 為例,說明如何確定你的數(shù)據(jù)庫使用的字符集:

          SQL> select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';

          VALUE

          --------------------------------------------------------------------------------

          AL32UTF8

          5.4. Database 屬性

          數(shù)據(jù)庫的屬性也是在 sakai.properties 文件中進行配置,以下分別是 mysql oracle 數(shù)據(jù)庫的配置信息,你所需要的是根據(jù)自己的具體設(shè)置來進行本地化的修改:

          MySQL:

          hibernate.dialect=org.hibernate.dialect.MySQLDialect

          vendor@org.sakaiproject.db.api.SqlService=mysql

          driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver

          url@javax.sql.BaseDataSource=jdbc:mysql://SERVER:3306/DB?useUnicode=true&characterEncoding=UTF-8

          username@javax.sql.BaseDataSource=USER

          password@javax.sql.BaseDataSource=PASSWORD

          validationQuery@javax.sql.BaseDataSource=select 1 from DUAL

          defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED

          Oracle:

          hibernate.dialect=org.hibernate.dialect.Oracle9Dialect

          vendor@org.sakaiproject.db.api.SqlService=oracle

          driverClassName@javax.sql.BaseDataSource=oracle.jdbc.driver.OracleDriver

          url@javax.sql.BaseDataSource=jdbc:oracle:thin:@SERVER:1521:DB

          username@javax.sql.BaseDataSource=USER

          password@javax.sql.BaseDataSource=PASSWORD

          validationQuery@javax.sql.BaseDataSource=select 1 from DUAL

          defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED

          Oracle 的性能

          如果采用和 mysql 或者 HSQL 類似的配置, oracle 可能會出現(xiàn)一些性能方面的問題,因此 sakai 強烈建議采用 oracle 數(shù)據(jù)庫時采用以下配置來避免可能出現(xiàn)的性能問題:

          # For improved Oracle performance (from the University of Michigan)

          validationQuery@javax.sql.BaseDataSource=

          defaultTransactionIsolationString@javax.sql.BaseDataSource=

          testOnBorrow@javax.sql.BaseDataSource=false

          oracle 將自動配置前兩項的值。

          一旦你修改了數(shù)據(jù)庫的配置,你只需重起 tomcat 即可生效,可以查看啟動日志,看是否有數(shù)據(jù)庫連接方面的錯誤。

          Oracle and Tests&Quizzes

          如果你使用的是 oracle 數(shù)據(jù)庫,你還必須檢查 SAM_MEDIA_T 表中的 MEDIA 字段, hibernate 能夠為每個字段選擇正確的數(shù)據(jù)類型,但是在這個字段上,對于 oracle 經(jīng)常會出現(xiàn)錯誤。對于不同數(shù)據(jù)庫,正確的數(shù)據(jù)類型應(yīng)該是如下:

          HSQL:

          varbinary

          MySQL:

          longblob

          Oracle:

          blob

          如果你需要在你的數(shù)據(jù)庫中改變這個字段的數(shù)據(jù)類型,你還必須重建該表的主鍵,以下是一個例子:

          SQL> alter table SAM_MEDIA_T modify MEDIA BLOB;

          Table altered.

          SQL> select constraint_name from user_constraints where table_name='SAM_MEDIA_T'

          and CONSTRAINT_TYPE='P';

          CONSTRAINT_NAME

          ------------------------------

          SYS_C0064435

          SQL> alter table sam_media_t drop constraint SYS_C0064435;

          Table altered.

          SQL> alter table SAM_MEDIA_T add constraint SYS_C0064435 primary key (MEDIAID);

          Table altered.

          SQL> desc SAM_MEDIA_T;

          [table with BLOB type]

          SQL> select constraint_name from user_constraints where table_name='SAM_MEDIA_T'

          and CONSTRAINT_TYPE='P';

          CONSTRAINT_NAME

          ------------------------------

          SYS_C0064435

          SQL> commit;

          Commit complete.

          主站蜘蛛池模板: 平定县| 三都| 凤山市| 旬邑县| 呼伦贝尔市| 清河县| 通许县| 噶尔县| 铜陵市| 彭水| 莱州市| 衡东县| 平武县| 罗田县| 湘潭县| 慈利县| 农安县| 山阴县| 绍兴市| 柳河县| 正镶白旗| 涿鹿县| 汉阴县| 宜章县| 柏乡县| 拉孜县| 怀集县| 额尔古纳市| 广南县| 海宁市| 库尔勒市| 兰考县| 尼木县| 旅游| 包头市| 廉江市| 买车| 南和县| 罗城| 陈巴尔虎旗| 岳阳县|