Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 11 - 更改和升级 » 升级到 SQL Anywhere 11 » 升级 MobiLink

 

升级统一数据库

必须先运行安装新系统对象的升级脚本,然后才能将新的 MobiLink 服务器与现有的统一数据库共用。必须由当前安装了 MobiLink 系统表的所有者运行升级脚本。

注意
  • 如果有版本 10.0.0 以前创建的 authenticate_user_hashed 脚本,则必须使用 RDBMS 的二进制等效类型将其更改为接受 BINARY(32) 而非 BINARY(20)。

升级 SQL Anywhere 10.0.0 及更高版本
♦  升级统一数据库(SQL Anywhere 10.0.0 及更高版本)
  1. 升级 SQL Anywhere 数据库。

    请参见升级版本 10 及更高版本数据库

  2. 对要进行升级的版本运行合适的升级脚本。

    升级脚本名为 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 以前的 SQL Anywhere
  • 在版本 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)
  1. 如果要升级版本 10.0.0 以前的 SQL Anywhere 统一数据库,必须首先将数据库升级到版本 11:

    1. 关闭数据库服务器。

    2. 将数据库升级到版本 11。

      有关说明,请参见:

    3. 启动数据库服务器,以 DBA 身份登录。

      必须 以 DBA 身份登录才能升级。

  2. 如果要从 6.0.x 版本升级,请运行 MobiLink 安装脚本,该脚本位于 SQL Anywhere 安装目录的 MobiLink\setup 子目录中。如果要从更高版本进行升级,则不要运行此安装脚本。

    有关安装脚本的详细信息,请参见MobiLink 统一数据库

  3. 对要进行升级的版本运行合适的升级脚本。

    升级脚本名为 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'
  4. 删除 dbo 口令。例如:

    GRANT CONNECT TO "dbo";
  5. 如果作为 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;
升级 Adaptive Server Enterprise、Oracle 或 Microsoft SQL Server MobiLink 系统表

如果 MobiLink 服务器是版本 11.0.0 以前的版本,则仅需升级 Adaptive Server Enterprise、Oracle 或 Microsoft SQL Server 统一数据库中的 MobiLink 系统对象。

♦  升级统一数据库(Adaptive Server Enterprise、Oracle 或 Microsoft SQL Server)
  1. 如果要从版本 6.0.x 升级,请运行位于 SQL Anywhere 安装目录的 MobiLink\setup 子目录中的 MobiLink 安装脚本。如果要从更高版本进行升级,则不要运行此安装脚本。

    有关安装脚本的详细信息,请参见MobiLink 统一数据库

  2. 对于 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
  3. 对要进行升级的版本运行合适的升级脚本。

    升级脚本名为 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"
升级 IBM DB2 LUW

如果 MobiLink 服务器是 11.0.0 之前的版本,则仅需升级 DB2 LUW 统一数据库。

♦  升级 DB2 LUW 统一数据库
  1. 如果从 MobiLink 版本 6 升级,应通过运行 SQL 安装脚本 MobiLink\setup\syncdb2.sql 来创建 MobiLink 系统表和存储过程。

    有关如何运行 DB2 LUW 安装脚本的信息,请参见IBM DB2 LUW 统一数据库

  2. 找到 DB2 LUW 升级脚本。

    升级脚本名为 upgrade_db2.sql,保存在 SQL Anywhere 安装目录的 MobiLink/upgrade/version 子目录中。version 目录指要升级的 MobiLink 的原版本。

  3. 复制 upgrade_db2.sql 然后修改复制后的副本。更改脚本开头的 CONNECT 语句,以便该语句可以使用要连接的实例。将复制的 SQL 脚本应用于统一数据库。