32整转64

本文深入探讨了在JavaScript中进行复杂数值运算的方法,包括大整数乘法、字符串到数字转换以及如何有效利用JavaScript的数值类型进行高效运算。通过实例展示了如何实现大整数乘法操作,并对比了不同方法的性能表现。

参考:http://blog.sina.com.cn/s/blog_4bf49cf30100g680.html

 

 

package {

import flash.display.Sprite;

 

public class A4 extends Sprite

{

public function A4()

{

// new GameLoader();

var u:uint = 4294967296;

// var temp:Number = 

trace(4294967296*4294967296);//18446744073709552000    18446744073709551616

trace(String(u));

trace((u*u).toString());

trace(Number(18446744073709551616));

}

}

}


<think>首先,用户的问题是:“我想将Oracle 32位数据库或客户端升级或迁移到64位环境 请问如何将Oracle 32位数据库或客户端迁移到64位系统”。我需要基于提供的引用信息来回答。 引用内容: - [^1]: 描述了将32位Oracle数据库迁移到64位平台,提到直接拷贝数据文件不行,因为wordsize不同,需要手工换系统存储过程。 - [^2]: 讨论了将Oracle迁移到MySQL,但这不是直接相关的,因为用户是想迁移到64位Oracle,而不是其他数据库。 - [^3]: 关于迁移Oracle到达梦数据库,这可能不直接相关。 - [^4]: 提供了具体命令来更新系统对象,以处理迁移问题。 用户的需求是迁移Oracle数据库或客户端从32位到64位系统。引用[^1]和[^4]直接相关,因为它们讨论32位到64位Oracle迁移。 关键点从引用: - 直接拷贝数据文件不行,因为存储过程在32位和64位平台下的wordsize不同。 - 用户的存储过程可以自行重新编译,但系统存储过程需要手工换。 - 具体命令如`update obj$ set status=1 where obj#=...`用于处理系统对象。 我应该构建一个结构化的回答: 1. **理解需求**:确认用户想迁移Oracle数据库或客户端到64位环境。 2. **迁移方法**:基于引用,描述迁移步骤。 - 对于数据库迁移:不能直接拷贝文件;需要导出/导入或使用迁移工具。 - 对于客户端迁移:可能更简单,直接安装64位客户端。 3. **步骤详解**:提供具体步骤,包括如何处理系统存储过程。 4. **注意事项**:提到潜在问题,如兼容性、性能优化。 5. **生成相关问题**:在末尾添加相关问题,如系统指令所示。 回答结构: - 使用中文。 - 清晰、逐步解决问题。 - 引用相关信息,在末尾添加引用标识。 - 确保回答真实可靠,基于引用。 系统指令要求: - 行内数学表达式用$...$,如$x^2$。 - 独立公式用$$...$$。 - 生成相关问题。 在回答中,可能没有数学表达式,但如果有,我会遵守格式。 最终回答结构: 1. 介绍迁移需求。 2. 迁移数据库的步骤。 3. 迁移客户端的步骤(如果相关)。 4. 注意事项。 5. 相关问题。 相关问题生成: - 基于主题,如迁移的性能分析、优化方法、应用场景。</think>### 将 Oracle 32 位数据库或客户端迁移到 64 位系统的步骤指南 迁移 Oracle 数据库或客户端从 32 位环境到 64 位系统是一个常见需求,尤其当您需要利用 64 位硬件(如更大内存支持)时。迁移过程涉及兼容性问题,因为 32 位和 64 位平台的 `wordsize`(字长)不同,这会影响存储过程和系统对象。直接拷贝数据文件是不可行的,因为 Oracle 的系统存储过程在 32 位和 64 位平台下不兼容,需要手工处理。以下基于可靠实践和引用内容,我将逐步解释迁移方法。迁移分为两个部分:数据库迁移和客户端迁移。个过程强调安全性和兼容性,建议在测试环境中先验证。 #### 1. **迁移 Oracle 32 位数据库到 64 位系统** 迁移数据库的核心是导出数据并重新导入到新环境,同时处理系统存储过程的换。32 位和 64 位 Oracle 的存储过程(特别是系统级对象)需要重新编译或手工更新,因为 `wordsize` 差异会导致二进制不兼容[^1]。以下是详细步骤: - **步骤 1: 准备目标环境** - 在 64 位系统(如 Red Hat Linux 6.2 64 位或 Windows Server)上安装 Oracle 64 位数据库软件。确保版本匹配(例如,从 Oracle 11g 32 位迁移到 Oracle 11g 64 位)。 - 创建与源数据库相同的表空间、用户和权限结构。使用 Oracle 的 `DBCA`(Database Configuration Assistant)工具简化此过程。 - 备份源数据库:使用 `RMAN`(Recovery Manager)或导出工具(如 `expdp`)创建完备份。例如: ```sql expdp system/password@source_db FULL=Y DIRECTORY=backup_dir DUMPFILE=full_export.dmp LOGFILE=export.log ``` - **步骤 2: 导出和导入数据** - 使用 Oracle 的 Data Pump 工具(`expdp` 和 `impdp`)导出源数据库数据,并导入到目标系统。Data Pump 支持跨平台迁移,但需注意: - 导出时指定兼容模式:`VERSION=12.1.0`(根据您的版本)。 - 导入时处理对象依赖:用户存储过程可以自动重新编译,但系统存储过程(如 `DBMS_` 包)需要手工干预[^1][^4]。 - 示例导入命令: ```sql impdp system/password@target_db DIRECTORY=backup_dir DUMPFILE=full_export.dmp REMAP_SCHEMA=source_user:target_user ``` - **步骤 3: 手工换系统存储过程** - 迁移后,系统存储过程可能处于无效状态(`INVALID`)。引用[^4]提供了关键命令来更新系统对象: ```sql -- 更新系统对象状态以触发重新编译 UPDATE obj$ SET status = 1 WHERE obj# = (SELECT obj# FROM obj$, javasnm$ WHERE owner# = 0 AND type# = 29 AND short(+) = name AND NVL(longdbcs, name) = 'oracle/aurora/rdbms/Compiler'); ``` - 运行此命令后,使用 `ALTER SYSTEM FLUSH SHARED_POOL;` 和 `ALTER SYSTEM CHECKPOINT;` 刷新缓存。 - 然后重新编译所有无效对象:`EXEC UTL_RECOMP.RECOMP_SERIAL();`。 - 验证:检查 `DBA_OBJECTS` 视图是否有无效对象:`SELECT object_name, status FROM dba_objects WHERE status = 'INVALID';`。 - **步骤 4: 测试和优化** - 在目标系统上运行数据库完性检查:使用 `DBVERIFY` 或 `ANALYZE TABLE`。 - 性能调优:64 位环境支持更大内存(如 64GB),调 `SGA` 和 `PGA` 参数以提升性能。 - 迁移后,监控日志(`alert.log`)以捕获任何错误。 **注意事项**: - 迁移时间取决于数据库大小(例如,100GB 数据库可能需要数小时)。 - 如果源数据库损坏(如引用[^1]所述),确保先修复或使用备份。 - 考虑使用 Oracle 的迁移工具(如 Oracle Data Guard 或 GoldenGate)实现零停机迁移,但需额外许可。 #### 2. **迁移 Oracle 32 位客户端到 64 位系统** 客户端迁移相对简单,因为不涉及数据文件。只需在新系统上安装 64 位 Oracle 客户端软件,并配置连接。 - **步骤 1: 安装 64 位客户端** - 下载并安装 Oracle 64 位客户端软件(从 Oracle 官网获取)。 - 配置 `tnsnames.ora` 和 `sqlnet.ora` 文件以匹配目标数据库连接信息。 - **步骤 2: 测试连接** - 使用 `sqlplus` 测试连接:`sqlplus username/password@target_db`。 - 确保应用程序(如 Java 或 .NET 程序)使用 64 位 JDBC/ODBC 驱动程序。 **注意事项**: - 如果应用程序依赖 32 位库,可能需要重编译或使用兼容层(如 Windows 的 WOW64)。 - 迁移后,验证所有客户端工具(如 SQL*Plus 或 SQL Developer)功能正常。 #### 潜在风险和优化建议 - **风险**:迁移失败可能导致数据丢失或停机。始终在测试环境验证,并准备回滚计划。 - **优化**:在 64 位环境中,利用更大内存提升查询性能;例如,调 `MEMORY_TARGET` 参数。 - **替代方案**:如果迁移到其他数据库(如 MySQL 或达梦),引用[^2][^3]提到 AWS 数据库迁移服务或工具,但本指南聚焦于 Oracle 内部迁移。 迁移完成后,Oracle 数据库将在 64 位系统上运行更高效,支持更大并发和内存资源[^1][^4]。如果您有特定环境细节(如操作系统或数据库版本),我可以提供更定制建议。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值