二、整库迁移操作

二、整库迁移操作
准备:
1、把被迁移的库的pfile文件准备好(如果找不到,可以通过spfile创建pfile出来)
sql>create spfile from pfile;
2、把数据库文件准备好:包含控制文件,表空间文件(数据文件),日志文件等文件准备好。
一般包含如下的目录:
E:/calsdb
E:/calsdb/admin
E:/calsdb/admin/adump
E:/calsdb/admin/bdump
E:/calsdb/admin/cdump
E:/calsdb/admin/udump
E:/calsdb/ctrl
E:/calsdb/pfile 可选
E:/calsdb/data
E:/calsdb/redo
 
1、修改pfile,calsdb.bat文件。
迁移的库文件更改为其它路径。
calsdb.bat内容如下:
oradim -delete -sid calsdb
oradim -NEW -SID calsdb -intpwd dbcals_pwd -startmode a -pfile E:/calsdb/pfile/init.ora
 
2、执行迁移文件calsdb.bat。
3、重新启动库.
/>sqlplus /nolog
sql>shutdown 库
4、sql>conn sys/dbcals_pwd as sysdba
5、sql>startup pfile=E:/calsdb/pfile/init.ora mount
6、如果移库的路径和被迁移的库文件路径盘符都不一样,需要执行如下的操作。如果路径和原来的路径是一致的,下面代码不需要执行,并跳过,直到7点。
sql>alter database rename file 'D:/calsdb/data/system01.dbf','D:/calsdb/data/sysaux01.dbf','D:/calsdb/data/temp01.dbf','D:/calsdb/data/undotbs01.dbf','D:/calsdb/data/USRTEST01.DBF','D:/calsdb/data/WMSDATA01.DBF','D:/calsdb/data/PCSDATA01.DBF','D:/calsdb/data/PCSINDEX01.DBF','D:/calsdb/data/SPCDATA01.DBF','D:/calsdb/data/SPCINDEX01.DBF','D:/calsdb/data/WMSINDEX01.DBF', 'D:/calsdb/data/TMSDATA01.DBF','D:/calsdb/data/TMSINDEX01.DBF' to 'E:/calsdb/data/system01.dbf','E:/calsdb/data/sysaux01.dbf','E:/calsdb/data/temp01.dbf','E:/calsdb/data/undotbs01.dbf','E:/calsdb/data/USRTEST01.DBF','E:/calsdb/data/WMSDATA01.DBF','E:/calsdb/data/PCSDATA01.DBF','E:/calsdb/data/PCSINDEX01.DBF','E:/calsdb/data/SPCDATA01.DBF','E:/calsdb/data/SPCINDEX01.DBF','E:/calsdb/data/WMSINDEX01.DBF', 'E:/calsdb/data/TMSDATA01.DBF','E:/calsdb/data/TMSINDEX01.DBF';
sql>alter database rename file 'd:/calsdb/redo/REDO01.LOG','d:/calsdb/redo/REDO02.LOG','d:/calsdb/redo/REDO03.LOG' to 'E:/calsdb/redo/REDO01.LOG','E:/calsdb/redo/REDO02.LOG','E:/calsdb/redo/REDO03.LOG';
7、sql>alter database open;
是否报错,如果不报错,证明成功了。
如果报错Ora-01092的错误,请查看alert_calsdb.log错误信息,找出错误点,这里提示:
Errors in file e:/calsdb/admin/udump/calsdb_ora_4092.trc:
ORA-00704: 引导程序进程失败
ORA-39700: 必须用 UPGRADE 选项打开数据库
报错后,往后面执行9点。更新数据字典。
9、sql>startup pfile=E:/calsdb/pfile/init.ora upgrade
10、此时数据已经打开了。进升级数据字典。
11、sql>spool patch.log;
12、sql>start E:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/catupgrd.sql
13、sql>spool off;
14、sql>start E:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/utlrp.sql
15、sql>create spfile from pfile='E:/calsdb/pfile/init.ora';
16、sql>shutdown immediate
17、sql>startup  希望成功,如果不成功,请检测日志并分析错误解决问题。
验证迁库,连接库,执行操作。编码过程等这些操作。确定数据是否完整迁移。
### 使用 Kettle 实现迁移的最佳实践 #### 数据源准备 为了成功完成从 SQL Server 到 MySQL 的全量数据迁移,在开始之前需准备好两个数据库连接信息。这包括但不限于服务器地址、端口号、用户名密码以及目标数据库名称等必要参数[^1]。 #### 设计转换与作业流程 基于需求描述,可以构建如下所示的核心逻辑结构: - **读取元数据**:利用 `Get Table Names` 和 `Get Fields From Result` 步骤获取SQL Server内所有待转移表格及其字段定义; - **动态建表脚本生成**:借助于 `Modified Java Script Value` 或者 Python 脚本来解析上述得到的结果集,并据此拼接出适用于MySQL语法的CREATE TABLE语句; - **执行DDL操作**:通过 `Execute SQL script` 将上一步产生的命令发送给目的端即MySQL实例来实际创建相应架构; - **增量/批量导数**:采用 `Table Input` 加载原始记录再配合 `Insert / Update` 插入新环境里对应位置,注意这里可能涉及到一些类型映射调工作以适应不同DBMS间的差异特性[^4]。 ```sql -- 示例 DDL 创建语句片段 (针对单张表) CREATE TABLE IF NOT EXISTS ${target_schema}.${table_name} ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), ... ); ``` #### 性能调优策略 考虑到大规模的数据传输可能会带来性能瓶颈问题,因此推荐采取以下措施提升体吞吐率和稳定性: - 启用压缩传输选项减少网络带宽占用; - 设置合理的批处理大小控制每次提交事务的影响范围; - 并行化多线程抓取多个对象加快进度但要权衡并发度以免造成资源争抢现象; - 对大文件实施分片切割后再逐一上传从而降低失败风险同时便于断点续传支持[^2]。 #### 日志审计机制建立 在个ETL过程中保持良好的日志记录习惯有助于后期排查错误原因或是评估任务健康状况。具体做法可参照官方文档说明启用详细的跟踪模式并指定专门的日志级别用于捕捉重要事件发生时刻的信息输出[^3]。 #### 自动化运维管理平台集成 最后值得一提的是,如果企业内部已经存在成熟的CI/CD流水线或者是容器编排框架的话,则不妨考虑把Kettle相关组件也纳入进来统一管控之下。比如借助Dockerfile打包镜像版本发布至私有Registry仓供下游服务拉取部署,又或者是在Jenkins pipeline里面加入触发条件自动启动特定job批次等等[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值