Oracle 迁移步骤
由于之前 Oracle 数据库时运行在容器中,现在需要将它迁移到宿主机上运行,迁移步骤如下:
- 先在宿主机上安装和容器中运行的 Oracle 的一致版本;需要注意字符集编码,实例名,服务名等;
- 停掉容器,停掉宿主机运行的数据库,将容器中映射出来的 oradata,flash_recovery_area 目录拷贝到宿主机的安装目录。比如 /u01/app/oracle;
- 启动数据库到 nomount 状态,并更改控制文件位置,然后关闭数据库;
- 启动数据库到 mount 模式;更改数据文件,日志文件,临时文件的位置;
- 打开数据库;
- 重启验证;
开始迁移
查看相关文件位置
1
2
3
4
5
6
7SQL>select NAME from v$datafile; 所有数据文件
SQL> select name from v$tempfile; 所有临时文件
SQL> select MEMBER from v$logfile; 所有日志文件
SQL> show parameter control 看那控制文件位置关闭监听,关闭数据库
1
2
3lsnrctl stop # 关闭监听
SQL> shutdown immediate # 关闭数据库拷贝数据文件,控制文件,临时文件,日志文件等;
启动数据库到 nomount 模式,更改控制文件位置,然后关闭数据库
1
2
3
4
5SQL> startup nomount; # 以 nomount 模式启动
SQL> alter system set control_files='/oradata/orcl/control01.ctl','/oradata/orcl/control02.ctl','/u01/app/oracle/product/10.2.0/db_1/oradata/orcl/control03.ctl' scope=spfile;
SQL> shutdown immediate; # 关闭数据库启动数据库到 mount 模式,更改数据文件,日志文件,临时文件的位置;
1
2
3
4
5
6SQL> startup mount;
# 更改数据文件、临时文件、日志文件位置
SQL> alter database rename file '/u01/app/oracle/product/10.2.0/db_1/oradata/orcl/system01.dbf' to '/oradata/orcl/system01.dbf';
SQL> alter database rename file '/u01/app/oracle/product/10.2.0/db_1/oradata/orcl/undotbs01.dbf' to '/oradata/orcl/undotbs01.dbf';
....打开数据库
1
SQL> alter database open;
重启验证
1
2
3SQL>shutdow immediate;
SQL> startup;