5.5 创建UNDO2
源库是单实例数据库时,通常只有1个undo表空间,而RAC中每个节点都需要1个UNDO表空间,所以双节点的RAC需要再加多一个UNDO表空间。
命令:
create undo tablespace UNDOTBS2 datafile '+DATA/orcl/datafile/undotbs02.dbf' size 100M AUTOEXTEND ON next 200M;
5.6 重建TEMP表空间
还原后,所有的temp表空间都需要重新创建,通过查询就能发现,其对应的文件路径还是Windows环境下的路径。
命令:
select file#, ts# ,name ,status from v$tempfile;
根据查询,确定目前有多少个临时表空间,这里只有一个。将其删除,重建。数据库的默认临时表空间是不然删除的。所以,如果只有一个表空间,就需要一个临时顶替的临时表空间。
命令:
#创建新的tempfile:
CREATE TEMPORARY TABLESPACE temp2 TEMPFILE '+data/orcl/datafile/TEMP2.DBF' SIZE 200m AUTOEXTEND ON ;
#将新的temp表空间设置为默认表空间:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;
#删除原默认temp 表空间:
drop tablespace temp;
#重新创建原temp表空间:
CREATE TEMPORARY TABLESPACE temp TEMPFILE '+data/orcl/datafile/TEMP01.DBF' SIZE 1G REUSE AUTOEXTEND ON NEXT 200M MAXSIZE 30G;
#将数据库默认temp表空间设置为原表空间:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
#删除刚刚创建的temp2 临时表空间:
DROP TABLESPACE temp2 INCLUDING CONTENTS AND DATAFILES;
注意:上一步修改完之后, 删除temp表空间可能会宕住,需要退出再重新进sqlplus。
5.7 重新编译数据库
重新编译PLSQL代码块,并重新编译无效对象,注意不是utlrp脚本,而是使用utlirp。如果系统版本存在升级,需要根据readme.html中的要求执行脚本。如果存在新的补丁的,执行补丁对应的SQL脚本。
命令:
@?/rdbms/admin/utlirp.sql
#执行升级脚本(如果不存在版本升级,不需要执行):
#@?/rdbms/admin/catupgrd.sql
6 、 目标端RAC参数调整
6.1 修改数据库参数
经过前面一系例操作,数据库跨操作系统的问题就全部都解决了。到目前为止,接下来的操作和调整,是为了启用RAC。
命令:
startup mount force
alter system set instance_name='ORCL1' scope=spfile sid='ORCL1';
alter system set instance_name='ORCL2' scope=spfile sid='ORCL2';
alter system set instance_number=1 scope=spfile sid='ORCL1';
alter system set instance_number=2 scope=spfile sid='ORCL2';
alter system set thread=1 scope=spfile sid='ORCL1';
alter system set thread=2 scope=spfile sid='ORCL2';
alter system set undo_tablespace='UNDOTBS1' scope=spfile sid='ORCL1';
alter system set undo_tablespace='UNDOTBS2' scope=spfile sid='ORCL2';
alter system set cluster_database_instances=2 scope=spfile sid='*';
alter system set cluster_database=TRUE scope=spfile sid='*';
6.2 重新启动数据库并打开节点2
调整完后需要重启数据库。
命令:
SHUTDOWN IMMEDIATE
STARTUP
alter database enable thread 2;
6.3 编译无效对象
再次编译无效对象。
命令:
@?/rdbms/admin/utlrp.sql
6.4 添加CRS资源并测试启停数据库
操作完这一波,迁移就算完成了。注意这个操作是在oracle用户下完成,其中-d 是数据库唯一名、-p spfile、-i 实例名/SID、-n node 。
命令:
srvctl add database -d ORCL -o $ORACLE_HOME -p +DATA/orcl/spfileorcl.ora
srvctl add instance -d ORCL -i ORCL1 -n db01
srvctl add instance -d ORCL -i ORCL2 -n db02
srvctl start database -d ORCL -o open
srvctl stop database -d ORCL
srvctl start database -d ORCL -o open
6.5 创建密码文件
创建密码文件用来存放sys用户的密码,如果没有密码文件,sys用户无法通过远程连接数据库。
节点1:
命令:
orapwd file=$ORACLE_HOME/dbs/orapwdORCL1 password=oracle123
节点2:
命令:
orapwd file=$ORACLE_HOME/dbs/orapwdORCL2 password=oracle123