【翻译自mos文章】重新创建物理standby database 的 控制文件的方法

重新创建物理standby database 的 控制文件的方法

参考自:
Steps to recreate a Physical Standby Controlfile (文档 ID 459411.1)

适用于:
Oracle Database - Enterprise Edition - Version 8.1.7.0 to 11.2.0.3 [Release 8.1.7 to 11.2]
Information in this document applies to any platform.
 ***Checked for relevance on 29-Aug-2014***

解决方法:
请遵守下列方法来重新创建物理standby controlfile 

 

1. Stop Managed Recovery Process on the Standby Database (if still running):
   

SQL> alter database recover managed standby database cancel;


2. Shutdown the Standby Database:
   

SQL> shutdown immediate;


3. Connect to the Primary Database as SYS:
   

SQL> connect sys/<Password>@<Primary> as sysdba


4. Create a new Physical Standby Controlfile from the Primary:
   

SQL> alter database create standby controlfile as '<File-Specification>';


5. Copy the new created Standby Controlfile to the Standby Database using OS-Tools (eg. cp or ftp) and replace the current Standby Controlfile with the new created one.

6. Mount the Standby Database with the new Standby Controlfile:

    Oracle 8i and 9i (8.x - 9.x):
   

SQL> startup nomount
SQL> alter database mount standby database;


    Oracle 10g and 11g (10.x - 11.x):
 

SQL> startup mount


7. If the File-Structure is different between Primary and Standby Database,  you could either rename the File-Location(s) in the new Standby Controlfile:
   

SQL> alter database rename file '<old Filespecification or file#>' to '<new Filespecification>';

or set db_file_name_convert or/and log_file_name_convert init parameters in the standby database.

8. Starting with 9i: If you don't have Standby RedoLogs proactively on the Primary and want them on the Standby Database or you had Standby RedoLogs with this Standby Database before, now add the Standby RedoLogs (again):
   

SQL> alter database add standby logfile group <Group No.> ('Filespecification(s)') size <size> reuse;


Please see
Document 219344.1:Usage, Benefits and Limitations of Standby Redo Logs (SRL)
for further Details about Standby RedoLogs

9. Re-enable Flashback (if Flashback was enabled previously):



SQL> alter database flashback off;
SQL> alter database flashback on;


10. Start Managed Recovery again:
   

SQL> alter database recover managed standby database disconnect [using current logfile];


 

<think>好的,我现在需要帮用户解决Oracle数据库迁移到新服务器的问题。首先,我得理清楚迁移的基本步骤,确保不遗漏重要环节。用户有两台服务器,旧的有Oracle数据库,新的要迁移过去。我需要考虑用户可能的场景,比如他们可能是在升级硬件,或者迁移到云环境,或者是普通的服务器更换。不同的场景可能有不同的细节需要注意,但基本步骤应该类似。 首先,迁移前的准备工作很重要。用户需要确认源数据库的版本,检查新服务器是否支持该版本,或者是否需要升级。这一步很关键,因为版本不兼容可能导致迁移失败。然后,备份源数据库,这是必须的,防止数据丢失。备份方式可以用RMAN,这是Oracle推荐的备份工具,比较可靠。同时,检查新服务器的环境,比如操作系统版本、存储空间、内存、CPU等,确保满足Oracle的安装要求。可能还需要安装相同版本的Oracle软件,或者更高版本,但要注意兼容性。 接下来是迁移方法的选择。用户可能有不同的需求,比如停机时间的长短、数据量大小、网络带宽等。导出/导入工具(expdp/impdp)适合数据量不大,允许停机的情况。RMAN的跨平台迁移可能更高效,尤其是数据量大的时候。Data Guard适合需要最小停机时间的情况,可以做物理 standby,然后切换。传输表空间可能在特定场景下有用,比如只迁移部分表空间。用户需要根据自身情况选择最合适的方法。 然后是具体的迁移步骤。假设用户选择用RMAN来迁移,那可能需要先在新服务器上安装相同版本的Oracle软件,创建必要的目录结构,比如ORACLE_HOME、数据文件目录等。然后使用RMAN备份旧数据库,传输备份文件到新服务器,再进行恢复和恢复。这个过程需要注意文件路径的变化,可能需要用RMAN的catalog命令重新注册备份文件,或者修改控制文件中的路径信息。另外,字符集、时区设置也要检查是否一致,否则可能出现乱码或时间错误。 迁移后的验证工作也很重要。用户需要检查数据的一致性,比如用expdp导出新旧数据库的数据,比较MD5校验和。应用程序的连接测试也是必须的,确保连接字符串、监听器配置正确。性能测试可以确保新服务器没有瓶颈,比如IO速度、CPU负载等。另外,可能需要更新tnsnames.ora和listener.ora文件,确保客户端能正确连接到新服务器。 最后的风险提示和回退方案。迁移过程中如果出现问题,用户需要有回退计划,比如保留旧服务器直到新服务器稳定运行。备份是关键,确保任何步骤失败都能恢复。测试环境中先演练可以降低风险,尤其是第一次做迁移的用户可能不熟悉某些步骤,测试能帮助发现问题。 可能的疑问点:用户可能不清楚不同迁移方法的优缺点,比如Data Guard需要企业版,而用户可能用的是标准版。或者传输表空间需要表空间自包含,用户的数据是否符合条件。需要提示用户根据实际情况选择方法,并参考Oracle官方文档。另外,网络传输大文件可能需要较长时间,用户需要考虑带宽和可能的压缩选项。 总结起来,我需要将迁移过程分解为准备、选择方法、执行步骤、验证和风险处理几个部分,用清晰的中文逐步说明,确保用户能跟随操作,并注意关键点,比如版本兼容、备份、测试等。同时,提醒用户参考官方文档,确保操作正确。</think>Oracle数据库迁移到新服务器需要系统化的准备和操作流程,以下是详细步骤及注意事项: --- ### **一、迁移前准备工作** 1. **确认版本兼容性** - 检查源数据库版本(`SELECT * FROM v$version;`) - 新服务器操作系统需兼容Oracle版本(如Linux版本、内核参数等)。 2. **全量备份源数据库** - 使用RMAN备份: ```sql RMAN> BACKUP DATABASE PLUS ARCHIVELOG; ``` - 导出逻辑备份(可选): ```bash expdp system/password FULL=Y DIRECTORY=exp_dir DUMPFILE=full.dmp ``` 3. **新服务器环境配置** - 安装相同或更高版本的Oracle软件(需匹配源库版本)。 - 分配存储空间(至少为源库数据文件的1.5倍)。 - 配置内核参数(`/etc/sysctl.conf`)、用户资源限制(`/etc/security/limits.conf`)。 --- ### **二、迁移方法选择** 根据停机窗口和数据量选择方案: | 方法 | 适用场景 | 优点 | 缺点 | |--------------------|----------------------------|------------------------|---------------------| | **RMAN备份恢复** | 大数据库,允许中等停机时间 | 速度快,支持增量备份 | 需相同字节序和OS | | **Data Pump** | 小数据库或逻辑迁移 | 跨平台兼容,可过滤数据 | 速度较慢 | | **Data Guard** | 最小停机时间,高可用场景 | 近乎零数据丢失 | 需企业版许可 | | **传输表空间** | 迁移部分表空间 | 快速,可跨平台 | 需表空间自包含 | --- ### **三、迁移操作步骤(以RMAN为例)** 1. **传输备份文件到新服务器** - 将RMAN备份集、归档日志、控制文件复制到新服务器相同路径。 - 若路径不同,需更新控制文件: ```sql RMAN> CATALOG START WITH '/new_path/backup/'; ``` 2. **恢复数据库** - 启动到nomount状态: ```sql SQL> STARTUP NOMOUNT; ``` - 恢复控制文件: ```sql RMAN> RESTORE CONTROLFILE FROM '/backup/controlfile.bkp'; SQL> ALTER DATABASE MOUNT; ``` - 注册备份并恢复数据: ```sql RMAN> RESTORE DATABASE; RMAN> RECOVER DATABASE; SQL> ALTER DATABASE OPEN RESETLOGS; ``` --- ### **四、迁移后验证** 1. **数据一致性检查** - 比对表行数: ```sql SELECT table_name, num_rows FROM dba_tables WHERE owner='SCHEMA_NAME'; ``` - 使用DBVerify检查数据块完整性: ```bash dbv FILE=users01.dbf ``` 2. **应用连接测试** - 更新新服务器IP和监听配置(`listener.ora`, `tnsnames.ora`)。 - 测试JDBC连接字符串: ``` jdbc:oracle:thin:@new_server:1521/ORCLCDB ``` --- ### **五、风险控制与回退** 1. **回退方案** - 保留旧服务器至少48小时,确保新库稳定。 - 若迁移失败,切换应用连接回旧库。 2. **关键注意事项** - 检查字符集:`SELECT * FROM nls_database_parameters;` - 确保归档日志完整(`SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM v$archived_log;`)。 --- ### **六、推荐工具与文档** 1. **官方工具** - Oracle Data Guard(物理备库) - Oracle GoldenGate(零停机逻辑复制) 2. **参考文档** - [Oracle Backup and Recovery User's Guide](https://docs.oracle.com/en/database/) - MOS Note 1154613.1(跨平台迁移步骤) --- 按此流程操作,通常可在4-8小时内完成迁移(视数据量而定)。建议先在测试环境演练,避免生产环境风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值