800 likes | 958 Views
From Oracle 11.1 on Solaris …. … to Oracle 11.2 on Linux. About Scale Abilities. Full-stack consultancy and engineering for Oracle and Big Data Focus on depth , whilst grasping the big picture We can (and do, frequently) fix broken stuff, but…
E N D
From Oracle 11.1 on Solaris … … to Oracle 11.2 on Linux
About Scale Abilities • Full-stack consultancy and engineering for Oracle and Big Data • Focus on depth, whilst grasping the big picture • We can (and do, frequently) fix broken stuff, but… • We would rather help you build a high quality solution in the first place
Fix the Storage Problem • 2 * NetApp FAS3250 • 3 shelves: 24 * 450GB 15k SAS disks • 2 controllers: • 2 dual port 10Gbps NICs • 512GB flash card
2 * NetApp FAS3250 • 3 shelves: 24 * 450GB 15k SAS disks • 2 controllers: • 2 dual port 10Gbps NICs • 512GB flash card
And while we’re at it… • 2 * NetApp FAS3250 • 3 shelves: 24 * 450GB 15k SAS disks • 2 controllers: • 2 dual port 10Gbps NICs • 512GB flash card • 4 * HP DL380 servers (200GB RAM) • Oracle Linux 6 • Oracle Database 11.2
The Target • 2 * NetApp FAS3250 • 3 shelves: 24 * 450GB 15k SAS disks • 2 controllers: • 2 dual port 10Gbps NICs • 512GB flash card • 4 * HP DL380 servers (200GB RAM) • Oracle Linux 6 • Oracle Database 11.2
What are we changing? • Storage • SAN (fibre) NetApp NAS (IP) • Hardware • SPARC Intel • Database • Oracle 11.1 Oracle 11.2 • Operating System • Solaris Linux
What are we changing? • Storage • SAN (fibre) NetApp NAS (IP) • Hardware • SPARC Intel • Database • Oracle 11.1 Oracle 11.2 • Operating System • Solaris Linux
The Requirement • No Downtime • Switch back if there is a problem
Database Structure • 460 tables • 1,000 indexes • 5,400 segments • 2,100 tablespaces • 2,200 data files
Database Structure • 460 tables • 1,000 indexes • 5,400 segments • 2,100 tablespaces • 2,200 data files
Database Structure • 460 tables • 1,000 indexes • 5,400 segments • 2,100 tablespaces • 2,200 data files
Database Size • Total Space Usage • 2,300GB • 3 Largest Tables • 430GB • 340GB • 320GB
Database Size • Total Space Usage • 2,300GB • 3 Largest Tables • 430GB • 340GB • 320GB
New Database Structure • Each schema 1 tablespace • 1 tablespace for LOBs • 3 largest tables tablespace each • Bigfile Tablespaces • 2,000 20 tablespaces/data files • Partition 2 largest tables
The Requirement • SPARC Intel (endianness) • Oracle 11.1 Oracle 11.2 • No Downtime • Switch Back if there is a Problem • Reduce Tablespaces and Data Files • Partition 2 Largest Tables
Migration Solution • Data Pump • + • Oracle Streams
Migration Overview • Start Streams Capture on Old Database • Data Pump at SCN from Old to New Database • Start Streams Apply from SCN on New Database
Objects to Precreate • Tablespaces • Segment-owning users • 2 largest tables (partitioned) • Roles (Applications and Users) • Directories
Index and Constraints SQL • impdp username parfile=indx_cons.par • index_cons.par: • directory=exports • logfile=imp_indx_cons.log • parallel=4 • network_link=solarisdb • include=constraint,ref_constraint,index • sqlfile=cr_indx_cons.sql • schemas=apollo,hera,pallas • ………… continued on next slide
Index and Constraints SQL • impdp username parfile=indx_cons.par • index_cons.par: • directory=exports • logfile=imp_indx_cons.log • parallel=4 • network_link=solarisdb • include=constraint,ref_constraint,index • sqlfile=cr_indx_cons.sql • schemas=apollo,hera,pallas • ………… continued on next slide
Index and Constraints SQL • impdp username parfile=indx_cons.par • index_cons.par: • directory=exports • logfile=imp_indx_cons.log • parallel=4 • network_link=solarisdb • include=constraint,ref_constraint,index • sqlfile=cr_indx_cons.sql • schemas=apollo,hera,pallas • ………… continued on next slide
Index and Constraints SQL • impdp username parfile=indx_cons.par • index_cons.par: • directory=exports • logfile=imp_indx_cons.log • parallel=4 • network_link=solarisdb • include=constraint,ref_constraint,index • sqlfile=cr_indx_cons.sql • schemas=apollo,hera,pallas • ………… continued on next slide
Index and Constraints SQL • remap_tablespace= • A_HGU_DATA_APR_2006:APOLLO_TS,\ • A_HGU_DATA_MAY_2006:APOLLO_TS,\ • ………… • A_JUR_INDX_AUG_2011:APOLLO_TS,\ • A_JUR_INDX_SEP_2011:APOLLO_TS,\ • ………… • A_TRK_DATA_MAY_2005:APOLLO_TRACK_TS,\ • A_TRK_DATA_JUN_2005:APOLLO_TRACK_TS,\ • ………… • P_WKP_DATA_SEP_2010:PALLAS_TS,\ • P_WKP_DATA_OCT_2010:PALLAS_TS,\
Index and Constraints SQL • remap_tablespace= • A_HGU_DATA_APR_2006:APOLLO_TS,\ • A_HGU_DATA_MAY_2006:APOLLO_TS,\ • ………… • A_JUR_INDX_AUG_2011:APOLLO_TS,\ • A_JUR_INDX_SEP_2011:APOLLO_TS,\ • ………… • A_TRK_DATA_MAY_2005:APOLLO_TRACK_TS,\ • A_TRK_DATA_JUN_2005:APOLLO_TRACK_TS,\ • ………… • P_WKP_DATA_SEP_2010:PALLAS_TS,\ • P_WKP_DATA_OCT_2010:PALLAS_TS,\
Index and Constraints SQL • remap_tablespace= • A_HGU_DATA_APR_2006:APOLLO_TS,\ • A_HGU_DATA_MAY_2006:APOLLO_TS,\ • ………… • A_JUR_INDX_AUG_2011:APOLLO_TS,\ • A_JUR_INDX_SEP_2011:APOLLO_TS,\ • ………… • A_TRK_DATA_MAY_2005:APOLLO_TRACK_TS,\ • A_TRK_DATA_JUN_2005:APOLLO_TRACK_TS,\ • ………… • P_WKP_DATA_SEP_2010:PALLAS_TS,\ • P_WKP_DATA_OCT_2010:PALLAS_TS,\
Index and Constraints SQL • remap_tablespace= • A_HGU_DATA_APR_2006:APOLLO_TS,\ • A_HGU_DATA_MAY_2006:APOLLO_TS,\ • ………… • A_JUR_INDX_AUG_2011:APOLLO_TS,\ • A_JUR_INDX_SEP_2011:APOLLO_TS,\ • ………… • A_TRK_DATA_MAY_2005:APOLLO_TRACK_TS,\ • A_TRK_DATA_JUN_2005:APOLLO_TRACK_TS,\ • ………… • P_WKP_DATA_SEP_2010:PALLAS_TS,\ • P_WKP_DATA_OCT_2010:PALLAS_TS,\
Data Pump Import • undo_retention • Start Streams Capture on Old Database
Data Pump Import • impdp username parfile=table_data.par • table_data.par: • directory=exports • logfile=imp_table_data.log • parallel=4 • network_link=solarisdb • flashback_scn=195203110042 • table_exists_action=APPEND • exclude=statistics,constraint,\ • ref_constraint,index,index_statistics • schemas=apollo,hera,pallas,\ • dbell,jknowles,staylor,glloyd,\ • ………… continued on next slide
Data Pump Import • impdp username parfile=table_data.par • table_data.par: • directory=exports • logfile=imp_table_data.log • parallel=4 • network_link=solarisdb • flashback_scn=195203110042 • table_exists_action=APPEND • exclude=statistics,constraint,\ • ref_constraint,index,index_statistics • schemas=apollo,hera,pallas,\ • dbell,jknowles,staylor,glloyd,\ • ………… continued on next slide
Data Pump Import • impdp username parfile=table_data.par • table_data.par: • directory=exports • logfile=imp_table_data.log • parallel=4 • network_link=solarisdb • flashback_scn=195203110042 • table_exists_action=APPEND • exclude=statistics,constraint,\ • ref_constraint,index,index_statistics • schemas=apollo,hera,pallas,\ • dbell,jknowles,staylor,glloyd,\ • ………… continued on next slide
Data Pump Import • impdp username parfile=table_data.par • table_data.par: • directory=exports • logfile=imp_table_data.log • parallel=4 • network_link=solarisdb • flashback_scn=195203110042 • table_exists_action=APPEND • exclude=statistics,constraint,\ • ref_constraint,index,index_statistics • schemas=apollo,hera,pallas,\ • dbell,jknowles,staylor,glloyd,\ • ………… continued on next slide
Data Pump Import • impdp username parfile=table_data.par • table_data.par: • directory=exports • logfile=imp_table_data.log • parallel=4 • network_link=solarisdb • flashback_scn=195203110042 • table_exists_action=APPEND • exclude=statistics,constraint,\ • ref_constraint,index,index_statistics • schemas=apollo,hera,pallas,\ • dbell,jknowles,staylor,glloyd,\ • ………… continued on next slide
Data Pump Import • remap_tablespace= • A_HGU_DATA_APR_2006:APOLLO_TS,\ • A_HGU_DATA_MAY_2006:APOLLO_TS,\ • ………… • A_JUR_INDX_AUG_2011:APOLLO_TS,\ • A_JUR_INDX_SEP_2011:APOLLO_TS,\ • ………… • A_TRK_DATA_MAY_2005:APOLLO_TRACK_TS,\ • A_TRK_DATA_JUN_2005:APOLLO_TRACK_TS,\ • ………… • P_WKP_DATA_SEP_2010:PALLAS_TS,\ • P_WKP_DATA_OCT_2010:PALLAS_TS,\
Post Import Tasks • Create triggers for 2 precreated tables • Run sqlfile created by first import (indexes and constraints) • Copy sequences from Solaris DR Database
Oracle Streams • Define Streams Apply Processes • Set Schema Instantiation SCN • Start Streams Apply Processes • Set Up Streams from New Database to Old Database
Solaris Production Solaris DR
Solaris Production Solaris DR Linux Production
Solaris Production Solaris DR Linux Production
Solaris Production Solaris DR Linux Production
Solaris Production Solaris DR Linux Production Linux DR
Solaris Production Solaris DR Linux Production Linux DR
Solaris Production Solaris DR Linux Production Linux DR
Solaris Production Solaris DR Linux Production Linux DR
Solaris Production Solaris DR Linux Production Linux DR