程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 教你學會怎樣升級到SQL Anywhere 10(5)

教你學會怎樣升級到SQL Anywhere 10(5)

編輯:SyBase綜合文章

重建數據庫(不整理碎片)

您可參照以下步驟來執行一個不整理磁盤碎片的重建任務。

1、 關閉SQL Anywhere 和Adaptive Server Anywhere 數據庫服務器因為版本10 的dbunload

實用工具不能針對運行在較早版本數據庫服務器上的數據庫工作。例如:

 

dbstop -c "DBF=mydb.db;UID=DBA;PWD=sql"

2、 確保版本10 的實用工具在系統路徑中優先於別的工具。

3、 使用dbunload 實用工具創建一個reload.sql 文件。例如:

 

dbunload -c "connection-string" directory-name

4、 使用初始化工具(dbinit)創建一個新數據庫。或在Sybase Central 中創建一個新數據庫。例

如:

 

dbinit new.db

 

5、使用Interactive SQL 連接新數據庫:

 

dbisql -c "DBF=new.db;UID=DBA;pwd=sql"

6、 執行以下命令將磁盤空間加入數據庫中以便將數據加載。請務必增加足夠大的磁盤空間以

容納數據。磁盤空間必須是連續的,這樣可以提高加載的性能。例如:

 

ALTER DBSPACE system 
ADD 200MB

7、 在Interactive SQL 中將reload.sql 應用到數據庫中。

 

dbisql -c "DBF=new.db;UID=DBA;pwd=sql" reload.sql

 

已知問題

如果在運行dbunload 實用工具或卸載向導的過程中重建失敗,您可使用以下步驟來幫助

判斷失敗原因:

1、 運行使用-n 選項的dbunload 命令:

 

dbunload -c "connection-string" -n directory-name

2、創建新的,空白的版本10 數據庫

 

dbinit test.db

3、 將reload.sql 應用至空白的數據庫中:

 

dbisql -c "DBF=test.db;UID=DBA;pwd=sql" reload.sql
 

 

4、 根據將reload.sql 文件應用到新數據庫的消息,酌情修改reload.sql 或原始數據庫。

以下表格列出了可能導致重建失敗的原因和其解決辦法。

已知問題:

如果表名有對象擁有者前綴時,存儲過程或觸發

器語句中的DECLARE LOCAL TEMPORARY

TABLE 語句產生表達式錯誤。

解決辦法:

去掉對象擁有者。

已知問題:

如果CREATE TRIGGER 語句不包含觸發器依

賴表的擁有者,而出現“Table 'table-name' not

found”錯誤的。

解決辦法:

將表名加上對象擁有者前綴。

已知問題:

如果一個對象名稱(例如表、列、變量或參數名)

與最新版本的SQL Anywhere 保留字相關(例如

NCHAR),則加載失敗。例如:

 

CREATE PROCEDURE p( ) 
BEGIN 
DECLARE NCHAR INT; 
SET NCHAR = 1; 
END

解決辦法:

將使用的保留字替換成別的名稱。對於變量,前

綴的@字符通常可用來避免命名沖突。詳情請參

閱SQL Anywhere 文檔的“保留字”。

已知問題:

如果數據庫是被版本9 或更早版本的dbunload

卸載的,則reload.sql 文件中包含了對

ml_add_property 系統過程的調用,但這個過程

在版本10 中不存在

解決辦法:

請使用版本10 的卸載工具。

已知問題:

如果數據庫是被版本9 或更早版本的dbunload

卸載的,則使用T-SQL 書寫的外連接(OUTER

JOINS, *=或者=*)所創建的視圖可能不會被正確

加載:

解決辦法:

在加載腳本中加入以下行:

 

SET TEMPORARY 
OPTION tsql_outer_joins='on'

您必須後續使用T-SQL 重寫視圖。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved