* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Oracle Database 11g New Features
Survey
Document related concepts
Global serializability wikipedia , lookup
Commitment ordering wikipedia , lookup
Microsoft Access wikipedia , lookup
Serializability wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Functional Database Model wikipedia , lookup
Ingres (database) wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Concurrency control wikipedia , lookup
Relational model wikipedia , lookup
Clusterpoint wikipedia , lookup
Database model wikipedia , lookup
Transcript
Oracle Database 11g New Features New Features for the DBA Robert G. Freeman Collaborate 2008 Robert G. Freeman About Me… Oracle Press Author Oracle Database 11g New Features Oracle Database 10g RMAN Backup and Recovery Portable DBA: Oracle Other OP Titles Principal Engineer The Church of Jesus Christ of Latter-Day Saints Husband, father, pilot, black belt, general malcontent. Oracle Database 11g Topics we will cover Installing and Upgrading to 11g. Administration and Change Assurance Backup and Recovery Features Partitioning Features Strategic Strategies Oracle Database 11g INSTALLING AND UPGRADING TO 11g Oracle Database 11g Installing 11g APEX installed automatically now. The install has changed a bit ORACLE_BASE must be defined. ORACLE_BASE stored in Inventory. Oracle Database 11g Installing 11g Pre-requisites check Make sure all OS patches (e.g. RPM’s) are installed. Sometimes need to skip checks (for example, running RHEL5 Linux). Recommend you install a small database during the install or afterwards to test that all went well. Oracle Database 11g Installing 11g I would recommend you not upgrade when first installing the DB software Oracle offers the option to upgrade databases during software install Test the install base before you start any upgrades Database creation Networking test Oracle Database 11g Upgrade to 11g – Upgrade Methods Supported Upgrade Methods Database Upgrade Assistant Manual Upgrades Export/Import SQL*Plus Copy Oracle Database 11g Upgrade to 11g – Upgrade Paths DBUA/Manual Upgrade Supported Upgrade Paths Upgrade to supported upgrade version Any Oracle version < 9.2.0.4 Upgrade directly to 11g Oracle 9.2.0.4 (or higher) Oracle 10.1.0.2 (or higher) Oracle 10.2.0.1(or higher) (10.2.0.3 for CW) Exp/Imp method or SQL*Plus copy method generally supported across versions. Oracle Database 11g Upgrade to 11g - DBUA Using the DBUA Run from the 11g Oracle Home Personally recommend you make your own backup before you upgrade a database. Executes pre-upgrade checks and postupgrade checks. Oracle Database 11g Upgrade to 11g - DBUA DBUA prompts you for Database to upgrade (from /etc/oratab or an Oracle service) Location of DIAGNOSTIC_DEST Option to move datafiles (including to/from ASM) Backup of your database Ability to manage passwords for any new database users created. Oracle Database 11g Upgrade to 11g – Select Database Oracle Database 11g Note Logging Upgrade to 11g - Logging Oracle Database 11g Upgrade to 11g – Log Files Log Name Purpose UpgradeResults.html This is a summary of what the DBUA intends to upgrade. This HTML file is displayed by the DBUA before the upgrade begins. Trace.log Provides detailed tracing information on the entire upgrade process. Any errors reported by the DBUA will be recorded in this log. Oracle_Server.log *Tail this file during upgrade. This file provides details of the execution of the entire migration project. If an error occurs or the upgrade fails, you can find more details in this file. Post_Upgrade.log Log file for details on post upgrade operations. You can look in this file to determine if the upgrade was successful or not. Oracle Database 11g Upgrade to 11g – DBUA Upgrade Summary Oracle Database 11g Upgrade to 11g – Manual Upgrades Manual Upgrades supported Can be a bit tedious and requires a number of manual steps. Recommend you use a checklist! More overall control over the upgrade process. Most steps can be re-executed if they fail once you have corrected the cause of the failure. Oracle Database 11g Upgrade to 11g – Using Exp/Imp Useful if you are migrating from a database version that does not support the DBUA or manual upgrade method. In some ways perhaps the safest way to upgrade. Allows you to configure the new 11g database before you move data over to it. In many cases, may be the slowest way to upgrade your database. Oracle Database 11g Upgrade to 11g – Using Exp/Imp/DataPump Allows you to move to different platforms easily. Can also be used to rollback from an unsuccessful upgrade. Oracle Database 11g Upgrade to 11g Test test test You never know what won’t work in your environment. You can take advantage of change assurance. Change assurance might not catch everything (e.g. 9i to 10.2 ODBC issue) Oracle Database 11g Administration of Oracle Database 11g Oracle Database 11g Administration of Oracle Database 11g ADR AWR Support Workbench Automatic Memory Database Management Replay SQL performance Analyzer Virtual Columns Table Compression Oracle Database 11g Automatic Diagnostic Repository (ADR) Oracle Database 11g Automatic Diagnostic Repository (ADR) New management structure in 11g called the Automatic Diagnostic Repository (ADR) Centralized and standardized repository for the Oracle 11g Fault Diagnosability infrastructure. Replaces several existing directories User_dump_dest Background_dump_dest Core_dump_dest Oracle Database 11g Automatic Diagnostic Repository (ADR) Files stored in the ADR: Alert log Trace files Incident packages Default location $ORACLE_BASE/diag/{product}/{database}/{instance} Example: /u01/app/oracle/diag/rdbms/orcl/orcl Oracle Database 11g DIAGNOSTIC_DEST Oracle Database 11g ADR Alert log now XML based (though a text copy is still available). New view V$DIAG_INFO Used to determine information about the ADR: SQL> select * from v$diag_info; INST_ID NAME VALUE ---------- ------------------------- -----------------1 Diag Enabled TRUE 1 ADR Base C:\ORACLE\PRODUCT 1 ADR Home C:\ORACLE\PRODUCT\diag\rdbms\rob11gr4\rob11gr4 Oracle Database 11g ADR New tool: ADRCI ADR Command Line Interpreter Used to manage and report from ADR. Oracle Database 11g ADR ADRCI Example C:\oracle\product\11gBetaR4\db_01\NETWORK\ADMIN>adrci adrci>>show alert -tail ADR Home = C:\oracle\product\diag\rdbms\rob11gr4\rob11gr4: ************************************************************200 7-06-02 00:42:47.398000 -06:00 Logminer Bld: Lockdown Complete. DB_TXN_SCN is UnwindToSCN (LockdownSCN) is 1832443 2007-06-02 00:42:48.929000 -06:00 db_recovery_file_dest_size of 2048 MB is 83.44% used. This is a user-specified limit on the amount of space that will be used by this database for recovery-related files, and does not reflect the amount of space available in the underlying filesystem or ASM diskgroup. 2007-06-02 00:43:45.586000 -06:00 Oracle Database 11g ADR ADRCI Homes Systems with multiple databases will have individual ADR homes. Set the ADR_HOME when using ADRCI to make sure you are pointed to the correct location. Oracle Database 11g ADRCI Homes Example: ADR adrci> show homes ADR Homes: diag/rdbms/probe2/PROBE2 diag/rdbms/probe1/PROBE1 diag/asm/+asm/+ASM11 diag/tnslsnr/prolin2/listener adrci> set homepath diag/rdbms/probe2/PROBE2 adrci> show homes ADR Homes: diag/rdbms/probe2/PROBE2 Oracle Database 11g Automatic Workload Repository (AWR) Oracle Database 11g AWR AWR Features Default data retention Changes from 7 days to 8 days. Baselines Adaptive Metric Thresholds Oracle Database 11g AWR AWR Baselines Moving window baselines A moving baseline typically based on the entirety of the statistical data contained in AWR Single baseline Allows you to define a baseline to be captured for a single specified period of time in the future Repeating baseline Allows you to define a baseline to be captured for a repeating period of time in the future Oracle Database 11g AWR Adaptive Metric Thresholds Reporting thresholds developed using AWR metrics. Allows for floating monitoring thresholds. As your system workload changes, the alerting thresholds will evolve to reflect the current state of the database. Oracle Database 11g Support Workbench Oracle Database 11g Support Workbench Provides the ability to investigate errors and report them to Oracle. Identify errors via Health Checkers and reported errors (e.g. ORA-600). Repair some kinds of errors Open SR’s Package files to send to Oracle Oracle Database 11g Support Workbench Health Checkers Diagnostic programs that are automatically run by Oracle. Can also run manually. 6 General categories of checkers Database Structure Integrity Check Data Block Integrity Check Redo Integrity Check Undo Segment Integrity Check Transaction Integrity Check Dictionary Integrity Check Oracle Database 11g Support Workbench What might a Health Checker Find? Missing Datafile Logically corrupted data file Data dictionary corruption Redo log corruption Undo segment corruption Errors discovered will surface in the support workbench and in data dictionary views. Oracle Database 11g Support Workbench Create an SR with the Support Workbench Use an existing problem Discovered by a checker Reported by Oracle (ORA-600) Create your own problem (User-reported problem). Automatic SR creation Oracle Database 11g Support Workbench Package files related to the problem Trace files Core dumps Alert log Automatic package creation Custom package creation Oracle Database 11g Automatic Memory Management Oracle Database 11g Automatic Memory Management Two parameters now to manage SGA and PGA Memory_target - Dynamic Memory_max_size – Not dynamic Oracle Database 11g Automatic Memory Management Memory_target= sga_max_size+ max(pga_aggregate_target, results of (select value from v$pgastat where name='maximum PGA allocated';) ) Oracle will adjust underlying memory areas as required. Oracle Database 11g Automatic Memory Management Replaces these parameters Sga_max_size Sga_size (will be configured with a default value) Shared_pool_size Db_cache_size Java_pool_size Large_pool_size Streams_pool_size Pga_aggregate_target Oracle Database 11g Automatic Memory Management Still configure Log_buffer Keep, Recycle and non-default block size buffers Oracle Database 11g Automatic Memory Management Memory Advisor View V$MEMORY_TARGET_ADVICE (Dependent n AWR) SQL> select * from v$memory_target_advice order by memory_size_factor; MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR ----------- ------------------ ------------ ------------------176 .5 126 1.1443 264 .75 110 1 352 1 110 1 440 1.25 110 1 528 1.5 109 .99 616 1.75 109 .99 704 2 109 .99 Oracle Database 11g Database Replay Oracle Database 11g Database Replay Part of 11g Real Application Testing (RAT) Provides the ability to replay database workload in real-time. Test system changes more reliably OS Changes New indexes Application SQL changes Converting to RAC (or from RAC) Oracle Database 11g Database Replay Four basic steps to replay Capture workload Process captured workload Replay workload Review results Oracle Database 11g Database Replay – Capture Workload Prepare for capture Your database is in ARCHIVELOG mode. Backup database (or set a restore point) Create directory for workload capture related files. Determine if you need to cycle the database before capture begins. Oracle Database 11g Database Replay – Capture Workload Execute capture OEM – Leads you through the process Manual – dbms_workload_capture.start_capture BEGIN DBMS_WORKLOAD_CAPTURE.START_CAPTURE (name => 'Pre_Upgrade_Capture_092507_01', dir => 'Workload_Capture', duration => 1200); END; / Oracle Database 11g Database Replay – Capture Workload Status of Workload Capture Use the dba_workload_captures view select id, ID ---------12 name, status from dba_workload_captures; NAME STATUS ------------------------------ -----------Pre_Upgrade_Capture_092507_01 IN PROGRESS Oracle Database 11g Database Replay –Capture Workload Stop Capture OEM – Provides a button to stop workload capture. Manual – dbms_workload_capture.finish_capture BEGIN Exec dbms_workload_capture.finish_capture; END; / Oracle Database 11g Database Replay –Process Captured Workload Stop Capture – Provides workflow guiding you through the process. Manual dbms_workload_replay.process_capture OEM BEGIN DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE (capture_dir => 'MY_CAPTURE'); END; / Oracle Database 11g Database Replay –Process Captured Workload Processing the workload creates additional files associated with the capture process. Prepares the capture for movement (if desired) Move workload to replay database directory ftp, sftp, etc… Oracle Database 11g Database Replay –Replay Captured Workload Prepare the replay database Create/Restore/Flashback database if required. Remap connections if required. External references such as database links, external tables, and the like might be different. You can create a connection mapping to resolve these differences. Make any changes you wish to make (new index) Oracle Database 11g Database Replay –Replay Captured Workload Replay the workload OEM provides a workflow to follow. Manually via PL/SQL packages and replay client(s) Initialize replay data with dbms_workload_replay.initialize_replay Prepare for the replay Start workload client (wrc) Start replay Oracle Database 11g Database Replay –Replay Captured Workload Initialize Replay Example: BEGIN DBMS_WORKLOAD_REPLAY.INITIALIZE_REPLAY replay_name => 'Pre_Upgrade_Cap_070107_01', replay_dir => 'MY_REPLAY_DIR'); END; / Initialized replay shows here: select id, name from dba_workload_replays; ID NAME ---------- ---------------------------------3 REPLAY-rob11gr4-20070712204202 Oracle Database 11g Database Replay –Replay Captured Workload Prepare Replay Determine parameters of the replay Think time - manage the correct think time between database calls during Database Replay. Connection time - manage the timeframe between the start of the replay and when each session connection is made. Synchronization - disable SCN-based synchronization of the replay. Oracle Database 11g Database Replay –Replay Captured Workload Example BEGIN DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY ( synchronization=>FALSE); END; / Oracle Database 11g Database Replay –Start Replay Starting Replay Part of OEM Database Replay Workflow Start replay OS clients Start replay on database Oracle Database 11g Database Replay –Start Workload Client(s) Workload Clients Multithreaded programs Each thread submits a workload from a captured session. Database replay will wait for these to start. Must start manually for both OEM and manual replay operations. Started from command line (wrc). Example: wrc mode=replay userid=replay_sys password=Robert Oracle Database 11g Database Replay –Start Database Replay Start Database Replay (manual) Use dbms_workload_replay.start_replay Will start replay. Will exit after replay has started. Use dbms_workload_replay.cancel_replay to stop. Oracle Database 11g Database Replay – Replay Monitoring Views Data Dictionary Views to Monitor Replay DBA_WORKLOAD_REPLAYS DBA_WORKLOAD_REPLAY_DIVERGENCE V$WORKLOAD_REPLAY_THREAD Oracle Database 11g Database Replay – Report on Replay Results Workload Replay Report Dbms_workload_replay.get_replay_info Dbms_workload_replay.report Various options for level of detail, output type, etc… Oracle Database 11g Database Replay – Report on Replay Results Example DECLARE rep_rpt CLOB; BEGIN rep_id := DBMS_WORKLOAD_REPLAY.GET_REPLAY_INFO( dir => 'Workload_Capture'); rep_rpt := DBMS_WORKLOAD_REPLAY.REPORT( replay_id => rep_id, format => 'TEXT'); dbms_output.put_line(rep_rpt); END; / Oracle Database 11g SQL Performance Analyzer Oracle Database 11g SQL Performance Analyzer Provides the ability to simulate the impacts of a given change on a system. New database parameter setting New index Remove an index Changed statistics OS Upgrades Oracle Database 11g SQL Performance Analyzer Basic Workflow Capture the SQL workload in the form of a SQL Tuning Set. If you are using a test system, set up the test system and move the SQL tuning set to the test system. Measure the SQL workload performance before the change. Oracle Database 11g SQL Performance Analyzer Basic Workflow Make the change. Measure the SQL workload performance after the change. Compare the performance results. Oracle Database 11g SQL Performance Analyzer OEM Supports three types of workflows Optimizer Upgrade Parameter Change Guided Workflow Oracle Database 11g SQL Performance Analyzer How is this different than Database Replay? You can pick the SQL you wish to test. SQL Statements are executed sequentially, not concurrently. Links into the SQL Tuning Optimizer are provided in OEM with SPA. Oracle Database 11g Virtual Columns Oracle Database 11g Virtual Columns Oracle Database 11g support for derived values for table columns. Derived values are calculated by defining a set of expressions or functions that are associated with the virtual column when the table is created or a column is added. Oracle Database 11g Virtual Columns You cannot write to a virtual column. There is no support for index-organized, external, object, cluster, or temporary tables. There is no support for Oracle-supplied datatypes, user-defined types, LOBs, or LONG RAWs. Oracle Database 11g Virtual Columns Example: Create table employee ( emp_id number primary key, salary number (8,2) not null, years_of_service number not null, curr_retirement as (salary*.0005 * years_of_service) ); Creates a virtual column called curr_retirement. Derived value from salary, years_of_service columns. Oracle Database 11g Table Compression Oracle Database 11g Table Compression Compression in 11g no longer subject to direct mode restrictions. All SQL operations now will result in compressed data. Potentially significant reduction in space utilization. Can potentially improve performance (dependent on CPU) due to much reduced row per block counts. Oracle Database 11g Table Compression Compression in 11g no longer subject to direct mode restrictions. You can compress an entire table, or specific partitions. Unfortunately , compression is a seperatly licensed product. Oracle Database 11g Example Table Compression CREATE TABLE compress_demo ( tab_id NUMBER(6), tab_rec_time date, tab_store varchar2(300) ) PARTITION BY RANGE (tab_rec_time) (PARTITION long_ago VALUES LESS THAN (TO_DATE('01-JAN-2007', 'DD-MON-YYYY')) COMPRESS, PARTITION not_so_long_ago VALUES LESS THAN (TO_DATE('01-APR-2007', 'DD-MON-YYYY')), PARTITION close_but_not_yet VALUES LESS THAN (TO_DATE('01-JUN-2007', 'DD-MON-YYYY')), PARTITION now_or_future VALUES LESS THAN (MAXVALUE)); Oracle Database 11g Backup and Recovery In Oracle Database 11g Oracle Database 11g 11g Backup and Recovery RMAN Data Recovery Advisor Flashback Database Snapshot Stand-by Database Data Pump Oracle Database 11g RMAN Oracle Database 11g RMAN Interfile Backup Parallelism Now the backup of a given data file can be done in parallel. Faster backup compression Active database duplication Oracle Database 11g Data Recovery Advisor Oracle Database 11g Data Recovery Advisor Data Recovery Advisor Processes detected data loss/corruption issues Recommends solutions to correct Manual Automatic Will execute automatic solution on demand. Oracle Database 11g Data Recovery Advisor Example (Command line) List detected failures: RMAN> list failure; List of Database Failures ========================= Failure ID Priority Status Time Detected Summary ---------- -------- --------- ------------- ------242 HIGH OPEN 19-SEP-07 One or more nonsystem datafiles are missing Oracle Database 11g Data Recovery Advisor List details of detected failures: RMAN> list failure detail; List of Database Failures ========================= Failure ID Priority Status Time Detected Summary ---------- -------- --------- ------------- ------242 HIGH OPEN 19-SEP-07 One or more nonsystem datafiles are missing Impact: See impact for individual child failures List of child failures for parent failure ID 242 Failure ID Priority Status Time Detected Summary ---------- -------- --------- ------------- ------470 HIGH OPEN 19-SEP-07 Datafile 4: '/oracle01/oradata/orcl/users01.dbf' is missing Impact: Some objects in tablespace USERS might be unavailable Oracle Database 11g Data Recovery Advisor Corrective Advice…? RMAN> advise failure; List of Database Failures ========================= Failure ID Priority Status Time Detected Summary ---------- -------- --------- ------------- ------242 HIGH OPEN 19-SEP-07 One or more nonsystem datafiles are missing Mandatory Manual Actions ======================== no manual actions available Optional Manual Actions ======================= 1. If file /oracle01/oradata/orcl/users01.dbf was unintentionally renamed or moved, restore it Oracle Database 11g Data Recovery Advisor Corrective Advice…? Automated Repair Options ======================== Option Repair Description ------ -----------------1 Restore and recover datafile 4 Strategy: The repair includes complete media recovery with no data loss Repair script: /oracle/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2909488425.hm Oracle Database 11g Data Recovery Advisor Fix the problem – Manual or RMAN Manual - Run the repair script. Contents in our case were: # restore and recover datafile sql 'alter database datafile 4 offline'; restore datafile 4; recover datafile 4; sql 'alter database datafile 4 online'; Oracle Database 11g Data Recovery Advisor the problem – Manual or RMAN RMAN – Use the repair failure command Fix RMAN> repair failure; -- Rman executes script Oracle Database 11g Flashback Database Features Oracle Database 11g Flashback Features Flashback Transaction Backout Backout committed transactions and dependent transactions, online! Must be generating supplemental logging data. OEM or Manual method. Oracle Database 11g Flashback Features Flashback Data Archives Track changes that occur on a table over the lifetime of the table. Must create a flashback archive and assign to an existing tablespace or tablespace group: Create flashback archive default archive_one_year tablespace retention_archives Quota 5g retention 1 year; Oracle Database 11g Flashback Features Assign to a table Create table test_arch (id number) tablespace users flashback archive; Alter table other_test flashback archive; Turn off – All history is lost… Alter table other_test no flashback archive; Oracle Database 11g Flashback Features Many Table DDL commands are Disabled while a tablespace is in flashback archive mode. SQL> drop table test_arch; drop table test_arch * ERROR at line 1: ORA-55610: Invalid DDL statement on history-tracked table Oracle Database 11g Flashback Features Querying – Just use the as of clause in the select command: Select id from test as of timestamp (systimestamp - interval '6' month); the Table – The table can also be flashed back to a point in time further back: Flashback Flashback table test to timestamp (systimestamp – interval '6' month); Oracle Database 11g Flashback Features space fills up – Transactions fail. Monitor space usage DBA_FLASHBACK_ARCHIVE_TS – Space allocated to each flashback archive. Size of objects in the archive – DBA_FLASHBACK_ARCHIVE_TABLES and DBA_EXTENTS. When Oracle Database 11g Snapshot Standby Database Oracle Database 11g Snapshot Standby Database Open the standby for use Issue DML, DDL When done, put the database back into standby mode. Flashback to the point it was opened. All changed rolled back. Redo from primary DB applied. Oracle Database 11g Data Pump Oracle Database 11g 11g Data Pump Data Pump Export utility deprecated Compression of dump files Encryption Data remapping Table renaming Overwrite dump files Oracle Database 11g 11g Data Pump – Exp utility deprecated The exp utility is deprecated. This means no bug fixes. The imp utility is not deprecated. Oracle Database 11g 11g Data Pump – Compression of Dump Files The compression parameter now available with expdp. Provides for compression of Data Pump dump files.. Oracle Database 11g 11g Data Pump – Compression of Dump Files Compression Options: ALL Enables compression for the entire operation. Metadata_only The default setting. Causes only the metadata to be compressed. Data_only Only the data being written to the dump file set will be compressed. None No compression will take place. Oracle Database 11g 11g Data Pump – Compression of Dump Files Example expdp Robert/robert DIRECTORY= data_pump_dir DUMPFILE=hr_comp.dmp COMPRESSION=ALL Oracle Database 11g 11g Data Pump – Encryption The encryption parameter supports encryption/decryption of dumpfile data You can encrypt metadata data both Oracle Database 11g 11g Data Pump – Encryption Available encryption algorithms AES128 AES192 AES256 Define the encryption algorithm using the encryption_algorithm parameter. Oracle Database 11g 11g Data Pump – Encryption The encryption_mode parameter supports either Password or wallet keyed encryption Available encryption modes Dual – Both password and encryption wallet used. Password – Only password used to authenticate (encryption_password parameter) Transparent – Only encryption wallet used. Oracle Database 11g 11g Data Pump – Encryption Example expdp Robert/robert DIRECTORY=data_pump_dir DUMPFILE=hr_comp.dmp encryption=all encryption_password=Robert encryption_algorithm=AES128 encryption_mode=PASSWORD Oracle Database 11g 11g Data Pump – Data Obfuscation Data Obfuscation During export or import operation Modify data via PL/SQL routine Remap_data parameter Lists schema.table_name.column_name: package_name for remap operation Separate remap_data parameter for each table/column pair. Oracle Database 11g 11g Data Pump – Data Obfuscation Example PL/SQL Code – Shifts each letter. Create or replace package my_package as function my_function (p_in_data varchar2) return varchar2; end; / Create or replace package body my_package as function my_function (p_in_data varchar2) return varchar2 As v_return varchar2(30); begin v_return:=translate(p_in_data, 'abcdefghijklmnopqrstuvwxyz', 'bcdefghijklmnopqrstuvwxyza'); return v_return; end; end; / Oracle Database 11g 11g Data Pump – Data Obfuscation Remap during export expdp Robert/robert DIRECTORY=data_pump_dir DUMPFILE=remap.dmp tables=Robert.names remap_data=Robert.names.user_name: Robert.my_package.my_function Oracle Database 11g 11g Data Pump – Data Obfuscation Remap during import (with 2 columns) impdp Robert/robert DIRECTORY=data_pump_dir DUMPFILE=remap.dmp tables=ROBERT.NAMES remap_data=Robert.copy_names.user_name: Robert.my_package.my_function remap_data=Robert.copy_names.user_commment: Robert.my_package.my_function Oracle Database 11g 11g Data Pump – Table Rename Rename tables during an import Not available when importing Use the Remap_table parameter Example impdp Robert/robert DIRECTORY=data_pump_dir DUMPFILE=remap.dmp tables=ROBERT.NAMES remap_table=ROBERT.NAMES:COPY_NAMES Oracle Database 11g 11g Data Pump – Overwrite Dump Files You can now have Data Pump overwrite old dump files. Use the reuse_dumpfile parameter. Example expdp Robert/robert DIRECTORY=data_pump_dir DUMPFILE=remap.dmp tables=ROBERT.NAMES reuse_dumpfiles=Y Oracle Database 11g Partitioning In Oracle Database 11g Oracle Database 11g 11g Partitioning New and enhanced partitioning in 11g Interval partitioning Extended composite partitioning Reference partitioning System partitioning Partition with Virtual Columns Oracle Database 11g Interval Partitioning Oracle Database 11g 11g Partitioning – Interval Partitioning Interval Partitioning Automatic partition creation! Use the new interval keyword to define the interval for new partitions. Partition created when new data is added. Only the relevant partition is created. Example interval numtoyminterval(1,'MONTH')) Oracle Database 11g 11g Partitioning – Interval Partitioning Interval Partitioning Interval Functions Numtodsinterval – Convert a number into an interval day to second literal. Numtoyminterval – Convert a number into an interval year to month literal. Oracle Database 11g 11g Partitioning – Interval Partitioning Interval Partitioning The usual list of “cant’s” (which probably means that’s exactly what you want to do). The interval-partitioned table can only have one partitioning key column, and it must be of type NUMBER or DATE. Index-organized tables are not supported. You cannot create a domain index on an interval-partitioned table. Oracle Database 11g 11g Partitioning – Interval Partitioning Interval Partitioning More “cant’s” Interval partitioning does not support subpartitions. Thus, you can create an interval partition on the main partition of a composite partitioned table, but the subpartition cannot be interval-partitioned. Can not use maxvalue, and the partitioning key column cannot specify NULL values. Oracle Database 11g 11g Partitioning – Interval Partitioning Example create table statement create table daily_sales ( product_id number not null , customer_id number not null , sale_dt date not null , quantity_sold number(3) not null) partition by range (sale_dt) interval (numtoyminterval(1,'MONTH')) ( partition p_before_1_jan_2007 values less than (to_date('01-01-2007','dd-mm-yyyy'))); Oracle Database 11g 11g Partitioning – Interval Partitioning New partition names are ugly… select partition_name from user_tab_partitions where table_name = 'DAILY_SALES' order by partition_position; PARTITION_NAME ----------------------------P_BEFORE_1_JAN_2007 SYS_P41 Added Partition Oracle Database 11g 11g Partitioning – Interval Partitioning You can fix that though… alter table daily_sales rename partition sys_p41 to p_Jan_2007; Migrate partitioned tables to interval partitioning alter table employee_compensation set interval (numtoyminterval(1,'MONTH')); Oracle Database 11g 11g Partitioning – Interval Partitioning New syntax for addressing partition by values is a helpful: select * from daily_sales partition for (to_date('31-dec-2007','dd-mon-yyyy')); Recommend that developers migrate to this syntax and away from any direct mention of partition names. Oracle Database 11g Extended Composite Partitioning Oracle Database 11g 11g Partitioning – Extended Composite A whole host of new composite partition options are available in 11g Composite range-range partitioning Composite list-range partitioning Composite list-hash partitioning Composite list-list partitioning Oracle Database 11g Reference Partitioning Oracle Database 11g 11g Partitioning – Reference Reference partitioning allows you to partition a child table based on the partition key of a given parent table. The net effect is that the child table is partitioned on the same key as the parent table, even if the child table does not have that key column in it! Oracle Database 11g 11g Partitioning – Reference Example: Parent table creation create table customer_orders ( customer_id number, order_id number not null, order_date date not null, order_mode varchar2(8), order_status varchar2(1)) partition by range (order_date) ( partition p_before_jan_2007 values less than(to_date('01-JAN-2007','dd-MON-yyyy')) , partition p_2007_jan values less than(to_date('01-FEB-2007','dd-MON-yyyy'))) parallel; alter table customer_orders add constraint customer_orders_pk primary key (order_id); Oracle Database 11g 11g Partitioning – Reference Note: No order_date Example: Child table creation column create table customer_order_items BUT the FK Will be used to align ( order_id number not null The partitions! , product_id number not null Essentially the two tables will , quantity number not null be equipartitioned. , sales_amount number not null , constraint customer_order_items_orders_fk foreign key (order_id) references customer_orders(order_id) ) partition by reference (customer_order_items_orders_fk) parallel; Note partition by reference statement Oracle Database 11g 11g Partitioning – Reference Does not support Interval partitioning Index-organized tables External tables A domain index storage table The reference primary key or unique constraint cannot point to a virtual column Oracle Database 11g System Partitioning Oracle Database 11g 11g Partitioning – System Provides the ability to create a single table that has many physical partitions. No partition key is defined. You define a specific number of partitions You must define which partition the data goes in when doing an insert of data. Delete and update SQL does not require any special syntax. Oracle Database 11g 11g Partitioning – System Example CREATE TABLE TestTable (col1 integer, col2 integer) PARTITION BY SYSTEM( PARTITION s1 TABLESPACE tbs_s1, PARTITION s2 TABLESPACE tbs_s2, PARTITION s3 TABLESPACE tbs_s3, PARTITION s4 TABLESPACE tbs_s4); Oracle Database 11g 11g Partitioning – System Example Insert INSERT INTO TestTable PARTITION (s1) VALUES (4,5); If you can, it’s also a good idea to put a partition specification in other statements to reduce partition searching. For example: update testable partition (s1) set col2 = 6 where col1 = 4; Oracle Database 11g Partitioning With Virtual Columns Oracle Database 11g 11g Partitioning – Partition with Virtual Columns You can use a virtual column as the partition key for a table. Oracle Database 11g 11g Partitioning – Partition with Virtual Columns Example Create table part_employee ( emp_id number primary key, sal number not null, years_of_service number not null, curr_retirement as sal*.0005*years_of_service)) partition by range (curr_retirement) ( partition not_much values less than (100) , partition just_enough values less than (500) , partition oh_no_we_are_in_trouble values less than (maxvalue)); Oracle Database 11g Oracle Database 11g Strategic Strategies Oracle Database 11g Oracle Database 11g – Strategic Discussions Is 11g ready for prime time? First release woes… At first glance, 11g seems to be a smaller release. Don’t be fooled. There are some significant features for both the developer and the DBA. Example of the impacts of a new feature – SQL Plan Management Oracle Database 11g Oracle Database 11g – Strategic Discussions My recommendations Wait for the first patch set and begin testing. Use RAT to determine the impacts of 11g on your workload. RAT will also be handy to have when looking for 11g induced errors (ala ORA-0600’s). Move to 11g after successful regression testing. Be careful of the impacts of new features on how you do things. Oracle Database 11g Oracle Database 11g – Strategic Discussions I’m running 9i. Should I move to 10g or 11g? If you need the features of 10g now, I’d move to 10g. If you can wait, I’d prefer to move to 11g after the first patch set and full regression testing. Your support will last longer. One move, rather than two. Less risk. More features, better performance. Watch out for licensing! Oracle Database 11g Oracle Database 11g – Strategic Discussions Reported bugs in 11g Some RAC Bugs - Node one on clustered database CPU high. Memory leaks. Some basic code bugs- Archive logs created in the wrong place. LOB corruption in Intermedia Several documentation bugs. Lots of 10gR2 bugs fixed in 11g. Oracle Database 11g And so…. Oracle Database 11g We have discussed a great many features present in 11g. There are an equally large number of features we did not cover, we simply did not have time (or I had to much time left over and we will talk about them!). SQL Plan Management Transparent tablespace encryption Flashback Data Archive Private statistics Oracle Database 11g More 11g Features we did not cover, we simply did not have time. Recovery of old statistics DDL Lock Timeout alter session set ddl_lock_timeout = 10; Result Cache PL/SQL New Features And more…