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

          sakai安裝配置(三)

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

          5. 數據庫配置

          5.1. 從早期版本移植

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

          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

          在該目錄下,你還可以發現其他版本的轉換腳本。另外,需要注意的是,如果你是從更早期的版本升級到當前版本,則需要依次執行相應腳本,比如,如果你要從 2.1.2 升級到 2.2.1 ,則需要先執行 2.1.2 2.2.0 的轉換腳本,然后再執行 2.2.0 2.2.1 的轉換腳本。

          5.2. 驅動配置

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

          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. 創建數據庫和用戶

          在使用 sakai 之前,必須先創建一個 sakai 數據庫,并建立相應的特權用戶,下面以 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 字符集

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

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

          VALUE

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

          AL32UTF8

          5.4. Database 屬性

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

          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 可能會出現一些性能方面的問題,因此 sakai 強烈建議采用 oracle 數據庫時采用以下配置來避免可能出現的性能問題:

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

          validationQuery@javax.sql.BaseDataSource=

          defaultTransactionIsolationString@javax.sql.BaseDataSource=

          testOnBorrow@javax.sql.BaseDataSource=false

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

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

          Oracle and Tests&Quizzes

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

          HSQL:

          varbinary

          MySQL:

          longblob

          Oracle:

          blob

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

          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.

          主站蜘蛛池模板: 长沙市| 云南省| 蓬安县| 柳河县| 镶黄旗| 图木舒克市| 中宁县| 奉化市| 宣威市| 长兴县| 栖霞市| 蓬莱市| 平果县| 龙门县| 叙永县| 永顺县| 定陶县| 鹰潭市| 淄博市| 娱乐| 阿坝县| 东宁县| 榆林市| 湘乡市| 镇原县| 新田县| 和顺县| 邻水| 郸城县| 扎鲁特旗| 凭祥市| 卓尼县| 建瓯市| 望谟县| 宁武县| 穆棱市| 诏安县| 鹿邑县| 唐河县| 建宁县| 潍坊市|