目的:将单实例的数据库(filesystem)迁移至RAC环境,停机时间非常有限,所以想到了通过物理DG来实现
环境准备: RAC环境不需要安装数据库
单实例(归档模式):
IP: 192.168.10.26
SID:ora11g
db_uniquen_name:ora11g
RAC:
主机名:rac1,rac2
IP: 192.168.10.149 rac1
192.168.10.150 rac2
192.168.10.160 rac1-vip
192.168.10.161 rac2-vip
10.10.1.1 rac1-priv
10.10.1.2 rac2-priv
192.168.10.162 rac-scan
SID: ora11g1 ora11g2
DB_UNIQUE_NAME:ora11g1
一、主库环境配置
1,修改主库为强制日志模式
2,为主库添加standby日志(因为后面要switchover)
3,复制密码文件到备库$ORACLE_HOME/dbs目录下
4,配置主库的tnsnames.ora,并复制至备库
注意:standby端即rac端的ip地址写的是ora11g1的vip地址,而且需要加上(UR=A)选项,否则通过sqlplus连接不到rac实例。
5,配置DG参数
6,生成pfile,并复制到备库
点击(
此处)折叠或打开
二、备库
1,修改主库复制过来的参数文件
2,备库创建需要的目录,并启动备库到nomount状态
文件系统目录:
ASM目录:
3,测试tnsnames连通性
主库:
备库:
三、主库用rman备份
四、通过duplicate复制至备库
rman target sys/*****@ora11g auxiliary sys/xj1234@standby
duplicate target database for standby from active database;
注意:1,11.2.0.1有个bug,用duplicate复制的时候,本机rman target / 这种方式会报错,需要写全用户名密码。
2,备库的standby_file_management需要该问manaul模式,auto模式下日志rename会失败
五、备库启动redo应用:
六、switch over,将备库转换为主库,分别在主库和备库进行角色转换:
主库:
备库:
七、rac的一个节点已经可以正常打开数据库了,但是节点2需要的redo,undo表空间都还没有,需要手工创建:
八、节点2打开数据库
SQL>startup
九、此时的数据库是可以正常打开使用了,一般还需将参数文件写到asm中,而且此时的数据库都是本地管理,并没有注册到grid中,还需要手工注册:
点击(
此处)折叠或打开
点击(
此处)折叠或打开
十、到此,单实例已经转换完成了rac数据库。可以重启一下机器,看看数据库能否自动启动,资源是否正常。
如有需要,可以修改service_name
环境准备: RAC环境不需要安装数据库
单实例(归档模式):
IP: 192.168.10.26
SID:ora11g
db_uniquen_name:ora11g
RAC:
主机名:rac1,rac2
IP: 192.168.10.149 rac1
192.168.10.150 rac2
192.168.10.160 rac1-vip
192.168.10.161 rac2-vip
10.10.1.1 rac1-priv
10.10.1.2 rac2-priv
192.168.10.162 rac-scan
SID: ora11g1 ora11g2
DB_UNIQUE_NAME:ora11g1
一、主库环境配置
1,修改主库为强制日志模式
点击(此处)折叠或打开
- alter database force logging;
点击(此处)折叠或打开
- alter database add standby logfile group 4 ('/oracle/app/oradata/ORA11G/standby_redo04.log') size 200m;
- alter database add standby logfile group 5 ('/oracle/app/oradata/ORA11G/standby_redo05.log') size 200m;
- alter database add standby logfile group 6 ('/oracle/app/oradata/ORA11G/standby_redo06.log') size 200m;
- alter database add standby logfile group 7 ('/oracle/app/oradata/ORA11G/standby_redo07.log') size 200m;
点击(此处)折叠或打开
- scp $ORACLE_HOME/dbs/orapwora11g.ora rac1:$ORACLE_HOME/dbs
点击(此处)折叠或打开
- primary=
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.26)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = ora11g)
- )
- )
-
- standby=
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.160)(PORT = 1521))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = ora11g1)
- (UR = A)
- )
- )
5,配置DG参数
点击(此处)折叠或打开
- alter system set log_archive_config='dg_config=(ora11g,ora11g1)' scope=both;
- alter system set log_archive_dest_1='location=/oracle/app/oracle/archive_log valid_for=(all_logfiles,all_roles) db_unique_name=ora11g' scope=both;
- alter system set log_archive_dest_2='service=standby lgwr async valid_for=(online_logfiles,all_roles) db_unique_name=ora11g1' scope=both;
- alter system set fal_server=ora11g1 scope=both;
点击(此处)折叠或打开
- SQL>create pfile from spfile;
- scp $ORACLE_HOME/dbs/initora11g.ora rac1:$ORACLE_HOME/dbs
1,修改主库复制过来的参数文件
点击(此处)折叠或打开
- ora11g.__db_cache_size=335544320
- ora11g.__java_pool_size=4194304
- ora11g.__large_pool_size=4194304
- ora11g.__oracle_base='/u01/app'
- ora11g.__pga_aggregate_target=335544320
- ora11g.__sga_target=503316480
- ora11g.__shared_io_pool_size=0
- ora11g.__shared_pool_size=146800640
- ora11g.__streams_pool_size=0
- *.audit_file_dest='/u01/app/oracle/admin/ora11g'
- *.audit_trail='none'
- *.compatible='11.2.0.1.0'
- *.control_files='+DATA/ora11g/controlfile/control.ctl'
- *.db_block_size=8192
- *.db_domain=''
- *.db_name='ora11g'
- *.db_recovery_file_dest='+DATA'
- *.db_recovery_file_dest_size=5218762752
- *.diagnostic_dest='/u01/app/oracle'
- *.memory_target=838860800
- *.open_cursors=300
- *.processes=1000
- *.remote_login_passwordfile='EXCLUSIVE'
-
- #### rac parameter
- ora11g1.local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.160)(PORT=1521))'
- ora11g2.local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.161)(PORT=1521))'
- ora11g1.undo_tablespace='UNDOTBS1'
- ora11g2.undo_tablespace='UNDOTBS2'
- ora11g1.remote_listener='rac-scan:1521'
- ora11g2.remote_listener='rac-scan:1521'
- ora11g1.instance_name=ora11g1
- ora11g2.instance_name=ora11g2
- ora11g1.instance_number=1
- ora11g2.instance_number=2
- *.cluster_database=true
- *.cluster_database_instances=2
- *.db_create_file_dest='+DATA'
- *.db_create_online_log_dest_1='+DATA'
- ora11g1.thread=1
- ora11g2.thread=2
-
- ### dg parameter
- *.db_unique_name=ora11g1
- *.log_archive_config='dg_config=(ora11g1,ora11g)'
- *.standby_file_management='AUTO'
- *.db_file_name_convert='/oracle/app/oradata/ORA11G','+DATA/ora11g/datafile'
- *.log_file_name_convert='/oracle/app/oradata/ORA11G','+DATA/ora11g/onlinelog'
- *.log_archive_dest_1='location=+DATA/ora11g/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=ora11g1'
- *.log_archive_dest_2='service=primary lgwr async valid_for=(online_logfiles,all_roles) db_unique_name=ora11g'
- *.fal_server=primary
2,备库创建需要的目录,并启动备库到nomount状态
文件系统目录:
点击(此处)折叠或打开
- mkdir -p /u01/app/oracle/admin/ora11g/adump
- mkdir -p /u01/app/oracle/admin/ora11g/dpdump
- mkdir -p /u01/app/oracle/admin/ora11g/pfile
点击(此处)折叠或打开
- mkdir +DATA/ora11g/datafile
- mkdir +DATA/ora11g/controlfile
- mkdir +DATA/ora11g/onlinelog
- mkdir +DATA/ora11g/archivelog
点击(此处)折叠或打开
- SQL>startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initora11g1.ora'
主库:
点击(此处)折叠或打开
- sqlplus sys/*****@standby as sysdba
点击(此处)折叠或打开
- sqlplus sys/*****@primary as sysdba
三、主库用rman备份
点击(此处)折叠或打开
- rman target /
-
- run {
- allocate channel c1 device type disk;
- allocate channel c2 device type disk;
- backup incremental level 0
- format '/home/oracle/rman_bak/inr0_%U' tag 'full_bak_for_rac_standby'
- database plus archivelog delete all input;
- release channel c1;
- release channel c2;
- }
-
- backup format '/home/oracle/rman_bak/control01.ctl' current controlfile for standby;
四、通过duplicate复制至备库
rman target sys/*****@ora11g auxiliary sys/xj1234@standby
duplicate target database for standby from active database;
注意:1,11.2.0.1有个bug,用duplicate复制的时候,本机rman target / 这种方式会报错,需要写全用户名密码。
2,备库的standby_file_management需要该问manaul模式,auto模式下日志rename会失败
五、备库启动redo应用:
点击(此处)折叠或打开
- alter database recover managed standby database disconnect from session;
- alter database recover managed standby database cancel;
- alter database open read only;
- alter database recover managed standby database using current logfile disconnect from session;
六、switch over,将备库转换为主库,分别在主库和备库进行角色转换:
主库:
点击(此处)折叠或打开
- SELECT SWITCHOVER_STATUS FROM V$DATABASE;
- ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
点击(此处)折叠或打开
- SELECT SWITCHOVER_STATUS FROM V$DATABASE;
- ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown;
- select status from v$instance;
- alter database open;
七、rac的一个节点已经可以正常打开数据库了,但是节点2需要的redo,undo表空间都还没有,需要手工创建:
点击(此处)折叠或打开
- alter database add logfile thread 2 group 8 '+DATADG' size 100m;
- alter database add logfile thread 2 group 9 '+DATADG' size 100m;
- alter database add logfile thread 2 group 10 '+DATADG' size 100m;
- alter database enable public thread 2;
- @$ORACLE_HOME/rdbms/admin/catclust.sql
八、节点2打开数据库
SQL>startup
九、此时的数据库是可以正常打开使用了,一般还需将参数文件写到asm中,而且此时的数据库都是本地管理,并没有注册到grid中,还需要手工注册:
点击(此处)折叠或打开
- srvctl add database -d ora11g -o /u01/app/oracle/product/11.2.0/dbhome_1
- srvctl config database
- srvctl add instance -d ora11g -n rac1 -i ora11g1
- srvctl add instance -d ora11g -n rac2 -i ora11g2
- create spfile='+DATA' from pfile;
- srvctl modify database -d ora11g -p '+data/ora11g1/parameterfile/spfile.325.886161615'
如有需要,可以修改service_name
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29098758/viewspace-2139394/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29098758/viewspace-2139394/