教你学会怎样升级到SQL Anywhere 10(5)
2010-02-07 15:11:16 来源:WEB开发网重建数据库(不整理碎片)
您可参照以下步骤来执行一个不整理磁盘碎片的重建任务。
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语句产生表达式错误。
解决办法:
去掉对象拥有者。
赞助商链接