必须先运行安装新系统对象的升级脚本,然后才能将新的 MobiLink 服务器与现有的统一数据库共用。必须由当前安装了 MobiLink 系统表的所有者运行升级脚本。
如果有版本 10.0.0 以前创建的 authenticate_user_hashed 脚本,则必须使用 RDBMS 的二进制等效类型将其更改为接受 BINARY(32) 而非 BINARY(20)。
升级 SQL Anywhere 数据库。
请参见升级版本 10 及更高版本数据库。
对要进行升级的版本运行合适的升级脚本。
升级脚本名为 upgrade_sa.sql。它位于 SQL Anywhere 安装目录的 MobiLink\upgrade\version 子目录中,其中 version 是要升级的 SQL Anywhere 原版本。
例如,在 Interactive SQL 中连接到数据库,然后运行以下命令:
READ "c:\Program Files\SQL Anywhere 11\MobiLink\upgrade\10.0.1\upgrade_sa.sql" |
在版本 10.0.0 之前,MobiLink 系统表归 dbo 所有。要运行 SQL Anywhere 数据库的安装脚本,必须以 MobiLink 系统表所有者的身份登录至统一数据库。如果用户要运行这些脚本,仅具有更改表的权限是不够的。若要运行升级脚本,可以使用 SETUSER SQL 语句模拟 dbo。例如:
SETUSER "dbo"; |
若要在 Sybase Central 中升级统一数据库,应使用 GRANT CONNECT 语句创建 dbo 口令,然后以 dbo 身份连接。例如:
GRANT CONNECT TO dbo IDENTIFIED BY password; |
在后一种情况中,升级后应使用 ALTER USER 删除 dbo 口令。例如:
ALTER USER TO dbo IDENTIFIED BY ""; |
如果已经建立了 SQL Anywhere 统一数据库,但一直未与其同步,则必须运行安装脚本(非升级脚本)。这一步仅适用于 SQL Anywhere 统一数据库。
如果要升级版本 10.0.0 以前的 SQL Anywhere 统一数据库,必须首先将数据库升级到版本 11:
关闭数据库服务器。
将数据库升级到版本 11。
有关说明,请参见:
启动数据库服务器,以 DBA 身份登录。
必须 以 DBA 身份登录才能升级。
如果要从 6.0.x 版本升级,请运行 MobiLink 安装脚本,该脚本位于 SQL Anywhere 安装目录的 MobiLink\setup 子目录中。如果要从更高版本进行升级,则不要运行此安装脚本。
有关安装脚本的详细信息,请参见MobiLink 统一数据库。
对要进行升级的版本运行合适的升级脚本。
升级脚本名为 upgrade_asa.sql。它位于 SQL Anywhere 安装目录的 MobiLink\upgrade\version 子目录中,其中 version 是要升级的 SQL Anywhere 原版本。
要运行升级脚本,必须模拟 dbo 用户。可使用 SETUSER SQL 语句完成此操作。
例如,要升级 SQL Anywhere 9.0.2 版统一数据库,可使用 Interactive SQL 连接到数据库然后运行以下命令:
SETUSER "dbo"; READ 'c:\Program Files\SQL Anywhere 11\MobiLink\upgrade\9.0.2\upgrade_asa.sql' |
删除 dbo 口令。例如:
GRANT CONNECT TO "dbo"; |
如果作为 DBA 以外的用户运行 MobiLink 服务器,则必须向该用户授予对新的 MobiLink 系统对象的执行权限。哪些系统对象是新的取决于从哪个版本升级。以下代码授予所有 MobiLink 系统对象必要的权限。执行代码前,必须将用户名 my_user 更改为正在运行 MobiLink 服务器的用户名。
GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_column to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_connection_script to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_database to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_device to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_device_address to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_listening to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_property to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_clients to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_delivery to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_global_props to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_notifications to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_repository to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_repository_props to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_repository_staging to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_status_history to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_status_staging to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_script to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_script_version to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_scripts_modified to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_server to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_active_remote_id to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_passthrough_script to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_passthrough to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_passthrough_status to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_passthrough_repair to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_repository_archive to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_delivery_archive to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_status_history_archive to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_qa_repository_props_archive to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_sis_sync_state to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_subscription to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_table to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_table_script to my_user; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.ml_user to my_user; GRANT EXECUTE ON dbo.ml_qa_get_agent_network_property to my_user; GRANT EXECUTE ON dbo.ml_qa_get_agent_object_property to my_user; GRANT EXECUTE ON dbo.ml_qa_get_agent_property to my_user; GRANT EXECUTE ON dbo.ml_qa_get_message_property to my_user; GRANT EXECUTE ON dbo.ml_add_column to my_user; GRANT EXECUTE ON dbo.ml_add_connection_script to my_user; GRANT EXECUTE ON dbo.ml_add_dnet_connection_script to my_user; GRANT EXECUTE ON dbo.ml_add_dnet_table_script to my_user; GRANT EXECUTE ON dbo.ml_add_java_connection_script to my_user; GRANT EXECUTE ON dbo.ml_add_java_table_script to my_user; GRANT EXECUTE ON dbo.ml_add_lang_conn_script_chk to my_user; GRANT EXECUTE ON dbo.ml_add_lang_connection_script to my_user; GRANT EXECUTE ON dbo.ml_add_lang_table_script to my_user; GRANT EXECUTE ON dbo.ml_add_lang_table_script_chk to my_user; GRANT EXECUTE ON dbo.ml_add_property to my_user; GRANT EXECUTE ON dbo.ml_add_table_script to my_user; GRANT EXECUTE ON dbo.ml_add_user to my_user; GRANT EXECUTE ON dbo.ml_delete_device to my_user; GRANT EXECUTE ON dbo.ml_delete_device_address to my_user; GRANT EXECUTE ON dbo.ml_delete_listening to my_user; GRANT EXECUTE ON dbo.ml_delete_sync_state to my_user; GRANT EXECUTE ON dbo.ml_delete_sync_state_before to my_user; GRANT EXECUTE ON dbo.ml_delete_user to my_user; GRANT EXECUTE ON dbo.ml_qa_add_delivery to my_user; GRANT EXECUTE ON dbo.ml_qa_add_message to my_user; GRANT EXECUTE ON dbo.ml_qa_handle_error to my_user; GRANT EXECUTE ON dbo.ml_qa_stage_status_from_client to my_user; GRANT EXECUTE ON dbo.ml_qa_staged_status_for_client to my_user; GRANT EXECUTE ON dbo.ml_qa_upsert_global_prop to my_user; GRANT EXECUTE ON dbo.ml_reset_sync_state to my_user; GRANT EXECUTE ON dbo.ml_set_device to my_user; GRANT EXECUTE ON dbo.ml_set_device_address to my_user; GRANT EXECUTE ON dbo.ml_set_listening to my_user; GRANT EXECUTE ON dbo.ml_set_sis_sync_state to my_user; GRANT EXECUTE ON dbo.ml_upload_update_device_address to my_user; GRANT EXECUTE ON dbo.ml_upload_update_listening to my_user; GRANT EXECUTE ON dbo.ml_server_update to my_user; GRANT EXECUTE ON dbo.ml_server_delete to my_user; GRANT EXECUTE ON dbo.ml_add_passthrough_script to my_user; GRANT EXECUTE ON dbo.ml_add_passthrough to my_user; GRANT EXECUTE ON dbo.ml_add_passthrough_repair to my_user; GRANT EXECUTE ON dbo.ml_delete_passthrough_script to my_user; GRANT EXECUTE ON dbo.ml_delete_passthrough to my_user; GRANT EXECUTE ON dbo.ml_delete_passthrough_repair to my_user; |
如果 MobiLink 服务器是版本 11.0.0 以前的版本,则仅需升级 Adaptive Server Enterprise、Oracle 或 Microsoft SQL Server 统一数据库中的 MobiLink 系统对象。
如果要从版本 6.0.x 升级,请运行位于 SQL Anywhere 安装目录的 MobiLink\setup 子目录中的 MobiLink 安装脚本。如果要从更高版本进行升级,则不要运行此安装脚本。
有关安装脚本的详细信息,请参见MobiLink 统一数据库。
对于 Adaptive Server Enterprise 数据库,必须设置 "SELECT INTO" 权限。在 Sybase Interactive SQL 中运行以下命令:
USE MASTER go sp_dboption your-database-name, "SELECT INTO", true go USE your-database-name go checkpoint go |
对要进行升级的版本运行合适的升级脚本。
升级脚本名为 upgrade_XXX.sql,其中 XXX 表示统一数据库的 RDBMS。它们位于 SQL Anywhere 安装目录的 MobiLink\upgrade\version 子目录中,其中 version 是要升级的 MobiLink 原版本。
例如,要升级 Microsoft SQL Server 版本 9.0.2 统一数据库,请运行以下命令:
isql -S server_name -U user_name -P password -I "c:\Program Files\SQL Anywhere 11\MobiLink\upgrade\9.0.2\upgrade_mss.sql" |
如果 MobiLink 服务器是 11.0.0 之前的版本,则仅需升级 DB2 LUW 统一数据库。
如果从 MobiLink 版本 6 升级,应通过运行 SQL 安装脚本 MobiLink\setup\syncdb2.sql 来创建 MobiLink 系统表和存储过程。
有关如何运行 DB2 LUW 安装脚本的信息,请参见IBM DB2 LUW 统一数据库。
找到 DB2 LUW 升级脚本。
升级脚本名为 upgrade_db2.sql,保存在 SQL Anywhere 安装目录的 MobiLink/upgrade/version 子目录中。version 目录指要升级的 MobiLink 的原版本。
复制 upgrade_db2.sql 然后修改复制后的副本。更改脚本开头的 CONNECT 语句,以便该语句可以使用要连接的实例。将复制的 SQL 脚本应用于统一数据库。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |